From c8124097be38f942441dbbcb78a026d587a335bb Mon Sep 17 00:00:00 2001 From: phil Date: Thu, 20 Aug 2026 17:57:36 -0400 Subject: [PATCH 1/4] wheeee hubble-commit --- Cargo.lock | 19 +- Cargo.toml | 5 + hubble-commit/Cargo.toml | 22 + hubble-commit/readme.md | 47 + hubble-commit/src/blocks.rs | 31 + hubble-commit/src/car.rs | 119 ++ {hubble-sync => hubble-commit}/src/cid.rs | 0 hubble-commit/src/error.rs | 86 ++ hubble-commit/src/key.rs | 265 ++++ hubble-commit/src/lib.rs | 98 ++ hubble-commit/src/node.rs | 55 + hubble-commit/src/op.rs | 35 + hubble-commit/src/tree.rs | 1226 +++++++++++++++++ .../commit-proof-fixtures.json | 118 ++ .../atproto-interop/common_prefix.json | 15 + .../fixtures/atproto-interop/key_heights.json | 11 + .../cars/exhaustive/exhaustive_000.car | Bin 0 -> 103 bytes .../cars/exhaustive/exhaustive_001.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_002.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_003.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_004.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_005.car | Bin 0 -> 215 bytes .../cars/exhaustive/exhaustive_006.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_007.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_008.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_009.car | Bin 0 -> 386 bytes .../cars/exhaustive/exhaustive_010.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_011.car | Bin 0 -> 444 bytes .../cars/exhaustive/exhaustive_012.car | Bin 0 -> 386 bytes .../cars/exhaustive/exhaustive_013.car | Bin 0 -> 441 bytes .../cars/exhaustive/exhaustive_014.car | Bin 0 -> 444 bytes .../cars/exhaustive/exhaustive_015.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_016.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_017.car | Bin 0 -> 216 bytes .../cars/exhaustive/exhaustive_018.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_019.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_020.car | Bin 0 -> 216 bytes .../cars/exhaustive/exhaustive_021.car | Bin 0 -> 270 bytes .../cars/exhaustive/exhaustive_022.car | Bin 0 -> 358 bytes .../cars/exhaustive/exhaustive_023.car | Bin 0 -> 499 bytes .../cars/exhaustive/exhaustive_024.car | Bin 0 -> 386 bytes .../cars/exhaustive/exhaustive_025.car | Bin 0 -> 611 bytes .../cars/exhaustive/exhaustive_026.car | Bin 0 -> 527 bytes .../cars/exhaustive/exhaustive_027.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_028.car | Bin 0 -> 611 bytes .../cars/exhaustive/exhaustive_029.car | Bin 0 -> 666 bytes .../cars/exhaustive/exhaustive_030.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_031.car | Bin 0 -> 810 bytes .../cars/exhaustive/exhaustive_032.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_033.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_034.car | Bin 0 -> 216 bytes .../cars/exhaustive/exhaustive_035.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_036.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_037.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_038.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_039.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_040.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_041.car | Bin 0 -> 527 bytes .../cars/exhaustive/exhaustive_042.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_043.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_044.car | Bin 0 -> 527 bytes .../cars/exhaustive/exhaustive_045.car | Bin 0 -> 582 bytes .../cars/exhaustive/exhaustive_046.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_047.car | Bin 0 -> 726 bytes .../cars/exhaustive/exhaustive_048.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_049.car | Bin 0 -> 358 bytes .../cars/exhaustive/exhaustive_050.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_051.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_052.car | Bin 0 -> 358 bytes .../cars/exhaustive/exhaustive_053.car | Bin 0 -> 412 bytes .../cars/exhaustive/exhaustive_054.car | Bin 0 -> 413 bytes .../cars/exhaustive/exhaustive_055.car | Bin 0 -> 554 bytes .../cars/exhaustive/exhaustive_056.car | Bin 0 -> 444 bytes .../cars/exhaustive/exhaustive_057.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_058.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_059.car | Bin 0 -> 727 bytes .../cars/exhaustive/exhaustive_060.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_061.car | Bin 0 -> 724 bytes .../cars/exhaustive/exhaustive_062.car | Bin 0 -> 727 bytes .../cars/exhaustive/exhaustive_063.car | Bin 0 -> 868 bytes .../cars/exhaustive/exhaustive_064.car | Bin 0 -> 160 bytes .../cars/exhaustive/exhaustive_065.car | Bin 0 -> 216 bytes .../cars/exhaustive/exhaustive_066.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_067.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_068.car | Bin 0 -> 216 bytes .../cars/exhaustive/exhaustive_069.car | Bin 0 -> 270 bytes .../cars/exhaustive/exhaustive_070.car | Bin 0 -> 358 bytes .../cars/exhaustive/exhaustive_071.car | Bin 0 -> 499 bytes .../cars/exhaustive/exhaustive_072.car | Bin 0 -> 386 bytes .../cars/exhaustive/exhaustive_073.car | Bin 0 -> 611 bytes .../cars/exhaustive/exhaustive_074.car | Bin 0 -> 527 bytes .../cars/exhaustive/exhaustive_075.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_076.car | Bin 0 -> 611 bytes .../cars/exhaustive/exhaustive_077.car | Bin 0 -> 666 bytes .../cars/exhaustive/exhaustive_078.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_079.car | Bin 0 -> 810 bytes .../cars/exhaustive/exhaustive_080.car | Bin 0 -> 215 bytes .../cars/exhaustive/exhaustive_081.car | Bin 0 -> 270 bytes .../cars/exhaustive/exhaustive_082.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_083.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_084.car | Bin 0 -> 270 bytes .../cars/exhaustive/exhaustive_085.car | Bin 0 -> 324 bytes .../cars/exhaustive/exhaustive_086.car | Bin 0 -> 412 bytes .../cars/exhaustive/exhaustive_087.car | Bin 0 -> 553 bytes .../cars/exhaustive/exhaustive_088.car | Bin 0 -> 441 bytes .../cars/exhaustive/exhaustive_089.car | Bin 0 -> 666 bytes .../cars/exhaustive/exhaustive_090.car | Bin 0 -> 582 bytes .../cars/exhaustive/exhaustive_091.car | Bin 0 -> 724 bytes .../cars/exhaustive/exhaustive_092.car | Bin 0 -> 666 bytes .../cars/exhaustive/exhaustive_093.car | Bin 0 -> 721 bytes .../cars/exhaustive/exhaustive_094.car | Bin 0 -> 724 bytes .../cars/exhaustive/exhaustive_095.car | Bin 0 -> 865 bytes .../cars/exhaustive/exhaustive_096.car | Bin 0 -> 302 bytes .../cars/exhaustive/exhaustive_097.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_098.car | Bin 0 -> 357 bytes .../cars/exhaustive/exhaustive_099.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_100.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_101.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_102.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_103.car | Bin 0 -> 639 bytes .../cars/exhaustive/exhaustive_104.car | Bin 0 -> 444 bytes .../cars/exhaustive/exhaustive_105.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_106.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_107.car | Bin 0 -> 727 bytes .../cars/exhaustive/exhaustive_108.car | Bin 0 -> 669 bytes .../cars/exhaustive/exhaustive_109.car | Bin 0 -> 724 bytes .../cars/exhaustive/exhaustive_110.car | Bin 0 -> 727 bytes .../cars/exhaustive/exhaustive_111.car | Bin 0 -> 868 bytes .../cars/exhaustive/exhaustive_112.car | Bin 0 -> 443 bytes .../cars/exhaustive/exhaustive_113.car | Bin 0 -> 499 bytes .../cars/exhaustive/exhaustive_114.car | Bin 0 -> 498 bytes .../cars/exhaustive/exhaustive_115.car | Bin 0 -> 639 bytes .../cars/exhaustive/exhaustive_116.car | Bin 0 -> 499 bytes .../cars/exhaustive/exhaustive_117.car | Bin 0 -> 553 bytes .../cars/exhaustive/exhaustive_118.car | Bin 0 -> 554 bytes .../cars/exhaustive/exhaustive_119.car | Bin 0 -> 695 bytes .../cars/exhaustive/exhaustive_120.car | Bin 0 -> 585 bytes .../cars/exhaustive/exhaustive_121.car | Bin 0 -> 810 bytes .../cars/exhaustive/exhaustive_122.car | Bin 0 -> 726 bytes .../cars/exhaustive/exhaustive_123.car | Bin 0 -> 868 bytes .../cars/exhaustive/exhaustive_124.car | Bin 0 -> 810 bytes .../cars/exhaustive/exhaustive_125.car | Bin 0 -> 865 bytes .../cars/exhaustive/exhaustive_126.car | Bin 0 -> 868 bytes .../cars/exhaustive/exhaustive_127.car | Bin 0 -> 1009 bytes .../diff/exhaustive/exhaustive_000_000.json | 16 + .../diff/exhaustive/exhaustive_000_002.json | 30 + .../diff/exhaustive/exhaustive_000_004.json | 30 + .../diff/exhaustive/exhaustive_000_006.json | 38 + .../diff/exhaustive/exhaustive_000_008.json | 30 + .../diff/exhaustive/exhaustive_000_010.json | 38 + .../diff/exhaustive/exhaustive_000_012.json | 41 + .../diff/exhaustive/exhaustive_000_014.json | 46 + .../diff/exhaustive/exhaustive_000_016.json | 30 + .../diff/exhaustive/exhaustive_000_018.json | 38 + .../diff/exhaustive/exhaustive_000_020.json | 35 + .../diff/exhaustive/exhaustive_000_022.json | 43 + .../diff/exhaustive/exhaustive_000_024.json | 41 + .../diff/exhaustive/exhaustive_000_026.json | 49 + .../diff/exhaustive/exhaustive_000_028.json | 52 + .../diff/exhaustive/exhaustive_000_030.json | 57 + .../diff/exhaustive/exhaustive_000_032.json | 30 + .../diff/exhaustive/exhaustive_000_034.json | 35 + .../diff/exhaustive/exhaustive_000_036.json | 38 + .../diff/exhaustive/exhaustive_000_038.json | 43 + .../diff/exhaustive/exhaustive_000_040.json | 38 + .../diff/exhaustive/exhaustive_000_042.json | 46 + .../diff/exhaustive/exhaustive_000_044.json | 49 + .../diff/exhaustive/exhaustive_000_046.json | 54 + .../diff/exhaustive/exhaustive_000_048.json | 38 + .../diff/exhaustive/exhaustive_000_050.json | 43 + .../diff/exhaustive/exhaustive_000_052.json | 43 + .../diff/exhaustive/exhaustive_000_054.json | 48 + .../diff/exhaustive/exhaustive_000_056.json | 46 + .../diff/exhaustive/exhaustive_000_058.json | 54 + .../diff/exhaustive/exhaustive_000_060.json | 57 + .../diff/exhaustive/exhaustive_000_062.json | 62 + .../diff/exhaustive/exhaustive_000_064.json | 30 + .../diff/exhaustive/exhaustive_000_066.json | 38 + .../diff/exhaustive/exhaustive_000_068.json | 35 + .../diff/exhaustive/exhaustive_000_070.json | 43 + .../diff/exhaustive/exhaustive_000_072.json | 41 + .../diff/exhaustive/exhaustive_000_074.json | 49 + .../diff/exhaustive/exhaustive_000_076.json | 52 + .../diff/exhaustive/exhaustive_000_078.json | 57 + .../diff/exhaustive/exhaustive_000_080.json | 35 + .../diff/exhaustive/exhaustive_000_082.json | 43 + .../diff/exhaustive/exhaustive_000_084.json | 40 + .../diff/exhaustive/exhaustive_000_086.json | 48 + .../diff/exhaustive/exhaustive_000_088.json | 46 + .../diff/exhaustive/exhaustive_000_090.json | 54 + .../diff/exhaustive/exhaustive_000_092.json | 57 + .../diff/exhaustive/exhaustive_000_094.json | 62 + .../diff/exhaustive/exhaustive_000_096.json | 38 + .../diff/exhaustive/exhaustive_000_098.json | 43 + .../diff/exhaustive/exhaustive_000_100.json | 46 + .../diff/exhaustive/exhaustive_000_102.json | 51 + .../diff/exhaustive/exhaustive_000_104.json | 46 + .../diff/exhaustive/exhaustive_000_106.json | 54 + .../diff/exhaustive/exhaustive_000_108.json | 57 + .../diff/exhaustive/exhaustive_000_110.json | 62 + .../diff/exhaustive/exhaustive_000_112.json | 46 + .../diff/exhaustive/exhaustive_000_114.json | 51 + .../diff/exhaustive/exhaustive_000_116.json | 51 + .../diff/exhaustive/exhaustive_000_118.json | 56 + .../diff/exhaustive/exhaustive_000_120.json | 54 + .../diff/exhaustive/exhaustive_000_122.json | 62 + .../diff/exhaustive/exhaustive_000_124.json | 65 + .../diff/exhaustive/exhaustive_000_126.json | 70 + .../diff/exhaustive/exhaustive_000_127.json | 78 ++ .../diff/exhaustive/exhaustive_001_000.json | 30 + .../diff/exhaustive/exhaustive_001_126.json | 75 + .../diff/exhaustive/exhaustive_002_125.json | 75 + .../diff/exhaustive/exhaustive_003_000.json | 36 + .../diff/exhaustive/exhaustive_003_124.json | 76 + .../diff/exhaustive/exhaustive_004_123.json | 75 + .../diff/exhaustive/exhaustive_005_000.json | 35 + .../diff/exhaustive/exhaustive_005_122.json | 72 + .../diff/exhaustive/exhaustive_006_121.json | 76 + .../diff/exhaustive/exhaustive_007_000.json | 42 + .../diff/exhaustive/exhaustive_007_120.json | 71 + .../diff/exhaustive/exhaustive_008_119.json | 69 + .../diff/exhaustive/exhaustive_009_000.json | 37 + .../diff/exhaustive/exhaustive_009_118.json | 68 + .../diff/exhaustive/exhaustive_010_117.json | 67 + .../diff/exhaustive/exhaustive_011_000.json | 42 + .../diff/exhaustive/exhaustive_011_116.json | 68 + .../diff/exhaustive/exhaustive_012_115.json | 71 + .../diff/exhaustive/exhaustive_013_000.json | 42 + .../diff/exhaustive/exhaustive_013_114.json | 68 + .../diff/exhaustive/exhaustive_014_113.json | 68 + .../diff/exhaustive/exhaustive_015_000.json | 48 + .../diff/exhaustive/exhaustive_015_112.json | 69 + .../diff/exhaustive/exhaustive_016_111.json | 75 + .../diff/exhaustive/exhaustive_017_000.json | 35 + .../diff/exhaustive/exhaustive_017_110.json | 72 + .../diff/exhaustive/exhaustive_018_109.json | 73 + .../diff/exhaustive/exhaustive_019_000.json | 42 + .../diff/exhaustive/exhaustive_019_108.json | 74 + .../diff/exhaustive/exhaustive_020_107.json | 72 + .../diff/exhaustive/exhaustive_021_000.json | 40 + .../diff/exhaustive/exhaustive_021_106.json | 69 + .../diff/exhaustive/exhaustive_022_105.json | 73 + .../diff/exhaustive/exhaustive_023_000.json | 47 + .../diff/exhaustive/exhaustive_023_104.json | 68 + .../diff/exhaustive/exhaustive_024_103.json | 71 + .../diff/exhaustive/exhaustive_025_000.json | 44 + .../diff/exhaustive/exhaustive_025_102.json | 70 + .../diff/exhaustive/exhaustive_026_101.json | 69 + .../diff/exhaustive/exhaustive_027_000.json | 49 + .../diff/exhaustive/exhaustive_027_100.json | 70 + .../diff/exhaustive/exhaustive_028_099.json | 70 + .../diff/exhaustive/exhaustive_029_000.json | 49 + .../diff/exhaustive/exhaustive_029_079.json | 57 + .../diff/exhaustive/exhaustive_029_095.json | 52 + .../diff/exhaustive/exhaustive_029_098.json | 67 + .../diff/exhaustive/exhaustive_029_111.json | 62 + .../diff/exhaustive/exhaustive_030_097.json | 70 + .../diff/exhaustive/exhaustive_031_000.json | 55 + .../diff/exhaustive/exhaustive_031_077.json | 57 + .../diff/exhaustive/exhaustive_031_093.json | 52 + .../diff/exhaustive/exhaustive_031_096.json | 68 + .../diff/exhaustive/exhaustive_031_109.json | 62 + .../diff/exhaustive/exhaustive_032_095.json | 75 + .../diff/exhaustive/exhaustive_033_000.json | 36 + .../diff/exhaustive/exhaustive_033_094.json | 73 + .../diff/exhaustive/exhaustive_034_093.json | 72 + .../diff/exhaustive/exhaustive_035_000.json | 41 + .../diff/exhaustive/exhaustive_035_092.json | 73 + .../diff/exhaustive/exhaustive_036_091.json | 73 + .../diff/exhaustive/exhaustive_037_000.json | 41 + .../diff/exhaustive/exhaustive_037_090.json | 70 + .../diff/exhaustive/exhaustive_038_089.json | 73 + .../diff/exhaustive/exhaustive_039_000.json | 47 + .../diff/exhaustive/exhaustive_039_088.json | 68 + .../diff/exhaustive/exhaustive_040_087.json | 67 + .../diff/exhaustive/exhaustive_041_000.json | 43 + .../diff/exhaustive/exhaustive_041_086.json | 66 + .../diff/exhaustive/exhaustive_042_085.json | 62 + .../diff/exhaustive/exhaustive_043_000.json | 48 + .../diff/exhaustive/exhaustive_043_084.json | 63 + .../diff/exhaustive/exhaustive_044_083.json | 69 + .../diff/exhaustive/exhaustive_045_000.json | 48 + .../diff/exhaustive/exhaustive_045_082.json | 66 + .../diff/exhaustive/exhaustive_045_127.json | 59 + .../diff/exhaustive/exhaustive_046_081.json | 63 + .../diff/exhaustive/exhaustive_047_000.json | 54 + .../diff/exhaustive/exhaustive_047_080.json | 64 + .../diff/exhaustive/exhaustive_047_125.json | 59 + .../diff/exhaustive/exhaustive_048_079.json | 76 + .../diff/exhaustive/exhaustive_049_000.json | 41 + .../diff/exhaustive/exhaustive_049_078.json | 73 + .../diff/exhaustive/exhaustive_051_000.json | 47 + .../diff/exhaustive/exhaustive_053_000.json | 46 + .../diff/exhaustive/exhaustive_055_000.json | 52 + .../diff/exhaustive/exhaustive_057_000.json | 49 + .../diff/exhaustive/exhaustive_059_000.json | 54 + .../diff/exhaustive/exhaustive_061_000.json | 54 + .../diff/exhaustive/exhaustive_061_079.json | 62 + .../diff/exhaustive/exhaustive_061_095.json | 57 + .../diff/exhaustive/exhaustive_061_111.json | 57 + .../diff/exhaustive/exhaustive_063_000.json | 60 + .../diff/exhaustive/exhaustive_063_077.json | 62 + .../diff/exhaustive/exhaustive_063_093.json | 57 + .../diff/exhaustive/exhaustive_063_109.json | 57 + .../diff/exhaustive/exhaustive_065_000.json | 35 + .../diff/exhaustive/exhaustive_067_000.json | 42 + .../diff/exhaustive/exhaustive_069_000.json | 40 + .../diff/exhaustive/exhaustive_071_000.json | 47 + .../diff/exhaustive/exhaustive_073_000.json | 44 + .../diff/exhaustive/exhaustive_075_000.json | 49 + .../diff/exhaustive/exhaustive_077_000.json | 49 + .../diff/exhaustive/exhaustive_077_031.json | 57 + .../diff/exhaustive/exhaustive_077_063.json | 62 + .../diff/exhaustive/exhaustive_077_095.json | 52 + .../diff/exhaustive/exhaustive_079_000.json | 55 + .../diff/exhaustive/exhaustive_079_029.json | 57 + .../diff/exhaustive/exhaustive_079_061.json | 62 + .../diff/exhaustive/exhaustive_079_093.json | 52 + .../diff/exhaustive/exhaustive_081_000.json | 40 + .../diff/exhaustive/exhaustive_083_000.json | 47 + .../diff/exhaustive/exhaustive_085_000.json | 45 + .../diff/exhaustive/exhaustive_087_000.json | 52 + .../diff/exhaustive/exhaustive_089_000.json | 49 + .../diff/exhaustive/exhaustive_089_124.json | 57 + .../diff/exhaustive/exhaustive_089_125.json | 52 + .../diff/exhaustive/exhaustive_089_126.json | 62 + .../diff/exhaustive/exhaustive_090_127.json | 59 + .../diff/exhaustive/exhaustive_091_000.json | 54 + .../diff/exhaustive/exhaustive_091_124.json | 62 + .../diff/exhaustive/exhaustive_091_125.json | 57 + .../diff/exhaustive/exhaustive_091_126.json | 57 + .../diff/exhaustive/exhaustive_092_121.json | 57 + .../diff/exhaustive/exhaustive_092_123.json | 62 + .../diff/exhaustive/exhaustive_092_125.json | 52 + .../diff/exhaustive/exhaustive_093_000.json | 54 + .../diff/exhaustive/exhaustive_093_031.json | 52 + .../diff/exhaustive/exhaustive_093_063.json | 56 + .../diff/exhaustive/exhaustive_093_079.json | 52 + .../diff/exhaustive/exhaustive_093_111.json | 56 + .../diff/exhaustive/exhaustive_093_121.json | 52 + .../diff/exhaustive/exhaustive_093_123.json | 56 + .../diff/exhaustive/exhaustive_093_124.json | 52 + .../diff/exhaustive/exhaustive_093_126.json | 56 + .../diff/exhaustive/exhaustive_093_127.json | 53 + .../diff/exhaustive/exhaustive_094_121.json | 62 + .../diff/exhaustive/exhaustive_094_123.json | 57 + .../diff/exhaustive/exhaustive_094_125.json | 57 + .../diff/exhaustive/exhaustive_095_000.json | 60 + .../diff/exhaustive/exhaustive_095_029.json | 52 + .../diff/exhaustive/exhaustive_095_061.json | 56 + .../diff/exhaustive/exhaustive_095_077.json | 52 + .../diff/exhaustive/exhaustive_095_109.json | 56 + .../diff/exhaustive/exhaustive_095_122.json | 55 + .../diff/exhaustive/exhaustive_095_125.json | 53 + .../diff/exhaustive/exhaustive_097_000.json | 42 + .../diff/exhaustive/exhaustive_099_000.json | 47 + .../diff/exhaustive/exhaustive_101_000.json | 47 + .../diff/exhaustive/exhaustive_103_000.json | 53 + .../diff/exhaustive/exhaustive_105_000.json | 49 + .../diff/exhaustive/exhaustive_107_000.json | 54 + .../diff/exhaustive/exhaustive_109_000.json | 54 + .../diff/exhaustive/exhaustive_111_000.json | 60 + .../diff/exhaustive/exhaustive_113_000.json | 47 + .../diff/exhaustive/exhaustive_115_000.json | 53 + .../diff/exhaustive/exhaustive_117_000.json | 52 + .../diff/exhaustive/exhaustive_119_000.json | 58 + .../diff/exhaustive/exhaustive_121_000.json | 55 + .../diff/exhaustive/exhaustive_123_000.json | 60 + .../diff/exhaustive/exhaustive_125_000.json | 60 + .../diff/exhaustive/exhaustive_125_095.json | 53 + .../diff/exhaustive/exhaustive_127_000.json | 66 + .../diff/exhaustive/exhaustive_127_093.json | 53 + hubble-commit/tests/mst_diff_suite.rs | 225 +++ hubble-sync/Cargo.toml | 6 +- hubble-sync/src/lib.rs | 3 +- scripts/select-mst-cases.py | 73 + 376 files changed, 14767 insertions(+), 10 deletions(-) create mode 100644 hubble-commit/Cargo.toml create mode 100644 hubble-commit/readme.md create mode 100644 hubble-commit/src/blocks.rs create mode 100644 hubble-commit/src/car.rs rename {hubble-sync => hubble-commit}/src/cid.rs (100%) create mode 100644 hubble-commit/src/error.rs create mode 100644 hubble-commit/src/key.rs create mode 100644 hubble-commit/src/lib.rs create mode 100644 hubble-commit/src/node.rs create mode 100644 hubble-commit/src/op.rs create mode 100644 hubble-commit/src/tree.rs create mode 100644 hubble-commit/tests/fixtures/atproto-interop/commit-proof-fixtures.json create mode 100644 hubble-commit/tests/fixtures/atproto-interop/common_prefix.json create mode 100644 hubble-commit/tests/fixtures/atproto-interop/key_heights.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_000.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_001.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_002.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_003.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_004.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_005.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_006.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_007.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_008.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_009.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_010.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_011.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_012.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_013.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_014.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_015.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_016.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_017.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_018.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_019.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_020.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_021.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_022.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_023.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_024.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_025.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_026.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_027.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_028.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_029.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_030.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_031.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_032.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_033.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_034.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_035.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_036.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_037.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_038.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_039.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_040.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_041.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_042.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_043.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_044.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_045.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_046.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_047.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_048.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_049.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_050.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_051.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_052.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_053.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_054.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_055.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_056.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_057.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_058.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_059.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_060.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_061.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_062.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_063.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_064.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_065.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_066.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_067.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_068.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_069.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_070.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_071.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_072.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_073.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_074.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_075.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_076.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_077.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_078.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_079.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_080.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_081.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_082.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_083.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_084.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_085.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_086.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_087.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_088.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_089.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_090.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_091.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_092.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_093.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_094.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_095.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_096.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_097.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_098.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_099.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_100.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_101.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_102.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_103.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_104.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_105.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_106.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_107.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_108.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_109.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_110.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_111.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_112.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_113.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_114.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_115.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_116.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_117.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_118.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_119.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_120.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_121.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_122.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_123.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_124.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_125.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_126.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_127.car create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_002.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_004.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_006.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_008.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_010.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_012.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_014.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_016.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_018.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_020.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_022.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_024.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_026.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_028.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_030.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_032.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_034.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_036.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_038.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_040.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_042.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_044.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_046.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_048.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_050.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_052.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_054.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_056.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_058.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_060.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_062.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_064.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_066.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_068.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_070.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_072.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_074.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_076.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_078.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_080.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_082.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_084.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_086.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_088.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_090.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_092.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_094.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_096.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_098.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_100.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_102.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_104.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_106.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_108.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_110.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_112.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_114.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_116.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_118.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_120.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_122.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_124.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_126.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_127.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_126.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_002_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_124.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_004_123.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_122.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_006_121.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_120.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_008_119.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_118.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_010_117.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_116.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_012_115.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_114.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_014_113.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_112.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_016_111.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_110.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_018_109.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_108.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_020_107.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_106.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_022_105.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_104.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_024_103.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_102.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_026_101.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_100.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_028_099.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_079.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_095.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_098.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_111.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_030_097.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_077.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_093.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_096.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_109.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_032_095.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_094.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_034_093.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_092.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_036_091.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_090.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_038_089.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_088.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_040_087.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_086.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_042_085.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_084.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_044_083.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_082.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_127.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_046_081.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_080.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_048_079.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_078.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_051_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_053_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_055_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_057_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_059_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_079.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_095.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_111.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_077.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_093.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_109.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_065_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_067_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_069_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_071_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_073_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_075_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_031.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_063.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_095.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_029.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_061.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_093.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_081_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_083_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_085_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_087_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_124.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_126.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_090_127.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_124.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_126.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_121.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_123.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_031.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_063.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_079.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_111.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_121.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_123.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_124.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_126.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_127.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_121.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_123.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_029.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_061.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_077.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_109.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_122.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_125.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_097_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_099_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_101_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_103_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_105_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_107_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_109_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_111_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_113_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_115_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_117_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_119_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_121_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_123_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_095.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_000.json create mode 100644 hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_093.json create mode 100644 hubble-commit/tests/mst_diff_suite.rs create mode 100755 scripts/select-mst-cases.py diff --git a/Cargo.lock b/Cargo.lock index 6958c7c..beb8adb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2169,6 +2169,21 @@ dependencies = [ "zstd", ] +[[package]] +name = "hubble-commit" +version = "0.0.4" +dependencies = [ + "dasl", + "data-encoding", + "data-encoding-macro", + "serde", + "serde_bytes", + "serde_json", + "sha2 0.11.0", + "thiserror 2.0.20", + "unsigned-varint 0.8.0", +] + [[package]] name = "hubble-mini" version = "0.1.0" @@ -2216,11 +2231,10 @@ version = "0.0.4" dependencies = [ "bytes", "dasl", - "data-encoding", - "data-encoding-macro", "futures-util", "governor", "http", + "hubble-commit", "jacquard-api", "jacquard-common", "jacquard-identity", @@ -2235,7 +2249,6 @@ dependencies = [ "serde", "serde_bytes", "serde_json", - "sha2 0.11.0", "thiserror 2.0.20", "tokio", "tokio-stream", diff --git a/Cargo.toml b/Cargo.toml index 9eacfe0..5793988 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ members = [ "car-dump", "getrepo-bench", "hubble", + "hubble-commit", "hubble-pds", "hubble-sync", "hubble-sync-axum", @@ -51,6 +52,10 @@ tower-http = "0.6" tracing = "0.1.44" tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } +[workspace.dependencies.hubble-commit] +path = "hubble-commit" +version = "0.0.4" + [workspace.dependencies.hubble-sync] path = "hubble-sync" version = "0.0.4" diff --git a/hubble-commit/Cargo.toml b/hubble-commit/Cargo.toml new file mode 100644 index 0000000..e584719 --- /dev/null +++ b/hubble-commit/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "hubble-commit" +description = "atproto commit operations: sync1.1 op inversion proof" +version = "0.0.4" +edition = "2024" +license = "MIT OR Apache-2.0" + +[dependencies] +dasl = { workspace = true } +serde = { workspace = true } +thiserror = { workspace = true } +unsigned-varint = "0.8" + +# for the vendored dasl::cid +data-encoding = "2.11.0" +data-encoding-macro = "0.1.20" +serde_bytes = "0.11.19" +sha2 = "0.11.0" + +[dev-dependencies] +serde = { workspace = true } +serde_json = { workspace = true } diff --git a/hubble-commit/readme.md b/hubble-commit/readme.md new file mode 100644 index 0000000..3a702d6 --- /dev/null +++ b/hubble-commit/readme.md @@ -0,0 +1,47 @@ +# hubble-commit: atproto commit operations + +synchronous operation inversion for sync 1.1 commit validation + +given a partial mst and op list from a commit, inverts all the ops and returns the previous root cid, to validate against `prevData`. + +```rust +let prev = hubble_commit::invert_ops(&blocks, commit.data, &ops, OpOrder::AsGiven)?; +if prev != commit.prev_data { + // inductive proof fail! +} +``` + +atproto sync limits commits to 200 ops and 2MB total CAR size (including records, which are not used at all), so it should be fast enough to directly call `invert_ops` in an async context. + + +## operation order (`OpOrder`) + +generally, just use `AsGiven`. there's this fun thing where the *minimal* set of blocks required to satisfy the inductive proof actually depend on the order of op inversion. +the current atproto sync draft REQUIRES that producers slightly over-include blocks (the adjacent-key requirement), so that the order doesn't matter. + +if you set `HighestKeyFirst`, then `invert_ops` will always accept commits from producers which can be proven but don't necessarily meet the spec requirement. + +(we don't actually assert the requirement either way, we just either might fail, or won't fail, and we take a preference to rejecting spec-non-compliant commits by letting them possibly fail. fix your producers. +or use `HighestKeyFirst` and let the badness ossify.) + + +## tests + +``` +cargo test -p hubble-commit +``` + +runs unit tests, atproto-interop-tests vectors, and a 228-case subset of [`mst-test-suite`](https://github.com/DavidBuchanan314/mst-test-suite) vendored under `tests/fixtures/mst-test-suite`. + +the full 16,384-case exhaustive `mst-test-suite` is included a submodule: + +``` +git submodule update --init hubble-commit/tests/mst-test-suite +cargo test -p hubble-commit --test mst_diff_suite -- --ignored +``` + +`scripts/select-mst-cases.py` regenerates the vendored subset from a checkout. + +## vendored code + +`src/cid.rs` is dasl's `Cid`, vendored until dasl releases the `Hash` derive that's sitting unreleased on main 🙃. diff --git a/hubble-commit/src/blocks.rs b/hubble-commit/src/blocks.rs new file mode 100644 index 0000000..5431e49 --- /dev/null +++ b/hubble-commit/src/blocks.rs @@ -0,0 +1,31 @@ +//! Where the tree reads its nodes from. + +use std::collections::HashMap; +use std::hash::BuildHasher; + +use crate::cid::Cid; + +/// A source of MST node blocks. +/// +/// A firehose commit carries only a covering proof, so a `Blocks` is expected +/// to be missing most of a repository. Returning `None` is normal; whether it +/// is *acceptable* depends on whether the tree needs that node, which the +/// caller finds out as [`InvertError::ProofIncomplete`](crate::InvertError). +/// +/// Implement this over repository storage to let inversion fall back to blocks +/// the commit did not carry. +pub trait Blocks { + fn get(&self, cid: &Cid) -> Option<&[u8]>; +} + +impl, S: BuildHasher> Blocks for HashMap { + fn get(&self, cid: &Cid) -> Option<&[u8]> { + HashMap::get(self, cid).map(AsRef::as_ref) + } +} + +impl Blocks for &T { + fn get(&self, cid: &Cid) -> Option<&[u8]> { + (**self).get(cid) + } +} diff --git a/hubble-commit/src/car.rs b/hubble-commit/src/car.rs new file mode 100644 index 0000000..6a3295a --- /dev/null +++ b/hubble-commit/src/car.rs @@ -0,0 +1,119 @@ +//! Just enough CARv1 to get a commit's blocks out of a byte slice. +//! +//! Blocks are yielded as slices borrowed from the input, so nothing is copied. +//! This is not a general CAR implementation, it only needs to work with CARs +//! from atproto firehose commits. +//! +//! bleh. i would not like to keep this but iroh-car staying committed to async +//! is unfortunate. probably should ship a proper sans-io carv1 reader... + +use serde::Deserialize; + +use crate::cid::{Cid, CidParseError}; + +#[derive(Debug, thiserror::Error)] +pub enum CarError { + #[error("truncated: wanted {wanted} more bytes, {available} left")] + Truncated { wanted: usize, available: usize }, + #[error("length prefix is not a valid varint")] + BadVarint, + #[error("header did not decode: {0}")] + BadHeader(String), + #[error("CAR version {0}, only v1 is supported")] + UnsupportedVersion(u64), + #[error("CAR header lists {0} roots, expected at least 1")] + RootCount(usize), + #[error("invalid CID in block header: {0}")] + BadCid(#[from] CidParseError), +} + +#[derive(Deserialize)] +struct Header { + roots: Vec, + version: u64, +} + +/// Reads the blocks of a CARv1 archive in the order they were written. +pub struct CarReader<'a> { + root: Cid, + rest: &'a [u8], +} + +impl<'a> CarReader<'a> { + /// Parse the header, leaving the blocks to be read by iterating. + pub fn new(bytes: &'a [u8]) -> Result { + let (header, rest) = take_chunk(bytes)?; + let header: Header = + dasl::drisl::from_slice(header).map_err(|e| CarError::BadHeader(e.to_string()))?; + if header.version != 1 { + return Err(CarError::UnsupportedVersion(header.version)); + } + let Some(root) = header.roots.first() else { + return Err(CarError::RootCount(header.roots.len())); + }; + Ok(Self { root: *root, rest }) + } + + /// The archive's single root: for a commit CAR, the commit object. + pub fn root(&self) -> Cid { + self.root + } +} + +impl<'a> Iterator for CarReader<'a> { + type Item = Result<(Cid, &'a [u8]), CarError>; + + fn next(&mut self) -> Option { + if self.rest.is_empty() { + return None; + } + Some(self.read_block()) + } +} + +impl<'a> CarReader<'a> { + fn read_block(&mut self) -> Result<(Cid, &'a [u8]), CarError> { + let (chunk, rest) = take_chunk(self.rest)?; + self.rest = rest; + // a block is its CID followed by its bytes, with no length between + // them, so the CID's own length has to be worked out from its prefix + let cid_len = cid_len(chunk)?; + let (cid, block) = chunk.split_at(cid_len); + Ok((Cid::from_bytes_raw(cid)?, block)) + } +} + +/// Split off one varint-length-prefixed chunk. +fn take_chunk(bytes: &[u8]) -> Result<(&[u8], &[u8]), CarError> { + let (len, rest) = unsigned_varint::decode::usize(bytes).map_err(|_| CarError::BadVarint)?; + if rest.len() < len { + return Err(CarError::Truncated { + wanted: len, + available: rest.len(), + }); + } + Ok(rest.split_at(len)) +} + +/// Length of the CID at the head of a block frame. +/// +/// atproto only uses CIDv1 with a single-byte codec and a single-byte +/// multihash code, so this is the 4-byte prefix plus the declared digest +/// length. Anything else is not a CID we can read anyway. +fn cid_len(bytes: &[u8]) -> Result { + const PREFIX: usize = 4; + let Some(prefix) = bytes.get(..PREFIX) else { + return Err(CarError::Truncated { + wanted: PREFIX, + available: bytes.len(), + }); + }; + let len = PREFIX + usize::from(prefix[3]); + if bytes.len() < len { + return Err(CarError::Truncated { + wanted: len, + available: bytes.len(), + }); + } + Ok(len) +} diff --git a/hubble-sync/src/cid.rs b/hubble-commit/src/cid.rs similarity index 100% rename from hubble-sync/src/cid.rs rename to hubble-commit/src/cid.rs diff --git a/hubble-commit/src/error.rs b/hubble-commit/src/error.rs new file mode 100644 index 0000000..b250d78 --- /dev/null +++ b/hubble-commit/src/error.rs @@ -0,0 +1,86 @@ +//! Failures from inverting a commit's operations. + +use crate::cid::Cid; +use crate::key::{Key, KeyError}; + +/// Which operation was being inverted when something did not line up. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum OpKind { + Create, + Update, + Delete, +} + +impl std::fmt::Display for OpKind { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let s = match self { + OpKind::Create => "create", + OpKind::Update => "update", + OpKind::Delete => "delete", + }; + f.write_str(s) + } +} + +/// Why a node could not be read as an MST node. +#[derive(Debug, thiserror::Error)] +pub enum NodeFault { + #[error("entry claims a {claimed}-byte shared prefix, previous key is {available} bytes")] + PrefixOverrun { claimed: usize, available: usize }, + #[error("key is {len} bytes, longer than any legal record path")] + KeyTooLong { len: usize }, + #[error("node has no entries")] + Empty, +} + +/// Errors from [`crate::invert_ops`] and [`crate::Tree`]. +/// +/// The three interesting cases to tell apart operationally are +/// [`ProofIncomplete`](Self::ProofIncomplete) (the producer sent us too few +/// blocks — their bug), [`OpMismatch`](Self::OpMismatch) (the commit's claims +/// do not match its own tree — a fork, or a broken producer), and the +/// structural faults (garbage, or a format we do not speak). +#[derive(Debug, thiserror::Error)] +pub enum InvertError { + /// The commit's blocks do not cover this operation. + #[error("proof does not cover {key}: missing block {missing}")] + ProofIncomplete { missing: Cid, key: Key }, + + /// A block referenced by the tree is absent, with no key to blame it on. + #[error("proof is missing block {missing}")] + MissingBlock { missing: Cid }, + + /// The tree does not hold what the operation says it should. + #[error("{kind} op on {key} does not match the tree: expected {expected:?}, found {found:?}")] + OpMismatch { + key: Key, + kind: OpKind, + expected: Option, + found: Option, + }, + + /// A node decoded, but is not a well-formed MST node. `cid` is absent for + /// a node we built mid-inversion and have not encoded yet. + #[error("malformed node {cid:?}: {detail}")] + MalformedNode { + cid: Option, + detail: NodeFault, + }, + + /// A node did not decode as DAG-CBOR in the MST node schema. + #[error("could not decode node {cid}: {detail}")] + Decode { cid: Cid, detail: String }, + + /// Re-encoding a node failed. Should not happen for a tree we decoded. + #[error("could not encode node: {detail}")] + Encode { detail: String }, + + /// The tree is deeper than sha2-256 can place a key, so it is not a tree + /// any honest producer built. Bounds recursion on hostile input. + #[error("tree nests deeper than the {limit} layers sha2-256 allows")] + TooDeep { limit: u8 }, + + /// An operation names a key that is not a legal MST key. + #[error("invalid key: {0}")] + InvalidKey(#[from] KeyError), +} diff --git a/hubble-commit/src/key.rs b/hubble-commit/src/key.rs new file mode 100644 index 0000000..79db938 --- /dev/null +++ b/hubble-commit/src/key.rs @@ -0,0 +1,265 @@ +//! MST keys: the `collection/rkey` paths that records live at. + +use std::fmt; + +use sha2::{Digest, Sha256}; + +/// Deepest layer any key can reach. +/// +/// A key's layer is half its sha2-256 leading zero bits, and sha2-256 produces +/// 256 of them, so nothing can hash deeper than this. Used as the bound on how +/// far tree traversals are allowed to recurse. +pub const MAX_LAYER: u8 = 128; + +/// Longest record key (the part after the slash), per +/// [draft-holmgren-at-repository-02 §3.1][spec]: "Length between 1 and 512 +/// characters (inclusive)". +/// +/// [spec]: https://www.ietf.org/archive/id/draft-holmgren-at-repository-02.html#name-record-paths +pub const MAX_RKEY_LEN: usize = 512; + +/// Longest collection name, which is an NSID: "can have a maximum total length +/// of 317 characters". +pub const MAX_COLLECTION_LEN: usize = 317; + +/// Longest legal record path, and so the longest legal MST key: a collection, +/// a slash, and a record key. +pub const MAX_KEY_LEN: usize = MAX_COLLECTION_LEN + 1 + MAX_RKEY_LEN; + +#[derive(Debug, thiserror::Error)] +pub enum KeyError { + #[error("empty key")] + Empty, + #[error("key {key:?} is not of the form `collection/rkey`")] + NotTwoParts { key: String }, + #[error("collection is {len} characters, over the {MAX_COLLECTION_LEN} limit")] + CollectionTooLong { len: usize }, + #[error("record key is {len} characters, over the {MAX_RKEY_LEN} limit")] + RkeyTooLong { len: usize }, + #[error("collection {collection:?} has a character outside the NSID charset")] + BadCollection { collection: String }, + #[error("record key {rkey:?} has a character outside the record key charset")] + BadRkey { rkey: String }, + #[error("record key {rkey:?} is reserved")] + ReservedRkey { rkey: String }, +} + +/// A validated MST key. +/// +/// Keys are compared as bytes, which is what the tree's ordering is defined +/// over. The charset is ASCII-only, so byte order and `str` order agree. +#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct Key(Box<[u8]>); + +impl Key { + /// Validate `key` as a record path. + /// + /// Checks the shape, charsets and lengths the repository spec states for + /// paths. It does not fully validate the collection as an NSID — segment + /// counts and the leading-digit rule are the caller's business, and + /// hubble-sync has NSID types that do it properly. + pub fn new(key: &str) -> Result { + if key.is_empty() { + return Err(KeyError::Empty); + } + let too_many_parts = |()| KeyError::NotTwoParts { + key: key.to_string(), + }; + let mut parts = key.split('/'); + let (Some(collection), Some(rkey), None) = (parts.next(), parts.next(), parts.next()) + else { + return Err(too_many_parts(())); + }; + if collection.is_empty() || rkey.is_empty() { + return Err(too_many_parts(())); + } + + if collection.len() > MAX_COLLECTION_LEN { + return Err(KeyError::CollectionTooLong { + len: collection.len(), + }); + } + if !collection + .bytes() + .all(|b| b.is_ascii_alphanumeric() || matches!(b, b'.' | b'-')) + { + return Err(KeyError::BadCollection { + collection: collection.to_string(), + }); + } + + if rkey.len() > MAX_RKEY_LEN { + return Err(KeyError::RkeyTooLong { len: rkey.len() }); + } + if !rkey + .bytes() + .all(|b| b.is_ascii_alphanumeric() || matches!(b, b'.' | b'-' | b'_' | b':' | b'~')) + { + return Err(KeyError::BadRkey { + rkey: rkey.to_string(), + }); + } + if matches!(rkey, "." | "..") { + return Err(KeyError::ReservedRkey { + rkey: rkey.to_string(), + }); + } + + Ok(Self(key.as_bytes().into())) + } + + pub fn as_bytes(&self) -> &[u8] { + &self.0 + } + + /// The tree layer this key belongs at. + pub fn layer(&self) -> u8 { + layer_of(&self.0) + } +} + +impl fmt::Debug for Key { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + // keys are ASCII by construction, but Debug must not panic on a Key + // built from tree bytes we did not validate + write!(f, "{:?}", String::from_utf8_lossy(&self.0)) + } +} + +impl fmt::Display for Key { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", String::from_utf8_lossy(&self.0)) + } +} + +/// The layer a key belongs at: half the leading zero bits of its sha2-256 hash. +/// +/// Counting two bits at a time gives an average fanout of 4. The layer is a +/// property of the key alone, never of the tree it sits in. +pub fn layer_of(key: &[u8]) -> u8 { + let hash = Sha256::digest(key); + let mut zeros: u32 = 0; + for byte in hash { + if byte == 0 { + zeros += 8; + } else { + zeros += byte.leading_zeros(); + break; + } + } + // 256 leading zeros would give 128, which fits; nothing can exceed it + (zeros / 2) as u8 +} + +/// Length of the longest byte prefix `a` and `b` share. +pub fn shared_prefix_len(a: &[u8], b: &[u8]) -> usize { + a.iter().zip(b.iter()).take_while(|(x, y)| x == y).count() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn validates() { + assert!(Key::new("app.bsky.feed.post/3lrbpi5ot35kpjb").is_ok()); + assert!(matches!(Key::new(""), Err(KeyError::Empty))); + assert!(matches!( + Key::new("no-slash"), + Err(KeyError::NotTwoParts { .. }) + )); + assert!(matches!( + Key::new("a/b/c"), + Err(KeyError::NotTwoParts { .. }) + )); + assert!(matches!(Key::new("a/"), Err(KeyError::NotTwoParts { .. }))); + assert!(matches!(Key::new("/b"), Err(KeyError::NotTwoParts { .. }))); + assert!(matches!( + Key::new("app.bsky.feed.post/what a key"), + Err(KeyError::BadRkey { .. }) + )); + assert!(matches!( + Key::new("app.bsky.feed.post/."), + Err(KeyError::ReservedRkey { .. }) + )); + // colons and tildes are legal in record keys but not in collections + assert!(Key::new("app.bsky.feed.post/self~1:2").is_ok()); + assert!(matches!( + Key::new("app.bsky~feed.post/abc"), + Err(KeyError::BadCollection { .. }) + )); + + // the spec's own bounds, checked at the boundary + assert!(Key::new(&format!("a.b.c/{}", "x".repeat(MAX_RKEY_LEN))).is_ok()); + assert!(matches!( + Key::new(&format!("a.b.c/{}", "x".repeat(MAX_RKEY_LEN + 1))), + Err(KeyError::RkeyTooLong { .. }) + )); + assert!(Key::new(&format!("{}/rkey", "a".repeat(MAX_COLLECTION_LEN))).is_ok()); + assert!(matches!( + Key::new(&format!("{}/rkey", "a".repeat(MAX_COLLECTION_LEN + 1))), + Err(KeyError::CollectionTooLong { .. }) + )); + } + + #[test] + fn layers_never_exceed_the_bound() { + for i in 0..2000u32 { + assert!(layer_of(format!("a/{i}").as_bytes()) <= MAX_LAYER); + } + } + + /// Vectors from bluesky-social/atproto-interop-tests. + #[test] + fn interop_key_heights() { + #[derive(serde::Deserialize)] + struct Case { + key: String, + height: u8, + } + let json = include_str!("../tests/fixtures/atproto-interop/key_heights.json"); + let cases: Vec = serde_json::from_str(json).expect("fixtures parse"); + assert!(!cases.is_empty()); + for case in cases { + assert_eq!( + layer_of(case.key.as_bytes()), + case.height, + "layer of {:?}", + case.key + ); + } + } + + /// Vectors from bluesky-social/atproto-interop-tests. + #[test] + fn interop_common_prefix() { + #[derive(serde::Deserialize)] + struct Case { + left: String, + right: String, + len: usize, + } + let json = include_str!("../tests/fixtures/atproto-interop/common_prefix.json"); + let cases: Vec = serde_json::from_str(json).expect("fixtures parse"); + assert!(!cases.is_empty()); + for case in cases { + assert_eq!( + shared_prefix_len(case.left.as_bytes(), case.right.as_bytes()), + case.len, + "prefix of {:?} and {:?}", + case.left, + case.right + ); + } + } + + #[test] + fn layer_distribution_matches_fanout_4() { + // ~3/4 of keys should land at layer 0 + let at_zero = (0..10_000u32) + .filter(|i| layer_of(format!("a/{i:08}").as_bytes()) == 0) + .count(); + let share = at_zero as f64 / 10_000.0; + assert!(share > 0.70 && share < 0.80, "got {share}"); + } +} diff --git a/hubble-commit/src/lib.rs b/hubble-commit/src/lib.rs new file mode 100644 index 0000000..fb2f4c8 --- /dev/null +++ b/hubble-commit/src/lib.rs @@ -0,0 +1,98 @@ +//! atproto commit operations. +//! +//! Today this is operation inversion: step 3 of sync 1.1 commit validation, +//! which takes the tree a commit claims to have produced, undoes the +//! operations it claims to have applied, and recovers the root the repository +//! must have had beforehand. Matching that against the commit's `prevData` +//! proves the commit is internally consistent, without needing any state of +//! our own. +//! +//! ```no_run +//! # use std::collections::HashMap; +//! # use hubble_commit::{Cid, Key, Op, OpOrder, invert_ops}; +//! # fn example(blocks: HashMap>, root: Cid, claimed_prev: Cid) +//! # -> Result<(), Box> { +//! let ops = vec![Op::Create { +//! key: Key::new("app.bsky.feed.post/3lrbpi5ot35kpjb")?, +//! cid: root, +//! }]; +//! let prev = invert_ops(&blocks, root, &ops, OpOrder::AsGiven)?; +//! assert_eq!(prev, claimed_prev); +//! # Ok(()) +//! # } +//! ``` +//! +//! The whole crate is synchronous. A commit's CAR is capped at 2 MB, so the +//! tree involved is a handful of nodes and the work takes a few microseconds — +//! less than the signature check that follows it. + +mod blocks; +pub mod car; +mod error; +mod key; +mod node; +mod op; +mod tree; + +// VENDORED from dasl until it releases the `Hash` derive we need to key +// blocks by CID. Re-exported by hubble-sync as `DaslCid`. +pub mod cid; + +pub use blocks::Blocks; +pub use car::{CarError, CarReader}; +pub use cid::{Cid, CidParseError}; +pub use error::{InvertError, NodeFault, OpKind}; +pub use key::{ + Key, KeyError, MAX_COLLECTION_LEN, MAX_KEY_LEN, MAX_LAYER, MAX_RKEY_LEN, layer_of, + shared_prefix_len, +}; +pub use op::Op; +pub use tree::Tree; + +/// How to order operations when undoing more than one. +/// +/// The recovered root is the same either way — an MST is determined by its +/// key/value set. What differs is which blocks the tree has to contain to get +/// there, and therefore which producers we accept. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum OpOrder { + /// Undo in the order given, reordering nothing. + /// + /// Needs whatever blocks that order needs, which in general includes the + /// nodes for keys adjacent to mutated ones — the ones [sync §4.1.2][spec] + /// obliges producers to send. A producer that omits them fails here rather + /// than passing quietly. + /// + /// [spec]: https://www.ietf.org/archive/id/draft-holmgren-at-synchronization-00.html + AsGiven, + + /// Undo highest key first, which needs the fewest blocks of any order. + /// + /// Tolerates a producer that sends only the blocks inversion strictly + /// needs rather than the ones the spec requires. Across mst-test-suite's + /// 16 384 exhaustive cases this order never asks for a block outside + /// `inductive_proof_nodes`, where [`AsGiven`](Self::AsGiven) asks for one + /// in 447 of them — every one of those a node the spec requires anyway. + /// + /// Neither order *checks* §4.1.2; they only differ in whether they happen + /// to notice. Enforcing it is a separate job. + HighestKeyFirst, +} + +/// Undo `ops` against the tree at `root`, returning the root it had before. +pub fn invert_ops( + blocks: &impl Blocks, + root: Cid, + ops: &[Op], + order: OpOrder, +) -> Result { + let mut tree = Tree::load(blocks, root)?; + let mut ordered: Vec<&Op> = ops.iter().collect(); + if order == OpOrder::HighestKeyFirst { + ordered.sort_unstable_by(|a, b| b.key().cmp(a.key())); + } + for op in ordered { + tree.invert(op)?; + } + tree.root() +} diff --git a/hubble-commit/src/node.rs b/hubble-commit/src/node.rs new file mode 100644 index 0000000..20ea2a8 --- /dev/null +++ b/hubble-commit/src/node.rs @@ -0,0 +1,55 @@ +//! The DAG-CBOR wire schema for MST nodes. +//! +//! ```text +//! { +//! l: Cid | null // subtree left of the first entry +//! e: [ +//! { p: uint // bytes shared with the previous key in this node +//! , k: bytes // the rest of this key +//! , v: Cid // the record this key points at +//! , t: Cid | null // subtree between this key and the next +//! } +//! ... +//! ] +//! } +//! ``` +//! +//! `l` and `t` are nullable, not optional: they are always present in the +//! encoded map, as CBOR null when there is no subtree. Omitting them would +//! change the node's bytes and therefore its CID, so decoding is strict about +//! it — a producer that omits them is not speaking the same format. +//! +//! Prefix compression resets per node: the first entry has `p = 0` and carries +//! its whole key. + +use serde::{Deserialize, Serialize}; + +use crate::cid::{Cid, Codec}; + +/// Fields are declared in canonical DAG-CBOR map order (`k`, `p`, `t`, `v`), +/// so the encoding is canonical whether or not the codec sorts for us. +#[derive(Debug, Serialize, Deserialize)] +pub(crate) struct EntryData { + #[serde(rename = "k", with = "serde_bytes")] + pub key_suffix: Vec, + #[serde(rename = "p")] + pub prefix_len: usize, + #[serde(rename = "t")] + pub right: Option, + #[serde(rename = "v")] + pub value: Cid, +} + +/// Canonical map order again: `e` before `l`. +#[derive(Debug, Serialize, Deserialize)] +pub(crate) struct NodeData { + #[serde(rename = "e")] + pub entries: Vec, + #[serde(rename = "l")] + pub left: Option, +} + +/// The CID of a block of DAG-CBOR, which is how every MST node is addressed. +pub(crate) fn cid_for(block: &[u8]) -> Cid { + Cid::digest_sha2(Codec::Drisl, block) +} diff --git a/hubble-commit/src/op.rs b/hubble-commit/src/op.rs new file mode 100644 index 0000000..6d5386d --- /dev/null +++ b/hubble-commit/src/op.rs @@ -0,0 +1,35 @@ +//! The operations a commit claims it applied. + +use crate::cid::Cid; +use crate::error::OpKind; +use crate::key::Key; + +/// One record operation from a firehose commit, as inversion needs it. +/// +/// Every variant carries the previous value, because sync 1.1 requires +/// producers to send it: without it an operation cannot be inverted at all. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Op { + /// A record appeared at `key` holding `cid`. + Create { key: Key, cid: Cid }, + /// The record at `key` changed from `prev` to `cid`. + Update { key: Key, cid: Cid, prev: Cid }, + /// The record at `key`, which held `prev`, went away. + Delete { key: Key, prev: Cid }, +} + +impl Op { + pub fn key(&self) -> &Key { + match self { + Op::Create { key, .. } | Op::Update { key, .. } | Op::Delete { key, .. } => key, + } + } + + pub fn kind(&self) -> OpKind { + match self { + Op::Create { .. } => OpKind::Create, + Op::Update { .. } => OpKind::Update, + Op::Delete { .. } => OpKind::Delete, + } + } +} diff --git a/hubble-commit/src/tree.rs b/hubble-commit/src/tree.rs new file mode 100644 index 0000000..053b716 --- /dev/null +++ b/hubble-commit/src/tree.rs @@ -0,0 +1,1226 @@ +//! The partial MST a commit's proof describes, and the operations over it. +//! +//! synchronous and single-threaded, since only 200 ops are allowed, and the +//! CAR (including records) can only be up to 2MB, so it should be fast enough +//! to call from an async context. + +use std::cmp::Ordering; +use std::mem; + +use crate::blocks::Blocks; +use crate::cid::Cid; +use crate::error::{InvertError, NodeFault}; +use crate::key::{MAX_KEY_LEN, MAX_LAYER, layer_of, shared_prefix_len}; +use crate::node::{EntryData, NodeData, cid_for}; +use crate::op::Op; +use crate::key::Key; + +/// A node decoded from a block with no leaf to derive its layer from — only +/// reachable for an empty tree, or a node no honest producer would emit. +/// Resolved from the parent's layer during load. +const UNKNOWN_LAYER: i16 = -1; + +/// Passed to `insert`/`remove` to mean "work the layer out from the key". +/// Distinguished from a real layer so the root can tell it is the root. +const FROM_KEY: i16 = -1; + +/// One slot in a node: either a record, or a pointer to the subtree covering +/// the keys between this slot's neighbours. +#[derive(Debug)] +enum Entry { + Leaf { key: Box<[u8]>, value: Cid }, + Child { cid: Option, node: Option }, +} + +impl Entry { + fn is_child(&self) -> bool { + matches!(self, Entry::Child { .. }) + } + + fn child(&self) -> Result<&Node, InvertError> { + match self { + Entry::Child { + node: Some(node), .. + } => Ok(node), + Entry::Child { node: None, cid } => Err(missing(*cid)), + Entry::Leaf { .. } => Err(InvertError::Encode { + detail: "expected a subtree pointer, found a leaf".into(), + }), + } + } + + fn child_mut(&mut self) -> Result<&mut Node, InvertError> { + match self { + Entry::Child { + node: Some(node), .. + } => Ok(node), + Entry::Child { node: None, cid } => Err(missing(*cid)), + Entry::Leaf { .. } => Err(InvertError::Encode { + detail: "expected a subtree pointer, found a leaf".into(), + }), + } + } + + fn into_child(self) -> Result { + match self { + Entry::Child { + node: Some(node), .. + } => Ok(node), + Entry::Child { node: None, cid } => Err(missing(cid)), + Entry::Leaf { .. } => Err(InvertError::Encode { + detail: "expected a subtree pointer, found a leaf".into(), + }), + } + } +} + +/// A block we needed and did not have. Upgraded to +/// [`InvertError::ProofIncomplete`] with the offending key at the API edge, +/// where the key is known. +fn missing(cid: Option) -> InvertError { + match cid { + Some(missing) => InvertError::MissingBlock { missing }, + // a pointer with neither a CID nor a node is one we built ourselves + // and have not re-encoded yet, which `root()` always does first + None => InvertError::Encode { + detail: "subtree pointer with neither a CID nor a node".into(), + }, + } +} + +#[derive(Debug, Default)] +struct Node { + /// Slots in key order, alternating between subtrees and leaves. + entries: Vec, + /// Layer this node sits at, counting up from the leaves. + layer: i16, + /// Entries changed since this node was decoded, so `cid` is stale. + dirty: bool, + cid: Option, + /// We know this node's CID but never had its block. Fine to carry, an + /// error to look inside. + stub: bool, +} + +/// The tree a commit's proof describes, ready to have its operations undone. +#[derive(Debug)] +pub struct Tree { + root: Node, +} + +impl Tree { + /// Decode the tree reachable from `root`. + /// + /// Blocks that are absent become stubs rather than errors: a commit only + /// carries a covering proof, so most of a repository is legitimately + /// missing. Touching a stub is what fails, and only if an operation needs + /// it. + pub fn load(blocks: &impl Blocks, root: Cid) -> Result { + // even the root may be absent: a commit that changed nothing needs to + // send nothing, and its previous root is the one it already claims + let Some(mut node) = Node::load(blocks, root, 0)? else { + return Ok(Self { + root: Node { + layer: UNKNOWN_LAYER, + cid: Some(root), + stub: true, + ..Default::default() + }, + }); + }; + node.resolve_layers(); + Ok(Self { root: node }) + } + + /// Undo one operation. + /// + /// Fails with [`InvertError::OpMismatch`] if the tree does not hold what + /// the operation says it should, which means the commit is not internally + /// consistent. + /// + /// Undoing several operations is order-sensitive in what blocks it needs, + /// though not in what root it produces — see [`crate::invert_ops`], which + /// orders them for you. + pub fn invert(&mut self, op: &Op) -> Result<(), InvertError> { + let key = op.key(); + let found = match op { + Op::Create { key, .. } => self.root.remove(key.as_bytes(), FROM_KEY), + Op::Update { key, prev, .. } | Op::Delete { key, prev } => { + self.root.insert(key.as_bytes(), *prev, FROM_KEY) + } + } + .map_err(|err| with_key(err, key))?; + + let matched = match op { + // the created record must have been there, holding what it claims + Op::Create { cid, .. } => found == Some(*cid), + // the updated record must have been there, holding the new value + Op::Update { cid, .. } => found == Some(*cid), + // the deleted record must not have been there + Op::Delete { .. } => found.is_none(), + }; + if matched { + return Ok(()); + } + + let expected = match op { + Op::Create { cid, .. } | Op::Update { cid, .. } => Some(*cid), + Op::Delete { .. } => None, + }; + Err(InvertError::OpMismatch { + key: key.clone(), + kind: op.kind(), + expected, + found, + }) + } + + /// Re-encode every changed node bottom-up and return the resulting root. + pub fn root(&mut self) -> Result { + if self.root.stub + && !self.root.dirty + && let Some(cid) = self.root.cid + { + return Ok(cid); + } + self.root.rehash() + } +} + +fn with_key(err: InvertError, key: &Key) -> InvertError { + match err { + InvertError::MissingBlock { missing } => InvertError::ProofIncomplete { + missing, + key: key.clone(), + }, + other => other, + } +} + +impl Node { + fn load(blocks: &impl Blocks, cid: Cid, depth: u8) -> Result, InvertError> { + if depth > MAX_LAYER { + return Err(InvertError::TooDeep { limit: MAX_LAYER }); + } + let Some(block) = blocks.get(&cid) else { + return Ok(None); + }; + let data: NodeData = + dasl::drisl::from_slice(block).map_err(|e| InvertError::Decode { + cid, + detail: e.to_string(), + })?; + let mut node = decode(data, cid)?; + + for entry in &mut node.entries { + let Entry::Child { + cid: Some(cid), + node: slot, + } = entry + else { + continue; + }; + if let Some(child) = Node::load(blocks, *cid, depth + 1)? { + if node.layer == UNKNOWN_LAYER && child.layer != UNKNOWN_LAYER { + node.layer = child.layer + 1; + } + *slot = Some(child); + } + } + Ok(Some(node)) + } + + /// Give a layer to any node that had no leaf to derive one from. + fn resolve_layers(&mut self) { + if self.layer <= 0 { + return; + } + for entry in &mut self.entries { + if let Entry::Child { + node: Some(child), .. + } = entry + { + if child.layer == UNKNOWN_LAYER { + child.layer = self.layer - 1; + } + child.resolve_layers(); + } + } + } + + fn rehash(&mut self) -> Result { + if self.stub { + return Err(missing(self.cid)); + } + for entry in &mut self.entries { + if let Entry::Child { + cid, + node: Some(node), + } = entry + && (node.dirty || cid.is_none()) + { + *cid = Some(node.rehash()?); + } + } + let cid = cid_for(&encode(&self.entries)?); + self.cid = Some(cid); + self.dirty = false; + Ok(cid) + } + + /// Put `value` at `key`, returning whatever was there before. + fn insert(&mut self, key: &[u8], value: Cid, layer: i16) -> Result, InvertError> { + if self.stub { + return Err(missing(self.cid)); + } + let layer = if layer == FROM_KEY { + i16::from(layer_of(key)) + } else { + layer + }; + + if layer > self.layer { + return self.insert_above(key, value, layer); + } + if layer < self.layer { + return self.insert_below(key, value, layer); + } + + if let Some(idx) = self.find_leaf(key) { + let Entry::Leaf { value: slot, .. } = &mut self.entries[idx] else { + return Err(InvertError::Encode { + detail: "find_leaf returned a subtree pointer".into(), + }); + }; + if *slot == value { + return Ok(Some(value)); // no-op, leave the spine clean + } + let prev = mem::replace(slot, value); + self.dirty = true; + return Ok(Some(prev)); + } + + let (idx, splits) = self.find_slot(key)?; + self.dirty = true; + let leaf = Entry::Leaf { + key: key.into(), + value, + }; + if !splits { + self.entries.insert(idx, leaf); + return Ok(None); + } + + // the key lands inside the subtree at `idx`, which has to come apart + let Entry::Child { node, .. } = &mut self.entries[idx] else { + return Err(InvertError::Encode { + detail: "find_slot marked a leaf as splitting".into(), + }); + }; + let (left, right) = node.take().ok_or_else(|| missing(None))?.split(key)?; + self.entries + .splice(idx..=idx, [child_of(left), leaf, child_of(right)]); + Ok(None) + } + + /// The key belongs at a higher layer than this node: grow upwards. + fn insert_above( + &mut self, + key: &[u8], + value: Cid, + layer: i16, + ) -> Result, InvertError> { + if layer > i16::from(MAX_LAYER) { + return Err(InvertError::TooDeep { limit: MAX_LAYER }); + } + if self.entries.is_empty() { + // nothing to carry up, so this node just *is* the new layer + *self = Node { + layer, + dirty: true, + ..Default::default() + }; + } else { + let mut below = Node { + layer: self.layer + 1, + dirty: true, + ..Default::default() + }; + mem::swap(self, &mut below); + self.entries.push(child_of(below)); + } + self.insert(key, value, layer) + } + + /// The key belongs at a lower layer: descend, making a child if needed. + fn insert_below( + &mut self, + key: &[u8], + value: Cid, + layer: i16, + ) -> Result, InvertError> { + if let Some(idx) = self.find_covering_child(key) { + let child = self.entries[idx].child_mut()?; + let prev = child.insert(key, value, layer)?; + if prev != Some(value) { + self.dirty = true; + } + return Ok(prev); + } + + let (idx, splits) = self.find_slot(key)?; + if splits { + return Err(InvertError::Encode { + detail: "a key below this layer cannot split a sibling subtree".into(), + }); + } + self.dirty = true; + let mut child = Node { + layer: self.layer - 1, + dirty: true, + ..Default::default() + }; + child.insert(key, value, layer)?; + self.entries.insert(idx, child_of(child)); + Ok(None) + } + + /// Take `key` out, returning what it held. + /// + /// `layer == FROM_KEY` marks the call as being at the root, which is the + /// only place allowed to reshape the top of the tree. + fn remove(&mut self, key: &[u8], layer: i16) -> Result, InvertError> { + if self.stub { + return Err(missing(self.cid)); + } + let at_root = layer == FROM_KEY; + let layer = if at_root { + i16::from(layer_of(key)) + } else { + layer + }; + + if layer > self.layer { + return Ok(None); // the key would sit above this tree, so it is absent + } + if layer < self.layer { + return self.remove_below(key, layer); + } + + let Some(idx) = self.find_leaf(key) else { + return Ok(None); + }; + let Entry::Leaf { value: prev, .. } = self.entries[idx] else { + return Err(InvertError::Encode { + detail: "find_leaf returned a subtree pointer".into(), + }); + }; + self.dirty = true; + + // a leaf sitting between two subtrees was the only thing separating + // them, so they become one + if idx > 0 + && idx + 1 < self.entries.len() + && self.entries[idx - 1].is_child() + && self.entries[idx + 1].is_child() + { + let mut drained = self.entries.drain(idx..idx + 2); + drained.next(); + let right = drained.next().ok_or_else(|| InvertError::Encode { + detail: "drained fewer entries than the range covers".into(), + })?; + drop(drained); + self.entries[idx - 1] + .child_mut()? + .merge(right.into_child()?)?; + } else { + self.entries.remove(idx); + } + + if at_root { + self.trim(); + } + Ok(Some(prev)) + } + + fn remove_below(&mut self, key: &[u8], layer: i16) -> Result, InvertError> { + let Some(idx) = self.find_covering_child(key) else { + return Ok(None); + }; + let child = self.entries[idx].child_mut()?; + let Some(prev) = child.remove(key, layer)? else { + return Ok(None); + }; + self.dirty = true; + if child.entries.is_empty() { + self.entries.remove(idx); + } + Ok(Some(prev)) + } + + /// Restore the top of the tree to its canonical shape. + /// + /// A root that is nothing but a pointer is not a root: the node it points + /// at is. And an emptied tree has no layer at all, so it must forget the + /// one it had, or the next insert will build beneath a layer that should + /// not exist. Indigo and rsky-relay both leave that second case alone, and + /// both compute the wrong root for it. + fn trim(&mut self) { + while self.entries.len() == 1 && self.entries[0].is_child() { + let Entry::Child { cid, node } = self.entries.remove(0) else { + return; + }; + let layer = self.layer - 1; + *self = match node { + Some(child) => child, + // the proof stops here, but a bare pointer is a complete + // answer: we already know this subtree's CID + None => Node { + layer, + cid, + stub: true, + ..Default::default() + }, + }; + } + if self.entries.is_empty() { + self.layer = 0; + } + } + + /// Absorb `other`, whose keys all sort after this node's. + fn merge(&mut self, other: Node) -> Result<(), InvertError> { + let seam = self.entries.len(); + self.dirty = true; + self.cid = None; + if seam == 0 { + self.entries = other.entries; + return Ok(()); + } + self.entries.extend(other.entries); + // two subtree pointers cannot sit next to each other, so if the seam + // put them there, they merge too + if seam < self.entries.len() + && self.entries[seam - 1].is_child() + && self.entries[seam].is_child() + { + let right = self.entries.remove(seam); + self.entries[seam - 1] + .child_mut()? + .merge(right.into_child()?)?; + } + Ok(()) + } + + /// Break this node into the parts either side of `key`. + fn split(mut self, key: &[u8]) -> Result<(Node, Node), InvertError> { + if self.entries.is_empty() { + return Err(InvertError::MalformedNode { + cid: self.cid, + detail: NodeFault::Empty, + }); + } + let layer = self.layer; + let (idx, splits) = self.find_slot(key)?; + + if !splits { + if idx == 0 || idx >= self.entries.len() { + return Err(InvertError::Encode { + detail: "split point falls outside the node".into(), + }); + } + let right = self.entries.split_off(idx); + return Ok((node_of(self.entries, layer), node_of(right, layer))); + } + + // the key lands inside a subtree, so that has to split too + let mut right = self.entries.split_off(idx); + let Entry::Child { node, .. } = &mut right[0] else { + return Err(InvertError::Encode { + detail: "find_slot marked a leaf as splitting".into(), + }); + }; + let (left_node, right_node) = node.take().ok_or_else(|| missing(None))?.split(key)?; + self.entries.push(child_of(left_node)); + right[0] = child_of(right_node); + Ok((node_of(self.entries, layer), node_of(right, layer))) + } + + /// Index of the leaf holding exactly `key`. + fn find_leaf(&self, key: &[u8]) -> Option { + for (i, entry) in self.entries.iter().enumerate() { + if let Entry::Leaf { key: leaf, .. } = entry { + match leaf.as_ref().cmp(key) { + Ordering::Equal => return Some(i), + Ordering::Greater => return None, // entries are sorted + Ordering::Less => {} + } + } + } + None + } + + /// Index of the subtree whose key range covers `key`. + fn find_covering_child(&self, key: &[u8]) -> Option { + let mut found = None; + for (i, entry) in self.entries.iter().enumerate() { + match entry { + Entry::Leaf { key: leaf, .. } => { + if key <= leaf.as_ref() { + break; + } + found = None; + } + Entry::Child { .. } => found = Some(i), + } + } + found + } + + /// Where a new entry for `key` goes, and whether it lands inside the + /// subtree already sitting there. + fn find_slot(&self, key: &[u8]) -> Result<(usize, bool), InvertError> { + if self.stub { + return Err(missing(self.cid)); + } + for (idx, entry) in self.entries.iter().enumerate() { + match entry { + Entry::Leaf { key: leaf, .. } => { + if key < leaf.as_ref() { + return Ok((idx, false)); + } + } + Entry::Child { .. } => { + // a following leaf below `key` rules this subtree out + // without having to look inside it + if let Some(Entry::Leaf { key: next, .. }) = self.entries.get(idx + 1) + && key > next.as_ref() + { + continue; + } + match entry.child()?.covers(key)? { + Ordering::Less => return Ok((idx, false)), + Ordering::Equal => return Ok((idx, true)), + Ordering::Greater => {} + } + } + } + } + Ok((self.entries.len(), false)) + } + + /// Whether `key` falls below, inside, or above this subtree's key range. + fn covers(&self, key: &[u8]) -> Result { + if self.stub { + return Err(missing(self.cid)); + } + let (Some(first), Some(last)) = (self.entries.first(), self.entries.last()) else { + return Err(InvertError::MalformedNode { + cid: self.cid, + detail: NodeFault::Empty, + }); + }; + if let Entry::Leaf { key: leaf, .. } = first + && key < leaf.as_ref() + { + return Ok(Ordering::Less); + } + if let Entry::Leaf { key: leaf, .. } = last + && key > leaf.as_ref() + { + return Ok(Ordering::Greater); + } + for (idx, entry) in self.entries.iter().enumerate() { + match entry { + Entry::Leaf { key: leaf, .. } => { + if key < leaf.as_ref() { + return Ok(Ordering::Equal); + } + } + Entry::Child { .. } => { + if let Some(Entry::Leaf { key: next, .. }) = self.entries.get(idx + 1) + && key > next.as_ref() + { + continue; + } + let last_slot = idx == self.entries.len() - 1; + return Ok(match entry.child()?.covers(key)? { + Ordering::Less if idx == 0 => Ordering::Less, + Ordering::Greater if last_slot => Ordering::Greater, + _ => Ordering::Equal, + }); + } + } + } + Ok(Ordering::Equal) + } +} + +fn child_of(node: Node) -> Entry { + Entry::Child { + cid: None, + node: Some(node), + } +} + +fn node_of(entries: Vec, layer: i16) -> Node { + Node { + entries, + layer, + dirty: true, + ..Default::default() + } +} + +/// Rebuild a node's entries from its wire form, undoing prefix compression. +fn decode(data: NodeData, cid: Cid) -> Result { + let fault = |detail| InvertError::MalformedNode { + cid: Some(cid), + detail, + }; + + let mut layer = UNKNOWN_LAYER; + let mut entries = Vec::with_capacity(data.entries.len() * 2 + 1); + if let Some(left) = data.left { + entries.push(Entry::Child { + cid: Some(left), + node: None, + }); + } + + // one reusable buffer for the previous key, since each entry's suffix is + // relative to it + let mut prev: Vec = Vec::new(); + for entry in &data.entries { + if entry.prefix_len > prev.len() { + return Err(fault(NodeFault::PrefixOverrun { + claimed: entry.prefix_len, + available: prev.len(), + })); + } + // this bound is a memory defence as much as a validity check: each + // key may extend the previous one, so without it a single crafted + // block can expand to quadratic size on decode + let len = entry.prefix_len + entry.key_suffix.len(); + if len > MAX_KEY_LEN { + return Err(fault(NodeFault::KeyTooLong { len })); + } + let mut key = Vec::with_capacity(len); + key.extend_from_slice(&prev[..entry.prefix_len]); + key.extend_from_slice(&entry.key_suffix); + if layer == UNKNOWN_LAYER { + layer = i16::from(layer_of(&key)); + } + + prev.clear(); + prev.extend_from_slice(&key); + entries.push(Entry::Leaf { + key: key.into(), + value: entry.value, + }); + + if let Some(right) = entry.right { + entries.push(Entry::Child { + cid: Some(right), + node: None, + }); + } + } + + Ok(Node { + entries, + layer, + dirty: false, + cid: Some(cid), + stub: false, + }) +} + +/// Serialise a node back to canonical DAG-CBOR. +fn encode(entries: &[Entry]) -> Result, InvertError> { + let mut data = NodeData { + entries: Vec::with_capacity(entries.len()), + left: None, + }; + let mut prev: &[u8] = &[]; + for (idx, entry) in entries.iter().enumerate() { + match entry { + Entry::Leaf { key, value } => { + let prefix_len = shared_prefix_len(key, prev); + data.entries.push(EntryData { + key_suffix: key[prefix_len..].to_vec(), + prefix_len, + right: None, + value: *value, + }); + prev = key; + } + Entry::Child { cid, .. } => { + if idx == 0 { + data.left = *cid; + continue; + } + let Some(last) = data.entries.last_mut() else { + return Err(InvertError::Encode { + detail: "subtree pointer with no leaf before it".into(), + }); + }; + last.right = *cid; + } + } + } + dasl::drisl::to_vec(&data).map_err(|e| InvertError::Encode { + detail: e.to_string(), + }) +} + +/// Building trees forwards, which only the tests need: inversion is handed a +/// tree and takes it apart. Kept private so the crate's surface stays honest +/// about what it is for. +#[cfg(test)] +impl Tree { + fn empty() -> Self { + Self { + root: Node { + layer: 0, + dirty: true, + ..Default::default() + }, + } + } + + fn insert(&mut self, key: &str, value: Cid) -> Result, InvertError> { + self.root.insert(key.as_bytes(), value, FROM_KEY) + } + + fn remove(&mut self, key: &str) -> Result, InvertError> { + self.root.remove(key.as_bytes(), FROM_KEY) + } + + /// Every node in the tree, encoded, as inversion would need to read them. + fn blocks(&mut self) -> Result>, InvertError> { + self.root()?; + let mut blocks = std::collections::HashMap::new(); + collect(&self.root, &mut blocks)?; + Ok(blocks) + } +} + +#[cfg(test)] +fn collect( + node: &Node, + into: &mut std::collections::HashMap>, +) -> Result<(), InvertError> { + if node.stub { + return Ok(()); + } + let block = encode(&node.entries)?; + into.insert(cid_for(&block), block); + for entry in &node.entries { + if let Entry::Child { + node: Some(child), .. + } = entry + { + collect(child, into)?; + } + } + Ok(()) +} + +#[cfg(test)] +mod tests { + use std::collections::HashMap; + + use serde::Deserialize; + + use super::*; + use crate::cid::Codec; + use crate::{OpOrder, invert_ops}; + + fn cid(seed: &str) -> Cid { + Cid::digest_sha2(Codec::Drisl, seed.as_bytes()) + } + + fn parse(s: &str) -> Cid { + s.parse().expect("fixture cid parses") + } + + /// Commit-proof vectors from bluesky-social/atproto-interop-tests. Each + /// case names a structural situation someone thought worth pinning down — + /// "two deep leafless split", "merge and split in multi-op commit". + #[derive(Deserialize)] + #[serde(rename_all = "camelCase")] + struct CommitProof { + comment: String, + leaf_value: String, + keys: Vec, + adds: Vec, + dels: Vec, + root_before_commit: String, + root_after_commit: String, + blocks_in_proof: Vec, + } + + #[test] + fn interop_commit_proofs() { + let json = include_str!("../tests/fixtures/atproto-interop/commit-proof-fixtures.json"); + let cases: Vec = serde_json::from_str(json).expect("fixtures parse"); + assert!(!cases.is_empty()); + + for case in &cases { + let leaf = parse(&case.leaf_value); + let context = &case.comment; + + let mut before = Tree::empty(); + for key in &case.keys { + before.insert(key, leaf).expect(context); + } + assert_eq!( + before.root().expect(context), + parse(&case.root_before_commit), + "{context}: tree built from keys" + ); + + let mut after = Tree::empty(); + for key in &case.keys { + after.insert(key, leaf).expect(context); + } + let mut ops = Vec::new(); + for key in &case.dels { + after.remove(key).expect(context); + ops.push(Op::Delete { + key: Key::new(key).expect(context), + prev: leaf, + }); + } + for key in &case.adds { + after.insert(key, leaf).expect(context); + ops.push(Op::Create { + key: Key::new(key).expect(context), + cid: leaf, + }); + } + let root_after = after.root().expect(context); + assert_eq!( + root_after, + parse(&case.root_after_commit), + "{context}: tree after the commit" + ); + + // inverting from the whole tree must recover the previous root + let all = after.blocks().expect(context); + assert_eq!( + invert_ops(&all, root_after, &ops, OpOrder::AsGiven).expect(context), + parse(&case.root_before_commit), + "{context}: inverted from the full tree" + ); + + // and from nothing but the blocks the fixture says a producer + // sends, which is the claim that actually matters + let in_proof: HashMap> = case + .blocks_in_proof + .iter() + .map(|s| parse(s)) + .filter_map(|cid| all.get(&cid).map(|block| (cid, block.clone()))) + .collect(); + assert_eq!( + invert_ops(&in_proof, root_after, &ops, OpOrder::AsGiven).expect(context), + parse(&case.root_before_commit), + "{context}: inverted from blocksInProof alone" + ); + } + } + + /// Emptying the top layer and then inserting lower leaves a stale layer + /// behind unless the root is trimmed. Indigo and rsky-relay both get this + /// wrong; it needs a tree whose top layer holds exactly one key. + #[test] + fn emptying_the_top_layer_forgets_its_height() { + // sha2 puts these at layers 0 and 1 respectively + let low = "app.bsky.feed.post/3lrbpi5ot35kpjb"; + let high = "app.bsky.feed.post/3lmq4wfloltgcdw"; + assert_eq!(layer_of(low.as_bytes()), 0); + assert_eq!(layer_of(high.as_bytes()), 1); + + let (old, new) = (cid("old"), cid("new")); + + let mut before = Tree::empty(); + before.insert(low, old).expect("insert low"); + let root_before = before.root().expect("root before"); + + let mut after = Tree::empty(); + after.insert(high, new).expect("insert high"); + let root_after = after.root().expect("root after"); + + let mut blocks = after.blocks().expect("after blocks"); + blocks.extend(before.blocks().expect("before blocks")); + + let ops = vec![ + Op::Create { + key: Key::new(high).expect("key"), + cid: new, + }, + Op::Delete { + key: Key::new(low).expect("key"), + prev: old, + }, + ]; + assert_eq!( + invert_ops(&blocks, root_after, &ops, OpOrder::AsGiven).expect("invert"), + root_before + ); + } + + #[test] + fn round_trips_an_emptied_repo() { + let key = "app.bsky.feed.post/3lrbpi5ot35kpjb"; + let value = cid("only"); + + let mut before = Tree::empty(); + before.insert(key, value).expect("insert"); + let root_before = before.root().expect("root"); + + let mut after = Tree::empty(); + let root_after = after.root().expect("empty root"); + + let mut blocks = after.blocks().expect("after blocks"); + blocks.extend(before.blocks().expect("before blocks")); + + let ops = vec![Op::Delete { + key: Key::new(key).expect("key"), + prev: value, + }]; + assert_eq!( + invert_ops(&blocks, root_after, &ops, OpOrder::AsGiven).expect("invert"), + root_before + ); + } + + #[test] + fn a_commit_that_changed_nothing_needs_no_blocks() { + let root = cid("some root"); + let blocks: HashMap> = HashMap::new(); + assert_eq!(invert_ops(&blocks, root, &[], OpOrder::AsGiven).expect("invert"), root); + } + + #[test] + fn reports_the_block_a_proof_is_missing() { + let key = "app.bsky.feed.post/3lrbpi5ot35kpjb"; + let value = cid("only"); + let mut tree = Tree::empty(); + tree.insert(key, value).expect("insert"); + let root = tree.root().expect("root"); + + let blocks: HashMap> = HashMap::new(); + let ops = vec![Op::Create { + key: Key::new(key).expect("key"), + cid: value, + }]; + match invert_ops(&blocks, root, &ops, OpOrder::AsGiven) { + Err(InvertError::ProofIncomplete { missing, key: k }) => { + assert_eq!(missing, root); + assert_eq!(k.as_bytes(), key.as_bytes()); + } + other => panic!("expected ProofIncomplete, got {other:?}"), + } + } + + #[test] + fn reports_an_op_the_tree_disagrees_with() { + let key = "app.bsky.feed.post/3lrbpi5ot35kpjb"; + let mut tree = Tree::empty(); + tree.insert(key, cid("actual")).expect("insert"); + let root = tree.root().expect("root"); + let blocks = tree.blocks().expect("blocks"); + + let ops = vec![Op::Create { + key: Key::new(key).expect("key"), + cid: cid("claimed"), + }]; + match invert_ops(&blocks, root, &ops, OpOrder::AsGiven) { + Err(InvertError::OpMismatch { + kind, + expected, + found, + .. + }) => { + assert_eq!(kind, crate::OpKind::Create); + assert_eq!(expected, Some(cid("claimed"))); + assert_eq!(found, Some(cid("actual"))); + } + other => panic!("expected OpMismatch, got {other:?}"), + } + } + + /// Deterministic xorshift, so a failure is reproducible from its seed + /// without pulling in a dependency the crate does not otherwise need. + struct Rng(u64); + + impl Rng { + fn next(&mut self) -> u64 { + self.0 ^= self.0 << 13; + self.0 ^= self.0 >> 7; + self.0 ^= self.0 << 17; + self.0 + } + + fn below(&mut self, n: usize) -> usize { + (self.next() % n as u64) as usize + } + } + + /// mst-test-suite enumerates creates and deletes exhaustively but never + /// updates, so those need covering here. Random repos, random mixed + /// commits, invert back to where we started. + #[test] + fn round_trips_generated_commits() { + for seed in 1..300u64 { + let mut rng = Rng(seed); + let size = [0usize, 1, 2, 3, 17, 250][seed as usize % 6]; + + let mut keys: Vec = (0..size) + .map(|_| format!("app.bsky.feed.post/3l{:013}", rng.next() % 1_000_000_000)) + .collect(); + keys.sort(); + keys.dedup(); + + let value = |n: u64| cid(&format!("record {n}")); + let mut state: Vec<(String, Cid)> = + keys.iter().cloned().map(|k| (k, value(rng.next()))).collect(); + + let mut before = Tree::empty(); + for (key, cid) in &state { + before.insert(key, *cid).expect("insert"); + } + let root_before = before.root().expect("root"); + + // a commit of 1..=6 ops, each on a distinct key + let mut ops = Vec::new(); + let mut touched: Vec = Vec::new(); + for _ in 0..1 + rng.below(6) { + let choice = if state.is_empty() { 0 } else { rng.below(3) }; + match choice { + 0 => { + let key = format!("app.bsky.feed.post/3l{:013}", rng.next() % 1_000_000_000); + if touched.contains(&key) || state.iter().any(|(k, _)| *k == key) { + continue; + } + let cid = value(rng.next()); + touched.push(key.clone()); + state.push((key.clone(), cid)); + ops.push(Op::Create { + key: Key::new(&key).expect("key"), + cid, + }); + } + 1 => { + let idx = rng.below(state.len()); + let (key, prev) = state[idx].clone(); + if touched.contains(&key) { + continue; + } + let cid = value(rng.next()); + touched.push(key.clone()); + state[idx].1 = cid; + ops.push(Op::Update { + key: Key::new(&key).expect("key"), + cid, + prev, + }); + } + _ => { + let idx = rng.below(state.len()); + let (key, prev) = state[idx].clone(); + if touched.contains(&key) { + continue; + } + touched.push(key.clone()); + state.remove(idx); + ops.push(Op::Delete { + key: Key::new(&key).expect("key"), + prev, + }); + } + } + } + if ops.is_empty() { + continue; + } + + let mut after = Tree::empty(); + for (key, cid) in &state { + after.insert(key, *cid).expect("insert"); + } + let root_after = after.root().expect("root"); + + let mut blocks = after.blocks().expect("after blocks"); + blocks.extend(before.blocks().expect("before blocks")); + + assert_eq!( + invert_ops(&blocks, root_after, &ops, OpOrder::AsGiven).expect("invert"), + root_before, + "seed {seed}\n after keys: {:?}\n ops: {:?}", + state + .iter() + .map(|(k, _)| (&k[19..], layer_of(k.as_bytes()))) + .collect::>(), + ops.iter() + .map(|o| ( + o.kind(), + String::from_utf8_lossy(&o.key().as_bytes()[19..]).to_string(), + layer_of(o.key().as_bytes()) + )) + .collect::>() + ); + } + } + + #[test] + fn op_order_does_not_change_the_recovered_root() { + let leaf = cid("leaf"); + let keys: Vec = (0..40) + .map(|i| format!("app.bsky.feed.post/3l{i:013}")) + .collect(); + + let mut before = Tree::empty(); + for key in &keys { + before.insert(key, leaf).expect("insert"); + } + let root_before = before.root().expect("root"); + + let mut after = Tree::empty(); + for key in &keys { + after.insert(key, leaf).expect("insert"); + } + let added: Vec = (100..105) + .map(|i| format!("app.bsky.feed.post/3l{i:013}")) + .collect(); + for key in &added { + after.insert(key, leaf).expect("insert"); + } + let root_after = after.root().expect("root"); + let blocks = after.blocks().expect("blocks"); + + let mut ops: Vec = added + .iter() + .map(|key| Op::Create { + key: Key::new(key).expect("key"), + cid: leaf, + }) + .collect(); + + for order in [OpOrder::AsGiven, OpOrder::HighestKeyFirst] { + assert_eq!( + invert_ops(&blocks, root_after, &ops, order).expect("invert"), + root_before, + "{order:?}" + ); + ops.reverse(); + assert_eq!( + invert_ops(&blocks, root_after, &ops, order).expect("invert"), + root_before, + "{order:?} reversed" + ); + } + } +} diff --git a/hubble-commit/tests/fixtures/atproto-interop/commit-proof-fixtures.json b/hubble-commit/tests/fixtures/atproto-interop/commit-proof-fixtures.json new file mode 100644 index 0000000..6de88d8 --- /dev/null +++ b/hubble-commit/tests/fixtures/atproto-interop/commit-proof-fixtures.json @@ -0,0 +1,118 @@ +[ + { + "comment": "two deep split", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": [ + "A0/374913", + "B1/986427", + "C0/451630", + "E0/670489", + "F1/085263", + "G0/765327" + ], + "adds": ["D2/269196"], + "dels": [], + "rootBeforeCommit": "bafyreicraprx2xwnico4tuqir3ozsxpz46qkcpox3obf5bagicqwurghpy", + "rootAfterCommit": "bafyreihvay6pazw3dfa47u5d2tn3rd6pa57sr37bo5bqyvjuqc73ib65my", + "blocksInProof": [ + "bafyreieazvzmba35p4phksumwfoklwe5o4ncmo7otud74idcyv4orrbzxi", + "bafyreie4227qpa4vbtbpnsvuhp322b776vjuhxsidi5hxp2gawumr4m3de", + "bafyreid44jgimksqqdratyste2moqu6zo4h6co2pknjppfoiplsqxtuxae", + "bafyreiaerlvitye7fjjwodkshtbqqdsmfsdjtnlz4vs6y4trnddshsmd5a", + "bafyreihvay6pazw3dfa47u5d2tn3rd6pa57sr37bo5bqyvjuqc73ib65my" + ] + }, + { + "comment": "two deep leafless split", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": ["A0/374913", "B0/601692", "D0/952776", "E0/670489"], + "adds": ["C2/014073"], + "dels": [], + "rootBeforeCommit": "bafyreialm5sgf7pijawbschsjpdevid5rss5ip3d4n4w6cc4mhu53sfl4i", + "rootAfterCommit": "bafyreibxh4iztp5l2yshz3ectg2qjpeyprpw2gogao3pvceowpq3k3thya", + "blocksInProof": [ + "bafyreih7dxytqtcjv3cfia3fi3wxofeip62teqkpynnkxisxqwfchfb4bu", + "bafyreiaqbymlnvpklmogx75gozjl3y73gva43jbgwcrqu2pp5g5ejou5vm", + "bafyreicfh3st5ghtnoqyyvznjv4lhfnvl7qsndempx35i4tcmoxakqbgrm", + "bafyreieyjrrai6igjceyxzkajrxgxz37da2eufb33anvesb4ev6yzztauu", + "bafyreibxh4iztp5l2yshz3ectg2qjpeyprpw2gogao3pvceowpq3k3thya" + ] + }, + { + "comment": "add on edge with neighbor two layers down", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": ["A0/374913", "B2/827649", "C0/451630"], + "adds": ["D2/269196"], + "dels": [], + "rootBeforeCommit": "bafyreigc6ay2qwfk7kuevvrczummpd64nknfo4yxpaooknfymzyb7u3ntq", + "rootAfterCommit": "bafyreign6kxoll35r5f2ske6hjx7vg56aw3jn6r5hcopgrepzafpvohr2a", + "blocksInProof": [ + "bafyreieazvzmba35p4phksumwfoklwe5o4ncmo7otud74idcyv4orrbzxi", + "bafyreidicvcjgrpm5bmhm3ndh2ysqfhgzk4chwn3m4kuvwkenfusspb4uy", + "bafyreign6kxoll35r5f2ske6hjx7vg56aw3jn6r5hcopgrepzafpvohr2a" + ] + }, + { + "comment": "merge and split in multi-op commit", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": ["A0/374913", "B2/827649", "D2/269196", "E0/670489"], + "adds": ["C2/014073"], + "dels": ["B2/827649", "D2/269196"], + "rootBeforeCommit": "bafyreiceld4icym4qjmdcn3dfgtxt7t66hdgyhvigessgmkvb56dx6amgi", + "rootAfterCommit": "bafyreigkalika3taqauapfha556lo36zzcjoiifny5xeru6yis3nxw5ruq", + "blocksInProof": [ + "bafyreid44jgimksqqdratyste2moqu6zo4h6co2pknjppfoiplsqxtuxae", + "bafyreihytu6onh476trave25zuo63ziebkeong2755sc5nmf55uzdawgt4", + "bafyreigkalika3taqauapfha556lo36zzcjoiifny5xeru6yis3nxw5ruq", + "bafyreidnnkrdkcaswbflgtdsxm7nzs7p5f2rdous6wrlupzstuwqu5pfgm", + "bafyreia2kq243hqq3volwlzkbzzphoeqauk54sc5h7vgogq4ei5fjizxvy" + ] + }, + { + "comment": "complex multi-op commit", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": [ + "B0/601692", + "C2/014073", + "D0/952776", + "E2/819540", + "F0/697858", + "H0/131238" + ], + "adds": ["A2/827942", "G2/611528"], + "dels": ["C2/014073"], + "rootBeforeCommit": "bafyreigr3plnts7dax6yokvinbhcqpyicdfgg6npvvyx6okc5jo55slfqi", + "rootAfterCommit": "bafyreiftrcrbhrwmi37u4egedlg56gk3jeh3tvmqvwgowoifuklfysyx54", + "blocksInProof": [ + "bafyreih62n3gjbzzvlicuggpfydyzrp3ssyx7hdgtltd3sct3ribm3u73e", + "bafyreihrjhuoynjvgteuefin5vwnqmupyfzvmytdobpstqt3mbawgw5qhm", + "bafyreibevzst4gzkxo263syohlmq3lpxdvpjhlpyqx2ay3moh43lifydca", + "bafyreifsdd7dv2neal7zjhyrsvndkaocelqlpgfxwo4utoq2g77klih37e", + "bafyreid2wwyroodj2lxx2obikac74q77lsn6vqkoetlqqwwnr3criwlcvy", + "bafyreie55b224oljhykpsxdjq4ajn2ysksud7qm347s6kn2ei6a775faum", + "bafyreiftrcrbhrwmi37u4egedlg56gk3jeh3tvmqvwgowoifuklfysyx54" + ] + }, + { + "comment": "split with earlier leaves on same layer", + "leafValue": "bafyreie5cvv4h45feadgeuwhbcutmh6t2ceseocckahdoe6uat64zmz454", + "keys": [ + "app.bsky.feed.post/3lo3kqqljmfe2", + "app.bsky.feed.post/3log4547dm6h2", + "app.bsky.feed.post/3log45inogon2", + "app.bsky.feed.post/3logaodrh74d2", + "app.bsky.feed.post/3logteazog2n2", + "app.bsky.feed.post/3lon5cqsbwrj2", + "app.bsky.feed.repost/3l6sjhvqonco2" + ], + "adds": ["app.bsky.feed.post/3lon5dzeaihj2"], + "dels": [], + "rootBeforeCommit": "bafyreigfcsro2up7qi7l3rxdpg7n6gjtteotkmgrrqztl5oy2tf4ncl4ji", + "rootAfterCommit": "bafyreig33hsjiplaixvmccy65n7rn3in5nsbtcittzx6k3w5wjfhk2sg3a", + "blocksInProof": [ + "bafyreig33hsjiplaixvmccy65n7rn3in5nsbtcittzx6k3w5wjfhk2sg3a", + "bafyreih2rhjm3apcghihwfojv2em7noqkgt5qyjcnxux7do674m464oc3m", + "bafyreiajhswkduap4zvqvfhth3skdgckmk2eb5gow7vv3gvj45f4fqwmxm" + ] + } +] diff --git a/hubble-commit/tests/fixtures/atproto-interop/common_prefix.json b/hubble-commit/tests/fixtures/atproto-interop/common_prefix.json new file mode 100644 index 0000000..8531367 --- /dev/null +++ b/hubble-commit/tests/fixtures/atproto-interop/common_prefix.json @@ -0,0 +1,15 @@ +[ + { "left": "", "right": "", "len": 0 }, + { "left": "abc", "right": "abc", "len": 3 }, + { "left": "", "right": "abc", "len": 0 }, + { "left": "abc", "right": "", "len": 0 }, + { "left": "ab", "right": "abc", "len": 2 }, + { "left": "abc", "right": "ab", "len": 2 }, + { "left": "abcde", "right": "abc", "len": 3 }, + { "left": "abc", "right": "abcde", "len": 3 }, + { "left": "abcde", "right": "abc1", "len": 3 }, + { "left": "abcde", "right": "abb", "len": 2 }, + { "left": "abcde", "right": "qbb", "len": 0 }, + { "left": "abc", "right": "abc\u0000", "len": 3 }, + { "left": "abc\u0000", "right": "abc", "len": 3 } +] diff --git a/hubble-commit/tests/fixtures/atproto-interop/key_heights.json b/hubble-commit/tests/fixtures/atproto-interop/key_heights.json new file mode 100644 index 0000000..79773b8 --- /dev/null +++ b/hubble-commit/tests/fixtures/atproto-interop/key_heights.json @@ -0,0 +1,11 @@ +[ + { "key": "", "height": 0 }, + { "key": "asdf", "height": 0 }, + { "key": "blue", "height": 1 }, + { "key": "2653ae71", "height": 0 }, + { "key": "88bfafc7", "height": 2 }, + { "key": "2a92d355", "height": 4 }, + { "key": "884976f5", "height": 6 }, + { "key": "app.bsky.feed.post/454397e440ec", "height": 4 }, + { "key": "app.bsky.feed.post/9adeb165882c", "height": 8 } +] diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_000.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_000.car new file mode 100644 index 0000000000000000000000000000000000000000..967e7dd7547c7f1b59365d92d121a208e814dc4c GIT binary patch literal 103 zcmcColvv aPp?idOD!tS%+F)gCPww5#MFkwoNoZ%Ycf*+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_001.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_001.car new file mode 100644 index 0000000000000000000000000000000000000000..1c4802400023b6a35fbfaffe6450c20d57648eec GIT binary patch literal 160 zcmcColv%LxH`BMMtuLW+4CiAq-+8^1MnDY$)fsaTD literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_002.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_002.car new file mode 100644 index 0000000000000000000000000000000000000000..2009b6869c63a41ba80f0fb2426cd952adad3ea4 GIT binary patch literal 160 zcmcColv08nItTe^ye+wrZldBJtdOu%!)7)R%Qf}^h zY%wFfEVZaOGe3_pg&5U~5>p$OBxbv0>l+v)7BD21d`m2YTeancdEsA;hha4=4dvQz a6HDZ;di+cEE(lq@`1%Ud`}(?xIo|+4I7kox literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_003.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_003.car new file mode 100644 index 0000000000000000000000000000000000000000..5eea40641b8aab6078263d7b73c5433ec8732d93 GIT binary patch literal 302 zcmc9nlv^8P*>aN2U6 zuiON-of}g?jv=H7$uR~Pj#;}R>b3r)u)S4cH-48ctowR(4 HV$L@J&xwMN literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_004.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_004.car new file mode 100644 index 0000000000000000000000000000000000000000..bfdbcf1be73c58fea7bcd8291452bb2f013e66a7 GIT binary patch literal 160 zcmcColvi&EgXAYsV6tMmbQ|Gn+=@YvD b?>?hjth!*zo%xGztdp1Cru=MHV$L@JJ*!49 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_005.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_005.car new file mode 100644 index 0000000000000000000000000000000000000000..21fb7d5e7965b5dfb29a1a234260ec53ab09cbca GIT binary patch literal 215 zcmcColv4SO7 z<@f1jsYS(^`FV`97>QB7C^5BZNn*B3w!VQuVgW;9$+yHZxLs>kM7`FZ6t=fY?8fiX zg>_%Au6(I~_16NoMU#2jX6=vcTauXVXp&gKjH+v=+NOZ@XP7##{ZF6J{eSlv-D1@R VQ|`=Pd}E!w^fu*Zvl4T@0RT1%VYdJP literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_006.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_006.car new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a8c9cb4b176ad613edf94e6ad81686ec0649 GIT binary patch literal 302 zcmc9nlvvT literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_007.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_007.car new file mode 100644 index 0000000000000000000000000000000000000000..d3d959e94c8f29003c37569991d82ea157f14c05 GIT binary patch literal 443 zcmc9nlv*7zez8?N6a7}wbK!*NZ zy=@!Q%TkMqGxPHpQ$VU0z1}kC?m^R+lK-df&zEuL5Xy~E?5#6^jz zjY|@gX!IV4m7vESXFTG9q z*{sBzZ(A5awh(d?U`VzYfo*|XLCAebuGw}5bhH~w!(5gasx6d^g< v0PJYwpjo>j>b3r)u)S4cH-48ctowR(4V$L@Ju>Q!w literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_008.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_008.car new file mode 100644 index 0000000000000000000000000000000000000000..e846b4ac3a21573358a6483dbb4857e189609646 GIT binary patch literal 160 zcmcColvrw-EwK!4)%JI6XA6r~Jkw$SeYo(U ajo|Uk$K=wY|FoT4wytU7OEc!goNoX(hC!JC literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_009.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_009.car new file mode 100644 index 0000000000000000000000000000000000000000..d8f402787fd7bf0d6b38cdb49ab0b4fb9ca19700 GIT binary patch literal 386 zcmc9nlvR zAu$JT_}A{Q>Ve(r4i|j)<%hEY=8+hrw-EwK!4#rAh>XA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7OEYF9 z*AQ}i3dk{poQ!acfdPhN)~<+ptv@MjZ3H_*dg$SPe@4n~%w*MgM6#xoln2#Fu8w Li8*iw5%LWHBq52? literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_011.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_011.car new file mode 100644 index 0000000000000000000000000000000000000000..6f20a04f87d3a91939cf9e47bf0b1ad0a8458535 GIT binary patch literal 444 zcmc9nlvZh)E!O#LRVHS3 zk%aWJ)S}|d{5-}UMv(GF6}xzyADnc$t01cQ#U`>LqRb~;OYTlanDFga<$EfG7bT`P zE=kOG$<{Y8N-SVVEcupL2DfX=3G>3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6La87zjl9B5A0TVxZt}lKb#FPkHo-re|dkO4LEJN&R1>%+s=&;*AQ|%!ZpU07_Qm= zj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jN}?ZzD@xJ4Iw8Z9AjXB;h426 oqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0B*Xy3;+NC literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_012.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_012.car new file mode 100644 index 0000000000000000000000000000000000000000..2f6af5ed1e2e18864b017f65c803ca6aecd7df12 GIT binary patch literal 386 zcmc9nlvwMuIP*2w*zmR7Ehj0 zY$BXqmReMtnV-ivixH&UY?60xVQu1vNl9}yP4K7{b5Su&*=15wkr)2ygL%s3_lpu! zo0cSIyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9cE)r)}2$ z$i5|s*^VZO1rp{~s(;(`d{rRlODm(ixN{C5_8~=A>@-Duzv{! z&!WWCMu>lnEiwGN{TOerim}jm=km0O0WF-KS!;GKhIfhZu?Yez!cUhDt=Iiy>?|* z`?|l}JRg|SQb3Mb^m@yjy9Z5QO8%d^KVQa~Lnt>cw)d1A^UUuH^>{PI6A_LvFu`!l zPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&e1mwIkW-LsF#_8H_XHvL sAqCBr6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKCgywt06$8{=l}o! literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_015.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_015.car new file mode 100644 index 0000000000000000000000000000000000000000..58aafca730deb3334e81183d1ae2f9c97a0ef277 GIT binary patch literal 585 zcmc9nlv|Uxr4|)u=I1e{fK)Gfy=BhbgQhPf|4-eYFXPN1lp7b@drFRZ=J$nqyqV&OixN{C zmn3GpWa}H4Bo;6vmV8SrgIl#zZBxMdGfbV={-;mq{=fT-Zn5fuDR<^CzOhbTdYkgI zS&2E{dKf{r5ONd37Gp~cTeiPrJ6l+^;+YQn@56-;Z3K^RJ|>qI{ip5ZvUN=pUz#x| z=D;1aH>!kt>yeAs4$80DbnE3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%AkzDT3jx4Odx z-+lSvY#xb$>;CfoJ{xe_a-FZ-1h$Y?asI@DiUh7W^+gl}e<9F%8 by02GPzSO_^Yk}LM$vkbd_DA+5=6nMH$EXPK literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_016.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_016.car new file mode 100644 index 0000000000000000000000000000000000000000..e83b9ed3464524f11b898cf9eb7bfde8d54eecf4 GIT binary patch literal 160 zcmcColvaPWEizf55&DtN?wGVl`S^t9nnaK6G!s@W1z} VER9RQv=_zS7oA`JBq=fH8vv{BTtEN- literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_018.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_018.car new file mode 100644 index 0000000000000000000000000000000000000000..79d54ccc708334ad5d14b8e7ba662cc7cdcfc4a1 GIT binary patch literal 302 zcmc9nlv)kgVdZA0(}#7G9&O7=U3lrM;-_cg{eYQXy{Xe^ zbbi^q^s>~V;>`R!#uSk11jUSZK682gSUj-F-O!w;Sdvu!zo&EWT7yMa2Xph6UtN@# z+PEY!+a+7y#2~SNA+h9JVj0}3#$CrW#A>v-R`s4-edykN;eYQ{SsIsqX)lVuFFL>c zNm63Yw;o22Eri^Ju*JX#Yzy29LheIy&6X49g?}|3hSjh%lxx3DERnzJ@h{c8AY}F8 O>nlv}>+2@wd;G=JNcpcwm#ep*c^nB&qy=Pv_pX28*l?=H@TIx+pQV zaYOHyo(7pM>|K6*zG%o$pUKD>{bbk4h zq{N(WTNpvM5ONb>2wMz{z_!4xAmlzI*K9dqUieqzVOR}IL%H_b#1i?d9{*Ck3qn>e zzP`frzP@f^4&2nQ-CxxMyVV^o`0mROXY)u5T=$pv_t}8cmg{`wCa~??2o4%TijW+Q s88mBGM7`FZ6t=fY?8fiXg>_%Au6(I~_16NoMU#2jX6=vcOU(HO0Qcm{od5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_020.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_020.car new file mode 100644 index 0000000000000000000000000000000000000000..08b27b9d2fd6717503ff571a70566ea57e6da7a7 GIT binary patch literal 216 zcmcColv2v^S*FDN2N`<#Xff; z)mzfbQj3Z+^Ya*IGZLeGQDSP-lEiG6Y<&Zh!~%xIl5dG+aJzP@Z3v-R`s4-edykN;eYQ{ VSsIsqX)lVuFFL>cNm63YHvpd0U{U}8 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_021.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_021.car new file mode 100644 index 0000000000000000000000000000000000000000..d8d9eeac7b148ce081b1fa217ab8830e19cde649 GIT binary patch literal 270 zcmc9nlv%MukQ7N6*F4gZxLX!G@}L2=7J%XjBfGk0y2 zx4o2{UY1%^oSC1;c#)A9<%<$io0lYJyJYJd7$g=jB$j+jEJN6}BI>pNq_DkJVmE%5 zF0A`{b>&O_tG^bwEt<^JHfw)m-;%^^N0Yj4})iwpJKf}~{?SJ}&?*F^b=oYIk zm~v9 zQ=66~X1iqT8<->(FeH|IODu!iwNq_V!1^;xo!9=SPw4)?`;2a}>VheE<}bdnPF{MO z^0Qe>60@C53=#{NP_;GgI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7)w zfE`E3FN+dW8=;Of0y_@wGD6-$^2C-C=7oPX9){JhG?Z(hUktyC7us;_E9+ L@9XO(=6nMHm${s0 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_023.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_023.car new file mode 100644 index 0000000000000000000000000000000000000000..6e001510c6ed69c8c72e630564587c9b96eb22f9 GIT binary patch literal 499 zcmc9nlvwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o- zW-Up~b}}(YEMP*_*0}4KhFFaj*Q(x=s}J3qFZ}PlDof+iFYQI~_eJNIKS@f=`L+e@ zI6{5_Y*AurBh+z5V8_8-M#x)8p4f82yzsBa!>}5bhH~w!(F$EN&gcKn;+5qfm spNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT05yZz<^TWy literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_024.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_024.car new file mode 100644 index 0000000000000000000000000000000000000000..f51ccc59b59f976bf4f116a0a211cd9ffcc2a453 GIT binary patch literal 386 zcmc9nlv!gq^`mI=ub| zR}`j~r4|)u=I1e{fK(?aX1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7o4@?(qQun3 zC5hQC+4?31i3JRaCEpUu;8p?Fxa*jPSdA9fs@{{U58azD{O`RgOXJcn?M3nTMdz14 zNlMK577Vgv(lY^%Hm;6KPkQIDY@N8>DE!ZyS&4Urm(Mn{6u7i9t8YR|*KO30rGmm6DxT@E*&kaLiHxcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2 K(u_GV=NkZ2+O19i literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_025.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_025.car new file mode 100644 index 0000000000000000000000000000000000000000..2d688756c9a614a27865e83536cc1c1a02bb9041 GIT binary patch literal 611 zcmc9nlv%+s=(CATtvbGv4{k<@sar zz$SM?bDm;JQu+U$&b@057Fiw4&0l_XQDSQ2lEiG6Y<&}h!~%xIl5dG+a2pzT9n%o2 z(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8??|wBnf# z`|rbr4{ZdGZ$2iM7X7E~3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6LY?SElE(!c;_>h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fB98}B_;+KmNf1$-=f6ShQu7W+X=a83nR!-LV<~Jxv?eK<#6)}IR_~ix4&aM oTUfN>nGXB!!-WrR1dne%CYKidr|smjbxjjrnlU4}nox8B00VgL+yDRo literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_027.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_027.car new file mode 100644 index 0000000000000000000000000000000000000000..61f16bc4019e8d26eda2599dad2e414b1f28dca4 GIT binary patch literal 669 zcmc9nlvhUPrQlBDwgJ)L{k8Z5Fpn47=+>Y~Kd z#wCf_F4_7f28jg>i6!3>%ivZu?mDI+R-?tWs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1 zk`i;i1%oV^^i05`jjQ9*lioQjTPJQe3jZ@_R^naZ<+IH!1um`3>RXhU+K`w7H-^xP(_IBo#VEWeiTqWMf2rODA*&Z(UtxM*Ul++WU%S7m2X?DFT=3nOAI|2H7`W~)@9(n# zr!Cj{%1vO~xp52FHH1PPFobK2Ey1pV`<77PAcgn#cWh@1i&i|-VgG%&@S%<1@y*BN z(xU&gom{rAY2r&WW+Yb=3LS9d6Y?6u(FT~2zjj5`YyC-Kd#l85{4QNs_x0+^m-<(K SEpS^jnWt^m{>Z+>oNoa8EiZ2X literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_028.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_028.car new file mode 100644 index 0000000000000000000000000000000000000000..311908ff12d528c52ab2525efc31d229039ed285 GIT binary patch literal 611 zcmc9nlvlx5eDW$5 z3#Rn4)S}|d{5-}Kkm>}*jCVeBdHz^Du*u!foTpflRQ|uGbMIP%MOFuM^Os*;l$hGM zBr)41Ti?VWv4A15((S)o9Y*Aur1Cp79LJ}O@i(YS;bN8U>OUeIJ z_vgzva|q?e#rB?(W1jhap&oChcp@So3{1cQfgIdB)iwpJKf}~{?SJ}&?*F^b=oYIk fm~vMq%?`5tQx(-Y8rm0SPk*ez< zw=cacwWv5VKaX(>BQeSsC8jnmNz8W1);G3HEMQ11fm<}`nSe(dSI4C%y>nQ$PTX!3 z{%6jt#Jj@FXPa3HTw0mcmskc@y8Rv7*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2 z(u_GV2d?xY2lJH6?-wPeHbGo%U;uXYHze1rT@m$Ke^S`qDzO{C zOBdFCy}I(H{?%U#+!jsdX`8h_vTsRZwxda60dryrvaX$Kn*!FKVd}j0KYc>?|J`SF zi&Ym)xif$9jdk+U+mxTpO3e9|0t(Os#SFmS`OM|{WAVTycSCcYVo6f@|DMjhYYi4z z9n8&Neiad*CYVlZ+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip23kF$2 ZDC`#{rZyl2Dj_$4%_J1^Xl4?M0ss&gB}o7P literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_030.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_030.car new file mode 100644 index 0000000000000000000000000000000000000000..d58cb9125d3f9ab7739d143e20621f2214e8e26a GIT binary patch literal 669 zcmc9nlv?(4nNnD!su_t);` zWxuravecsD%=|pY6p-o!#f*18b9w$)Jg~{#(441Ol2rb`r*rRGgGE*cbMu#9U6h#G zxFj*#C0pObAhCcUvE*A~8QiMIUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$ zQew`xEsP*r2)PMii?Jox7Pu9Yo(XugadljJ(mRJ`>%{Fw;eY1LO1vw)e72dTz@?R0 zeMqj^{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H}%S||8vx8`173A z=C)6jR#>a3_(37|+Lc-D>;7`{d|*lo205CL)r%5S8<5N-6q0~}gL~2IEpzT3G<_-g zf9n2x8D|cm+_>1@Q*z8Rzc19|%@j{W1cZSJI3SRNd#Bo_fc0mXI7VnW!qQ2`^URxA8_mD^9(m`H`aH_#(lV*p z(&Fi5sYS(^`FV_67>QB7C^5BhNn*B3w!X1tVgW;93EZMd&jdW$xH>L9>7B!}b>eoT z@IP~ACEgWYKHJPv;L^&hzQi)P((Uiq&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjD zmuAd~IdG+Wqe{599=Uk!p!}Lmx6WS|f1>sE@K=Fr+6w|Q^zZ6z+n54!bb?~WJD<5c ze=Hu@O=SD z3;%ns%F?*>OM6lLebM>lPm&UIz6FCUA>_YBiKz`p4kzR$u)`O<-ZJOzLDQF#|EKQH zmvQD0%8iTdJtfCH^ZPr^tMM?bhNYog`)y*0{8f*C zson)4s~2BiVR~O*7b$4Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~dc5~qX| vAvqc|PS>u8daXYxY;Tp=jo+mU>%LxH`BMMtuLW+4CiAq-+8^1MnDY$)lo)G1 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_032.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_032.car new file mode 100644 index 0000000000000000000000000000000000000000..430d1157d88e8e3949606f264989ecfc172ac29a GIT binary patch literal 160 zcmcColvOvRoLkrUwR?|!(iH89 zJ#Fb_sYS(^`FV^f#He1BnA*4`G210u-^3!ZfFZHuTVfg9D!+gFH=kDW)^;=;NZ9T% a$L8;gPOTq$U5vJ0&K`_rW%fzT`33-#<3qmy literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_033.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_033.car new file mode 100644 index 0000000000000000000000000000000000000000..6c7b6a79e40c4343bd67117970445fa7133cfbd3 GIT binary patch literal 302 zcmc9nlv{?=~V;>`R!#vVpulrKt5ZCsL=?UJo;Vv$(DkXZ69u?%jP-#`7EPb+zAI~ooo zZ1x`y}STm45C1svg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB z=PNgXZRf@mkYflbLO9020K+kBS46$mpA@#YO6`Tn~1^~$*hqV9z literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_034.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_034.car new file mode 100644 index 0000000000000000000000000000000000000000..7fdac44c074425b88f7e0925fc84065dc5c162ad GIT binary patch literal 216 zcmcColvi>WuQGl;wTEGu*46Ne%>{8urt4>k z{m4x(OD!tS%+F(-%}9*$MTx0ROA@nPvh@v&5(^j-OTHzR!R^{|!o2XW#>220mWFce zw}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOsLxY{^{R*TFG16(QqJPyT=@xzb`tq Ue&}^E+I~5EFq)OwCo$(602+f_82|tP literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_035.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_035.car new file mode 100644 index 0000000000000000000000000000000000000000..4e50b7b67ac123fea9c7f8d56137a95ce7519684 GIT binary patch literal 357 zcmc9nlvRX-Q(XOSZm&QDOl@V#&9}GPqq^PM8<|)p!_I!_rW$ z{Wh^g{;J2nRPTb2)r+sMFukv@yCgB&$;2YDfC*Kb-#`7EPb+zAI~oooZ1x`y}STZTQ;#RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(C zAU_aNv?wvP5$Xp63_q-05%pSsQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE E0Nh)eh5!Hn literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_036.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_036.car new file mode 100644 index 0000000000000000000000000000000000000000..80a5b2adfd875752e5b2ce034c2614a133c5af54 GIT binary patch literal 302 zcmc9nlvW3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN*BG}GUx6=)0dL}r|!>}apn-pjf?F)CC5DT z`$9e5O!34NkYflbLO9021j8{q)iwpJKf}~{?SJ}&?*F^b=oYIkm~vo3u_ZUOiG%wX@W%LxH`BMMtuLW+4CiAq- z+8^1sBr)63B(Z=QRo70nO#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXqV z0lSTmR~99vHbUHHVu9f{zkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S9*kyX_DRfv JdxKCI001B$pZfp+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_038.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_038.car new file mode 100644 index 0000000000000000000000000000000000000000..75d4159012abe74cc11c3b381123a641a89db010 GIT binary patch literal 357 zcmc9nlvHqh)~t^kwY=TUi&Eg zXAYs220mWFcew}~b4S3UlvdKZMOUVMFp z>3x0OC5hQiCKibWOo=7mkhJ;z)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@D zV$Qb|kRJ%SWKm*jBh(KjU_T&RvQuqS!1^;xo!9=SPw4)?`;2a}>VheE<}bdnPF{MO K^0QfqIo|+8l$=fg literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_039.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_039.car new file mode 100644 index 0000000000000000000000000000000000000000..293d707543f83f104eea7055fe14685cccd78f56 GIT binary patch literal 498 zcmc9nlvr(E~EFsyTpBOjMcS($wj zbKo|7?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T;E#uSiW3AuPtVrnDQuO?u> zB0FZM+NOZ@XP7##{ZF6J{eSlv-D1@RQ|`=Pd}E!w^fu*Zvl4T@fh{5A5+q9uFf3WS oBI>pNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0GgHA%>V!Z literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_040.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_040.car new file mode 100644 index 0000000000000000000000000000000000000000..24c6cbdb170420b1a9f3ad0a2bd3f526e41194cc GIT binary patch literal 302 zcmc9nlvl(jy@3BvsqCK&vZBb%s z9GGkT=>vN@c8Cqa%s_j+DzZSsNv^4&XEb|$LU+&=JlU#9nL7VhvZ zAKs^zr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5X}ondzE#--#!CzT~{U zPHK4uZ<75THO{ST{Mx<8K52^f#GbZAiK&fC60=>h^-U}i3m6hhz9p8yZSec2fAeW2 zZ*51zfrRZIb8P;;=+ye5*Trc2oz^x$UJ|x#{ zf5&#VuxQ0I9roXc3m@7D9^ZUSE-m^`+sS3?nkK$9V@3)ZLLmtb8baZRaI}E|*wM&A qvvx()YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m{>Z+>oNoZG*zC^$ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_042.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_042.car new file mode 100644 index 0000000000000000000000000000000000000000..3511172030b5809ae9d3787d1aa3666c7518b8a8 GIT binary patch literal 443 zcmc9nlv%ivaRIbmM-SL0z=4NF70_S?h~`KuoPQoRd8RxiH3!t}nr zZeq^2EsP*r2)PL`ge}IFU|Zl;xTf8A;>n&bId89%TAsn1WPeAEbL$$vcJHxInxZ|i zrwz$9+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HDDtH8^MpS&eYC vi3Qlv$U)=xPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_043.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_043.car new file mode 100644 index 0000000000000000000000000000000000000000..f7ad723e2cb0cfed13d5cf76f64acb6f6a89ea3c GIT binary patch literal 585 zcmc9nlvl(jy@3BvsqCK&vEwK!)bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(tiTh}!4 zr5ST#4qWM?ie0?U4^BGWRS;GDViVaAQRWk_C3hzyO!)Sz@;w#8DIiA^vKrxN6AQ4T zzacrs@1Oq7rhUktyC7us;_E9+@9XO#dHHMiSM|Vdb%zVS`|`ut zJQ4%f{pJ0AHsG}7I$ya7Y&$oCy-Y|El4A@o9J6*s)NB1oVSB5@Zu~A?Soihn%9r|A Te=TrZG?}Mu*8a%8#GG#cDzW>4 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_044.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_044.car new file mode 100644 index 0000000000000000000000000000000000000000..1c3bf756346ec7445cf517a989f962bf74e42c34 GIT binary patch literal 527 zcmc9nlvU82>6&x=S3)+g-V?k_)KvV% z3s;5ovecsD%=|pY6p(7ywEIpx+4Cjm?R8SiGkBBi@2GKZUE|m8J@!dcv?unoElNyn zT#}gWlC5uIkyyZxSn@5g3~rU*KmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>e zB<6erTe9f&mN|D1n!c3$KXre;j5CK&Zd`2dDLLku-xuofW{M{wEHN;_uw)w1>QML8)iCaaTAN0GJ27??;NYSFi)CMFo356s8bd2N+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_045.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_045.car new file mode 100644 index 0000000000000000000000000000000000000000..de20cf9e0959690f38e8f71ce802bef87d069cde GIT binary patch literal 582 zcmc9nlvY2lJH6?-wPe zHZ4iacFEQ^Fi0$5NG$o5SO&Li?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~h zk$p=NvmH$m3z$)L?Nr+ou>K5F=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY&bJhh z(_GW;JMm=Cmz=lPNiEOdO|rkE#<_KkU%U6%Cr#0w*weNsF|`rmG!qL9r}_QUzxlM1 zx3;6teM1a`s>}E3;2x&bKY#004|ocp+>twglS(_dOx^AqCX- zcWh@1i&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ENMhsZTQeH-tCHa>oBwUNB+7 mVXM+V)0yvoh~KFGS3An2NAPnnC};>NT9laDfMh12NCp5UP6o07 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_046.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_046.car new file mode 100644 index 0000000000000000000000000000000000000000..f7cf780d71425c30986101b5910ac83f7e155f10 GIT binary patch literal 585 zcmc9nlv-(5I31abjmSs#_V)h|x-X_#t+thz8i&f zrkqbNOD!tS%+F&?0jYLPyYIx4JzsL(UMICYgEz_kjvD9IHGb{hW1loddty)9qQun3 zC5hQC+4?3Hi3JRaCEpUu;8ywl)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@D zV$L_PC5v8fnREA`=}XD~Q}^e~ICBW)#>MuYl4G9veW4z2rg$R45(5(qOLnSl3Rr)J zsq@Pm?tTwlOsl8j>wWU|Zn+0F03Pki5L*gn8j#jfY`1EDhz_Zxc)8uX_AT z^)3imz4-bH)BF0mi81@Q*z8Rzc19|%@j{WSYlv;VaZOlO#$oA zFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXqF!U*yTA&(<$F}4KT0`~`@KtS^H z_IGS&3yW4f(_#O8xbUHk;PK7J+Gv>q`xT$-iO1QTkxp?iM{F+U- z&R-XQqV@IgSAlEV3j#9q@9J&a2yrzbRe&K}ZD54zYC@rkJArt_vMGPc_ap|`^)?LY`|&Db-r>F z*miCNM<^jhNRBoDI~qCFtX&cHT7Od5-YT&hze^X^eZ9K!rT*1l3)~h>=4qR?Ke8_| G=NkZ?_DM?s literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_048.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_048.car new file mode 100644 index 0000000000000000000000000000000000000000..87d0eeaa15a6d5d2a397159319f075dd7390bbb0 GIT binary patch literal 302 zcmc9nlvW3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN)r?_-ucYs`D5|GCU-+~o?=N-`Tw5Iy=x5? zSsl#HUw$M9P0c-6UOP4Q+8+;( zuIcGzsYS(^`FV`989~a`*@QJC7l)miYn0Dw?!Ebf=do!w55E=M+_#4YMTDv0Zwf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe& ze`Md1#B3)MgTw+RRBesBj%kS1XmPFTJ-PbOz4^lb-m9`SF8$J86n|fIe)*H6#GG$E zV8;>i%c8{8Mu_7~EHE7B_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZPS Ie-H`;09g5&qyPW_ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_050.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_050.car new file mode 100644 index 0000000000000000000000000000000000000000..122b5dc3bd2b5054c7aa7ee79f56e952696915cf GIT binary patch literal 357 zcmc9nlviA7=oQ)0rznnc7&C2YP znDZ?KfGUu+t06j{bUj`_o2&A2zLyYi>T=`o_cS zKNnMaS!z*nW_})H3P^Q=V#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`Jx%tblE=o*o zT#}gWlC5uIkXXQwSn@5g3~p89u45WvHCkM&dQYxCbZ@@!zxS#vjZ43@7scNfonQVW zDKY2UYetYQgxs_!F|`R|i-8f?7Pu9J+y@wvYqp#)FZ`?VFsz29pEC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$E znw8lnF$eCLuianO1H087F8J=t4`=g83|#k@_xIU=)0XRe>}kL*j#`33;?@Zt3U literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_052.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_052.car new file mode 100644 index 0000000000000000000000000000000000000000..bf96b2aea006fa6be9102b84749b6dac08fcc9e7 GIT binary patch literal 358 zcmc9nlvA} z_+v|YS!z*nW_}*yY(|jspv@;gJ`+oqRNUX9ui9uok6RNhxUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$Qew`x z9<#c2EG?7?VOW}n0y JxIYL50sxtRq9OnQ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_053.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_053.car new file mode 100644 index 0000000000000000000000000000000000000000..a7b75bf11946ed7567124159ae839f022376023f GIT binary patch literal 412 zcmc9nlv%J^eabod_4%hHs*?~4+zZw*`{Ih&_J~eaKMtR#y$%_(G zo0lYJyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9ae}WS+KJ z`y>07BxXCBBo;8E>e{KcDPa8>rp{~s(^==}00Nr^e%dca;H6atG9 zQyU>(GO@t$lHWi5n@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#UvAbd|C=m31O ByEOm+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_054.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_054.car new file mode 100644 index 0000000000000000000000000000000000000000..9cdab772bec50687b503cd3b410554f1b276d2b0 GIT binary patch literal 413 zcmc9nlvl&*&DbE|_v>{^A?!0F#&A zru=NylEiE$6NAJ8CRA;WyN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(W zhrx~`3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A v!Je?d@Pyw#{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6=6nMHB*3?8 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_055.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_055.car new file mode 100644 index 0000000000000000000000000000000000000000..e9b41236f232c00b53f0b0dded45afb4ec5031da GIT binary patch literal 554 zcmc9nlvjX;W^o&z(s1mc%l+(k&;<3;$|7469*jDA#_QSR#Mb<6o+GLCEUG*H@U{ z*VkQ=nC)a@kyyZ#Sn>@?o8LeEn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uv zz-{>2{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0$^-AH_iromXMQ?JZl2>EV65M zs%;8be}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($tHVf(zx_Xdr|y-(fQ?1k`i;irGO%WkPj9mrZz$&!T`f>}kL*j#`33;s9Q2j| literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_056.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_056.car new file mode 100644 index 0000000000000000000000000000000000000000..d5b6bcccb674e8a494193d25d9b8b0d9f9067ac5 GIT binary patch literal 444 zcmc9nlvjgM^#CVyPn zsI8G+mReMtnV-kl!w6C?GkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG9$%E0 z+PEY!+a+7y#3HePA+h9JVj0{nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S9*kyX z_DRfvD@{<$c;_>h=a0n$o7@e}faNKcB$fZ~>D;^4V3F0q-2CNNQ$UU(qzK6|1{jWM z+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip2gLs)x2qA1SwglS(_XMH9 sLJFGg@7T^37Oi-u!~Xkl;X@n2n+a literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_057.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_057.car new file mode 100644 index 0000000000000000000000000000000000000000..34dae7fbad3bbd2f0d1ea7dcaf8fc9d84fa2bfed GIT binary patch literal 669 zcmc9nlvR0m;m--CxxMyVV^o`0mROXY)u5T=$pv z_t}8cmg{`wCa~??m;y4Bki|$IG{Ep+GVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS z7oA`JBq=fH+ZJ#z5(;&|5Vjawf^C5Z450`>3hwRi*v=Lft$3!x{`+v@LmR>4n~%w* zMgM6#xoln2#Fu8wNI^p=B*8&LDEttPHoy#;wJV}t>rV>XTP1emcj>~quUA*T)W7;` Sf!m_VJZ-b~NA@M=d;EJ{pm zT#}gWlC5uGlvu!!Sn@5g3~tqy6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RK zCgyzWVFcMCGkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG9!J<>Vu4|c-#`7E zPb+zAI~oooZ1x`y}ST9h9J$@y=&1&mW5iHn|&`^At;x z%K!It?pzIaEjTYCc-jk~j-J37`@4YHZD&zhgUFShV7q4*T!Jg%526k8eIE Xmlpk}?c}m`O%q?5F(U;Hp@;?m-uwaP literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_059.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_059.car new file mode 100644 index 0000000000000000000000000000000000000000..3d4b3026498646e73d8fff8e6fbbbc90f4b84d4f GIT binary patch literal 727 zcmc9nlvmrkXgH9t-D8f;-xr-)KlHj7ZNHp77|qJ; zlb8cnnxL5R&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw&>R@jE@~d0Gt|8=jglmi~!LEUu zPskrguHOER?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pv(zx_Xdr|y-(fQ?1k`i;iK_ZHfQxLWo7-875<%D_RUyX-hH7pI~+HVs} zx z`y}STl_n@=yz`mM^T*~DS zQ#K|w#$5O2%ZjS4k5Akx>inSJ#S|Pgi(YS;bN8U>OUeIJ_vgzva|q?e#rB?(W1jha zp&oChcp}2l1}0!fBgfNDwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o-W+mo) U3kHQhA(t#lOl?4NI3YIy0E%cN#sB~S literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_061.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_061.car new file mode 100644 index 0000000000000000000000000000000000000000..0987aa7743a7ccd9138f80a3be3e51eb8afb2feb GIT binary patch literal 724 zcmc9nlv(d1;nRm~izqh=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDr}VAq&U^6o9HP5dw^ zY0jnz9<^dFDuyY$Olm6f!asd5Pr3YlQDSNn#5D#67_M2nBI>pNq_DkJVmE%5F0A`{ zb>&O_tG^bwEt<^JHfw)m-;%^^N0Yi1yRNEA={tQ#+wg2f8y8rJ!qg$-HV9K5O zi*Kxxm)@rQY*u2h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDrEkYflbLUN1&hGQCc z9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8rp{~s(nGXB!!-WrR1dne% zCYKidr|smjbxjjrnlU4V|CL|==cv{2=Q*p*ZJ#QwuvSs=gF@`JE3?|y{pIHQz?23_ z4TMx7Ty0>4>S{uvisb4oC(H}~YCH_9VQDDWew$b#f7Rn(s&_%i>c!VrnBLddP0aZQ E0OJutWB>pF literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_063.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_063.car new file mode 100644 index 0000000000000000000000000000000000000000..59b0be168feedb7dcb375a254c493095b7e3fb0f GIT binary patch literal 868 zcmc9nlv;%Qlrx z`y}STl_n@=yz`mM^T*U?>_|Qi1_~v7BY0-b$PA*&5H1VYwGg8p(jVj^ZdgS7@gYs)O z-8z3={E61r!(RoiX)g%K(7&s_y65zbcs2{CnRVHDME5IW~y1cBI>pNq_DkJ gVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0Me<0T>t<8 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_064.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_064.car new file mode 100644 index 0000000000000000000000000000000000000000..b9dcbb89f34d09344b8a89554a2e0746d102e1c5 GIT binary patch literal 160 zcmcColvaPWEizf55&DtN?wX=h=IxaoAOWdmMtm_{07AI>)EJ{pm zT#}gWlC5uInOMM(Sn@5g3~rVBA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmoyo_yj zZeq^29!8KYgxrL%#lQ$`3)~7q?n83TmJ{ZMe>EP4)vz>_Yrjn_k-zHkFV(vsWcA|f ND@^a}>n7%W0{}}=c#r@9 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_067.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_067.car new file mode 100644 index 0000000000000000000000000000000000000000..3c7925563f46516cf4eda67eef38726679124618 GIT binary patch literal 443 zcmc9nlv){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15wM)Vu=4qR?Ke8_|=Nka=8@*)! literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_068.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_068.car new file mode 100644 index 0000000000000000000000000000000000000000..37c1a5754952056b6a50d3d46163c363e238e917 GIT binary patch literal 216 zcmcColvvr}oMuO&Bxbv0>l>IP7BD21d`m2Y+qF||Q^5K&Or6*Mr%&kq zzx#}CvFd^;cjhm?u})rkoAR?+OA@o4Oe_-%m{7H;9}+srFCV(yEo0)PbyF^zvCey$ Vv~;48o%g(h#mm@c=O*TS0|3yESkeFh literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_069.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_069.car new file mode 100644 index 0000000000000000000000000000000000000000..597a4fc84ebca0184974e4924f4e9a0db05b11c4 GIT binary patch literal 270 zcmc9nlv~V;>`R!#*2)^C|{JA+Pow&+a+7yz#y@JA+h9JVj0}7wJV}t>rV>XTP1em zcj>~quUA*T)W7;`f!m_VJZ-b~NA@jA%yu+MEMP{}wNq_V!1^;xo!9=SPw4)?`;2a} z>VheE<}bdnPF{MO^0Qe>60@C5EE5ZuP_?Na5<1B*AG+NwW8$TCQ!bma&U=}(bfS@+ Q_q>C}%h+b;Cgywt0FwNAod5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_070.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_070.car new file mode 100644 index 0000000000000000000000000000000000000000..c3a338558235a0bb168766cd0e88b28e58721709 GIT binary patch literal 358 zcmc9nlvi%c8{8MyTVAz>b5vjF7jGJhA13dEsA;hha4=4dvQz6HDZ;di+cEE(lq@`1%Ud K`}(?xIo|-e?U!o+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_071.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_071.car new file mode 100644 index 0000000000000000000000000000000000000000..570b16ec07a76e813be93ca2df41943fc2fc37c7 GIT binary patch literal 499 zcmc9nlv|KfhNdmN|5OCDLCJgdqQEiZqdDcbX6 z_w)3!)S}|d{5-}jjKnBkl$hGMBr)41Ti?Jav4A151a6USZ*m=fntsn#|3pV|nVM#& z(n`l8tC(VYrm{OnE`2s7u?((s%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ zbrW;oO22l0RS)b|cevoYFF%~kBQbE@U*6wm15R76^Oc(b7~9T`v%#(=WcQ-P)F!B_ zO~9`HhUA)^YMTPqpJD2}_CI|>_y65zbc7RQr4x%H!BZ z)~BbJr4|)u=I1d6gH#7i77j69lOQI?_9)@et)t%?9~t!BQSrQ#R;qDf&bG%%ixN{C z5_8~&hoy+D%8liAnWLOs-}4@@lOfV_i~%ljtG2VQd(2y$tQnC4GLw*^MTx16OA@nP zvh__Y6AKs;OTHzR!EI1KBy^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*xP0ab$ z!w9m4kUtT&7(;A@% zN_ceZ==a7)27Px_JTIk{YFwDJ?Qs&CnPDj+t8!zxUFIk!*Y~_X86qvm7~m4OYCG$? z$GpYKnh_}=cM?*xC^5BhNn*B3w!VpFVgW;9$+yHZxU1C<37zDZ58dvTG4ay6DVNPy z=e3^d)~p~Wo)x^6LY?8VFcMiDC_`3*kTN^1#Sf)KO?zj`#ZL?g+(i#>9GGk zT=>vN@c8Cqa%s_j+D+pPVOeTg~W0C{&1EdT%j literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_074.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_074.car new file mode 100644 index 0000000000000000000000000000000000000000..93a8a3866406dbc02d31ab8f2cd41277172e1ec5 GIT binary patch literal 527 zcmc9nlvr^tMM?bhNYog`)y*0{8f*Cson)4s~2BiVR~O* zH!<0FHWh%-Qxh z3CT5pZGXphwyjOfD_@Put05>zXFMG-FQ8ftyOm*TEo16S8_y zVrm1DnPDj+t8!zxUFIk!*Y~_X86qvm7~m4OYCG$?$GpYKni1gOCZq@v5GIg-Kn`y8 oLqaF{cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I2hz;LRK$IOl?3i zGb}}9RcezP`frzP>J!m%ny@RS)b|cevoYFF%~kBQbE@ zU*6wm15R76^Oc*xwsRxc%Y+mmImQ6PF>6;uz1E);wzo>`#_!UFbziTpe5rr+*8;ai PlX==^?T_qB%=rcY@V6o@ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_076.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_076.car new file mode 100644 index 0000000000000000000000000000000000000000..33c1d2dc657d26b78db37553f10e37d7ae940a05 GIT binary patch literal 611 zcmc9nlvx( z2b*eoS!z*nW_})HFi3UKWZ@9wH3?#JY>yHi-8%Zc@sUB_9Tm?@X{8z$=4^YMv?wvP zAu$JTcvyi6QW<(0eOhSqlC8jnmNz8W1 z);FOerim}j zn300!VSH$qPcP?V=D6RdY)op5x$e!E6;)dwpSV@j`9Z&nDL7~rz1}kC?m^R+lK-df z&zEuL5Xy~E?5M1-RaOfZ6Gr`o1~^=Ftmul-M-(EWe+8Qo&l1ykzJcSEkW0|wl#rVM#^VRU literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_077.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_077.car new file mode 100644 index 0000000000000000000000000000000000000000..b5f0a7bd6e853ec1db2d777b94658b86a801c33a GIT binary patch literal 666 zcmc9nlvM*{|9R^1Qv3JQ*?fG` z>pIiRQj3Z+^Ya*IF@ltvP4ez7tWEqdDQV882_Cg#E-Hp8yG&{-^1?rTFi*Mseor6US0W8|LU&=Zi^=Kw9VQd z*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&dVu|5h^+Q4@`Q<~myJbwg zv~J2}GuC-8la@|2vh$vIuy`5U?A*khZ(G2D3K*d{K-gjou?6l4LViXH{O#}9&K4G} zc&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjDmuAdJLGvWTe?xeKENA?04bdIUd%gPV{dwBRO`Z~!U!A2R>| literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_078.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_078.car new file mode 100644 index 0000000000000000000000000000000000000000..111faccb97c3966e7f604d0d7829afb9730413ce GIT binary patch literal 669 zcmc9nlv(To)-&u^v(Te;566X^T1uEKcDoun5WAfE9Z$@ z^2sy3EVZaOGe3`U3nMYg7bT`PE=kOG$<{ZvOe|nXEP-1TG+8*rcuj(s9NVLWN4JiC zZ+v9XcSptZQd+6Tg*n?ECnc7_m2Q8>cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-Pt^6UQ`wHp3BXSKQQQ>7KwDk^?Zh`n}YR{OfY+&mwc(t<&bCS>)Z#MA~P zGs99uR^`TWyUbBeuJ3t&GDKRAF~B8m)ppi(k9mueH6v0$W)f0_2nZ8MKzu{;p!y-9 zll=0b+ubrIURpQhvKcF2^Ij$`ooHm|J?~)gGPc>di8(4NCUi+Uuq5J>tGrGm93#Qze zzxc*FdFgG+&t@g&eCq+nDWNb#vc(8&3q14*xev+9TTYl4{?&LGR>RUzuKhN#ME!kt>yeAs4$80DbnEMY<6?VH$uZCTzEF=hQ#=u2iGc|?w2>{@skSL#{TZgtYyZgX!IV4m z7vESXFTG9q*{sBzZ;&`86o!By*j73hlEb@%ZF}v%b0j+-IU8_tn*$b UEuCm&=RNOW@iMmAxrsU70D1akc>n+a literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_081.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_081.car new file mode 100644 index 0000000000000000000000000000000000000000..11f39f5e139778686db7520cd25ca89dfc2d8b66 GIT binary patch literal 270 zcmc9nlvW3HZMuccFEQ^Fi0$5NG$o5SO&Li?TV<^`jf);R*BvC zUAnOD>(!Mn^{@U~;I?QoPur~hk$p=Nvz<%~5(}76wKeWKrXg0N#kH#UQX->bdp~_bh}%|#7pa@TsC8!_cCeeL?b)z Pc?XM^vCYm+%=rcY*c*1m literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_082.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_082.car new file mode 100644 index 0000000000000000000000000000000000000000..7fce614026f840a39fc32d17760d8f83609fb6a0 GIT binary patch literal 357 zcmc9nlv@|>)4k8{eGgoI*R$(%S2%lcoi=n?}Cuki?6RR zy|1sEnDcEG*foUAT$GsF1aXat0oXO)kZft(bxcF7MvH4z@5$AN?#&ne_g}5bhH~wBr)63GO>U; zu>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpFc5Y(Mw-iu-67m32fMPmr p?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~hk$s6d-vBe-;!gko literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_084.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_084.car new file mode 100644 index 0000000000000000000000000000000000000000..702ba3c73e7ec0f210f561d3e1a2c00391f07c93 GIT binary patch literal 270 zcmc9nlvd&dkqayvRt5@gX!IV4m7vESXFTG9q*{mgr*-j<~i3Lok+8TEq(-5oC;#$>va`mBm^M(Jt zS7m8j`lY=n{=Vq^@+V1460;pG6APG8b*Uc`I>|2|y4@{f;-z&{E}OB=dzrL!qLH2V Pyo1Hd*kr6US0W8|LU&=Zi^=Kw9VQd*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm9 z3#Qzezxc*FdFgG+&t@%2%yu#{NGxDN)z-M{n1)!57T2oYldBKin=kzDy(&xN(l6~r z@%KgNmp@4YS!Ri0nff82ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&Nl#$ C7>>5I5E=o*ohPuWC?3!;#w(L~f6tMmbQ|Gn+=@YvD?>?hjth!*zo%xGz ztdp1Cru=NylEiE$6NAJ8ro<9tZH>E*X^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd z`IDq2iP?^pi3QB4y3`K|o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bG`up D);qF< literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_087.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_087.car new file mode 100644 index 0000000000000000000000000000000000000000..ec4d80d2cc67e480102782b4ad3109616d2f30e2 GIT binary patch literal 553 zcmc9nlvY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4INz8V% zOe|nV)unz&=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3unDcE5*h_>$0I)@g zsf|!C8G*e7_Ya}KK=S&Q6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKCg#9R z{o4IiJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W$Occp#(*$+7(f+ m^(TextrENOyL4gQ*Q+aE>R-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6tBgjxfP5^9CVrt`( z#B7&rePheS0*1sAxcP*flUN2YY4e{QDSNn#5E=cVAp&@vZZm?F%7XAEv{9)Cs!Z3H(&VQdsUXkrC-{M z;_r*jFMpD>Br)63GO>U;u>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpF Jc5Y(MHvrUK%{Bl4 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_089.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_089.car new file mode 100644 index 0000000000000000000000000000000000000000..b0f7d17d718fed3f961a3c0a2ee8b90319328cd0 GIT binary patch literal 666 zcmc9nlvDpRMNhv;TYCL%MSk9f#&s88 zn^dQlr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5d9l2r`tA6BZ?=HZDob zcFEQ^woEKwNGySyzkpA0(UFL!3%xUf_#e&cJ#aLA*T;Wssdt}QI41w9)0RyvgDc(s zj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jO1!Uo&<*kA*<0s;_2S!_r3=% zzw6m`x~yhtINRdoVNY&+bojXRX7gIWs`C@&W`RS3kg7$AsZEfOFfjm!#5W`#Htss6 zAy%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>lPm-1-W;7kOrd&2-o%b?n=|m$t?|BD{m$A*xP0ab00*WL;QHh8o15Br_T@m$Ke^S`qDzO{C dOBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vq^YHB$fp literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_090.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_090.car new file mode 100644 index 0000000000000000000000000000000000000000..a670d10f6bd395a87c16daf121cf652d1ca26b9f GIT binary patch literal 582 zcmc9nlv!=&ENm)c!VrnBLdd zP0aZg46&YX!@>?|JYLRKC^I4{#BbXm>PaJI$E!=Bvu=-@+ZRO#+G20!_6n;9Keu# zxcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2(u^6&)r3NF7TDE<{I)1DwFwg5 zCI(l54(pe^n3cR(H7IyDvYS%_A{z-Cy3{ zX9G@KuJe_fz_xSa7O-mw1qi}5#+G2$z@0)UaFATR{T^==}00NlOy59W4_Jm{CJs{gBW}e)-VtZW$9Vt($V$jCJ12 zq@@#$?7Zh4EMCSoJ2x@sTM8(82?aYMKn*aRwsu9-YyC-Kd#l85{4QNs_x0+^m-<(K SEpS^jnWt^m{>Z+>oNoYNN$dJ{ zo$~au)S}|d{5-}jjKnBkl$hGMBr)41Ti@6+v4A151a8p+KEXvtBAzbv&IsavG^_W( z(ezy(|FNaseP-d9{Hsn|Hn9w@bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(tiTh}!4 zr5ST#4qWNO_|Pz)Ue3qNalcR5nA8|^-J35fsStNJ-PAG;p5Vq&1nu6cX~@qQulDNEDhFV7R<-*D(#T8ZE9> zy(d>6x;J0=-+NV-#-(4{i{kH#&M$wGv?MXx(K4}sIk5!Uzv_pCPV&o#Zg()GR zWM+Cmq|@UUihaE<|&uoFG@^p zT9TOUlC5uGkXXQwSn@5g3~txj6;ZGCCxz{;61(xcbYb1st1DmXU;VYfZP8?&wpsfl z`<5hTJDMaGFr(_)skSL#{TZgtYyZgX!IV4m7vESXFTG9q*{sBzZ(G1_ zBjlAuiK&ecw;5Z4-3E8q0zSb-MAK2z|r(wAOEqX-hF1_nEb0wTNcR= z+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HEyw@ZS*LAj=v5TY15R z1&6Il|4e7T{~>;(`d{rRlODm(!Jq&oWc8xN)CMFopYDBr?|b0#yPjRA0V}In8qT(O zdDxR1A00j}z1h6BIzLekY$hR#(aaO)z7=an~^ou^KI|RlO%yAG$YR z_}_a~md2%D+Kb}vi_R~9k_3u*ON^LTKO}ULUp{oZTgJpo>!w^bW1aUhY3W2GJMVc1 Ni5Lty{_ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_094.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_094.car new file mode 100644 index 0000000000000000000000000000000000000000..55d21fe57b2dc54250cdfb084cc177b0fec989f1 GIT binary patch literal 724 zcmc9nlv-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6o$jn8rx6HYF(DbF` z|Ec@)Wt=&La^qrqPsuUQ{Jv0+H&Z-uQDSQ2lEiG6Y<&Zh!~%xIl5dG+a2s~2Z33I=42%lcoi=n z?}Cuki?6RRy|1sEnDcE5*foSg9pM^dOH|hoiUGioT(kWh+u6dR70-0oe;+P_|l9SDWV94&MdI22}S3k#MCB8Oqm#fU5y-5jk}I%h}CFut?E6w z`p~`k!vEf@vNSIJ(q0sQUvz%?lcXhy*^ZWp1cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-Q28&$%+^~l9*2j$mnx^@1#_!F(KhrbG3(_Rpep?_Cz+s0s!qX}8PC^5AG z$;_vFpWpi)xcshX*XgpFrQvLgmxn#M@zLSq(wog|tMe1(Qb1-ddc9@N-GintCI3&| zpD*LgA(R^z+j~lmdFJ220mWFcew}~b4 zS3UlvdKZMOUVMFp>3w}&q@elQ{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1M(unBBC zH_iel5<&sEC^5AOl1NMpz^+CPo5o$oG{kDOxK{O^Tz%-?eBpoZRaqLBerYd?zb`t! z{7KT1#B4{)!~*8T5@cQKhlEb@%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7 zz|ls?14sdi>9n;gqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns05xok Aq5uE@ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_096.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_096.car new file mode 100644 index 0000000000000000000000000000000000000000..d83d63b2feeee31adf5506c0f734b35447db4d3a GIT binary patch literal 302 zcmc9nlvtK$uA$e-7RC{rFBy-o3YM&nY47Gk)8LvgT>3( KX6Gj6d;){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15=4qR?Ke8_|=NkYYV7-z6 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_098.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_098.car new file mode 100644 index 0000000000000000000000000000000000000000..8c116435d70781f9562de8326dcb656b1156296d GIT binary patch literal 357 zcmc9nlv7kOrd&2-o%b?n=|m$t?|BD{m$A*x IP0aZQ0L3npPyhe` literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_099.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_099.car new file mode 100644 index 0000000000000000000000000000000000000000..85b3537fc7ba7bf273607a92bf8e32da9819c95b GIT binary patch literal 498 zcmc9nlv220mWFce zw}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOo=6MJz*&#t8!zxUFIk!*Y~_X86qvm z7~m4OYCG$?$GpYKnh{9G`~B0u`LvR^wxi)d!gh~2Hh}$o(W&)AuZz+4%h`j`tjs=% zIdD_Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~enV+zQxgsfhanA!;OtBECs zU)2u@o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bH0HsA>UOUklt8P3CEvwLh{iG3Ofq%*WG{ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_100.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_100.car new file mode 100644 index 0000000000000000000000000000000000000000..7d40f973748764fac144804ef5bc4f1d11e64dd8 GIT binary patch literal 443 zcmc9nlv){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15}apn*LEH^H;_mmv-%{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8n8S8UUAPxhMbt literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_101.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_101.car new file mode 100644 index 0000000000000000000000000000000000000000..de0a34a3e1715139b06767bacef752ef85ff8cae GIT binary patch literal 498 zcmc9nlv+^X%Y>mKtKCu>G5N=$8pIL*Wo!)fY=gii9y zhi-Svn0RU3l*?wU^Ij$`ooHm|J?~)gGPc>di8gRU(OzkW@YwC%z>LqC_(_F)7aPm literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_102.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_102.car new file mode 100644 index 0000000000000000000000000000000000000000..363e1f5a68504d6721d6606d2167800b4e39fdfb GIT binary patch literal 498 zcmc9nlvZAvD_|ml#}aw-k%JSmSYTXiCeXub=_m$;$+Q;MTx16 zOA@nPvh__Y6AKs;OTHzR!L3q1By^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*x zP0acBnh|6RAvY~bOl^YLVqgTe1#ZQn*IVY?J!tw;^8eKR`GCnda|q?e#rB?(W1jha zp&oChcp{Q(wwy38{HyUWtcInbT>EWeiTqWMf2rODA*&Z(UtxM*Uw27jwv&lPVgXZP z3EX%>-bXUt@1Oq7rxW(!qwSZo2cub;eG+rNfkTv#ixDAe wU;_3la)|C!+Z3?=3{&T||LGID|L;DdTdcZZ%ANU(Z>*D--lqI)R$|UK0CbMje*gdg literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_103.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_103.car new file mode 100644 index 0000000000000000000000000000000000000000..ab4683f1460ffdd859cbecc84f1bfa22ecf12576 GIT binary patch literal 639 zcmc9nlvvc}ambr=?5Z)c%;6mr^5gTQp$O zBxbv0>zi067BD21d`m2YTcv(T=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3u znDcEi6UY`qZd#O>+61x1zzA#$+=@l7x6HYF(DbF`|Ec@)Wt=&La^qrqPsuUQ{Jv0+ zH&Z+j$u(O}m>2%lcoi=n?}Cuki?6RRy|1skBr)5`#3HePDX|1@ zJR$ER8SnQ`|K`(5-rA0a0}0zb=GXxC_eH1H54|o%+b?GiMzb>eB<8?P{o4IiJ+NEd z;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W+%ZC*(6k$Qzh|!vs0xcdBg)Sbv78^VrV>XTP1emcj>~q auUA*T)W7;`f!m_VJZ-b~NA@M=d;@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_L}D3S zsoy{Sn@=lwYdabaBy9JXWAhiV7oA!^^tu>rznnc7&C2YPnDZ?KRI>|2|y4@{f;-z&{E}OB=dzrL!qLH2Vyo1Hd*k+Gv>scZvgp7vWEZw literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_105.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_105.car new file mode 100644 index 0000000000000000000000000000000000000000..e0d18ba8c146e233cef5eaf994a3b2486a2bf288 GIT binary patch literal 669 zcmc9nlv&I&Ocn^ z%x0#Sr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5dup1Q}|w^~u83wwJB^ zld74&IkWVpX~^)bwiJ}y#rDb~;o7B~MTx16OA@nPvh__Y5(^j-OW@{*rHHJ`jpcTk zqnupd^ZsOrv>aoAOWdmMtm_{07AI>)B$mOI`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jb zVzm8o_FyzCvrl5qw-k_L2pNgw7)!8Yz9Ctnen{vfzkKL+w~UFG)=jx=#yan1($a}W zcHZ+27B6F)otv2RZ421TghCxKge}GpTj2g66j(^E+5V30Y+=!gXFBY^4;MbP5j?*6 zm|R-)pSF|B)-_FhX~v8cQH0_Z95jSt6X9qB1B{?qyCUkf{-m(IRbn@OmoBXPdUfSX V{j0wgxGkE@(>7~=WM5*=Hvnoz9w-0+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_106.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_106.car new file mode 100644 index 0000000000000000000000000000000000000000..b6a2bde25033053cde7105e2620d8f9ab9348736 GIT binary patch literal 585 zcmc9nlv!=&ENm)c!VrnBLdd zP0ab$!w9m)Wb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^xxVN9$q;Ed#sHVNRohwDJ?1S=){H=Mjo&~0n@=lwYdabaBy9JXWApb# zr`8X>E=JogXAefRGW#Uvd;@!#kdc5PImQy~7-TQ29}+srFCV(yEo0)PbyF^zvCey$ zv~;48o%g(h#mm@c=O*TS+XD77p=dzZVhphb?qx!Oh2-V!@7T^37Oi-u!~Xkl;X@n2 ch0A@({kpKVy literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_107.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_107.car new file mode 100644 index 0000000000000000000000000000000000000000..155b9ce9e8545a833121b52bd9c306fef1f2646f GIT binary patch literal 727 zcmc9nlvikhkgdPR-liHAYtqH!QfYa{to^-;LA0PcrZ* zID9+3EVZaOGe3{9hY_UQWb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^6L6{h#~brW;ozW&<%RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(!z!5+w zz5qkG#u(yfxcP*l4k>K5zhgUFShV7q4*T!Jg%526k8eIEmlpk}?c}m`O%q?5F(bK} zQ0Raoijdb3jy5pB2*R~1qF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns E066b4b^rhX literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_108.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_108.car new file mode 100644 index 0000000000000000000000000000000000000000..d4916498ad6cd655895653a7d0964d08dcca0ddf GIT binary patch literal 669 zcmc9nlv15zLfkwb$`B$ zGlx)aTx{hbv%&q5)xxF~lqIz#azD+;O?l^`=%%$yI(c z_O0n@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_L}D3S zsoy{Sn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uve47P!joBpc-oo0%50jGS zY?|OvE9RnNn6k^HrXnx=(+BgE%kLK@rZz!bV_*Pw%{L@l)~<+ptv@MjZ21o-W+mo)O92HGA@3pulqH7K)DH=r^%~q0APe-4`GWj#1?oM6N*TrfZG0!?QCJuif20PzYiBav=KbM z`IuZ<^q;nq%hokbd}+pp$H%p?@a0PTJ=7ytkO literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_110.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_110.car new file mode 100644 index 0000000000000000000000000000000000000000..3d567107372d588a6502cc1cb374f6e586556ccd GIT binary patch literal 727 zcmc9nlvaoAOWdmMtm_{07AI>)B$mOI z`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jbVzm8o_FyzCvrl5qw=H1T5OO@iHO7{xt|8

%H!6L6{h#~ JbrW;G0RXqJC?)^^ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_111.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_111.car new file mode 100644 index 0000000000000000000000000000000000000000..9fbceead2640ec3395e9e8d666fec6607b185b38 GIT binary patch literal 868 zcmc9nlvJauy|~ zHZDobcFEQ^u}CanNGyR{6qX{gDmRwfWsY)keb4)oA<}Y;0WNW?wzIB#%v+qS8If29 zSL*jq|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Ip0!1jv-_ul4C5vj`@aU ziTWX-ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKXKFB1wOge}GpTj2g6 z6j(^E+5V30Y+=!gXFBY^4;MbP5j?*6m|R-)pSF|B)-_FhX~vwG12=VVR0;RiBNwk7 zlwY&y*7@t=Pqe-s{wi=ydqF^k{$0Io8^J-d==GL4cMqDrl>9$+f4+<}hfr=@Z0{*K z=9%9Y>hWfZCn6keV1f}eJJmJ?tUtrldF_Atgzo>l&*&DbE|_v>{^A?!ezP`frzP>I} z(0uLwsvg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB=PNgXZ6_pX2q{8xv;o-B$f;)Sim2E6 klfw2^iQV{Jy0Gr+)s-*xul`!#wrDa>+pPVOeTg~W0K=GhnE(I) literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_112.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_112.car new file mode 100644 index 0000000000000000000000000000000000000000..b13ffc5ef4503905a5e44eb687cc5551a8c913d4 GIT binary patch literal 443 zcmc9nlvXV~=Hy$*zZBtSTzc0odOF_a{T73^d)~p~Wo)x^ z6LY?SElE(!c;_>h=a0n$o7@e}d5R@~C6)j0>D;^4V3F0q-2CNNkt{L5u%vOEC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$Enw8lnF$ZocAzuRkIBL2) literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_113.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_113.car new file mode 100644 index 0000000000000000000000000000000000000000..a167962b079963d95058b3d395a665f68bbaae4c GIT binary patch literal 499 zcmc9nlvx%F*d z!?cI#WvNBQnfZB)vl&6k)!BqKBNvCAnroELYVN)Hg6FYmHxIuR+}yW^El0DCk9kpI zYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+ptv@MjZgq(OWdmMtm_{07AI>)EJ{pmgt*Pb62ookhlEb@ z%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7wtz!`P=F!XVga@V?tMb;LkcOs rfBH9{R`S+%G#p6S?lH&a?~6{YA9`JkwqMR3jAmu_Nz8$pN+?DEiQ&|{ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_114.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_114.car new file mode 100644 index 0000000000000000000000000000000000000000..8aedeb0461b0c2c30d9a9af20f8788c9d5059de1 GIT binary patch literal 498 zcmc9nlvv^F;sYS(^`FV`58HrK8C^5BZNn*B3w!VQ;VgW;93EZLt#f*18b9w$)Jg~{#(441O zl2rb`r*rRGgGE*cbMu#9O)P^e-EzXb@UO%m}B$zMW@yey)H)EFJ})%voiZ6=6p*5`IV57ixN{CA$~Qn1pDdFiQvp3z8)U7?w2dI;J63 kqs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7%*0M^seF#rGn literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_115.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_115.car new file mode 100644 index 0000000000000000000000000000000000000000..a0c640b07ca76c496c1df308c708b2b13dcea321 GIT binary patch literal 639 zcmc9nlvK@y z$6iY>OD!tS%+F&?0jUm45m}WR%k45pIk~>){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15c!VrnBLddU6PpXWMYw6z?4`5H=a-! zBN^}aPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8*jnzjl9B5A0TVxZt}l zKb*}YF>u{q-rr{fPFt??m7Bn}b0aw92`NH^ya8s&uU!%KT7Od5-YT&hze^X^eZ9K! WrT*1l3)~h>=4qR?Ke8_|=NkY!i4!aU literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_116.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_116.car new file mode 100644 index 0000000000000000000000000000000000000000..7c57678094bf26b97b64b2678a5fd8ec8f5cdc41 GIT binary patch literal 499 zcmc9nlv`^{yLA@?U?tTxp); z6lj!QmReMtnV-ivn-QcuX!FUB&&1Lt75BF&EPJ{8%&8pnzHmQBrA@iTK6fJ3TNWjz zHZ4iacFEQ^Fi9+6NG$o5SO&Lir`o1~^=Ftmul-M-(EWe+8Qo&l1ykY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4A=6p*5 zxh*V3WL0h~x62&m7RQr4x%H!){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15_D5ZUk!>|{#m{|pPIRAqrB~<7~=WZ#m+Y)6yC0%laV?Nr+ou>K5F z=e7UofKBNBzx#}CvFd^;cjhm?u})rkoAR?+OA@o4ObikWm{7Gf?mDI+R-?tWs`upT zL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;iZ2^0UP%t9}oCVlR@K7TZ^+T_V(e}&PgVC(aK8ZPSQwaqz0QAG~761SM literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_118.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_118.car new file mode 100644 index 0000000000000000000000000000000000000000..01004f699e5e887fc6e0d9826bb783251cb61e14 GIT binary patch literal 554 zcmc9nlvK zLAHbGWvNBQnfZB)vl&6kgEpW1_)IKaQgMHa!m^jU&z#CJ?+f>HRN9nV>~kkly=75i zYSWU$Y?o|(1Czu8hQyL@iDhuRcB*X(Sbv78^V{Ja}#sEy#|K>p#Vb)0VA+2aPJceJEV}> za>Bguug1f$8kUA~?YD^~@>f0nrFs{HtX_P5h3S2LU2sTQfI|vyJR$ER8SnQ`|K`(5 i-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Io|*VHSab6 literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_119.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_119.car new file mode 100644 index 0000000000000000000000000000000000000000..e23d75eaa5104c8fc3e32e51175a981505f7b38f GIT binary patch literal 695 zcmc9nlv{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=ZaF=}T{;D3>t?qEacVB)un@3{c zy1%@?&jy^fT<0q{fo=irKrsOa$~Pp}>{Qznu>K5F=e7Uo6T1KJKBHT# zx?swk`HOF?lb7D6{0y*JV9y$WJ&UZZan~^ou^KI|RlO%yAG$YR_}_a~md2%D+Kb}v zi_R~9l9ZV9Ed}H@LgBI~F|`pAVJ4OsZc{%bbdp~_bh}%|#7pa@TsC8!_cCeeL?b)z zc?XM^vCYnfSwbk75SADiU|6ztMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*VTQr%cZPxzC IzQmkw0CPwvJpcdz literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_120.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_120.car new file mode 100644 index 0000000000000000000000000000000000000000..47601e49add1cc2c4c38d89a4c1e015e7063bda1 GIT binary patch literal 585 zcmc9nlvC}%h+b; zCgywtTauud@y=&1&mW5iHn|&`^At;x%K!It?pp;p7w@` zV@|$>{7VsT#-(@dQvS3Cp4f7J{RfG8GRjktyuAG#+u6dR70-0oe;+P_|l9yG3VPBuxkjJiExdH1=!DU*AR*lB-i-;)4%z&lDD>_;XuN6k2yAf bUvz5y(CcEf{c`qTG%K@DVh-F?LU8~9P>T9a literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_121.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_121.car new file mode 100644 index 0000000000000000000000000000000000000000..6566c8d4e03c4c611f5f1d360653e1ee2f0cd190 GIT binary patch literal 810 zcmc9nlv0P^&Kdpf$wwz!8L1Lba^3=pKxYF(K*v=Lft$3!x{`+v@LmR>4n~%w*MgM6#xoln2 z#Fu8wi8*kk^7CbP7Ch|yZAvD_|ml#}aw z-k%JSmSYTXiCeXub=_m$;$+PTL_nB80^%Ez2h|S=o#dAf-R_n#@zS~}m(5t`y-Zp< z(a6qw-ofH!Y_oF{bH0HsNl?sq=QEe*kHrI<+zriniX}buc%7`BfxK z48Wm{Y)Rv;V;W*LT3oAoPp&?6Z@%!q_o^(7OTV-i#org5U;ZR1G3Og3P6@>fU`V!D zfNg%m}B$zMW@yey)H)EFJ})%voiZ2g+C!*gM)@p xBq1DafEhGvS46$mpA@#YO6`Tn~1^|tbYBc}= literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_122.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_122.car new file mode 100644 index 0000000000000000000000000000000000000000..c0b6743db2966f329414b3dbfddd9500e453ceaa GIT binary patch literal 726 zcmc9nlv3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6LY?SEeT5zS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S=){H<{Vq%G5iTWX-ll=0b z+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKX$Ag>VeIKmcVh%In`eA;3>?F|#h zoO}!Umm=JZOYhpH{Amq5vE}^w4-)fal&2zjdHXxIvxP+~p6RgvK3w?FM)3INV{&QH zf7(tiTh}!4r5ST#4%}2iK?@F=1jUSZK682gSUj-F-O!w;SOQp5`Tw5Iy=x5?Ssl#H zUw#$gXcGgBplRH7Ohc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz5{gNBd?k!-O5 z+XD9lp{PR&8oz(~H=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_rW%fY|8bZDX0CB!I A?EnA( literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_123.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_123.car new file mode 100644 index 0000000000000000000000000000000000000000..bb7dd19075baa7c25ac8858d04de0167af6f7507 GIT binary patch literal 868 zcmc9nlvcDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I0fYBuoRJ1xv|_X zbCi?od)}W6k(Of&aEV*Bops$~-r{7<2!x|eAddcqzIaEjTYCc-jk~j-J37`@4YHZEP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>mr5g*Y2%m}B$zMW@yey)H)EFJ})%voiZ2xtdTMfFp{K*AR|2z>KK1E23WOPYT;x hC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9f74Yk)S}|d{5-}Kkm|4$kyW{|+%9vJlk0olpA3h^-U}j3m6hhz9p8ytx`WEbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^vCYm+ z%=xy35o8M?Hz8~>hS&nP;?ox6X>XV~=Hy$*zZBtSTzc0oX{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKs^vj1LX->E(RP9QXT_ zjY*9$*S-0&qH62o6Ss;wKj?Qc1qV%nV#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`J zx%tblA{=dEfDtr}yN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(WU`rOg z-ZJOzLDQF#|EKQHmvQD0%8iTdJtfCH^ZP*D--lqI)R$|V#U{LS_M##I15>p$HLWhu>AaP14W)Lnnu>iXq y9{PmR98#S6{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYU50a}1MHc|3VOIeF literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_125.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_125.car new file mode 100644 index 0000000000000000000000000000000000000000..1227ecca0da229434b95588f6eeeb834b425d6be GIT binary patch literal 865 zcmc9nlv(t*PhtAm{OL-UI^15e z>g%PKr4|)u=I1faVgxBSo8;YFSey7^Qqr7F6Fh3gTvQBGcA3;vi6!3>%iwmcT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_ zvTsRZwxda60W+$uoobr`)}LYOy!JnRLihjOXLO5I7fiV`fANiV^3vOspUq0l`IZ85 zT3Cw6s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QX2hbz)JBNYOe`^+rhZ81B)@#< zcDIa)m)1?WY{ok8Wzy1#Mt0uw4i+zCo1L4O^KA<_00@N_!WLtQEpXp|+G0HI4HL(l zd<*%PBHWBi@7ksOX$?HF<^1{&67yt~ry>Q^_IGS&3yW4f(_#O8xbUHk;PK7J+Gv>q`xT#Mv{5OO*$a2R2R$ee+!C|Y?Khv4-e~90x{#QH7q(|^GIA{_S zGv4{k<@sarz$SM?bDm;JQu+U$&b@057Fiw4&0l^M;b;@gSZmyMOhc?ji)&Ty$<>GM z%@_XnUX`VB>6iAR`1_*s%bz4A=6nkVg+E|~T(T%JwE@ZDgi;bDxCsRslFKc?kqQqO wLdgLsxc&a=-+WrhTielaAYr@59Gkx{I<){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15lS_;K z({^&%x~7RQ&6pE&;HF;r^?#094S$}q+T8Z3(h6%86+bA%Ub`}@ecfMfo)1iE;GkLb zddr-<2Tfl}{-3%(U&fh3C^s&)_mmv-% z_y65zbc(}eDRff+ literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_127.car b/hubble-commit/tests/fixtures/mst-test-suite/cars/exhaustive/exhaustive_127.car new file mode 100644 index 0000000000000000000000000000000000000000..cc070122043f94bc8d62ab7548ac6dc2814c648b GIT binary patch literal 1009 zcmc9nlv9Akh>+^X%Y>mKtKCu>G5N=$8B zl9=t1t#4wPSiq22@-49pZk75Wp_Babq1)XuCSF=M<+2&;yq8H!CmPv#&pTMWjBR#q zV$QcMj38SGxd~y5F~kvDKw{;!m``9{wtDO?yE=hW=f>Z5zQslc1RK&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw& z>R@jE@~a3(n;2jOP2;X(8e%nCT&sFdu0C{czVN^Isw|C5zqA*{-xr-<{v;_e=Ns6P zMX$HaxqHy`rR4vq`}1X-IfQcKVtY@?G0*(IP>(lLJP~1ufeD5sJJmJ?tUtrldF_At zgzo>l&*&DbE|_v>{^A?!EWeiTqWMf2rODA*&Z(UtxM*Ul%F-zjl9B5A0TVxZt}lKb*}YF>u{q-rr{fPFt?? zm7Bn}b0Z|x5Q=-i5Uw_{Ky@{tRE^|nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S z9*kyX_Cazrp#%YrP(ofqINAU+)vR3+^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEv LwLh{iG3Ofq)#1KA literal 0 HcmV?d00001 diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_000.json new file mode 100644 index 0000000..437fcab --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_000.json @@ -0,0 +1,16 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [], + "deleted_nodes": [], + "record_ops": [], + "proof_nodes": [], + "inductive_proof_nodes": [], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_002.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_002.json new file mode 100644 index 0000000..336ed49 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_002.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 2", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_002.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_004.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_004.json new file mode 100644 index 0000000..e664b0c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_004.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 4", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_004.car" + }, + "results": { + "created_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + } + ], + "proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "inductive_proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_006.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_006.json new file mode 100644 index 0000000..8bfa8da --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_006.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 6", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_006.car" + }, + "results": { + "created_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + } + ], + "proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_008.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_008.json new file mode 100644 index 0000000..4e8ca77 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_008.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 8", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_008.car" + }, + "results": { + "created_nodes": [ + "bafyreibuge23ei2mn65tsigxryrk4hd4jzr4f7qpcotuarzatkcjijx5by" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + } + ], + "proof_nodes": [ + "bafyreibuge23ei2mn65tsigxryrk4hd4jzr4f7qpcotuarzatkcjijx5by" + ], + "inductive_proof_nodes": [ + "bafyreibuge23ei2mn65tsigxryrk4hd4jzr4f7qpcotuarzatkcjijx5by" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_010.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_010.json new file mode 100644 index 0000000..4557798 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_010.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 10", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_010.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreiguog5uqhiplovp6imll4lalixhi44pdq7nvce66dhq334fe2y25y" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreiguog5uqhiplovp6imll4lalixhi44pdq7nvce66dhq334fe2y25y" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreiguog5uqhiplovp6imll4lalixhi44pdq7nvce66dhq334fe2y25y" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_012.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_012.json new file mode 100644 index 0000000..819ea9c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_012.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 12", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_012.car" + }, + "results": { + "created_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihg75wi2uk2byx35gyfvqcl6kfdlbcwdj7h5exrwx62ept4jjdgfa" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + } + ], + "proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihg75wi2uk2byx35gyfvqcl6kfdlbcwdj7h5exrwx62ept4jjdgfa" + ], + "inductive_proof_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihg75wi2uk2byx35gyfvqcl6kfdlbcwdj7h5exrwx62ept4jjdgfa" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_014.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_014.json new file mode 100644 index 0000000..8a34483 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_014.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 14", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_014.car" + }, + "results": { + "created_nodes": [ + "bafyreicjols3jtm4j3dsc77juxfabowf63frxfektqkwad5znxz5b35s24", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + } + ], + "proof_nodes": [ + "bafyreicjols3jtm4j3dsc77juxfabowf63frxfektqkwad5znxz5b35s24", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreicjols3jtm4j3dsc77juxfabowf63frxfektqkwad5znxz5b35s24", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_016.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_016.json new file mode 100644 index 0000000..6398ba6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_016.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 16", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_016.car" + }, + "results": { + "created_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "inductive_proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_018.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_018.json new file mode 100644 index 0000000..5a750f3 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_018.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 18", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_018.car" + }, + "results": { + "created_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvvsyrgi4dilf4glbc4k3gqznb2l2sd4xgc6htlvozfsatft5gty" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvvsyrgi4dilf4glbc4k3gqznb2l2sd4xgc6htlvozfsatft5gty" + ], + "inductive_proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvvsyrgi4dilf4glbc4k3gqznb2l2sd4xgc6htlvozfsatft5gty" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_020.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_020.json new file mode 100644 index 0000000..7b34118 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_020.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 20", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_020.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_022.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_022.json new file mode 100644 index 0000000..992a624 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_022.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 22", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_022.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreidc2yxcm3e6ybonwfspye6muz7zduivowmphl2sfthcf2oqitoqri" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreidc2yxcm3e6ybonwfspye6muz7zduivowmphl2sfthcf2oqitoqri" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreidc2yxcm3e6ybonwfspye6muz7zduivowmphl2sfthcf2oqitoqri" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_024.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_024.json new file mode 100644 index 0000000..c10e10d --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_024.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 24", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_024.car" + }, + "results": { + "created_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigs75b5xluzpf7qs26zgvn7zvprcvr7v6i3ciezcg2c3b6vgb3yoe" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigs75b5xluzpf7qs26zgvn7zvprcvr7v6i3ciezcg2c3b6vgb3yoe" + ], + "inductive_proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigs75b5xluzpf7qs26zgvn7zvprcvr7v6i3ciezcg2c3b6vgb3yoe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_026.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_026.json new file mode 100644 index 0000000..1c4d8e6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_026.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 26", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_026.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifjob5lhtbgf5nikaoriuo5v4x46gbfz3tpedgb43cdkcgpyvhqrm" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifjob5lhtbgf5nikaoriuo5v4x46gbfz3tpedgb43cdkcgpyvhqrm" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifjob5lhtbgf5nikaoriuo5v4x46gbfz3tpedgb43cdkcgpyvhqrm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_028.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_028.json new file mode 100644 index 0000000..c74fc06 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_028.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 28", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_028.car" + }, + "results": { + "created_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvjrhzvqikiryc4ggn6murt6a7g6q2ejbuizgilgsfg6j2ubbyai", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvjrhzvqikiryc4ggn6murt6a7g6q2ejbuizgilgsfg6j2ubbyai", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvjrhzvqikiryc4ggn6murt6a7g6q2ejbuizgilgsfg6j2ubbyai", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_030.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_030.json new file mode 100644 index 0000000..d8829e9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_030.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 30", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_030.car" + }, + "results": { + "created_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidwn4g57tpgyooyayq46nl54zr632x3xv4nsybl7q567u7ntu2omy", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidwn4g57tpgyooyayq46nl54zr632x3xv4nsybl7q567u7ntu2omy", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidwn4g57tpgyooyayq46nl54zr632x3xv4nsybl7q567u7ntu2omy", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_032.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_032.json new file mode 100644 index 0000000..b33acae --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_032.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 32", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_032.car" + }, + "results": { + "created_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "inductive_proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_034.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_034.json new file mode 100644 index 0000000..1f2d165 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_034.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 34", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_034.car" + }, + "results": { + "created_nodes": [ + "bafyreifosuhlitfvkucf6fhhviz6xfmmactcvvkxpczxaxtcgwxzufxynu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreifosuhlitfvkucf6fhhviz6xfmmactcvvkxpczxaxtcgwxzufxynu" + ], + "inductive_proof_nodes": [ + "bafyreifosuhlitfvkucf6fhhviz6xfmmactcvvkxpczxaxtcgwxzufxynu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_036.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_036.json new file mode 100644 index 0000000..32697e2 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_036.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 36", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_036.car" + }, + "results": { + "created_nodes": [ + "bafyreicx52h4x2rgdbjjd6slcglx6a5l4ykmaerwvd5rcx6qxvskd6tkei", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicx52h4x2rgdbjjd6slcglx6a5l4ykmaerwvd5rcx6qxvskd6tkei", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "inductive_proof_nodes": [ + "bafyreicx52h4x2rgdbjjd6slcglx6a5l4ykmaerwvd5rcx6qxvskd6tkei", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_038.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_038.json new file mode 100644 index 0000000..f0e917b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_038.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 38", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_038.car" + }, + "results": { + "created_nodes": [ + "bafyreidhj3rcvgxrwevewrzwdyh6lxzo7wpzgfo4jhpzzuqlry7td6db5i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreidhj3rcvgxrwevewrzwdyh6lxzo7wpzgfo4jhpzzuqlry7td6db5i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "inductive_proof_nodes": [ + "bafyreidhj3rcvgxrwevewrzwdyh6lxzo7wpzgfo4jhpzzuqlry7td6db5i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_040.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_040.json new file mode 100644 index 0000000..b38b427 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_040.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 40", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_040.car" + }, + "results": { + "created_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreihgx5nipbqnvti5ko35swbtsersq22fg2tcvn2la7zed4sg7pzpx4" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreihgx5nipbqnvti5ko35swbtsersq22fg2tcvn2la7zed4sg7pzpx4" + ], + "inductive_proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreihgx5nipbqnvti5ko35swbtsersq22fg2tcvn2la7zed4sg7pzpx4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_042.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_042.json new file mode 100644 index 0000000..37057bd --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_042.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 42", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_042.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibio7zp4x3cxruhfjlxdfpfcp5inh3pn4dq6lb5d7pd373a55xmpi", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibio7zp4x3cxruhfjlxdfpfcp5inh3pn4dq6lb5d7pd373a55xmpi", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibio7zp4x3cxruhfjlxdfpfcp5inh3pn4dq6lb5d7pd373a55xmpi", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_044.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_044.json new file mode 100644 index 0000000..3731304 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_044.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 44", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_044.car" + }, + "results": { + "created_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreig5awr2zjiop7rjzyf7hkdn5s34zyh5ivftvo6fhoqvgul6r2cfea", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreig5awr2zjiop7rjzyf7hkdn5s34zyh5ivftvo6fhoqvgul6r2cfea", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreig5awr2zjiop7rjzyf7hkdn5s34zyh5ivftvo6fhoqvgul6r2cfea", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_046.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_046.json new file mode 100644 index 0000000..5ef3373 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_046.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 46", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_046.car" + }, + "results": { + "created_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihksf4vlzkzh5pbntfre45dhgc4fjq6d4c5tem46kutjwyreleuz4" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihksf4vlzkzh5pbntfre45dhgc4fjq6d4c5tem46kutjwyreleuz4" + ], + "inductive_proof_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihksf4vlzkzh5pbntfre45dhgc4fjq6d4c5tem46kutjwyreleuz4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_048.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_048.json new file mode 100644 index 0000000..d5a1b6e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_048.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 48", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_048.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_050.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_050.json new file mode 100644 index 0000000..2778b80 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_050.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 50", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_050.car" + }, + "results": { + "created_nodes": [ + "bafyreiajozglixx7ba5tbgpbakm2vs75ptcqtpekrhpx3prazwqqnzrzbq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiajozglixx7ba5tbgpbakm2vs75ptcqtpekrhpx3prazwqqnzrzbq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "inductive_proof_nodes": [ + "bafyreiajozglixx7ba5tbgpbakm2vs75ptcqtpekrhpx3prazwqqnzrzbq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_052.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_052.json new file mode 100644 index 0000000..1eccaf3 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_052.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 52", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_052.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifcklrud6jqhh3e5stlc2aeefzawktmd3hdsp6oogerh5s6rapywq" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifcklrud6jqhh3e5stlc2aeefzawktmd3hdsp6oogerh5s6rapywq" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifcklrud6jqhh3e5stlc2aeefzawktmd3hdsp6oogerh5s6rapywq" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_054.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_054.json new file mode 100644 index 0000000..569adb0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_054.json @@ -0,0 +1,48 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 54", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_054.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifnuyike2dtfcn2kcwh4lfikzar5g23kog42gvbgxlaqcorxomus4" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifnuyike2dtfcn2kcwh4lfikzar5g23kog42gvbgxlaqcorxomus4" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreifnuyike2dtfcn2kcwh4lfikzar5g23kog42gvbgxlaqcorxomus4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_056.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_056.json new file mode 100644 index 0000000..15d89ff --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_056.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 56", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_056.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifxdnydtrn6ok4hy43z7voo42rz6lgx7xffvka6gpdqspy2tajlfa" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifxdnydtrn6ok4hy43z7voo42rz6lgx7xffvka6gpdqspy2tajlfa" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifxdnydtrn6ok4hy43z7voo42rz6lgx7xffvka6gpdqspy2tajlfa" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_058.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_058.json new file mode 100644 index 0000000..2e5125a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_058.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 58", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_058.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihfirziuzp5hu7cli2jxhip6r7nvbxq5uf53vjrjpqwzutqqhjuka" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihfirziuzp5hu7cli2jxhip6r7nvbxq5uf53vjrjpqwzutqqhjuka" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihfirziuzp5hu7cli2jxhip6r7nvbxq5uf53vjrjpqwzutqqhjuka" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_060.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_060.json new file mode 100644 index 0000000..fedd6b2 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_060.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 60", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_060.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreid6kpunh3ezcq5hubkslaipv7qmpwsfl2pdmf762kw67rghokpw4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreid6kpunh3ezcq5hubkslaipv7qmpwsfl2pdmf762kw67rghokpw4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreid6kpunh3ezcq5hubkslaipv7qmpwsfl2pdmf762kw67rghokpw4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_062.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_062.json new file mode 100644 index 0000000..a92fdad --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_062.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 62", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_062.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif226sy5432sls4wavrlmrot5tprgfx4wgt4sjviitur5dnc6tmsu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif226sy5432sls4wavrlmrot5tprgfx4wgt4sjviitur5dnc6tmsu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif226sy5432sls4wavrlmrot5tprgfx4wgt4sjviitur5dnc6tmsu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_064.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_064.json new file mode 100644 index 0000000..786d206 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_064.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 64", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_064.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_066.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_066.json new file mode 100644 index 0000000..0031890 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_066.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 66", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_066.car" + }, + "results": { + "created_nodes": [ + "bafyreic3okp2px7zflpramrkdlzxxfkbnr6mwwleffwghnzrduqtwm5d4m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic3okp2px7zflpramrkdlzxxfkbnr6mwwleffwghnzrduqtwm5d4m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreic3okp2px7zflpramrkdlzxxfkbnr6mwwleffwghnzrduqtwm5d4m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_068.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_068.json new file mode 100644 index 0000000..de2d8f3 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_068.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 68", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_068.car" + }, + "results": { + "created_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq" + ], + "inductive_proof_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_070.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_070.json new file mode 100644 index 0000000..d90dbac --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_070.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 70", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_070.car" + }, + "results": { + "created_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq", + "bafyreihyc7llyz4jtctbeq6gq34oezr4fxocf4radtfvqcujdkexvfpnum" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq", + "bafyreihyc7llyz4jtctbeq6gq34oezr4fxocf4radtfvqcujdkexvfpnum" + ], + "inductive_proof_nodes": [ + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq", + "bafyreihyc7llyz4jtctbeq6gq34oezr4fxocf4radtfvqcujdkexvfpnum" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_072.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_072.json new file mode 100644 index 0000000..a1019cb --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_072.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 72", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_072.car" + }, + "results": { + "created_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigiip4q7ee2yc3rtacf423oqjzzdf6gvvnwhzkayecfuzyfp3l7m4" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigiip4q7ee2yc3rtacf423oqjzzdf6gvvnwhzkayecfuzyfp3l7m4" + ], + "inductive_proof_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigiip4q7ee2yc3rtacf423oqjzzdf6gvvnwhzkayecfuzyfp3l7m4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_074.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_074.json new file mode 100644 index 0000000..67c8849 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_074.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 74", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_074.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4vx4ont4zw6yxsh34bk3bdwtpzngrygy3wy2tr53k2ge7bqjw3m", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4vx4ont4zw6yxsh34bk3bdwtpzngrygy3wy2tr53k2ge7bqjw3m", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreia4vx4ont4zw6yxsh34bk3bdwtpzngrygy3wy2tr53k2ge7bqjw3m", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_076.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_076.json new file mode 100644 index 0000000..4e60aa2 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_076.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 76", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_076.car" + }, + "results": { + "created_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidcl5d7j7ooz3wa2xah5htmtagq2kupnq3qjrvp7zo5nuqhfoageu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidcl5d7j7ooz3wa2xah5htmtagq2kupnq3qjrvp7zo5nuqhfoageu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidcl5d7j7ooz3wa2xah5htmtagq2kupnq3qjrvp7zo5nuqhfoageu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_078.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_078.json new file mode 100644 index 0000000..c001ea0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_078.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 78", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_078.car" + }, + "results": { + "created_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_080.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_080.json new file mode 100644 index 0000000..c0ff33f --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_080.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 80", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_080.car" + }, + "results": { + "created_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_082.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_082.json new file mode 100644 index 0000000..fbc9c2a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_082.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 82", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_082.car" + }, + "results": { + "created_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_084.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_084.json new file mode 100644 index 0000000..e9e2bfe --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_084.json @@ -0,0 +1,40 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 84", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_084.car" + }, + "results": { + "created_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "inductive_proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_086.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_086.json new file mode 100644 index 0000000..dfd5466 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_086.json @@ -0,0 +1,48 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 86", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_086.car" + }, + "results": { + "created_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "inductive_proof_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_088.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_088.json new file mode 100644 index 0000000..c551e66 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_088.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 88", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_088.car" + }, + "results": { + "created_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_090.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_090.json new file mode 100644 index 0000000..1992bd4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_090.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 90", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_090.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_092.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_092.json new file mode 100644 index 0000000..b91dabf --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_092.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 92", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_092.car" + }, + "results": { + "created_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_094.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_094.json new file mode 100644 index 0000000..768b2a7 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_094.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 94", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_094.car" + }, + "results": { + "created_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_096.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_096.json new file mode 100644 index 0000000..3872c48 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_096.json @@ -0,0 +1,38 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 96", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_096.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_098.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_098.json new file mode 100644 index 0000000..d75b10e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_098.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 98", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_098.car" + }, + "results": { + "created_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_100.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_100.json new file mode 100644 index 0000000..c22a9c9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_100.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 100", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_100.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_102.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_102.json new file mode 100644 index 0000000..d93a556 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_102.json @@ -0,0 +1,51 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 102", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_102.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_104.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_104.json new file mode 100644 index 0000000..721cb89 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_104.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 104", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_104.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_106.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_106.json new file mode 100644 index 0000000..a073528 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_106.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 106", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_106.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_108.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_108.json new file mode 100644 index 0000000..d7ada77 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_108.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 108", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_108.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_110.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_110.json new file mode 100644 index 0000000..ba65e53 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_110.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 110", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_110.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_112.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_112.json new file mode 100644 index 0000000..008c862 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_112.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 112", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_112.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_114.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_114.json new file mode 100644 index 0000000..3e640e0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_114.json @@ -0,0 +1,51 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 114", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_114.car" + }, + "results": { + "created_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "inductive_proof_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_116.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_116.json new file mode 100644 index 0000000..50cef8a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_116.json @@ -0,0 +1,51 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 116", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_116.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_118.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_118.json new file mode 100644 index 0000000..243fef9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_118.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 118", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_118.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_120.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_120.json new file mode 100644 index 0000000..8d18ffe --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_120.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 120", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_120.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_122.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_122.json new file mode 100644 index 0000000..794ba75 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_122.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 122", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_122.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_124.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_124.json new file mode 100644 index 0000000..8fc062f --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_124.json @@ -0,0 +1,65 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 124", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_124.car" + }, + "results": { + "created_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_126.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_126.json new file mode 100644 index 0000000..482ffff --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_126.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 126", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_126.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_127.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_127.json new file mode 100644 index 0000000..3a43eb9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_000_127.json @@ -0,0 +1,78 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 0 and 127", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_000.car", + "mst_b": "./cars/exhaustive/exhaustive_127.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_000.json new file mode 100644 index 0000000..1498697 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_000.json @@ -0,0 +1,30 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 1 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_001.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_126.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_126.json new file mode 100644 index 0000000..0a58ae0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_001_126.json @@ -0,0 +1,75 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 1 and 126", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_001.car", + "mst_b": "./cars/exhaustive/exhaustive_126.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_002_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_002_125.json new file mode 100644 index 0000000..975059d --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_002_125.json @@ -0,0 +1,75 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 2 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_002.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_000.json new file mode 100644 index 0000000..38f50b5 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_000.json @@ -0,0 +1,36 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 3 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_003.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_124.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_124.json new file mode 100644 index 0000000..571da16 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_003_124.json @@ -0,0 +1,76 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 3 and 124", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_003.car", + "mst_b": "./cars/exhaustive/exhaustive_124.car" + }, + "results": { + "created_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_004_123.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_004_123.json new file mode 100644 index 0000000..2672b6b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_004_123.json @@ -0,0 +1,75 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 4 and 123", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_004.car", + "mst_b": "./cars/exhaustive/exhaustive_123.car" + }, + "results": { + "created_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_000.json new file mode 100644 index 0000000..64cac4b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_000.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 5 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_005.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_122.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_122.json new file mode 100644 index 0000000..3e670d1 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_005_122.json @@ -0,0 +1,72 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 5 and 122", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_005.car", + "mst_b": "./cars/exhaustive/exhaustive_122.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_006_121.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_006_121.json new file mode 100644 index 0000000..0f4432e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_006_121.json @@ -0,0 +1,76 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 6 and 121", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_006.car", + "mst_b": "./cars/exhaustive/exhaustive_121.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_000.json new file mode 100644 index 0000000..2fb2d6c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 7 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_007.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_120.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_120.json new file mode 100644 index 0000000..8672644 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_007_120.json @@ -0,0 +1,71 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 7 and 120", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_007.car", + "mst_b": "./cars/exhaustive/exhaustive_120.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifptjxahtiixxhzso3kcejwlitqge2covyoxdq55lok3phnplxvga", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_008_119.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_008_119.json new file mode 100644 index 0000000..150dd8e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_008_119.json @@ -0,0 +1,69 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 8 and 119", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_008.car", + "mst_b": "./cars/exhaustive/exhaustive_119.car" + }, + "results": { + "created_nodes": [ + "bafyreicchipcwuquep7o662szctmrkzdgn42q5mgvunc3hmgqtgvnwjqiu", + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibuge23ei2mn65tsigxryrk4hd4jzr4f7qpcotuarzatkcjijx5by" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicchipcwuquep7o662szctmrkzdgn42q5mgvunc3hmgqtgvnwjqiu", + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicchipcwuquep7o662szctmrkzdgn42q5mgvunc3hmgqtgvnwjqiu", + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_000.json new file mode 100644 index 0000000..ca72f92 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_000.json @@ -0,0 +1,37 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 9 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_009.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreig5i4v7l33427hlbttnggmcgfr7efgq4cmwjgidvgq3rwa76wat4m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_118.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_118.json new file mode 100644 index 0000000..232d314 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_009_118.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 9 and 118", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_009.car", + "mst_b": "./cars/exhaustive/exhaustive_118.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreig5i4v7l33427hlbttnggmcgfr7efgq4cmwjgidvgq3rwa76wat4m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifhxfhledoriinm4wn7npnnnxbqyluzymowh7mchmlkvgezdqigye" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_010_117.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_010_117.json new file mode 100644 index 0000000..850e515 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_010_117.json @@ -0,0 +1,67 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 10 and 117", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_010.car", + "mst_b": "./cars/exhaustive/exhaustive_117.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm", + "bafyreigiy2kgapqjj63d5duxubck73igxiotuqxnuf2vpa4wlgab7dn2xu" + ], + "deleted_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreiguog5uqhiplovp6imll4lalixhi44pdq7nvce66dhq334fe2y25y" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm", + "bafyreigiy2kgapqjj63d5duxubck73igxiotuqxnuf2vpa4wlgab7dn2xu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm", + "bafyreigiy2kgapqjj63d5duxubck73igxiotuqxnuf2vpa4wlgab7dn2xu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_000.json new file mode 100644 index 0000000..b057bb0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 11 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_011.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihrv4u7ymbwdztoyjvgumwpgotwcyz2q2uezmsry6n4dirddaiuma", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_116.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_116.json new file mode 100644 index 0000000..30cb686 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_011_116.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 11 and 116", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_011.car", + "mst_b": "./cars/exhaustive/exhaustive_116.car" + }, + "results": { + "created_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "deleted_nodes": [ + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihrv4u7ymbwdztoyjvgumwpgotwcyz2q2uezmsry6n4dirddaiuma", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "inductive_proof_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihpmbjnda5fk7xqbmkozbgzv7p7t2aspcwyeip7l6ke2sbzyqsrgi" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_012_115.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_012_115.json new file mode 100644 index 0000000..de509c2 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_012_115.json @@ -0,0 +1,71 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 12 and 115", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_012.car", + "mst_b": "./cars/exhaustive/exhaustive_115.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid4u2zzv77h6sdsewkuzagnunywgm5gqbpzgovcj765sqsxm6252y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihg75wi2uk2byx35gyfvqcl6kfdlbcwdj7h5exrwx62ept4jjdgfa" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid4u2zzv77h6sdsewkuzagnunywgm5gqbpzgovcj765sqsxm6252y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid4u2zzv77h6sdsewkuzagnunywgm5gqbpzgovcj765sqsxm6252y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_000.json new file mode 100644 index 0000000..1fe3c5b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 13 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_013.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihvi7hgyt4ytw4ynekxv4ucbctdecmh44xuf33mb3mcuojzq4zucm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_114.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_114.json new file mode 100644 index 0000000..63a54c0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_013_114.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 13 and 114", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_013.car", + "mst_b": "./cars/exhaustive/exhaustive_114.car" + }, + "results": { + "created_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihvi7hgyt4ytw4ynekxv4ucbctdecmh44xuf33mb3mcuojzq4zucm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "inductive_proof_nodes": [ + "bafyreicbliswkc3njampgqftztxgs4fsxsfwndhcwslweszzmscehm24vu", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_014_113.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_014_113.json new file mode 100644 index 0000000..0038d5b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_014_113.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 14 and 113", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_014.car", + "mst_b": "./cars/exhaustive/exhaustive_113.car" + }, + "results": { + "created_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifitbcj3je5xjqv72mjy626b7vv5qnderiiogqd65ym3l3l5aew4e" + ], + "deleted_nodes": [ + "bafyreicjols3jtm4j3dsc77juxfabowf63frxfektqkwad5znxz5b35s24", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifitbcj3je5xjqv72mjy626b7vv5qnderiiogqd65ym3l3l5aew4e" + ], + "inductive_proof_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifitbcj3je5xjqv72mjy626b7vv5qnderiiogqd65ym3l3l5aew4e" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_000.json new file mode 100644 index 0000000..642ef11 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_000.json @@ -0,0 +1,48 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 15 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_015.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreifdtnnrjoj5ocd2m2dpgjbnfrie4t2fusxijq2yztkfzsmhbzr7rm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_112.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_112.json new file mode 100644 index 0000000..272f341 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_015_112.json @@ -0,0 +1,69 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 15 and 112", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_015.car", + "mst_b": "./cars/exhaustive/exhaustive_112.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreifdtnnrjoj5ocd2m2dpgjbnfrie4t2fusxijq2yztkfzsmhbzr7rm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_016_111.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_016_111.json new file mode 100644 index 0000000..88bf921 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_016_111.json @@ -0,0 +1,75 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 16 and 111", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_016.car", + "mst_b": "./cars/exhaustive/exhaustive_111.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_000.json new file mode 100644 index 0000000..894cd28 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_000.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 17 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_017.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_110.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_110.json new file mode 100644 index 0000000..b8ba0e0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_017_110.json @@ -0,0 +1,72 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 17 and 110", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_017.car", + "mst_b": "./cars/exhaustive/exhaustive_110.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicsa5mwwdskk4ebxv7vb37bac2udy6qy7cvzwueuihvpahekcwvoy", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_018_109.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_018_109.json new file mode 100644 index 0000000..69cbdd5 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_018_109.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 18 and 109", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_018.car", + "mst_b": "./cars/exhaustive/exhaustive_109.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvvsyrgi4dilf4glbc4k3gqznb2l2sd4xgc6htlvozfsatft5gty" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_000.json new file mode 100644 index 0000000..3c2bb5c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 19 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_019.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreieqf2jqpehxp3g7popvztfazvk3ocvzt4dqnztzqpe5cs3fxpo3hu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_108.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_108.json new file mode 100644 index 0000000..e7c22da --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_019_108.json @@ -0,0 +1,74 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 19 and 108", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_019.car", + "mst_b": "./cars/exhaustive/exhaustive_108.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreieqf2jqpehxp3g7popvztfazvk3ocvzt4dqnztzqpe5cs3fxpo3hu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigkomtm7ueoqokkqk6uslxceghbghysofuwg6eeh6egjpzgrr4cfy", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_020_107.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_020_107.json new file mode 100644 index 0000000..70b236c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_020_107.json @@ -0,0 +1,72 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 20 and 107", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_020.car", + "mst_b": "./cars/exhaustive/exhaustive_107.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifmeatreszvs6estw2lpqznimnqudiktp7flbg3dfxxsiyeq4gd3m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifmeatreszvs6estw2lpqznimnqudiktp7flbg3dfxxsiyeq4gd3m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifmeatreszvs6estw2lpqznimnqudiktp7flbg3dfxxsiyeq4gd3m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_000.json new file mode 100644 index 0000000..dc492cc --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_000.json @@ -0,0 +1,40 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 21 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_021.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_106.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_106.json new file mode 100644 index 0000000..7a2e9a9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_021_106.json @@ -0,0 +1,69 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 21 and 106", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_021.car", + "mst_b": "./cars/exhaustive/exhaustive_106.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "deleted_nodes": [ + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiekpmz54ehtmc5kzpsnr7rlstcqlezjlnl6ilivhpuhf6r3mpa72m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_022_105.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_022_105.json new file mode 100644 index 0000000..ad1ab8f --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_022_105.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 22 and 105", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_022.car", + "mst_b": "./cars/exhaustive/exhaustive_105.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihopqe54ce2v2mwxbvxnjcjuwdibgrthqnogyl5242jip4ekxrwte", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreidc2yxcm3e6ybonwfspye6muz7zduivowmphl2sfthcf2oqitoqri" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihopqe54ce2v2mwxbvxnjcjuwdibgrthqnogyl5242jip4ekxrwte", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihopqe54ce2v2mwxbvxnjcjuwdibgrthqnogyl5242jip4ekxrwte", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_000.json new file mode 100644 index 0000000..b3afdf4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 23 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_023.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreiecqiefx2lrg3zmay2yqr2t2crylzuxrawn2yorfdmqs6rsck4dhq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_104.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_104.json new file mode 100644 index 0000000..9fc8050 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_023_104.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 23 and 104", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_023.car", + "mst_b": "./cars/exhaustive/exhaustive_104.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "deleted_nodes": [ + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreiecqiefx2lrg3zmay2yqr2t2crylzuxrawn2yorfdmqs6rsck4dhq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigfttqdiw2qbu7ekbwyrzfqatuyo25bnzgefadq2nufj3z7wvclx4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_024_103.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_024_103.json new file mode 100644 index 0000000..7ea7240 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_024_103.json @@ -0,0 +1,71 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 24 and 103", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_024.car", + "mst_b": "./cars/exhaustive/exhaustive_103.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreied7ge74bd6zjxgeuj4zmnxl3d57cmw4zd4ctnr2335dtvuzm5opi", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigs75b5xluzpf7qs26zgvn7zvprcvr7v6i3ciezcg2c3b6vgb3yoe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreied7ge74bd6zjxgeuj4zmnxl3d57cmw4zd4ctnr2335dtvuzm5opi", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreied7ge74bd6zjxgeuj4zmnxl3d57cmw4zd4ctnr2335dtvuzm5opi", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_000.json new file mode 100644 index 0000000..7155b7e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_000.json @@ -0,0 +1,44 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 25 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_025.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigogluikvkgumsmlxmgot3nx4n47mo7riaiczszdnpjyihbrhe5kq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_102.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_102.json new file mode 100644 index 0000000..c65ac4e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_025_102.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 25 and 102", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_025.car", + "mst_b": "./cars/exhaustive/exhaustive_102.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreigogluikvkgumsmlxmgot3nx4n47mo7riaiczszdnpjyihbrhe5kq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidvajmz7ihbpopkzjwqjhx3enqt426ayktsw7rxgpbyhhbjzshb4i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_026_101.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_026_101.json new file mode 100644 index 0000000..b737743 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_026_101.json @@ -0,0 +1,69 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 26 and 101", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_026.car", + "mst_b": "./cars/exhaustive/exhaustive_101.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif4stkpshc54pvpr7qgnusw73qdeo6b5c52ubq3utprqpxxsx24lm" + ], + "deleted_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifjob5lhtbgf5nikaoriuo5v4x46gbfz3tpedgb43cdkcgpyvhqrm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif4stkpshc54pvpr7qgnusw73qdeo6b5c52ubq3utprqpxxsx24lm" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif4stkpshc54pvpr7qgnusw73qdeo6b5c52ubq3utprqpxxsx24lm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_000.json new file mode 100644 index 0000000..a15b17a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 27 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_027.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifzkmtv4xalmdunhpokzvq6rtom3uxmwbdyu6m3v7oitv37t3wnvy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_100.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_100.json new file mode 100644 index 0000000..45873f8 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_027_100.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 27 and 100", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_027.car", + "mst_b": "./cars/exhaustive/exhaustive_100.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifzkmtv4xalmdunhpokzvq6rtom3uxmwbdyu6m3v7oitv37t3wnvy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigpsloftcybmm6s4hvhedbbrbmu7oitu2m7glslbwebfqjz7dsz74" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_028_099.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_028_099.json new file mode 100644 index 0000000..3750ca9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_028_099.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 28 and 99", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_028.car", + "mst_b": "./cars/exhaustive/exhaustive_099.car" + }, + "results": { + "created_nodes": [ + "bafyreiba53k6w36kcbmmzauyxgskcdoionwruqpvcoetkasryb2ycbvv7m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidvjrhzvqikiryc4ggn6murt6a7g6q2ejbuizgilgsfg6j2ubbyai", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiba53k6w36kcbmmzauyxgskcdoionwruqpvcoetkasryb2ycbvv7m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreiba53k6w36kcbmmzauyxgskcdoionwruqpvcoetkasryb2ycbvv7m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_000.json new file mode 100644 index 0000000..57b2fb0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 29 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_029.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_079.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_079.json new file mode 100644 index 0000000..6aadae4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_079.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 29 and 79", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_029.car", + "mst_b": "./cars/exhaustive/exhaustive_079.car" + }, + "results": { + "created_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_095.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_095.json new file mode 100644 index 0000000..7392127 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_095.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 29 and 95", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_029.car", + "mst_b": "./cars/exhaustive/exhaustive_095.car" + }, + "results": { + "created_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_098.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_098.json new file mode 100644 index 0000000..908315c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_098.json @@ -0,0 +1,67 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 29 and 98", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_029.car", + "mst_b": "./cars/exhaustive/exhaustive_098.car" + }, + "results": { + "created_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreib6vhuadcjdwu3ysu2sqd5u7zbbrozqz4u2f6yy5wrqpjf4xo67km", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_111.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_111.json new file mode 100644 index 0000000..cd50768 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_029_111.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 29 and 111", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_029.car", + "mst_b": "./cars/exhaustive/exhaustive_111.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_030_097.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_030_097.json new file mode 100644 index 0000000..2d82830 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_030_097.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 30 and 97", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_030.car", + "mst_b": "./cars/exhaustive/exhaustive_097.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihptktiermdhvwp4uep5gabof4m2veoh6f53qyn43iusomq3ausgi", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidwn4g57tpgyooyayq46nl54zr632x3xv4nsybl7q567u7ntu2omy", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihptktiermdhvwp4uep5gabof4m2veoh6f53qyn43iusomq3ausgi", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihptktiermdhvwp4uep5gabof4m2veoh6f53qyn43iusomq3ausgi", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_000.json new file mode 100644 index 0000000..f9fd194 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_000.json @@ -0,0 +1,55 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 31 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_031.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_077.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_077.json new file mode 100644 index 0000000..7831b3c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_077.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 31 and 77", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_031.car", + "mst_b": "./cars/exhaustive/exhaustive_077.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_093.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_093.json new file mode 100644 index 0000000..b4f4d2c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_093.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 31 and 93", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_031.car", + "mst_b": "./cars/exhaustive/exhaustive_093.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_096.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_096.json new file mode 100644 index 0000000..81a62f1 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_096.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 31 and 96", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_031.car", + "mst_b": "./cars/exhaustive/exhaustive_096.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "deleted_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_109.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_109.json new file mode 100644 index 0000000..671c2b9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_031_109.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 31 and 109", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_031.car", + "mst_b": "./cars/exhaustive/exhaustive_109.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_032_095.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_032_095.json new file mode 100644 index 0000000..d219e77 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_032_095.json @@ -0,0 +1,75 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 32 and 95", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_032.car", + "mst_b": "./cars/exhaustive/exhaustive_095.car" + }, + "results": { + "created_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_000.json new file mode 100644 index 0000000..66150bd --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_000.json @@ -0,0 +1,36 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 33 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_033.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiaqfdn525nvagvzcyon23a5ownun5syuxnp236e7zjkjsoccsexfy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_094.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_094.json new file mode 100644 index 0000000..412b4f1 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_033_094.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 33 and 94", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_033.car", + "mst_b": "./cars/exhaustive/exhaustive_094.car" + }, + "results": { + "created_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreiaqfdn525nvagvzcyon23a5ownun5syuxnp236e7zjkjsoccsexfy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_034_093.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_034_093.json new file mode 100644 index 0000000..e5e446f --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_034_093.json @@ -0,0 +1,72 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 34 and 93", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_034.car", + "mst_b": "./cars/exhaustive/exhaustive_093.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreifosuhlitfvkucf6fhhviz6xfmmactcvvkxpczxaxtcgwxzufxynu" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_000.json new file mode 100644 index 0000000..f910c94 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_000.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 35 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_035.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicj5eua7emjq74ietjbc6hextzjrngwoos2h3ukobyqv3qvo3dq5q", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_092.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_092.json new file mode 100644 index 0000000..e855a21 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_035_092.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 35 and 92", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_035.car", + "mst_b": "./cars/exhaustive/exhaustive_092.car" + }, + "results": { + "created_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreicj5eua7emjq74ietjbc6hextzjrngwoos2h3ukobyqv3qvo3dq5q", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_036_091.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_036_091.json new file mode 100644 index 0000000..bf435f3 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_036_091.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 36 and 91", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_036.car", + "mst_b": "./cars/exhaustive/exhaustive_091.car" + }, + "results": { + "created_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicx52h4x2rgdbjjd6slcglx6a5l4ykmaerwvd5rcx6qxvskd6tkei", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_000.json new file mode 100644 index 0000000..9d00376 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_000.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 37 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_037.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreic6q6n2toz3bk32zcvgf5bjocu524n3ydfoj3k2oc7vuuzkquwezi" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_090.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_090.json new file mode 100644 index 0000000..252eacf --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_037_090.json @@ -0,0 +1,70 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 37 and 90", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_037.car", + "mst_b": "./cars/exhaustive/exhaustive_090.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreic6q6n2toz3bk32zcvgf5bjocu524n3ydfoj3k2oc7vuuzkquwezi" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_038_089.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_038_089.json new file mode 100644 index 0000000..58fbc37 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_038_089.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 38 and 89", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_038.car", + "mst_b": "./cars/exhaustive/exhaustive_089.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidhj3rcvgxrwevewrzwdyh6lxzo7wpzgfo4jhpzzuqlry7td6db5i", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_000.json new file mode 100644 index 0000000..830b875 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 39 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_039.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiehnmux42en4dxgdpxmgmtbo5mjleorkhqo2tidpqcmldgxvo4gsm", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_088.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_088.json new file mode 100644 index 0000000..3c718d9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_039_088.json @@ -0,0 +1,68 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 39 and 88", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_039.car", + "mst_b": "./cars/exhaustive/exhaustive_088.car" + }, + "results": { + "created_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreiehnmux42en4dxgdpxmgmtbo5mjleorkhqo2tidpqcmldgxvo4gsm", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigxi5xvlprgzvz7atsm7jrcg6gmrny3jpkw4h6h4ewjwdatsswjbq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_040_087.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_040_087.json new file mode 100644 index 0000000..1cdb464 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_040_087.json @@ -0,0 +1,67 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 40 and 87", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_040.car", + "mst_b": "./cars/exhaustive/exhaustive_087.car" + }, + "results": { + "created_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe", + "bafyreigewsmetq3nlf36uph3fwoamagkh4tetxackkn4thhcwvutmb273u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreihgx5nipbqnvti5ko35swbtsersq22fg2tcvn2la7zed4sg7pzpx4" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe", + "bafyreigewsmetq3nlf36uph3fwoamagkh4tetxackkn4thhcwvutmb273u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe", + "bafyreigewsmetq3nlf36uph3fwoamagkh4tetxackkn4thhcwvutmb273u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_000.json new file mode 100644 index 0000000..0aec9de --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_000.json @@ -0,0 +1,43 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 41 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_041.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreicuhdrnk2sdzkdb6ekqd6f3tkmjmesxzw6a4o7gss43aqfvpnhq54", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_086.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_086.json new file mode 100644 index 0000000..3183ea0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_041_086.json @@ -0,0 +1,66 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 41 and 86", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_041.car", + "mst_b": "./cars/exhaustive/exhaustive_086.car" + }, + "results": { + "created_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreicuhdrnk2sdzkdb6ekqd6f3tkmjmesxzw6a4o7gss43aqfvpnhq54", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "inductive_proof_nodes": [ + "bafyreia6dt3upl4hb5lj66bskqmbyioonk3cxn6cyl5gb3rjsf2zek6bym", + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_042_085.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_042_085.json new file mode 100644 index 0000000..d767223 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_042_085.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 42 and 85", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_042.car", + "mst_b": "./cars/exhaustive/exhaustive_085.car" + }, + "results": { + "created_nodes": [ + "bafyreigcsrtj7zjqqiogiujm3fls6onxau3i6e7lbkkimn4c73qfeiulyy" + ], + "deleted_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreibio7zp4x3cxruhfjlxdfpfcp5inh3pn4dq6lb5d7pd373a55xmpi", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreigcsrtj7zjqqiogiujm3fls6onxau3i6e7lbkkimn4c73qfeiulyy" + ], + "inductive_proof_nodes": [ + "bafyreigcsrtj7zjqqiogiujm3fls6onxau3i6e7lbkkimn4c73qfeiulyy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_000.json new file mode 100644 index 0000000..c4ccc77 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_000.json @@ -0,0 +1,48 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 43 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_043.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibey66elq2fatn2unhisusbh25mzszai6jkqjesvbozoiz2jjjwhe", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_084.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_084.json new file mode 100644 index 0000000..911a7ef --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_043_084.json @@ -0,0 +1,63 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 43 and 84", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_043.car", + "mst_b": "./cars/exhaustive/exhaustive_084.car" + }, + "results": { + "created_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "deleted_nodes": [ + "bafyreibey66elq2fatn2unhisusbh25mzszai6jkqjesvbozoiz2jjjwhe", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "inductive_proof_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_044_083.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_044_083.json new file mode 100644 index 0000000..f9ab88e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_044_083.json @@ -0,0 +1,69 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 44 and 83", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_044.car", + "mst_b": "./cars/exhaustive/exhaustive_083.car" + }, + "results": { + "created_nodes": [ + "bafyreif7l7aid546wtnrht5fkcgosyyfg6jf23hub5xouicsd57wzldlhm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreig5awr2zjiop7rjzyf7hkdn5s34zyh5ivftvo6fhoqvgul6r2cfea", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreif7l7aid546wtnrht5fkcgosyyfg6jf23hub5xouicsd57wzldlhm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreif7l7aid546wtnrht5fkcgosyyfg6jf23hub5xouicsd57wzldlhm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_000.json new file mode 100644 index 0000000..21a7121 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_000.json @@ -0,0 +1,48 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 45 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_045.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreiehsmd3s42tnlyncbpe2nppfclbxix35a4jxh6q57lhv56lmv4xsm", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_082.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_082.json new file mode 100644 index 0000000..7af23da --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_082.json @@ -0,0 +1,66 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 45 and 82", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_045.car", + "mst_b": "./cars/exhaustive/exhaustive_082.car" + }, + "results": { + "created_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreiehsmd3s42tnlyncbpe2nppfclbxix35a4jxh6q57lhv56lmv4xsm", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreiehkwbdnhgprovlqc3vdz6btcjxs5hucv4umvjsb7ly54nxv2tyiq", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_127.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_127.json new file mode 100644 index 0000000..9324102 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_045_127.json @@ -0,0 +1,59 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 45 and 127", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_045.car", + "mst_b": "./cars/exhaustive/exhaustive_127.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreiehsmd3s42tnlyncbpe2nppfclbxix35a4jxh6q57lhv56lmv4xsm", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_046_081.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_046_081.json new file mode 100644 index 0000000..9d14e38 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_046_081.json @@ -0,0 +1,63 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 46 and 81", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_046.car", + "mst_b": "./cars/exhaustive/exhaustive_081.car" + }, + "results": { + "created_nodes": [ + "bafyreiek3retcmiio4aspohezly66zmkdeuaz5nt2n7q5vv5jg3bpjuzb4" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihksf4vlzkzh5pbntfre45dhgc4fjq6d4c5tem46kutjwyreleuz4" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiek3retcmiio4aspohezly66zmkdeuaz5nt2n7q5vv5jg3bpjuzb4" + ], + "inductive_proof_nodes": [ + "bafyreiek3retcmiio4aspohezly66zmkdeuaz5nt2n7q5vv5jg3bpjuzb4" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_000.json new file mode 100644 index 0000000..873301a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 47 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_047.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreifvruhpgxeu4ct6ah6g226vp4vt3xfiyplmj2666vigbcio5roqhq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_080.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_080.json new file mode 100644 index 0000000..6460bbe --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_080.json @@ -0,0 +1,64 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 47 and 80", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_047.car", + "mst_b": "./cars/exhaustive/exhaustive_080.car" + }, + "results": { + "created_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreifvruhpgxeu4ct6ah6g226vp4vt3xfiyplmj2666vigbcio5roqhq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_125.json new file mode 100644 index 0000000..9c69eea --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_047_125.json @@ -0,0 +1,59 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 47 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_047.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreicfm3pueddlt4mz5pkcezxdb3ddj5asrtvoqh2yxpb7mkkcxemmqy", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreifvruhpgxeu4ct6ah6g226vp4vt3xfiyplmj2666vigbcio5roqhq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_048_079.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_048_079.json new file mode 100644 index 0000000..2f1b719 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_048_079.json @@ -0,0 +1,76 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 48 and 79", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_048.car", + "mst_b": "./cars/exhaustive/exhaustive_079.car" + }, + "results": { + "created_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_000.json new file mode 100644 index 0000000..0c691ad --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_000.json @@ -0,0 +1,41 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 49 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_049.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreic6of3x4p6wkqpxn64cdli35lzymfbzkzlnyf3x3flf236eqseks4" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_078.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_078.json new file mode 100644 index 0000000..b263778 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_049_078.json @@ -0,0 +1,73 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 49 and 78", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_049.car", + "mst_b": "./cars/exhaustive/exhaustive_078.car" + }, + "results": { + "created_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "deleted_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreic6of3x4p6wkqpxn64cdli35lzymfbzkzlnyf3x3flf236eqseks4" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/39", + "old_value": null, + "new_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "inductive_proof_nodes": [ + "bafyreibk5t3qz2fbxchj37rqikot6soa3ubpz4rpbibzohwgo4gf5jhsje", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_051_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_051_000.json new file mode 100644 index 0000000..9800dfe --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_051_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 51 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_051.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiefbudozdlewrlmxilwyx5olw7sweipqpefigwntynv5reev7ykai", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_053_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_053_000.json new file mode 100644 index 0000000..377470e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_053_000.json @@ -0,0 +1,46 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 53 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_053.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm", + "bafyreig3swbda2pejryoty6ovhjakyrpn2kjj53khd5ooptjgyyrsw2vfe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_055_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_055_000.json new file mode 100644 index 0000000..9d28469 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_055_000.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 55 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_055.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7s65umfeqk5u7qiu4yuersj66dxf4d7m6kkf5ujcb2gzkmd4nk4", + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_057_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_057_000.json new file mode 100644 index 0000000..4c52c71 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_057_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 57 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_057.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreighp7bzrn7g4ecj6ajtbg63vt4t2cttyis4lbhwjhjmjmzg5frjsi", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_059_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_059_000.json new file mode 100644 index 0000000..11997f4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_059_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 59 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_059.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreicotchntxw7oh3xwn6dko6lub3wsmnhku4uxdkrvcwxz7ud7hmmom", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_000.json new file mode 100644 index 0000000..0341e52 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 61 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_061.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_079.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_079.json new file mode 100644 index 0000000..f015e3f --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_079.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 61 and 79", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_061.car", + "mst_b": "./cars/exhaustive/exhaustive_079.car" + }, + "results": { + "created_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_095.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_095.json new file mode 100644 index 0000000..661d5be --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_095.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 61 and 95", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_061.car", + "mst_b": "./cars/exhaustive/exhaustive_095.car" + }, + "results": { + "created_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_111.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_111.json new file mode 100644 index 0000000..e02d524 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_061_111.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 61 and 111", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_061.car", + "mst_b": "./cars/exhaustive/exhaustive_111.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_000.json new file mode 100644 index 0000000..05b744d --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_000.json @@ -0,0 +1,60 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 63 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_063.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_077.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_077.json new file mode 100644 index 0000000..9b91e98 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_077.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 63 and 77", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_063.car", + "mst_b": "./cars/exhaustive/exhaustive_077.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_093.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_093.json new file mode 100644 index 0000000..2fa55c6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_093.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 63 and 93", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_063.car", + "mst_b": "./cars/exhaustive/exhaustive_093.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_109.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_109.json new file mode 100644 index 0000000..142a99a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_063_109.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 63 and 109", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_063.car", + "mst_b": "./cars/exhaustive/exhaustive_109.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": null, + "new_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_065_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_065_000.json new file mode 100644 index 0000000..2b9af8d --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_065_000.json @@ -0,0 +1,35 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 65 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_065.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreietnmmkqbmqmrkg2q7hv5x5adp76dfcszdzl7fm5kkwenvhiesbhq" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_067_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_067_000.json new file mode 100644 index 0000000..05e4338 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_067_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 67 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_067.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreigmedq36kltn236q76nfdt543hv44mg6m4jhaekyfmqomcn22ej6i", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_069_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_069_000.json new file mode 100644 index 0000000..7ebf26b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_069_000.json @@ -0,0 +1,40 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 69 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_069.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreice6dtly45k3mnijwimg66ehsb5dzuhupfekumofmhuv2ykvoqemy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_071_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_071_000.json new file mode 100644 index 0000000..42b2dfb --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_071_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 71 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_071.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreianfbmckzmkguh5dpzg3yemwf3u4i44ttjfarnr6h6aqjnut4ml44", + "bafyreib5rvrx4d3gf6glkt3bielry7edij2xsqoevibf3deva5bvtjpgsq", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_073_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_073_000.json new file mode 100644 index 0000000..47ae871 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_073_000.json @@ -0,0 +1,44 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 73 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_073.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreie2bq54khof6leifhvnesbftp47mrcsvzwd2zo6ivvqdkk5fdln3u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_075_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_075_000.json new file mode 100644 index 0000000..4c0b070 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_075_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 75 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_075.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia2ottwil77cvmb44vrq3r4pb7jyffziejmmkwogygr2xw7d5ptbm", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_000.json new file mode 100644 index 0000000..c107664 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 77 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_077.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_031.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_031.json new file mode 100644 index 0000000..4a25db5 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_031.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 77 and 31", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_077.car", + "mst_b": "./cars/exhaustive/exhaustive_031.car" + }, + "results": { + "created_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_063.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_063.json new file mode 100644 index 0000000..4dfcbc6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_063.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 77 and 63", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_077.car", + "mst_b": "./cars/exhaustive/exhaustive_063.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_095.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_095.json new file mode 100644 index 0000000..831ab57 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_077_095.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 77 and 95", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_077.car", + "mst_b": "./cars/exhaustive/exhaustive_095.car" + }, + "results": { + "created_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_000.json new file mode 100644 index 0000000..e253f48 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_000.json @@ -0,0 +1,55 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 79 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_079.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_029.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_029.json new file mode 100644 index 0000000..a2488bb --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_029.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 79 and 29", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_079.car", + "mst_b": "./cars/exhaustive/exhaustive_029.car" + }, + "results": { + "created_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_061.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_061.json new file mode 100644 index 0000000..b02acb9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_061.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 79 and 61", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_079.car", + "mst_b": "./cars/exhaustive/exhaustive_061.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_093.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_093.json new file mode 100644 index 0000000..a7cb7a4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_079_093.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 79 and 93", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_079.car", + "mst_b": "./cars/exhaustive/exhaustive_093.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": null, + "new_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_081_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_081_000.json new file mode 100644 index 0000000..c7300a4 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_081_000.json @@ -0,0 +1,40 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 81 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_081.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiek3retcmiio4aspohezly66zmkdeuaz5nt2n7q5vv5jg3bpjuzb4" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_083_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_083_000.json new file mode 100644 index 0000000..a169c07 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_083_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 83 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_083.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreif7l7aid546wtnrht5fkcgosyyfg6jf23hub5xouicsd57wzldlhm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_085_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_085_000.json new file mode 100644 index 0000000..a11a0e1 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_085_000.json @@ -0,0 +1,45 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 85 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_085.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreigcsrtj7zjqqiogiujm3fls6onxau3i6e7lbkkimn4c73qfeiulyy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_087_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_087_000.json new file mode 100644 index 0000000..7354f4c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_087_000.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 87 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_087.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreic4knbvyuqdvemywkcnalt6l7e3ik4ucedqpwpwpyv6mln6d7kvhe", + "bafyreigewsmetq3nlf36uph3fwoamagkh4tetxackkn4thhcwvutmb273u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_000.json new file mode 100644 index 0000000..a7b7c84 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 89 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_089.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_124.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_124.json new file mode 100644 index 0000000..82a9920 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_124.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 89 and 124", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_089.car", + "mst_b": "./cars/exhaustive/exhaustive_124.car" + }, + "results": { + "created_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_125.json new file mode 100644 index 0000000..14325b2 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_125.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 89 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_089.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_126.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_126.json new file mode 100644 index 0000000..d703cef --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_089_126.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 89 and 126", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_089.car", + "mst_b": "./cars/exhaustive/exhaustive_126.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiedgjg54g3j4ifb2mmkm2mcxryvzpwgnjox5v4g63vqqgxnd2zupm", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_090_127.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_090_127.json new file mode 100644 index 0000000..659728a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_090_127.json @@ -0,0 +1,59 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 90 and 127", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_090.car", + "mst_b": "./cars/exhaustive/exhaustive_127.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreigynu72t2yquojvsqrbfl7hykiflpmvzofyfxzakwajmd5oitpzxu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_000.json new file mode 100644 index 0000000..ef84dfa --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 91 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_091.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_124.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_124.json new file mode 100644 index 0000000..ea62d7e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_124.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 91 and 124", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_091.car", + "mst_b": "./cars/exhaustive/exhaustive_124.car" + }, + "results": { + "created_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_125.json new file mode 100644 index 0000000..b8ef407 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_125.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 91 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_091.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_126.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_126.json new file mode 100644 index 0000000..97fdca1 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_091_126.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 91 and 126", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_091.car", + "mst_b": "./cars/exhaustive/exhaustive_126.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreif6fyusb35ujqxhlkigk7la7beood5sdya3rc5wkg2zm6af7e462q", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": null, + "new_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_121.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_121.json new file mode 100644 index 0000000..e0e4ca0 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_121.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 92 and 121", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_092.car", + "mst_b": "./cars/exhaustive/exhaustive_121.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_123.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_123.json new file mode 100644 index 0000000..1857c46 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_123.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 92 and 123", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_092.car", + "mst_b": "./cars/exhaustive/exhaustive_123.car" + }, + "results": { + "created_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_125.json new file mode 100644 index 0000000..b8bd745 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_092_125.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 92 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_092.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreidvyuzao7fthbkmq7kd3kqtglyexzcsqf6tabv7auciflns3kzmo4", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_000.json new file mode 100644 index 0000000..7fc6b56 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_031.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_031.json new file mode 100644 index 0000000..9470144 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_031.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 31", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_031.car" + }, + "results": { + "created_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreia2rffyf7sdujyxlertty3yebmbg72u3rhojbs6owsm2ktbvgy3c4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_063.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_063.json new file mode 100644 index 0000000..0f43895 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_063.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 63", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_063.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidu2ggf3ebbwpfklbnsxgsgwga7kxnmaklobcn3xdy6syiiuxlj3m", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_079.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_079.json new file mode 100644 index 0000000..5a1fa67 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_079.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 79", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_079.car" + }, + "results": { + "created_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreiakpdjkv4ye4cupwhhn2lodml42nt235eya63i5g4tmkeucyf23y4", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_111.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_111.json new file mode 100644 index 0000000..6d9036b --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_111.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 111", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_111.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_121.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_121.json new file mode 100644 index 0000000..1b5dbea --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_121.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 121", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_121.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_123.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_123.json new file mode 100644 index 0000000..55c43de --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_123.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 123", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_123.car" + }, + "results": { + "created_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_124.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_124.json new file mode 100644 index 0000000..6ceee36 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_124.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 124", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_124.car" + }, + "results": { + "created_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreic4axpsmxdlqkaeunefdtlpchfuybz6sn3kmg2x4illoe5ott6lnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihbl5kvmtenbhrqgxx3zi6di7btblpj6hive2xv6ynvcvb6bd2egu", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_126.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_126.json new file mode 100644 index 0000000..1febca5 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_126.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 126", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_126.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreiez42v3u6dboej43vahhk7oabx4fl7h3s4ppstruagzr4tu22urde", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_127.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_127.json new file mode 100644 index 0000000..052035e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_093_127.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 93 and 127", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_093.car", + "mst_b": "./cars/exhaustive/exhaustive_127.car" + }, + "results": { + "created_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_121.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_121.json new file mode 100644 index 0000000..3d1c68a --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_121.json @@ -0,0 +1,62 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 94 and 121", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_094.car", + "mst_b": "./cars/exhaustive/exhaustive_121.car" + }, + "results": { + "created_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_123.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_123.json new file mode 100644 index 0000000..2c75f43 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_123.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 94 and 123", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_094.car", + "mst_b": "./cars/exhaustive/exhaustive_123.car" + }, + "results": { + "created_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "inductive_proof_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_125.json new file mode 100644 index 0000000..6bbd2ca --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_094_125.json @@ -0,0 +1,57 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 94 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_094.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreigu7l7zyjt4b5xegju5q6krwifneeq7aic523kjvb5o7ufqz4acmy", + "bafyreihdimee5vdqlswsdrw6obyxviwcf3do5qao2flaefnjzflpysy5nm", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": null, + "new_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry" + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_000.json new file mode 100644 index 0000000..fec44ff --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_000.json @@ -0,0 +1,60 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_029.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_029.json new file mode 100644 index 0000000..722bad9 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_029.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 29", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_029.car" + }, + "results": { + "created_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreiblg5ixoaldkk2ceqeepni66s2luzctqlkauvxjmjms5bss2sa6xy", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreies4yierbqkrdjojdm4as2zdnzsk76jzgtb3uj2pgzwheinfklkry", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_061.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_061.json new file mode 100644 index 0000000..fef9815 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_061.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 61", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_061.car" + }, + "results": { + "created_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreia4s6y7incx5wikyjdif3fgmoobahteaoauslzr2erplcy46lony4", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreidb7xi4faeumkqscdtkjiuxjeeq2xvqd6kvcsqjdbt6vxbqldleua", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_077.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_077.json new file mode 100644 index 0000000..f3b1e21 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_077.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 77", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_077.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicssmjvim5mmalb4bxcmdrnvrpxqhrdbdw4ere5eztvfdijznxdmi", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifqga44gi25zyjqiwvplf5ti2quacyhh7hfjdusx67ftmha4g5ore", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_109.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_109.json new file mode 100644 index 0000000..09ccc05 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_109.json @@ -0,0 +1,56 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 109", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_109.car" + }, + "results": { + "created_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "inductive_proof_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_122.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_122.json new file mode 100644 index 0000000..03c1603 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_122.json @@ -0,0 +1,55 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 122", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_122.car" + }, + "results": { + "created_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreia2fbzol3ivp5vgmil372qzbrq6p5lbv347dozj36vwmtm35yzyta", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyacfv3gfepvtt76v76bgl4ejoy7almaqn5cxtw3epblftxa3yjq", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_125.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_125.json new file mode 100644 index 0000000..1a58ca6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_095_125.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 95 and 125", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_095.car", + "mst_b": "./cars/exhaustive/exhaustive_125.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "deleted_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": null, + "new_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq" + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_097_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_097_000.json new file mode 100644 index 0000000..00e1c96 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_097_000.json @@ -0,0 +1,42 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 97 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_097.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihptktiermdhvwp4uep5gabof4m2veoh6f53qyn43iusomq3ausgi", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_099_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_099_000.json new file mode 100644 index 0000000..b07ac82 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_099_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 99 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_099.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiba53k6w36kcbmmzauyxgskcdoionwruqpvcoetkasryb2ycbvv7m", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_101_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_101_000.json new file mode 100644 index 0000000..9730624 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_101_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 101 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_101.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreif4stkpshc54pvpr7qgnusw73qdeo6b5c52ubq3utprqpxxsx24lm" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_103_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_103_000.json new file mode 100644 index 0000000..a0981c3 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_103_000.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 103 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_103.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreied7ge74bd6zjxgeuj4zmnxl3d57cmw4zd4ctnr2335dtvuzm5opi", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_105_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_105_000.json new file mode 100644 index 0000000..febf83e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_105_000.json @@ -0,0 +1,49 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 105 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_105.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihopqe54ce2v2mwxbvxnjcjuwdibgrthqnogyl5242jip4ekxrwte", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_107_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_107_000.json new file mode 100644 index 0000000..4c93a15 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_107_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 107 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_107.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreifmeatreszvs6estw2lpqznimnqudiktp7flbg3dfxxsiyeq4gd3m", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_109_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_109_000.json new file mode 100644 index 0000000..0ea9412 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_109_000.json @@ -0,0 +1,54 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 109 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_109.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreiet7v4cmboqds7xiwkc2skxknkoirtxtogtqfc5sktmotkq6nqhwu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_111_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_111_000.json new file mode 100644 index 0000000..f931661 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_111_000.json @@ -0,0 +1,60 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 111 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_111.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibuwxskdkz52m5e6yt3ap3egbenmyubydflheirtoqg5i4gbvwsnq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid3m7tbg7bpz6jy3jm3nm6msml7wopxxlaedgrrxnxr7sbmdkfcv4", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_113_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_113_000.json new file mode 100644 index 0000000..d16be64 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_113_000.json @@ -0,0 +1,47 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 113 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_113.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibhayjsswndk3fj2mtpau3uxm6qjhdjnwod5ui3hdv4azwcs7qoam", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifitbcj3je5xjqv72mjy626b7vv5qnderiiogqd65ym3l3l5aew4e" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_115_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_115_000.json new file mode 100644 index 0000000..67d3a43 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_115_000.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 115 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_115.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreid4u2zzv77h6sdsewkuzagnunywgm5gqbpzgovcj765sqsxm6252y", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_117_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_117_000.json new file mode 100644 index 0000000..c17745d --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_117_000.json @@ -0,0 +1,52 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 117 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_117.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreifni6tgcimropeiqrkx7jvvcphv6uyhhbh6hhxm6zljxkyr6posmm", + "bafyreigiy2kgapqjj63d5duxubck73igxiotuqxnuf2vpa4wlgab7dn2xu" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_119_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_119_000.json new file mode 100644 index 0000000..d183ab6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_119_000.json @@ -0,0 +1,58 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 119 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_119.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicchipcwuquep7o662szctmrkzdgn42q5mgvunc3hmgqtgvnwjqiu", + "bafyreicswpe7dzqwm4msdp4eectoto6mzjwdpdsxjzasfmtnongnywjhqq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_121_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_121_000.json new file mode 100644 index 0000000..674b134 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_121_000.json @@ -0,0 +1,55 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 121 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_121.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreia7t4o3s4hbrh5eowltoirsdiept3zl5go4tbjkxm4j6o64meux4y", + "bafyreiadtbgwpmvuld2nfva263bdzxddt3l6uq64ksyhnvd6tsxyvcgp3y", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_123_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_123_000.json new file mode 100644 index 0000000..434fd40 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_123_000.json @@ -0,0 +1,60 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 123 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_123.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreiah2gsworq5eupw4wze2b2jjmq5so66pf2hyzix5imzeif4keovcq", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreifcpc5a2q7azfbn2iaveh2dywmalb3eyvzkd3ogqvqt3pvhppdycm", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_000.json new file mode 100644 index 0000000..e55a97c --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_000.json @@ -0,0 +1,60 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 125 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_125.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_095.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_095.json new file mode 100644 index 0000000..afe0915 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_125_095.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 125 and 95", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_125.car", + "mst_b": "./cars/exhaustive/exhaustive_095.car" + }, + "results": { + "created_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "deleted_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicyjzcasqwonovmeagb6zyd54phlxju4iexzvxzoiwsrbdosbjpfy", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": null, + "new_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu" + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreia6nzpwoou2ynsyheddy6pqjyqpixgodib572t7c2sszcta3l4irq", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_000.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_000.json new file mode 100644 index 0000000..a26531e --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_000.json @@ -0,0 +1,66 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 127 and 0", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_127.car", + "mst_b": "./cars/exhaustive/exhaustive_000.car" + }, + "results": { + "created_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/00", + "old_value": "bafyreifnvbnowl4sk26xufwy7n22c7xv2wu6sl6v7kqeniutbsdjvp2zry", + "new_value": null + }, + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/04", + "old_value": "bafyreifze2zfbl6make5n73hscf77o6mfvzslieu3sp2hwfod4n3mi7gti", + "new_value": null + }, + { + "rpath": "k/39", + "old_value": "bafyreifx5ydm24lsvdtcyb73yny6cpary6z4mhtglp6insngv2bjd2jwam", + "new_value": null + }, + { + "rpath": "k/40", + "old_value": "bafyreiebxldcqft4fifkvdojvpbn5hyt73xskbebux2io4s734kz657emi", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + }, + { + "rpath": "k/49", + "old_value": "bafyreibhyijmsdy7kw3um2er2kxjjuzwawposyvfsezd4s46yfz2mbu3nu", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "inductive_proof_nodes": [ + "bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_093.json b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_093.json new file mode 100644 index 0000000..bf7b0d6 --- /dev/null +++ b/hubble-commit/tests/fixtures/mst-test-suite/tests/diff/exhaustive/exhaustive_127_093.json @@ -0,0 +1,53 @@ +{ + "$type": "mst-diff", + "description": "procedurally generated MST diff test case between MST 127 and 93", + "inputs": { + "mst_a": "./cars/exhaustive/exhaustive_127.car", + "mst_b": "./cars/exhaustive/exhaustive_093.car" + }, + "results": { + "created_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "deleted_nodes": [ + "bafyreicwmqkku3k5bncjyi3dp6go7skudmpacucel2vlobno4mgxgyzjla", + "bafyreicx2f37l4kigqlwmxduo66gt72q27svyxht3nnocktfrsf5ykgbwa", + "bafyreidaefuo4te5bt6dryb4nwyig3rborrhp74mrg622mfchlaw235h2u", + "bafyreif5lj2axnoe2hlmch5mwlnm7vyx4qvplq7vcdlcxicqnax52lvwwe", + "bafyreifc5o2jzxobgxurt74vx5xryqyicjwv4xmnzipahgpxuexa22ixme", + "bafyreihswqzzn3acbcog6oa75ekawanf3u7gj7efkheljt5p6amj4hbdsu", + "bafyreihvrp2soumle5anatn6n5lqmsdbkgxp2dp3zvimwonojupjabvzwe" + ], + "record_ops": [ + { + "rpath": "k/02", + "old_value": "bafyreifuza3xd7ji4flhybeao4v62ylud7kur7tfjnyfjk5d26udlxzpfu", + "new_value": null + }, + { + "rpath": "k/48", + "old_value": "bafyreico7yx5tzlzbv6yragamc3urhb47xuiskxyf2facppuzxavwbidjq", + "new_value": null + } + ], + "proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "inductive_proof_nodes": [ + "bafyreibwsjfy24l5mhyjeyu4wkieq7iwiqsdczf2gr6hq3sx6lydozgt54", + "bafyreidf2evxkgnmgtqcwtn2aik3lrrxmftryjtgjvpeuiduc2fstsgete", + "bafyreifabyi2frcy4wquw2csb7rjvdoayvt3v4p6azs53zryifr7u7rldu", + "bafyreihenbh3av4aduev76zducikbqz2ox6joa676bp3cj75fnndjdar6m", + "bafyreihfxxt5552ru7outcwloz6kkvyguotvnzgy6fapdjozqowxw33bdy" + ], + "firehose_cids": "TODO" + } +} \ No newline at end of file diff --git a/hubble-commit/tests/mst_diff_suite.rs b/hubble-commit/tests/mst_diff_suite.rs new file mode 100644 index 0000000..a211a55 --- /dev/null +++ b/hubble-commit/tests/mst_diff_suite.rs @@ -0,0 +1,225 @@ +//! Runs the `mst-diff` cases from DavidBuchanan314/mst-test-suite. +//! +//! Each case gives two MSTs as CAR files, the record operations between them, +//! and `inductive_proof_nodes`: "the nodes required for MST operation +//! inversion". That is exactly this crate's job, so the test is to load tree +//! *b* from nothing but those nodes, undo the operations, and land on tree +//! *a*'s root. +//! +//! Restricting the blocks to `inductive_proof_nodes` also checks that we do +//! not ask for more of the tree than a producer is obliged to send. +//! +//! A curated subset is vendored under `tests/fixtures/mst-test-suite` and runs +//! by default. The full 16 384 cases run from a checkout: +//! +//! ```text +//! git submodule update --init hubble-commit/tests/mst-test-suite +//! cargo test -p hubble-commit --test mst_diff_suite -- --ignored +//! ``` + +use std::collections::HashMap; +use std::path::{Path, PathBuf}; + +use hubble_commit::{CarReader, Cid, Key, Op, OpOrder, invert_ops}; +use serde::Deserialize; + +#[derive(Debug, Deserialize)] +struct TestCase { + #[serde(rename = "$type")] + kind: String, + description: String, + inputs: Inputs, + results: Results, +} + +#[derive(Debug, Deserialize)] +struct Inputs { + mst_a: String, + mst_b: String, +} + +#[derive(Debug, Deserialize)] +struct Results { + record_ops: Vec, + inductive_proof_nodes: Vec, +} + +#[derive(Debug, Deserialize)] +struct RecordOp { + rpath: String, + old_value: Option, + new_value: Option, +} + +impl RecordOp { + /// The op that undoes this change, taking tree *b* back towards tree *a*. + fn to_op(&self) -> Result { + let key = Key::new(&self.rpath).map_err(|e| format!("bad rpath: {e}"))?; + let old = self.old_value.as_deref().map(parse_cid).transpose()?; + let new = self.new_value.as_deref().map(parse_cid).transpose()?; + match (old, new) { + (None, Some(cid)) => Ok(Op::Create { key, cid }), + (Some(prev), Some(cid)) => Ok(Op::Update { key, cid, prev }), + (Some(prev), None) => Ok(Op::Delete { key, prev }), + (None, None) => Err(format!("record op on {} changes nothing", self.rpath)), + } + } +} + +fn parse_cid(s: &str) -> Result { + s.parse().map_err(|e| format!("bad cid {s:?}: {e}")) +} + +/// Every block in a CAR, plus its root. +fn read_car(path: &Path) -> Result<(Cid, HashMap>), String> { + let bytes = std::fs::read(path).map_err(|e| format!("reading {}: {e}", path.display()))?; + let reader = CarReader::new(&bytes).map_err(|e| format!("{}: {e}", path.display()))?; + let root = reader.root(); + let blocks = reader + .map(|block| { + block + .map(|(cid, bytes)| (cid, bytes.to_vec())) + .map_err(|e| format!("{}: {e}", path.display())) + }) + .collect::>()?; + Ok((root, blocks)) +} + +fn run_case(case_path: &Path, suite_root: &Path) -> Result<(), String> { + let json = std::fs::read_to_string(case_path) + .map_err(|e| format!("reading {}: {e}", case_path.display()))?; + let case: TestCase = serde_json::from_str(&json).map_err(|e| format!("parsing case: {e}"))?; + if case.kind != "mst-diff" { + return Ok(()); // some other kind of case, not ours to run + } + + let (root_a, blocks_a) = read_car(&resolve(suite_root, &case.inputs.mst_a))?; + let (root_b, blocks_b) = read_car(&resolve(suite_root, &case.inputs.mst_b))?; + + let ops: Result, String> = case.results.record_ops.iter().map(RecordOp::to_op).collect(); + // deliberately left in the suite's own order + let ops = ops?; + + // correctness, with the whole of tree b available: any op order must land + // on tree a's root + let mut all = blocks_b.clone(); + all.extend(blocks_a); + let got = invert_ops(&all, root_b, &ops, OpOrder::AsGiven).map_err(|e| { + format!("{}: inverting {} ops failed: {e}", case.description, ops.len()) + })?; + if got != root_a { + return Err(format!( + "{}: inverted to {got}, expected {root_a}", + case.description + )); + } + + // minimality, with nothing but the blocks the suite says inversion needs. + // that set is narrower than sync §4.1.2 obliges producers to send, and it + // is computed for highest-key-first application, so this only holds for + // that order — which makes it a tripwire for reaching past what we need. + let allowed: Result, String> = case + .results + .inductive_proof_nodes + .iter() + .map(|s| parse_cid(s)) + .collect(); + let proof: HashMap> = allowed? + .into_iter() + .filter_map(|cid| all.get(&cid).map(|block| (cid, block.clone()))) + .collect(); + + let got = invert_ops(&proof, root_b, &ops, OpOrder::HighestKeyFirst).map_err(|e| { + format!( + "{}: inverting {} ops from inductive_proof_nodes failed: {e}", + case.description, + ops.len() + ) + })?; + + if got != root_a { + return Err(format!( + "{}: inverted to {got}, expected {root_a}", + case.description + )); + } + Ok(()) +} + +/// `MST_SUITE_FAILURES=all` to see every failure rather than a sample. +fn failure_limit() -> usize { + match std::env::var("MST_SUITE_FAILURES").as_deref() { + Ok("all") => usize::MAX, + _ => 20, + } +} + +fn resolve(suite_root: &Path, relative: &str) -> PathBuf { + suite_root.join(relative.trim_start_matches("./")) +} + +fn case_files(dir: &Path) -> Vec { + let mut found = Vec::new(); + let Ok(entries) = std::fs::read_dir(dir) else { + return found; + }; + for entry in entries.flatten() { + let path = entry.path(); + if path.is_dir() { + found.extend(case_files(&path)); + } else if path.extension().is_some_and(|e| e == "json") { + found.push(path); + } + } + found.sort(); + found +} + +/// Run every case under `suite_root/tests`, reporting all failures at once. +fn run_suite(suite_root: &Path) { + let cases = case_files(&suite_root.join("tests")); + assert!( + !cases.is_empty(), + "no test cases under {}", + suite_root.join("tests").display() + ); + + let failures: Vec = cases + .iter() + .filter_map(|case| run_case(case, suite_root).err()) + .collect(); + + assert!( + failures.is_empty(), + "{} of {} cases failed:\n{}", + failures.len(), + cases.len(), + failures + .iter() + .take(failure_limit()) + .map(String::as_str) + .collect::>() + .join("\n") + ); + eprintln!("{} mst-diff cases passed", cases.len()); +} + +#[test] +fn vendored_subset() { + run_suite(&PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures/mst-test-suite")); +} + +#[test] +#[ignore = "needs the mst-test-suite submodule: git submodule update --init"] +fn exhaustive() { + let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/mst-test-suite"); + assert!( + root.join("tests").is_dir(), + "{} is empty — run `git submodule update --init {}`", + root.display(), + root.strip_prefix(env!("CARGO_MANIFEST_DIR")) + .unwrap_or(&root) + .display() + ); + run_suite(&root); +} diff --git a/hubble-sync/Cargo.toml b/hubble-sync/Cargo.toml index 4b84101..b08bd1b 100644 --- a/hubble-sync/Cargo.toml +++ b/hubble-sync/Cargo.toml @@ -11,6 +11,7 @@ dasl = { workspace = true } futures-util = { workspace = true } governor = { workspace = true } http = { workspace = true } +hubble-commit = { workspace = true } jacquard-api = { workspace = true, features = ["streaming"] } jacquard-common = { workspace = true, features = ["streaming"] } jacquard-identity = { workspace = true } @@ -29,9 +30,4 @@ tokio = { workspace = true, features = ["macros", "io-util", "rt", "time"] } tokio-stream = { workspace = true } tokio-util = { workspace = true } tracing = { workspace = true } - -# temporary explicit dependencies to support vendored dasl::cid -data-encoding = "2.11.0" -data-encoding-macro = "0.1.20" serde_bytes = "0.11.19" -sha2 = "0.11.0" diff --git a/hubble-sync/src/lib.rs b/hubble-sync/src/lib.rs index 1b7e30b..1b849b1 100644 --- a/hubble-sync/src/lib.rs +++ b/hubble-sync/src/lib.rs @@ -1,5 +1,4 @@ mod cancel; -mod cid; mod commit; mod config; mod crawl_strategy_list_repos; @@ -26,7 +25,7 @@ use host::Hostname; // public re-exports (TODO: needs cleaning up) -pub use cid::{Cid as DaslCid, CidParseError}; // VENDORED for now +pub use hubble_commit::{Cid as DaslCid, CidParseError}; // vendored there until dasl releases pub use commit::{Commit, CommitObject, Op, OpKind}; pub use config::{DeepCrawl, SensitiveToken, SyncConfig, SyncScope, UpstreamConfig, UpstreamKind}; pub use firehose::{ diff --git a/scripts/select-mst-cases.py b/scripts/select-mst-cases.py new file mode 100755 index 0000000..80828ad --- /dev/null +++ b/scripts/select-mst-cases.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +"""Pick the mst-test-suite cases to vendor into hubble-commit. + +Selection is deterministic and biased: + +- every case involving the empty tree (subset 000) bc edge cases are fun +- the cases with the most structural churn (nodes created plus deleted) +- the cases with the most record ops, where op ordering matters most +- an even sample of the rest + +usage: scripts/select-mst-cases.py [count] +""" + +import json +import shutil +import sys +from pathlib import Path + + +def load(path): + with path.open() as f: + return json.load(f) + + +def main(): + if len(sys.argv) < 3: + sys.exit(__doc__) + suite = Path(sys.argv[1]) + out = Path(sys.argv[2]) + want = int(sys.argv[3]) if len(sys.argv) > 3 else 300 + + cases = sorted((suite / "tests").rglob("*.json")) + if not cases: + sys.exit(f"no cases under {suite / 'tests'}") + + scored = [] + for path in cases: + case = load(path) + results = case["results"] + churn = len(results["created_nodes"]) + len(results["deleted_nodes"]) + ops = len(results["record_ops"]) + empty = "_000" in path.stem # either side is the empty tree + scored.append((path, churn, ops, empty)) + + # the empty-tree cases are the most valuable single group, but there are + # 255 of them, so take an even stride rather than all of them + empties = [p for p, _, _, empty in scored if empty] + stride = max(1, len(empties) // max(1, want // 2)) + picked = set(empties[::stride]) + for key in (lambda s: -s[1], lambda s: -s[2]): + for path, *_ in sorted(scored, key=key)[: want // 4]: + picked.add(path) + remaining = [p for p, *_ in scored if p not in picked] + if len(picked) < want and remaining: + stride = max(1, len(remaining) // max(1, want - len(picked))) + picked.update(remaining[::stride][: want - len(picked)]) + + if out.exists(): + shutil.rmtree(out) + for path in sorted(picked): + dest = out / path.relative_to(suite) + dest.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(path, dest) + + cars = out / "cars" + shutil.copytree(suite / "cars", cars) + + total = sum(f.stat().st_size for f in out.rglob("*") if f.is_file()) + print(f"{len(picked)} cases, {total / 1024:.0f} kB into {out}") + + +if __name__ == "__main__": + main() -- knotmirror 0.0.1 From 916cd2421021999e837b6b7825690ce7aa13912c Mon Sep 17 00:00:00 2001 From: phil Date: Thu, 20 Aug 2026 20:35:00 -0400 Subject: [PATCH 2/4] wording fixups --- hubble-commit/src/lib.rs | 12 +++--------- hubble-commit/src/tree.rs | 4 ++-- hubble-commit/tests/mst_diff_suite.rs | 4 ++-- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/hubble-commit/src/lib.rs b/hubble-commit/src/lib.rs index fb2f4c8..af5ab35 100644 --- a/hubble-commit/src/lib.rs +++ b/hubble-commit/src/lib.rs @@ -1,11 +1,7 @@ //! atproto commit operations. //! -//! Today this is operation inversion: step 3 of sync 1.1 commit validation, -//! which takes the tree a commit claims to have produced, undoes the -//! operations it claims to have applied, and recovers the root the repository -//! must have had beforehand. Matching that against the commit's `prevData` -//! proves the commit is internally consistent, without needing any state of -//! our own. +//! fast, synchronous implementation of step 3 of sync 1.1 commit validation, +//! operation inversion. //! //! ```no_run //! # use std::collections::HashMap; @@ -22,9 +18,7 @@ //! # } //! ``` //! -//! The whole crate is synchronous. A commit's CAR is capped at 2 MB, so the -//! tree involved is a handful of nodes and the work takes a few microseconds — -//! less than the signature check that follows it. +//! (in the future maybe we'll add commit coalescing too) mod blocks; pub mod car; diff --git a/hubble-commit/src/tree.rs b/hubble-commit/src/tree.rs index 053b716..186ee4e 100644 --- a/hubble-commit/src/tree.rs +++ b/hubble-commit/src/tree.rs @@ -102,7 +102,7 @@ struct Node { stub: bool, } -/// The tree a commit's proof describes, ready to have its operations undone. +/// The tree a commit's proof describes, ready to have its operations inverted. #[derive(Debug)] pub struct Tree { root: Node, @@ -672,7 +672,7 @@ fn node_of(entries: Vec, layer: i16) -> Node { } } -/// Rebuild a node's entries from its wire form, undoing prefix compression. +/// Rebuild a node's entries from its wire form, expanding prefix compression. fn decode(data: NodeData, cid: Cid) -> Result { let fault = |detail| InvertError::MalformedNode { cid: Some(cid), diff --git a/hubble-commit/tests/mst_diff_suite.rs b/hubble-commit/tests/mst_diff_suite.rs index a211a55..6489a6b 100644 --- a/hubble-commit/tests/mst_diff_suite.rs +++ b/hubble-commit/tests/mst_diff_suite.rs @@ -3,7 +3,7 @@ //! Each case gives two MSTs as CAR files, the record operations between them, //! and `inductive_proof_nodes`: "the nodes required for MST operation //! inversion". That is exactly this crate's job, so the test is to load tree -//! *b* from nothing but those nodes, undo the operations, and land on tree +//! *b* from nothing but those nodes, invert the operations, and land on tree //! *a*'s root. //! //! Restricting the blocks to `inductive_proof_nodes` also checks that we do @@ -52,7 +52,7 @@ struct RecordOp { } impl RecordOp { - /// The op that undoes this change, taking tree *b* back towards tree *a*. + /// The op that inverts this change, taking tree *b* back towards tree *a*. fn to_op(&self) -> Result { let key = Key::new(&self.rpath).map_err(|e| format!("bad rpath: {e}"))?; let old = self.old_value.as_deref().map(parse_cid).transpose()?; -- knotmirror 0.0.1 From c43d85f1c464df03d3bc3638721185ed7ae5384b Mon Sep 17 00:00:00 2001 From: phil Date: Thu, 20 Aug 2026 21:31:31 -0400 Subject: [PATCH 3/4] more tests, more rewording --- Cargo.lock | 19 ++ Cargo.toml | 1 + hubble-commit/corpus/Cargo.toml | 22 ++ hubble-commit/corpus/readme.md | 52 ++++ hubble-commit/corpus/src/bench.rs | 115 ++++++++ hubble-commit/corpus/src/capture.rs | 251 ++++++++++++++++++ hubble-commit/corpus/src/corpus.rs | 240 +++++++++++++++++ hubble-commit/corpus/src/main.rs | 81 ++++++ hubble-commit/fuzz/.gitignore | 5 + hubble-commit/fuzz/Cargo.toml | 32 +++ hubble-commit/fuzz/fuzz_targets/car.rs | 24 ++ hubble-commit/fuzz/fuzz_targets/invert.rs | 68 +++++ hubble-commit/fuzz/readme.md | 27 ++ .../fuzz/seeds/car/exhaustive_000.car | Bin 0 -> 103 bytes .../fuzz/seeds/car/exhaustive_001.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_002.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_003.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_004.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_005.car | Bin 0 -> 215 bytes .../fuzz/seeds/car/exhaustive_006.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_007.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_008.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_009.car | Bin 0 -> 386 bytes .../fuzz/seeds/car/exhaustive_010.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_011.car | Bin 0 -> 444 bytes .../fuzz/seeds/car/exhaustive_012.car | Bin 0 -> 386 bytes .../fuzz/seeds/car/exhaustive_013.car | Bin 0 -> 441 bytes .../fuzz/seeds/car/exhaustive_014.car | Bin 0 -> 444 bytes .../fuzz/seeds/car/exhaustive_015.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_016.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_017.car | Bin 0 -> 216 bytes .../fuzz/seeds/car/exhaustive_018.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_019.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_020.car | Bin 0 -> 216 bytes .../fuzz/seeds/car/exhaustive_021.car | Bin 0 -> 270 bytes .../fuzz/seeds/car/exhaustive_022.car | Bin 0 -> 358 bytes .../fuzz/seeds/car/exhaustive_023.car | Bin 0 -> 499 bytes .../fuzz/seeds/car/exhaustive_024.car | Bin 0 -> 386 bytes .../fuzz/seeds/car/exhaustive_025.car | Bin 0 -> 611 bytes .../fuzz/seeds/car/exhaustive_026.car | Bin 0 -> 527 bytes .../fuzz/seeds/car/exhaustive_027.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_028.car | Bin 0 -> 611 bytes .../fuzz/seeds/car/exhaustive_029.car | Bin 0 -> 666 bytes .../fuzz/seeds/car/exhaustive_030.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_031.car | Bin 0 -> 810 bytes .../fuzz/seeds/car/exhaustive_032.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_033.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_034.car | Bin 0 -> 216 bytes .../fuzz/seeds/car/exhaustive_035.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_036.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_037.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_038.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_039.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_040.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_041.car | Bin 0 -> 527 bytes .../fuzz/seeds/car/exhaustive_042.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_043.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_044.car | Bin 0 -> 527 bytes .../fuzz/seeds/car/exhaustive_045.car | Bin 0 -> 582 bytes .../fuzz/seeds/car/exhaustive_046.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_047.car | Bin 0 -> 726 bytes .../fuzz/seeds/car/exhaustive_048.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_049.car | Bin 0 -> 358 bytes .../fuzz/seeds/car/exhaustive_050.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_051.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_052.car | Bin 0 -> 358 bytes .../fuzz/seeds/car/exhaustive_053.car | Bin 0 -> 412 bytes .../fuzz/seeds/car/exhaustive_054.car | Bin 0 -> 413 bytes .../fuzz/seeds/car/exhaustive_055.car | Bin 0 -> 554 bytes .../fuzz/seeds/car/exhaustive_056.car | Bin 0 -> 444 bytes .../fuzz/seeds/car/exhaustive_057.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_058.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_059.car | Bin 0 -> 727 bytes .../fuzz/seeds/car/exhaustive_060.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_061.car | Bin 0 -> 724 bytes .../fuzz/seeds/car/exhaustive_062.car | Bin 0 -> 727 bytes .../fuzz/seeds/car/exhaustive_063.car | Bin 0 -> 868 bytes .../fuzz/seeds/car/exhaustive_064.car | Bin 0 -> 160 bytes .../fuzz/seeds/car/exhaustive_065.car | Bin 0 -> 216 bytes .../fuzz/seeds/car/exhaustive_066.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_067.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_068.car | Bin 0 -> 216 bytes .../fuzz/seeds/car/exhaustive_069.car | Bin 0 -> 270 bytes .../fuzz/seeds/car/exhaustive_070.car | Bin 0 -> 358 bytes .../fuzz/seeds/car/exhaustive_071.car | Bin 0 -> 499 bytes .../fuzz/seeds/car/exhaustive_072.car | Bin 0 -> 386 bytes .../fuzz/seeds/car/exhaustive_073.car | Bin 0 -> 611 bytes .../fuzz/seeds/car/exhaustive_074.car | Bin 0 -> 527 bytes .../fuzz/seeds/car/exhaustive_075.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_076.car | Bin 0 -> 611 bytes .../fuzz/seeds/car/exhaustive_077.car | Bin 0 -> 666 bytes .../fuzz/seeds/car/exhaustive_078.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_079.car | Bin 0 -> 810 bytes .../fuzz/seeds/car/exhaustive_080.car | Bin 0 -> 215 bytes .../fuzz/seeds/car/exhaustive_081.car | Bin 0 -> 270 bytes .../fuzz/seeds/car/exhaustive_082.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_083.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_084.car | Bin 0 -> 270 bytes .../fuzz/seeds/car/exhaustive_085.car | Bin 0 -> 324 bytes .../fuzz/seeds/car/exhaustive_086.car | Bin 0 -> 412 bytes .../fuzz/seeds/car/exhaustive_087.car | Bin 0 -> 553 bytes .../fuzz/seeds/car/exhaustive_088.car | Bin 0 -> 441 bytes .../fuzz/seeds/car/exhaustive_089.car | Bin 0 -> 666 bytes .../fuzz/seeds/car/exhaustive_090.car | Bin 0 -> 582 bytes .../fuzz/seeds/car/exhaustive_091.car | Bin 0 -> 724 bytes .../fuzz/seeds/car/exhaustive_092.car | Bin 0 -> 666 bytes .../fuzz/seeds/car/exhaustive_093.car | Bin 0 -> 721 bytes .../fuzz/seeds/car/exhaustive_094.car | Bin 0 -> 724 bytes .../fuzz/seeds/car/exhaustive_095.car | Bin 0 -> 865 bytes .../fuzz/seeds/car/exhaustive_096.car | Bin 0 -> 302 bytes .../fuzz/seeds/car/exhaustive_097.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_098.car | Bin 0 -> 357 bytes .../fuzz/seeds/car/exhaustive_099.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_100.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_101.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_102.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_103.car | Bin 0 -> 639 bytes .../fuzz/seeds/car/exhaustive_104.car | Bin 0 -> 444 bytes .../fuzz/seeds/car/exhaustive_105.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_106.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_107.car | Bin 0 -> 727 bytes .../fuzz/seeds/car/exhaustive_108.car | Bin 0 -> 669 bytes .../fuzz/seeds/car/exhaustive_109.car | Bin 0 -> 724 bytes .../fuzz/seeds/car/exhaustive_110.car | Bin 0 -> 727 bytes .../fuzz/seeds/car/exhaustive_111.car | Bin 0 -> 868 bytes .../fuzz/seeds/car/exhaustive_112.car | Bin 0 -> 443 bytes .../fuzz/seeds/car/exhaustive_113.car | Bin 0 -> 499 bytes .../fuzz/seeds/car/exhaustive_114.car | Bin 0 -> 498 bytes .../fuzz/seeds/car/exhaustive_115.car | Bin 0 -> 639 bytes .../fuzz/seeds/car/exhaustive_116.car | Bin 0 -> 499 bytes .../fuzz/seeds/car/exhaustive_117.car | Bin 0 -> 553 bytes .../fuzz/seeds/car/exhaustive_118.car | Bin 0 -> 554 bytes .../fuzz/seeds/car/exhaustive_119.car | Bin 0 -> 695 bytes .../fuzz/seeds/car/exhaustive_120.car | Bin 0 -> 585 bytes .../fuzz/seeds/car/exhaustive_121.car | Bin 0 -> 810 bytes .../fuzz/seeds/car/exhaustive_122.car | Bin 0 -> 726 bytes .../fuzz/seeds/car/exhaustive_123.car | Bin 0 -> 868 bytes .../fuzz/seeds/car/exhaustive_124.car | Bin 0 -> 810 bytes .../fuzz/seeds/car/exhaustive_125.car | Bin 0 -> 865 bytes .../fuzz/seeds/car/exhaustive_126.car | Bin 0 -> 868 bytes .../fuzz/seeds/car/exhaustive_127.car | Bin 0 -> 1009 bytes .../fuzz/seeds/invert/exhaustive_000_0.bin | Bin 0 -> 104 bytes .../fuzz/seeds/invert/exhaustive_000_1.bin | Bin 0 -> 107 bytes .../fuzz/seeds/invert/exhaustive_000_2.bin | Bin 0 -> 110 bytes .../fuzz/seeds/invert/exhaustive_000_3.bin | Bin 0 -> 113 bytes .../fuzz/seeds/invert/exhaustive_001_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_001_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_001_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_001_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_002_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_002_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_002_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_002_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_003_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_003_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_003_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_003_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_004_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_004_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_004_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_004_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_005_0.bin | Bin 0 -> 216 bytes .../fuzz/seeds/invert/exhaustive_005_1.bin | Bin 0 -> 219 bytes .../fuzz/seeds/invert/exhaustive_005_2.bin | Bin 0 -> 222 bytes .../fuzz/seeds/invert/exhaustive_005_3.bin | Bin 0 -> 225 bytes .../fuzz/seeds/invert/exhaustive_006_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_006_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_006_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_006_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_007_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_007_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_007_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_007_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_008_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_008_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_008_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_008_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_009_0.bin | Bin 0 -> 387 bytes .../fuzz/seeds/invert/exhaustive_009_1.bin | Bin 0 -> 390 bytes .../fuzz/seeds/invert/exhaustive_009_2.bin | Bin 0 -> 393 bytes .../fuzz/seeds/invert/exhaustive_009_3.bin | Bin 0 -> 396 bytes .../fuzz/seeds/invert/exhaustive_010_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_010_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_010_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_010_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_011_0.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_011_1.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_011_2.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_011_3.bin | Bin 0 -> 454 bytes .../fuzz/seeds/invert/exhaustive_012_0.bin | Bin 0 -> 387 bytes .../fuzz/seeds/invert/exhaustive_012_1.bin | Bin 0 -> 390 bytes .../fuzz/seeds/invert/exhaustive_012_2.bin | Bin 0 -> 393 bytes .../fuzz/seeds/invert/exhaustive_012_3.bin | Bin 0 -> 396 bytes .../fuzz/seeds/invert/exhaustive_013_0.bin | Bin 0 -> 442 bytes .../fuzz/seeds/invert/exhaustive_013_1.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_013_2.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_013_3.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_014_0.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_014_1.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_014_2.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_014_3.bin | Bin 0 -> 454 bytes .../fuzz/seeds/invert/exhaustive_015_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_015_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_015_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_015_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_016_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_016_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_016_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_016_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_017_0.bin | Bin 0 -> 217 bytes .../fuzz/seeds/invert/exhaustive_017_1.bin | Bin 0 -> 220 bytes .../fuzz/seeds/invert/exhaustive_017_2.bin | Bin 0 -> 223 bytes .../fuzz/seeds/invert/exhaustive_017_3.bin | Bin 0 -> 226 bytes .../fuzz/seeds/invert/exhaustive_018_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_018_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_018_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_018_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_019_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_019_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_019_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_019_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_020_0.bin | Bin 0 -> 217 bytes .../fuzz/seeds/invert/exhaustive_020_1.bin | Bin 0 -> 220 bytes .../fuzz/seeds/invert/exhaustive_020_2.bin | Bin 0 -> 223 bytes .../fuzz/seeds/invert/exhaustive_020_3.bin | Bin 0 -> 226 bytes .../fuzz/seeds/invert/exhaustive_021_0.bin | Bin 0 -> 271 bytes .../fuzz/seeds/invert/exhaustive_021_1.bin | Bin 0 -> 274 bytes .../fuzz/seeds/invert/exhaustive_021_2.bin | Bin 0 -> 277 bytes .../fuzz/seeds/invert/exhaustive_021_3.bin | Bin 0 -> 280 bytes .../fuzz/seeds/invert/exhaustive_022_0.bin | Bin 0 -> 359 bytes .../fuzz/seeds/invert/exhaustive_022_1.bin | Bin 0 -> 362 bytes .../fuzz/seeds/invert/exhaustive_022_2.bin | Bin 0 -> 365 bytes .../fuzz/seeds/invert/exhaustive_022_3.bin | Bin 0 -> 368 bytes .../fuzz/seeds/invert/exhaustive_023_0.bin | Bin 0 -> 500 bytes .../fuzz/seeds/invert/exhaustive_023_1.bin | Bin 0 -> 503 bytes .../fuzz/seeds/invert/exhaustive_023_2.bin | Bin 0 -> 506 bytes .../fuzz/seeds/invert/exhaustive_023_3.bin | Bin 0 -> 509 bytes .../fuzz/seeds/invert/exhaustive_024_0.bin | Bin 0 -> 387 bytes .../fuzz/seeds/invert/exhaustive_024_1.bin | Bin 0 -> 390 bytes .../fuzz/seeds/invert/exhaustive_024_2.bin | Bin 0 -> 393 bytes .../fuzz/seeds/invert/exhaustive_024_3.bin | Bin 0 -> 396 bytes .../fuzz/seeds/invert/exhaustive_025_0.bin | Bin 0 -> 612 bytes .../fuzz/seeds/invert/exhaustive_025_1.bin | Bin 0 -> 615 bytes .../fuzz/seeds/invert/exhaustive_025_2.bin | Bin 0 -> 618 bytes .../fuzz/seeds/invert/exhaustive_025_3.bin | Bin 0 -> 621 bytes .../fuzz/seeds/invert/exhaustive_026_0.bin | Bin 0 -> 528 bytes .../fuzz/seeds/invert/exhaustive_026_1.bin | Bin 0 -> 531 bytes .../fuzz/seeds/invert/exhaustive_026_2.bin | Bin 0 -> 534 bytes .../fuzz/seeds/invert/exhaustive_026_3.bin | Bin 0 -> 537 bytes .../fuzz/seeds/invert/exhaustive_027_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_027_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_027_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_027_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_028_0.bin | Bin 0 -> 612 bytes .../fuzz/seeds/invert/exhaustive_028_1.bin | Bin 0 -> 615 bytes .../fuzz/seeds/invert/exhaustive_028_2.bin | Bin 0 -> 618 bytes .../fuzz/seeds/invert/exhaustive_028_3.bin | Bin 0 -> 621 bytes .../fuzz/seeds/invert/exhaustive_029_0.bin | Bin 0 -> 667 bytes .../fuzz/seeds/invert/exhaustive_029_1.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_029_2.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_029_3.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_030_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_030_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_030_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_030_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_031_0.bin | Bin 0 -> 811 bytes .../fuzz/seeds/invert/exhaustive_031_1.bin | Bin 0 -> 814 bytes .../fuzz/seeds/invert/exhaustive_031_2.bin | Bin 0 -> 817 bytes .../fuzz/seeds/invert/exhaustive_031_3.bin | Bin 0 -> 820 bytes .../fuzz/seeds/invert/exhaustive_032_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_032_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_032_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_032_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_033_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_033_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_033_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_033_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_034_0.bin | Bin 0 -> 217 bytes .../fuzz/seeds/invert/exhaustive_034_1.bin | Bin 0 -> 220 bytes .../fuzz/seeds/invert/exhaustive_034_2.bin | Bin 0 -> 223 bytes .../fuzz/seeds/invert/exhaustive_034_3.bin | Bin 0 -> 226 bytes .../fuzz/seeds/invert/exhaustive_035_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_035_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_035_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_035_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_036_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_036_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_036_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_036_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_037_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_037_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_037_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_037_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_038_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_038_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_038_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_038_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_039_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_039_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_039_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_039_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_040_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_040_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_040_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_040_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_041_0.bin | Bin 0 -> 528 bytes .../fuzz/seeds/invert/exhaustive_041_1.bin | Bin 0 -> 531 bytes .../fuzz/seeds/invert/exhaustive_041_2.bin | Bin 0 -> 534 bytes .../fuzz/seeds/invert/exhaustive_041_3.bin | Bin 0 -> 537 bytes .../fuzz/seeds/invert/exhaustive_042_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_042_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_042_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_042_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_043_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_043_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_043_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_043_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_044_0.bin | Bin 0 -> 528 bytes .../fuzz/seeds/invert/exhaustive_044_1.bin | Bin 0 -> 531 bytes .../fuzz/seeds/invert/exhaustive_044_2.bin | Bin 0 -> 534 bytes .../fuzz/seeds/invert/exhaustive_044_3.bin | Bin 0 -> 537 bytes .../fuzz/seeds/invert/exhaustive_045_0.bin | Bin 0 -> 583 bytes .../fuzz/seeds/invert/exhaustive_045_1.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_045_2.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_045_3.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_046_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_046_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_046_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_046_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_047_0.bin | Bin 0 -> 727 bytes .../fuzz/seeds/invert/exhaustive_047_1.bin | Bin 0 -> 730 bytes .../fuzz/seeds/invert/exhaustive_047_2.bin | Bin 0 -> 733 bytes .../fuzz/seeds/invert/exhaustive_047_3.bin | Bin 0 -> 736 bytes .../fuzz/seeds/invert/exhaustive_048_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_048_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_048_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_048_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_049_0.bin | Bin 0 -> 359 bytes .../fuzz/seeds/invert/exhaustive_049_1.bin | Bin 0 -> 362 bytes .../fuzz/seeds/invert/exhaustive_049_2.bin | Bin 0 -> 365 bytes .../fuzz/seeds/invert/exhaustive_049_3.bin | Bin 0 -> 368 bytes .../fuzz/seeds/invert/exhaustive_050_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_050_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_050_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_050_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_051_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_051_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_051_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_051_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_052_0.bin | Bin 0 -> 359 bytes .../fuzz/seeds/invert/exhaustive_052_1.bin | Bin 0 -> 362 bytes .../fuzz/seeds/invert/exhaustive_052_2.bin | Bin 0 -> 365 bytes .../fuzz/seeds/invert/exhaustive_052_3.bin | Bin 0 -> 368 bytes .../fuzz/seeds/invert/exhaustive_053_0.bin | Bin 0 -> 413 bytes .../fuzz/seeds/invert/exhaustive_053_1.bin | Bin 0 -> 416 bytes .../fuzz/seeds/invert/exhaustive_053_2.bin | Bin 0 -> 419 bytes .../fuzz/seeds/invert/exhaustive_053_3.bin | Bin 0 -> 422 bytes .../fuzz/seeds/invert/exhaustive_054_0.bin | Bin 0 -> 414 bytes .../fuzz/seeds/invert/exhaustive_054_1.bin | Bin 0 -> 417 bytes .../fuzz/seeds/invert/exhaustive_054_2.bin | Bin 0 -> 420 bytes .../fuzz/seeds/invert/exhaustive_054_3.bin | Bin 0 -> 423 bytes .../fuzz/seeds/invert/exhaustive_055_0.bin | Bin 0 -> 555 bytes .../fuzz/seeds/invert/exhaustive_055_1.bin | Bin 0 -> 558 bytes .../fuzz/seeds/invert/exhaustive_055_2.bin | Bin 0 -> 561 bytes .../fuzz/seeds/invert/exhaustive_055_3.bin | Bin 0 -> 564 bytes .../fuzz/seeds/invert/exhaustive_056_0.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_056_1.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_056_2.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_056_3.bin | Bin 0 -> 454 bytes .../fuzz/seeds/invert/exhaustive_057_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_057_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_057_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_057_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_058_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_058_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_058_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_058_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_059_0.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_059_1.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_059_2.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_059_3.bin | Bin 0 -> 737 bytes .../fuzz/seeds/invert/exhaustive_060_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_060_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_060_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_060_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_061_0.bin | Bin 0 -> 725 bytes .../fuzz/seeds/invert/exhaustive_061_1.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_061_2.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_061_3.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_062_0.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_062_1.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_062_2.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_062_3.bin | Bin 0 -> 737 bytes .../fuzz/seeds/invert/exhaustive_063_0.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_063_1.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_063_2.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_063_3.bin | Bin 0 -> 878 bytes .../fuzz/seeds/invert/exhaustive_064_0.bin | Bin 0 -> 161 bytes .../fuzz/seeds/invert/exhaustive_064_1.bin | Bin 0 -> 164 bytes .../fuzz/seeds/invert/exhaustive_064_2.bin | Bin 0 -> 167 bytes .../fuzz/seeds/invert/exhaustive_064_3.bin | Bin 0 -> 170 bytes .../fuzz/seeds/invert/exhaustive_065_0.bin | Bin 0 -> 217 bytes .../fuzz/seeds/invert/exhaustive_065_1.bin | Bin 0 -> 220 bytes .../fuzz/seeds/invert/exhaustive_065_2.bin | Bin 0 -> 223 bytes .../fuzz/seeds/invert/exhaustive_065_3.bin | Bin 0 -> 226 bytes .../fuzz/seeds/invert/exhaustive_066_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_066_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_066_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_066_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_067_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_067_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_067_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_067_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_068_0.bin | Bin 0 -> 217 bytes .../fuzz/seeds/invert/exhaustive_068_1.bin | Bin 0 -> 220 bytes .../fuzz/seeds/invert/exhaustive_068_2.bin | Bin 0 -> 223 bytes .../fuzz/seeds/invert/exhaustive_068_3.bin | Bin 0 -> 226 bytes .../fuzz/seeds/invert/exhaustive_069_0.bin | Bin 0 -> 271 bytes .../fuzz/seeds/invert/exhaustive_069_1.bin | Bin 0 -> 274 bytes .../fuzz/seeds/invert/exhaustive_069_2.bin | Bin 0 -> 277 bytes .../fuzz/seeds/invert/exhaustive_069_3.bin | Bin 0 -> 280 bytes .../fuzz/seeds/invert/exhaustive_070_0.bin | Bin 0 -> 359 bytes .../fuzz/seeds/invert/exhaustive_070_1.bin | Bin 0 -> 362 bytes .../fuzz/seeds/invert/exhaustive_070_2.bin | Bin 0 -> 365 bytes .../fuzz/seeds/invert/exhaustive_070_3.bin | Bin 0 -> 368 bytes .../fuzz/seeds/invert/exhaustive_071_0.bin | Bin 0 -> 500 bytes .../fuzz/seeds/invert/exhaustive_071_1.bin | Bin 0 -> 503 bytes .../fuzz/seeds/invert/exhaustive_071_2.bin | Bin 0 -> 506 bytes .../fuzz/seeds/invert/exhaustive_071_3.bin | Bin 0 -> 509 bytes .../fuzz/seeds/invert/exhaustive_072_0.bin | Bin 0 -> 387 bytes .../fuzz/seeds/invert/exhaustive_072_1.bin | Bin 0 -> 390 bytes .../fuzz/seeds/invert/exhaustive_072_2.bin | Bin 0 -> 393 bytes .../fuzz/seeds/invert/exhaustive_072_3.bin | Bin 0 -> 396 bytes .../fuzz/seeds/invert/exhaustive_073_0.bin | Bin 0 -> 612 bytes .../fuzz/seeds/invert/exhaustive_073_1.bin | Bin 0 -> 615 bytes .../fuzz/seeds/invert/exhaustive_073_2.bin | Bin 0 -> 618 bytes .../fuzz/seeds/invert/exhaustive_073_3.bin | Bin 0 -> 621 bytes .../fuzz/seeds/invert/exhaustive_074_0.bin | Bin 0 -> 528 bytes .../fuzz/seeds/invert/exhaustive_074_1.bin | Bin 0 -> 531 bytes .../fuzz/seeds/invert/exhaustive_074_2.bin | Bin 0 -> 534 bytes .../fuzz/seeds/invert/exhaustive_074_3.bin | Bin 0 -> 537 bytes .../fuzz/seeds/invert/exhaustive_075_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_075_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_075_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_075_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_076_0.bin | Bin 0 -> 612 bytes .../fuzz/seeds/invert/exhaustive_076_1.bin | Bin 0 -> 615 bytes .../fuzz/seeds/invert/exhaustive_076_2.bin | Bin 0 -> 618 bytes .../fuzz/seeds/invert/exhaustive_076_3.bin | Bin 0 -> 621 bytes .../fuzz/seeds/invert/exhaustive_077_0.bin | Bin 0 -> 667 bytes .../fuzz/seeds/invert/exhaustive_077_1.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_077_2.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_077_3.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_078_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_078_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_078_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_078_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_079_0.bin | Bin 0 -> 811 bytes .../fuzz/seeds/invert/exhaustive_079_1.bin | Bin 0 -> 814 bytes .../fuzz/seeds/invert/exhaustive_079_2.bin | Bin 0 -> 817 bytes .../fuzz/seeds/invert/exhaustive_079_3.bin | Bin 0 -> 820 bytes .../fuzz/seeds/invert/exhaustive_080_0.bin | Bin 0 -> 216 bytes .../fuzz/seeds/invert/exhaustive_080_1.bin | Bin 0 -> 219 bytes .../fuzz/seeds/invert/exhaustive_080_2.bin | Bin 0 -> 222 bytes .../fuzz/seeds/invert/exhaustive_080_3.bin | Bin 0 -> 225 bytes .../fuzz/seeds/invert/exhaustive_081_0.bin | Bin 0 -> 271 bytes .../fuzz/seeds/invert/exhaustive_081_1.bin | Bin 0 -> 274 bytes .../fuzz/seeds/invert/exhaustive_081_2.bin | Bin 0 -> 277 bytes .../fuzz/seeds/invert/exhaustive_081_3.bin | Bin 0 -> 280 bytes .../fuzz/seeds/invert/exhaustive_082_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_082_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_082_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_082_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_083_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_083_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_083_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_083_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_084_0.bin | Bin 0 -> 271 bytes .../fuzz/seeds/invert/exhaustive_084_1.bin | Bin 0 -> 274 bytes .../fuzz/seeds/invert/exhaustive_084_2.bin | Bin 0 -> 277 bytes .../fuzz/seeds/invert/exhaustive_084_3.bin | Bin 0 -> 280 bytes .../fuzz/seeds/invert/exhaustive_085_0.bin | Bin 0 -> 325 bytes .../fuzz/seeds/invert/exhaustive_085_1.bin | Bin 0 -> 328 bytes .../fuzz/seeds/invert/exhaustive_085_2.bin | Bin 0 -> 331 bytes .../fuzz/seeds/invert/exhaustive_085_3.bin | Bin 0 -> 334 bytes .../fuzz/seeds/invert/exhaustive_086_0.bin | Bin 0 -> 413 bytes .../fuzz/seeds/invert/exhaustive_086_1.bin | Bin 0 -> 416 bytes .../fuzz/seeds/invert/exhaustive_086_2.bin | Bin 0 -> 419 bytes .../fuzz/seeds/invert/exhaustive_086_3.bin | Bin 0 -> 422 bytes .../fuzz/seeds/invert/exhaustive_087_0.bin | Bin 0 -> 554 bytes .../fuzz/seeds/invert/exhaustive_087_1.bin | Bin 0 -> 557 bytes .../fuzz/seeds/invert/exhaustive_087_2.bin | Bin 0 -> 560 bytes .../fuzz/seeds/invert/exhaustive_087_3.bin | Bin 0 -> 563 bytes .../fuzz/seeds/invert/exhaustive_088_0.bin | Bin 0 -> 442 bytes .../fuzz/seeds/invert/exhaustive_088_1.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_088_2.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_088_3.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_089_0.bin | Bin 0 -> 667 bytes .../fuzz/seeds/invert/exhaustive_089_1.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_089_2.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_089_3.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_090_0.bin | Bin 0 -> 583 bytes .../fuzz/seeds/invert/exhaustive_090_1.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_090_2.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_090_3.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_091_0.bin | Bin 0 -> 725 bytes .../fuzz/seeds/invert/exhaustive_091_1.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_091_2.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_091_3.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_092_0.bin | Bin 0 -> 667 bytes .../fuzz/seeds/invert/exhaustive_092_1.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_092_2.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_092_3.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_093_0.bin | Bin 0 -> 722 bytes .../fuzz/seeds/invert/exhaustive_093_1.bin | Bin 0 -> 725 bytes .../fuzz/seeds/invert/exhaustive_093_2.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_093_3.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_094_0.bin | Bin 0 -> 725 bytes .../fuzz/seeds/invert/exhaustive_094_1.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_094_2.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_094_3.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_095_0.bin | Bin 0 -> 866 bytes .../fuzz/seeds/invert/exhaustive_095_1.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_095_2.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_095_3.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_096_0.bin | Bin 0 -> 303 bytes .../fuzz/seeds/invert/exhaustive_096_1.bin | Bin 0 -> 306 bytes .../fuzz/seeds/invert/exhaustive_096_2.bin | Bin 0 -> 309 bytes .../fuzz/seeds/invert/exhaustive_096_3.bin | Bin 0 -> 312 bytes .../fuzz/seeds/invert/exhaustive_097_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_097_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_097_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_097_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_098_0.bin | Bin 0 -> 358 bytes .../fuzz/seeds/invert/exhaustive_098_1.bin | Bin 0 -> 361 bytes .../fuzz/seeds/invert/exhaustive_098_2.bin | Bin 0 -> 364 bytes .../fuzz/seeds/invert/exhaustive_098_3.bin | Bin 0 -> 367 bytes .../fuzz/seeds/invert/exhaustive_099_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_099_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_099_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_099_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_100_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_100_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_100_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_100_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_101_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_101_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_101_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_101_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_102_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_102_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_102_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_102_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_103_0.bin | Bin 0 -> 640 bytes .../fuzz/seeds/invert/exhaustive_103_1.bin | Bin 0 -> 643 bytes .../fuzz/seeds/invert/exhaustive_103_2.bin | Bin 0 -> 646 bytes .../fuzz/seeds/invert/exhaustive_103_3.bin | Bin 0 -> 649 bytes .../fuzz/seeds/invert/exhaustive_104_0.bin | Bin 0 -> 445 bytes .../fuzz/seeds/invert/exhaustive_104_1.bin | Bin 0 -> 448 bytes .../fuzz/seeds/invert/exhaustive_104_2.bin | Bin 0 -> 451 bytes .../fuzz/seeds/invert/exhaustive_104_3.bin | Bin 0 -> 454 bytes .../fuzz/seeds/invert/exhaustive_105_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_105_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_105_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_105_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_106_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_106_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_106_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_106_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_107_0.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_107_1.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_107_2.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_107_3.bin | Bin 0 -> 737 bytes .../fuzz/seeds/invert/exhaustive_108_0.bin | Bin 0 -> 670 bytes .../fuzz/seeds/invert/exhaustive_108_1.bin | Bin 0 -> 673 bytes .../fuzz/seeds/invert/exhaustive_108_2.bin | Bin 0 -> 676 bytes .../fuzz/seeds/invert/exhaustive_108_3.bin | Bin 0 -> 679 bytes .../fuzz/seeds/invert/exhaustive_109_0.bin | Bin 0 -> 725 bytes .../fuzz/seeds/invert/exhaustive_109_1.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_109_2.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_109_3.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_110_0.bin | Bin 0 -> 728 bytes .../fuzz/seeds/invert/exhaustive_110_1.bin | Bin 0 -> 731 bytes .../fuzz/seeds/invert/exhaustive_110_2.bin | Bin 0 -> 734 bytes .../fuzz/seeds/invert/exhaustive_110_3.bin | Bin 0 -> 737 bytes .../fuzz/seeds/invert/exhaustive_111_0.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_111_1.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_111_2.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_111_3.bin | Bin 0 -> 878 bytes .../fuzz/seeds/invert/exhaustive_112_0.bin | Bin 0 -> 444 bytes .../fuzz/seeds/invert/exhaustive_112_1.bin | Bin 0 -> 447 bytes .../fuzz/seeds/invert/exhaustive_112_2.bin | Bin 0 -> 450 bytes .../fuzz/seeds/invert/exhaustive_112_3.bin | Bin 0 -> 453 bytes .../fuzz/seeds/invert/exhaustive_113_0.bin | Bin 0 -> 500 bytes .../fuzz/seeds/invert/exhaustive_113_1.bin | Bin 0 -> 503 bytes .../fuzz/seeds/invert/exhaustive_113_2.bin | Bin 0 -> 506 bytes .../fuzz/seeds/invert/exhaustive_113_3.bin | Bin 0 -> 509 bytes .../fuzz/seeds/invert/exhaustive_114_0.bin | Bin 0 -> 499 bytes .../fuzz/seeds/invert/exhaustive_114_1.bin | Bin 0 -> 502 bytes .../fuzz/seeds/invert/exhaustive_114_2.bin | Bin 0 -> 505 bytes .../fuzz/seeds/invert/exhaustive_114_3.bin | Bin 0 -> 508 bytes .../fuzz/seeds/invert/exhaustive_115_0.bin | Bin 0 -> 640 bytes .../fuzz/seeds/invert/exhaustive_115_1.bin | Bin 0 -> 643 bytes .../fuzz/seeds/invert/exhaustive_115_2.bin | Bin 0 -> 646 bytes .../fuzz/seeds/invert/exhaustive_115_3.bin | Bin 0 -> 649 bytes .../fuzz/seeds/invert/exhaustive_116_0.bin | Bin 0 -> 500 bytes .../fuzz/seeds/invert/exhaustive_116_1.bin | Bin 0 -> 503 bytes .../fuzz/seeds/invert/exhaustive_116_2.bin | Bin 0 -> 506 bytes .../fuzz/seeds/invert/exhaustive_116_3.bin | Bin 0 -> 509 bytes .../fuzz/seeds/invert/exhaustive_117_0.bin | Bin 0 -> 554 bytes .../fuzz/seeds/invert/exhaustive_117_1.bin | Bin 0 -> 557 bytes .../fuzz/seeds/invert/exhaustive_117_2.bin | Bin 0 -> 560 bytes .../fuzz/seeds/invert/exhaustive_117_3.bin | Bin 0 -> 563 bytes .../fuzz/seeds/invert/exhaustive_118_0.bin | Bin 0 -> 555 bytes .../fuzz/seeds/invert/exhaustive_118_1.bin | Bin 0 -> 558 bytes .../fuzz/seeds/invert/exhaustive_118_2.bin | Bin 0 -> 561 bytes .../fuzz/seeds/invert/exhaustive_118_3.bin | Bin 0 -> 564 bytes .../fuzz/seeds/invert/exhaustive_119_0.bin | Bin 0 -> 696 bytes .../fuzz/seeds/invert/exhaustive_119_1.bin | Bin 0 -> 699 bytes .../fuzz/seeds/invert/exhaustive_119_2.bin | Bin 0 -> 702 bytes .../fuzz/seeds/invert/exhaustive_119_3.bin | Bin 0 -> 705 bytes .../fuzz/seeds/invert/exhaustive_120_0.bin | Bin 0 -> 586 bytes .../fuzz/seeds/invert/exhaustive_120_1.bin | Bin 0 -> 589 bytes .../fuzz/seeds/invert/exhaustive_120_2.bin | Bin 0 -> 592 bytes .../fuzz/seeds/invert/exhaustive_120_3.bin | Bin 0 -> 595 bytes .../fuzz/seeds/invert/exhaustive_121_0.bin | Bin 0 -> 811 bytes .../fuzz/seeds/invert/exhaustive_121_1.bin | Bin 0 -> 814 bytes .../fuzz/seeds/invert/exhaustive_121_2.bin | Bin 0 -> 817 bytes .../fuzz/seeds/invert/exhaustive_121_3.bin | Bin 0 -> 820 bytes .../fuzz/seeds/invert/exhaustive_122_0.bin | Bin 0 -> 727 bytes .../fuzz/seeds/invert/exhaustive_122_1.bin | Bin 0 -> 730 bytes .../fuzz/seeds/invert/exhaustive_122_2.bin | Bin 0 -> 733 bytes .../fuzz/seeds/invert/exhaustive_122_3.bin | Bin 0 -> 736 bytes .../fuzz/seeds/invert/exhaustive_123_0.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_123_1.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_123_2.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_123_3.bin | Bin 0 -> 878 bytes .../fuzz/seeds/invert/exhaustive_124_0.bin | Bin 0 -> 811 bytes .../fuzz/seeds/invert/exhaustive_124_1.bin | Bin 0 -> 814 bytes .../fuzz/seeds/invert/exhaustive_124_2.bin | Bin 0 -> 817 bytes .../fuzz/seeds/invert/exhaustive_124_3.bin | Bin 0 -> 820 bytes .../fuzz/seeds/invert/exhaustive_125_0.bin | Bin 0 -> 866 bytes .../fuzz/seeds/invert/exhaustive_125_1.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_125_2.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_125_3.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_126_0.bin | Bin 0 -> 869 bytes .../fuzz/seeds/invert/exhaustive_126_1.bin | Bin 0 -> 872 bytes .../fuzz/seeds/invert/exhaustive_126_2.bin | Bin 0 -> 875 bytes .../fuzz/seeds/invert/exhaustive_126_3.bin | Bin 0 -> 878 bytes .../fuzz/seeds/invert/exhaustive_127_0.bin | Bin 0 -> 1010 bytes .../fuzz/seeds/invert/exhaustive_127_1.bin | Bin 0 -> 1013 bytes .../fuzz/seeds/invert/exhaustive_127_2.bin | Bin 0 -> 1016 bytes .../fuzz/seeds/invert/exhaustive_127_3.bin | Bin 0 -> 1019 bytes hubble-commit/readme.md | 5 + hubble-commit/src/blocks.rs | 10 +- hubble-commit/src/car.rs | 2 +- hubble-commit/src/cid.rs | 21 +- hubble-commit/src/key.rs | 11 +- hubble-commit/src/lib.rs | 37 +-- hubble-commit/src/node.rs | 8 +- hubble-commit/src/tree.rs | 4 +- hubble-commit/tests/firehose_corpus.rs | 91 +++++++ .../tests/fixtures/firehose/commits.jsonl | 100 +++++++ 663 files changed, 1185 insertions(+), 41 deletions(-) create mode 100644 hubble-commit/corpus/Cargo.toml create mode 100644 hubble-commit/corpus/readme.md create mode 100644 hubble-commit/corpus/src/bench.rs create mode 100644 hubble-commit/corpus/src/capture.rs create mode 100644 hubble-commit/corpus/src/corpus.rs create mode 100644 hubble-commit/corpus/src/main.rs create mode 100644 hubble-commit/fuzz/.gitignore create mode 100644 hubble-commit/fuzz/Cargo.toml create mode 100644 hubble-commit/fuzz/fuzz_targets/car.rs create mode 100644 hubble-commit/fuzz/fuzz_targets/invert.rs create mode 100644 hubble-commit/fuzz/readme.md create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_000.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_001.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_002.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_003.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_004.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_005.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_006.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_007.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_008.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_009.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_010.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_011.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_012.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_013.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_014.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_015.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_016.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_017.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_018.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_019.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_020.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_021.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_022.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_023.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_024.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_025.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_026.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_027.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_028.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_029.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_030.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_031.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_032.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_033.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_034.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_035.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_036.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_037.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_038.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_039.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_040.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_041.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_042.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_043.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_044.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_045.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_046.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_047.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_048.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_049.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_050.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_051.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_052.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_053.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_054.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_055.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_056.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_057.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_058.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_059.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_060.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_061.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_062.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_063.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_064.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_065.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_066.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_067.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_068.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_069.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_070.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_071.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_072.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_073.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_074.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_075.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_076.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_077.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_078.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_079.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_080.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_081.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_082.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_083.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_084.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_085.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_086.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_087.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_088.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_089.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_090.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_091.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_092.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_093.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_094.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_095.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_096.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_097.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_098.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_099.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_100.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_101.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_102.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_103.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_104.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_105.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_106.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_107.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_108.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_109.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_110.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_111.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_112.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_113.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_114.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_115.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_116.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_117.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_118.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_119.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_120.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_121.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_122.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_123.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_124.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_125.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_126.car create mode 100644 hubble-commit/fuzz/seeds/car/exhaustive_127.car create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_000_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_000_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_000_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_000_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_001_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_001_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_001_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_001_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_002_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_002_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_002_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_002_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_003_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_003_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_003_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_003_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_004_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_004_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_004_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_004_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_005_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_005_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_005_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_005_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_006_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_006_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_006_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_006_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_007_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_007_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_007_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_007_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_008_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_008_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_008_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_008_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_009_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_009_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_009_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_009_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_010_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_010_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_010_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_010_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_011_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_011_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_011_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_011_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_012_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_012_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_012_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_012_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_013_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_013_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_013_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_013_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_014_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_014_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_014_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_014_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_015_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_015_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_015_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_015_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_016_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_016_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_016_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_016_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_017_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_017_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_017_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_017_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_018_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_018_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_018_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_018_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_019_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_019_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_019_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_019_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_020_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_020_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_020_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_020_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_021_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_021_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_021_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_021_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_022_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_022_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_022_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_022_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_023_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_023_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_023_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_023_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_024_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_024_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_024_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_024_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_025_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_025_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_025_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_025_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_026_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_026_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_026_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_026_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_027_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_027_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_027_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_027_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_028_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_028_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_028_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_028_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_029_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_029_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_029_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_029_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_030_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_030_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_030_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_030_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_031_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_031_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_031_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_031_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_032_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_032_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_032_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_032_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_033_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_033_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_033_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_033_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_034_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_034_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_034_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_034_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_035_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_035_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_035_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_035_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_036_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_036_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_036_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_036_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_037_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_037_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_037_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_037_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_038_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_038_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_038_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_038_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_039_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_039_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_039_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_039_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_040_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_040_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_040_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_040_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_041_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_041_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_041_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_041_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_042_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_042_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_042_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_042_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_043_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_043_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_043_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_043_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_044_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_044_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_044_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_044_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_045_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_045_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_045_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_045_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_046_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_046_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_046_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_046_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_047_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_047_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_047_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_047_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_048_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_048_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_048_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_048_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_049_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_049_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_049_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_049_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_050_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_050_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_050_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_050_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_051_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_051_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_051_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_051_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_052_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_052_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_052_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_052_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_053_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_053_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_053_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_053_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_054_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_054_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_054_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_054_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_055_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_055_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_055_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_055_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_056_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_056_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_056_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_056_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_057_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_057_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_057_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_057_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_058_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_058_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_058_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_058_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_059_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_059_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_059_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_059_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_060_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_060_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_060_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_060_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_061_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_061_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_061_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_061_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_062_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_062_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_062_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_062_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_063_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_063_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_063_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_063_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_064_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_064_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_064_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_064_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_065_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_065_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_065_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_065_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_066_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_066_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_066_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_066_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_067_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_067_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_067_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_067_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_068_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_068_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_068_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_068_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_069_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_069_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_069_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_069_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_070_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_070_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_070_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_070_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_071_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_071_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_071_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_071_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_072_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_072_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_072_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_072_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_073_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_073_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_073_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_073_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_074_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_074_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_074_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_074_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_075_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_075_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_075_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_075_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_076_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_076_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_076_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_076_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_077_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_077_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_077_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_077_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_078_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_078_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_078_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_078_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_079_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_079_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_079_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_079_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_080_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_080_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_080_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_080_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_081_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_081_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_081_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_081_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_082_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_082_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_082_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_082_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_083_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_083_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_083_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_083_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_084_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_084_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_084_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_084_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_085_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_085_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_085_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_085_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_086_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_086_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_086_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_086_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_087_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_087_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_087_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_087_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_088_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_088_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_088_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_088_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_089_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_089_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_089_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_089_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_090_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_090_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_090_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_090_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_091_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_091_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_091_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_091_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_092_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_092_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_092_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_092_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_093_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_093_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_093_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_093_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_094_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_094_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_094_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_094_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_095_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_095_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_095_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_095_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_096_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_096_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_096_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_096_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_097_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_097_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_097_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_097_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_098_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_098_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_098_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_098_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_099_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_099_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_099_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_099_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_100_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_100_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_100_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_100_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_101_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_101_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_101_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_101_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_102_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_102_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_102_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_102_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_103_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_103_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_103_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_103_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_104_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_104_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_104_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_104_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_105_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_105_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_105_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_105_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_106_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_106_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_106_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_106_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_107_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_107_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_107_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_107_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_108_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_108_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_108_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_108_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_109_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_109_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_109_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_109_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_110_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_110_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_110_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_110_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_111_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_111_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_111_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_111_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_112_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_112_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_112_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_112_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_113_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_113_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_113_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_113_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_114_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_114_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_114_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_114_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_115_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_115_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_115_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_115_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_116_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_116_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_116_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_116_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_117_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_117_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_117_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_117_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_118_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_118_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_118_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_118_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_119_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_119_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_119_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_119_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_120_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_120_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_120_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_120_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_121_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_121_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_121_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_121_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_122_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_122_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_122_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_122_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_123_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_123_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_123_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_123_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_124_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_124_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_124_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_124_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_125_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_125_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_125_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_125_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_126_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_126_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_126_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_126_3.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_127_0.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_127_1.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_127_2.bin create mode 100644 hubble-commit/fuzz/seeds/invert/exhaustive_127_3.bin create mode 100644 hubble-commit/tests/firehose_corpus.rs create mode 100644 hubble-commit/tests/fixtures/firehose/commits.jsonl diff --git a/Cargo.lock b/Cargo.lock index beb8adb..8297cfc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2184,6 +2184,25 @@ dependencies = [ "unsigned-varint 0.8.0", ] +[[package]] +name = "hubble-commit-corpus" +version = "0.0.1" +dependencies = [ + "clap", + "dasl", + "data-encoding", + "futures-util", + "hubble-commit", + "jacquard-api", + "jacquard-common", + "serde", + "serde_json", + "thiserror 2.0.20", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "hubble-mini" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 5793988..4b7dd5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "getrepo-bench", "hubble", "hubble-commit", + "hubble-commit/corpus", "hubble-pds", "hubble-sync", "hubble-sync-axum", diff --git a/hubble-commit/corpus/Cargo.toml b/hubble-commit/corpus/Cargo.toml new file mode 100644 index 0000000..575485c --- /dev/null +++ b/hubble-commit/corpus/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "hubble-commit-corpus" +description = "capture real firehose commits and bench operation inversion against them" +version = "0.0.1" +edition = "2024" +license = "MIT OR Apache-2.0" +publish = false + +[dependencies] +clap = { workspace = true } +dasl = { workspace = true } +data-encoding = "2.11.0" +futures-util = { workspace = true } +hubble-commit = { workspace = true } +jacquard-api = { workspace = true, features = ["streaming"] } +jacquard-common = { workspace = true, features = ["streaming"] } +serde = { workspace = true } +serde_json = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["macros", "rt-multi-thread", "signal", "time"] } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } diff --git a/hubble-commit/corpus/readme.md b/hubble-commit/corpus/readme.md new file mode 100644 index 0000000..47a3015 --- /dev/null +++ b/hubble-commit/corpus/readme.md @@ -0,0 +1,52 @@ +# hubble-commit-corpus: real commits for hubble-commit + +captures `#commit` events off a relay, keeps the ones that actually invert, and +times operation inversion against them. the generated and exhaustive test +suites cover correctness; this covers the shapes producers really emit and how +long they take. + +it is a nested crate rather than an example or a feature-gated binary so that +its dependencies — tokio, jacquard, a websocket stack — stay out of +hubble-commit entirely. examples and dev-dependencies get built by +`cargo test`, and keeping that fast is most of the point of the library. + +``` +cargo run --release -p hubble-commit-corpus -- capture local/commits.jsonl --commits 5000 +cargo run --release -p hubble-commit-corpus -- bench local/commits.jsonl +cargo run --release -p hubble-commit-corpus -- sample local/commits.jsonl \ + hubble-commit/tests/fixtures/firehose/commits.jsonl --commits 100 +``` + +## what gets kept + +relays run lenient — they pass through commits that fail inductive proof, and +commits from producers that never spoke sync 1.1 — so every commit is inverted +before it is kept, and again after stripping, and the reasons for dropping are +counted rather than silently swallowed. a capture run prints them: + +``` +seen=5002 kept=5000 no_prev_data=2 bad_car=0 bad_ops=0 + failed_inversion=0 failed_after_strip=0 +``` + +## what gets written + +one json object per commit, holding only what inversion consumes: the MST root +the commit claims, the root it claims to have replaced, the operations, and the +MST node blocks. + +deliberately absent: record blocks (inversion never decodes them, only links to +them by CID), the commit object, and the repo's DID. the walk that collects the +tree follows `l` and `t` links and never `v`, so records are excluded by +construction rather than by filtering. what is left identifies nobody — a +record path is a collection name and a TID. + +that is what makes `sample` output safe to commit. captures themselves belong +in `local/`; they run to ~5.5 kB per commit. + +## sampling + +real commits are overwhelmingly one operation over eight or so blocks, so an +even sample would be almost all the same shape. `sample` keeps every +multi-operation commit it can, then spreads the rest over block count so the +fixture spans small and large trees instead of clustering at the median. diff --git a/hubble-commit/corpus/src/bench.rs b/hubble-commit/corpus/src/bench.rs new file mode 100644 index 0000000..4dea33b --- /dev/null +++ b/hubble-commit/corpus/src/bench.rs @@ -0,0 +1,115 @@ +//! Time operation inversion against captured commits. +//! +//! Deliberately not criterion: the interesting number is the per-commit +//! latency distribution over a fixed corpus, not a throughput estimate with +//! confidence intervals over one synthetic input. + +use std::collections::HashMap; +use std::path::Path; +use std::time::{Duration, Instant}; + +use hubble_commit::{Cid, OpOrder, invert_ops}; + +use crate::corpus::{self, Case}; + +struct Prepared<'a> { + case: &'a Case, + blocks: HashMap, +} + +fn percentile(sorted: &[Duration], q: f64) -> Duration { + let idx = ((sorted.len() as f64 * q) as usize).min(sorted.len().saturating_sub(1)); + sorted[idx] +} + +fn describe(label: &str, mut samples: Vec) { + if samples.is_empty() { + println!(" {label}: no samples"); + return; + } + samples.sort_unstable(); + let total: Duration = samples.iter().sum(); + let mean = total / samples.len() as u32; + println!( + " {label:<18} p50 {:>7.1}µs p90 {:>7.1}µs p99 {:>7.1}µs max {:>8.1}µs mean {:>7.1}µs → {:>8.0}/s", + percentile(&samples, 0.50).as_secs_f64() * 1e6, + percentile(&samples, 0.90).as_secs_f64() * 1e6, + percentile(&samples, 0.99).as_secs_f64() * 1e6, + samples.last().map(|d| d.as_secs_f64()).unwrap_or(0.0) * 1e6, + mean.as_secs_f64() * 1e6, + 1.0 / mean.as_secs_f64(), + ); +} + +fn histogram(label: &str, values: &[usize]) { + if values.is_empty() { + return; + } + let mut sorted = values.to_vec(); + sorted.sort_unstable(); + let sum: usize = sorted.iter().sum(); + println!( + " {label:<18} min {} p50 {} p90 {} max {} mean {:.1}", + sorted[0], + sorted[sorted.len() / 2], + sorted[sorted.len() * 9 / 10], + sorted[sorted.len() - 1], + sum as f64 / sorted.len() as f64, + ); +} + +pub fn run(path: &Path, rounds: usize) -> Result<(), String> { + let cases = corpus::load(path).map_err(|e| format!("loading {}: {e}", path.display()))?; + if cases.is_empty() { + return Err(format!("{} has no cases", path.display())); + } + + let prepared: Vec = cases + .iter() + .map(|case| Prepared { + case, + blocks: case.block_map(), + }) + .collect(); + + println!("{} commits from {}", cases.len(), path.display()); + histogram("ops/commit", &cases.iter().map(|c| c.ops.len()).collect::>()); + histogram( + "mst blocks", + &cases.iter().map(|c| c.blocks.len()).collect::>(), + ); + histogram( + "mst bytes", + &cases + .iter() + .map(|c| c.blocks.iter().map(Vec::len).sum()) + .collect::>(), + ); + + // one untimed pass, both to warm caches and to fail loudly if the corpus + // does not actually invert + for p in &prepared { + let got = invert_ops(&p.blocks, p.case.root, &p.case.ops, OpOrder::AsGiven) + .map_err(|e| format!("corpus case does not invert: {e}"))?; + if got != p.case.prev { + return Err("corpus case inverts to the wrong root".into()); + } + } + + for order in [OpOrder::AsGiven, OpOrder::HighestKeyFirst] { + let mut samples = Vec::with_capacity(prepared.len() * rounds); + for _ in 0..rounds { + for p in &prepared { + let start = Instant::now(); + let got = invert_ops(&p.blocks, p.case.root, &p.case.ops, order); + samples.push(start.elapsed()); + if !matches!(got, Ok(root) if root == p.case.prev) { + return Err(format!("case failed under {order:?}")); + } + } + } + describe(&format!("{order:?}"), samples); + } + + Ok(()) +} diff --git a/hubble-commit/corpus/src/capture.rs b/hubble-commit/corpus/src/capture.rs new file mode 100644 index 0000000..061099a --- /dev/null +++ b/hubble-commit/corpus/src/capture.rs @@ -0,0 +1,251 @@ +//! Pull real `#commit` events off a relay and keep the ones that invert. +//! +//! Relays run lenient: they pass through commits that fail inductive proof, +//! and commits from producers that never spoke sync 1.1. So everything is +//! checked before it is kept, and the reasons for dropping are counted so the +//! shape of the live stream is visible rather than silently filtered. + +use std::collections::{HashMap, HashSet}; +use std::path::Path; + +use futures_util::StreamExt; +use hubble_commit::{CarReader, Cid, InvertError, Key, Op, OpOrder, invert_ops}; +use jacquard_api::com_atproto::sync::subscribe_repos::{ + Commit, RepoOpAction, SubscribeRepos, SubscribeReposMessage, +}; +use jacquard_common::deps::fluent_uri::Uri as FluentUri; +use jacquard_common::types::cid::CidLink; +use jacquard_common::websocket::tungstenite_client::TungsteniteClient; +use jacquard_common::xrpc::SubscriptionExt; +use serde::Deserialize; +use tracing::{info, warn}; + +use crate::corpus::{Case, Writer}; + +/// Only the field inversion needs: the MST root this commit produced. +#[derive(Deserialize)] +struct CommitObject { + data: Cid, +} + +/// Enough of an MST node to follow its subtree links. `v` is deliberately not +/// followed — that is what makes the walk collect the tree and not the +/// records hanging off it. +#[derive(Deserialize)] +struct NodeData { + #[serde(rename = "e")] + entries: Vec, + #[serde(rename = "l")] + left: Option, +} + +#[derive(Deserialize)] +struct EntryData { + #[serde(rename = "t")] + right: Option, +} + +#[derive(Default)] +pub struct Counts { + pub seen: usize, + pub kept: usize, + pub not_sync11: usize, + pub bad_car: usize, + pub bad_ops: usize, + pub failed_inversion: usize, + pub failed_after_strip: usize, +} + +impl Counts { + pub fn report(&self) { + info!( + seen = self.seen, + kept = self.kept, + no_prev_data = self.not_sync11, + bad_car = self.bad_car, + bad_ops = self.bad_ops, + failed_inversion = self.failed_inversion, + failed_after_strip = self.failed_after_strip, + "capture" + ); + } +} + +/// Collect the MST nodes reachable from `root`, ignoring record links. +fn walk_mst(blocks: &HashMap, root: Cid) -> Vec> { + let mut out = Vec::new(); + let mut seen = HashSet::new(); + let mut stack = vec![root]; + while let Some(cid) = stack.pop() { + if !seen.insert(cid) { + continue; + } + let Some(block) = blocks.get(&cid) else { + continue; // absent from the proof, which is normal + }; + let Ok(node) = dasl::drisl::from_slice::(block) else { + continue; // not an MST node, so not part of the tree + }; + out.push(block.to_vec()); + stack.extend(node.left); + stack.extend(node.entries.into_iter().filter_map(|e| e.right)); + } + out +} + +fn ops_of(commit: &Commit) -> Option> { + let cid_of = |link: &Option| -> Option { + let ipld = link.as_ref()?.to_ipld().ok()?; + Cid::from_bytes_raw(&ipld.to_bytes()).ok() + }; + commit + .ops + .iter() + .map(|op| { + let key = Key::new(&op.path).ok()?; + Some(match op.action { + RepoOpAction::Create => Op::Create { + key, + cid: cid_of(&op.cid)?, + }, + RepoOpAction::Update => Op::Update { + key, + cid: cid_of(&op.cid)?, + prev: cid_of(&op.prev)?, + }, + RepoOpAction::Delete => Op::Delete { + key, + prev: cid_of(&op.prev)?, + }, + RepoOpAction::Other(_) => return None, + }) + }) + .collect() +} + +/// Turn one firehose commit into a case, or say why it cannot be one. +fn case_of(commit: &Commit, counts: &mut Counts) -> Option { + let Some(prev_link) = commit.prev_data.as_ref() else { + counts.not_sync11 += 1; + return None; + }; + let Ok(prev) = prev_link + .to_ipld() + .map_err(|_| ()) + .and_then(|ipld| Cid::from_bytes_raw(&ipld.to_bytes()).map_err(|_| ())) + else { + counts.bad_car += 1; + return None; + }; + + let Ok(reader) = CarReader::new(&commit.blocks) else { + counts.bad_car += 1; + return None; + }; + let commit_cid = reader.root(); + let mut blocks: HashMap = HashMap::new(); + for block in reader { + let Ok((cid, bytes)) = block else { + counts.bad_car += 1; + return None; + }; + blocks.insert(cid, bytes); + } + + let Some(commit_block) = blocks.get(&commit_cid) else { + counts.bad_car += 1; + return None; + }; + let Ok(object) = dasl::drisl::from_slice::(commit_block) else { + counts.bad_car += 1; + return None; + }; + + let Some(ops) = ops_of(commit) else { + counts.bad_ops += 1; + return None; + }; + + // does it invert at all, with everything the producer sent? + match invert_ops(&blocks, object.data, &ops, OpOrder::AsGiven) { + Ok(got) if got == prev => {} + Ok(_) | Err(InvertError::OpMismatch { .. }) | Err(InvertError::ProofIncomplete { .. }) => { + counts.failed_inversion += 1; + return None; + } + Err(e) => { + warn!(error = %e, "unexpected inversion failure"); + counts.failed_inversion += 1; + return None; + } + } + + // and does it still invert once the records are stripped out? + let case = Case { + root: object.data, + prev, + ops, + blocks: walk_mst(&blocks, object.data), + }; + match invert_ops(&case.block_map(), case.root, &case.ops, OpOrder::AsGiven) { + Ok(got) if got == case.prev => { + counts.kept += 1; + Some(case) + } + _ => { + counts.failed_after_strip += 1; + None + } + } +} + +pub async fn run(host: &str, want: usize, out: &Path) -> Result { + let uri = FluentUri::parse(format!("wss://{host}")) + .map_err(|e| format!("bad host {host:?}: {e:?}"))?; + let stream = TungsteniteClient::new() + .subscription(uri) + .subscribe(&SubscribeRepos { cursor: None }) + .await + .map_err(|e| format!("subscribe: {e:?}"))?; + + let mut writer = Writer::create(out).map_err(|e| format!("opening {}: {e}", out.display()))?; + let mut counts = Counts::default(); + let (_sink, mut messages) = stream.into_stream(); + + while counts.kept < want { + let next = tokio::select! { + biased; + _ = tokio::signal::ctrl_c() => { + info!("interrupted, wrapping up"); + break; + } + next = messages.next() => next, + }; + let Some(message) = next else { + warn!("stream ended early"); + break; + }; + let message = match message { + Ok(m) => m, + Err(e) => { + warn!(error = %e, "stream error, skipping"); + continue; + } + }; + let SubscribeReposMessage::Commit(commit) = message else { + continue; + }; + counts.seen += 1; + if let Some(case) = case_of(&commit, &mut counts) { + writer + .push(&case) + .map_err(|e| format!("writing case: {e}"))?; + } + if counts.seen % 500 == 0 { + counts.report(); + } + } + + writer.finish().map_err(|e| format!("closing: {e}"))?; + Ok(counts) +} diff --git a/hubble-commit/corpus/src/corpus.rs b/hubble-commit/corpus/src/corpus.rs new file mode 100644 index 0000000..6a5c927 --- /dev/null +++ b/hubble-commit/corpus/src/corpus.rs @@ -0,0 +1,240 @@ +//! The on-disk shape of a captured corpus. +//! +//! One JSON object per line, holding only what operation inversion consumes: +//! the MST root the commit claims, the root it claims to have replaced, the +//! operations, and the MST node blocks. +//! +//! Deliberately absent: record blocks (inversion never decodes them, only +//! links to them by CID), the commit object, and the repo's DID. What is left +//! identifies nobody — record paths are a collection name and a TID. + +use std::collections::HashMap; +use std::io::{BufRead, BufReader, Write}; +use std::path::Path; + +use data_encoding::BASE64; +use hubble_commit::cid::Codec; +use hubble_commit::{Cid, Key, Op}; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, thiserror::Error)] +pub enum CorpusError { + #[error("io: {0}")] + Io(#[from] std::io::Error), + #[error("json: {0}")] + Json(#[from] serde_json::Error), + #[error("bad cid {cid:?}: {detail}")] + Cid { cid: String, detail: String }, + #[error("bad block encoding: {0}")] + Block(String), + #[error("bad key {key:?}: {detail}")] + Key { key: String, detail: String }, + #[error("op {action:?} on {path:?} is missing its {field} field")] + OpField { + action: String, + path: String, + field: &'static str, + }, + #[error("unknown op action {0:?}")] + OpAction(String), +} + +/// One commit, ready to invert. +pub struct Case { + /// MST root the commit claims to have produced. + pub root: Cid, + /// MST root it claims to have replaced — what inversion must recover. + pub prev: Cid, + pub ops: Vec, + pub blocks: Vec>, +} + +impl Case { + /// Blocks keyed by CID, recomputed from the bytes rather than trusted. + pub fn block_map(&self) -> HashMap { + self.blocks + .iter() + .map(|block| (Cid::digest_sha2(Codec::Drisl, block), block.as_slice())) + .collect() + } +} + +#[derive(Serialize, Deserialize)] +struct Record { + root: String, + prev: String, + ops: Vec, + blocks: Vec, +} + +#[derive(Serialize, Deserialize)] +struct OpRecord { + action: String, + path: String, + #[serde(skip_serializing_if = "Option::is_none")] + cid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + prev: Option, +} + +fn parse_cid(s: &str) -> Result { + s.parse().map_err(|e| CorpusError::Cid { + cid: s.to_string(), + detail: format!("{e:?}"), + }) +} + +impl Record { + fn from_case(case: &Case) -> Self { + Self { + root: case.root.to_string(), + prev: case.prev.to_string(), + ops: case + .ops + .iter() + .map(|op| match op { + Op::Create { key, cid } => OpRecord { + action: "create".into(), + path: key.to_string(), + cid: Some(cid.to_string()), + prev: None, + }, + Op::Update { key, cid, prev } => OpRecord { + action: "update".into(), + path: key.to_string(), + cid: Some(cid.to_string()), + prev: Some(prev.to_string()), + }, + Op::Delete { key, prev } => OpRecord { + action: "delete".into(), + path: key.to_string(), + cid: None, + prev: Some(prev.to_string()), + }, + }) + .collect(), + blocks: case.blocks.iter().map(|b| BASE64.encode(b)).collect(), + } + } + + fn into_case(self) -> Result { + let ops = self + .ops + .iter() + .map(|op| { + let key = Key::new(&op.path).map_err(|e| CorpusError::Key { + key: op.path.clone(), + detail: e.to_string(), + })?; + let missing = |field| CorpusError::OpField { + action: op.action.clone(), + path: op.path.clone(), + field, + }; + let cid = op.cid.as_deref().map(parse_cid).transpose()?; + let prev = op.prev.as_deref().map(parse_cid).transpose()?; + match op.action.as_str() { + "create" => Ok(Op::Create { + key, + cid: cid.ok_or_else(|| missing("cid"))?, + }), + "update" => Ok(Op::Update { + key, + cid: cid.ok_or_else(|| missing("cid"))?, + prev: prev.ok_or_else(|| missing("prev"))?, + }), + "delete" => Ok(Op::Delete { + key, + prev: prev.ok_or_else(|| missing("prev"))?, + }), + other => Err(CorpusError::OpAction(other.to_string())), + } + }) + .collect::, CorpusError>>()?; + + let blocks = self + .blocks + .iter() + .map(|b| { + BASE64 + .decode(b.as_bytes()) + .map_err(|e| CorpusError::Block(e.to_string())) + }) + .collect::>, CorpusError>>()?; + + Ok(Case { + root: parse_cid(&self.root)?, + prev: parse_cid(&self.prev)?, + ops, + blocks, + }) + } +} + +/// Appends cases to a JSON Lines file as they are captured. +pub struct Writer { + out: std::io::BufWriter, +} + +impl Writer { + pub fn create(path: &Path) -> Result { + Ok(Self { + out: std::io::BufWriter::new(std::fs::File::create(path)?), + }) + } + + pub fn push(&mut self, case: &Case) -> Result<(), CorpusError> { + serde_json::to_writer(&mut self.out, &Record::from_case(case))?; + self.out.write_all(b"\n")?; + Ok(()) + } + + pub fn finish(mut self) -> Result<(), CorpusError> { + self.out.flush()?; + Ok(()) + } +} + +pub fn load(path: &Path) -> Result, CorpusError> { + BufReader::new(std::fs::File::open(path)?) + .lines() + .filter(|line| !matches!(line, Ok(l) if l.trim().is_empty())) + .map(|line| serde_json::from_str::(&line?)?.into_case()) + .collect() +} + +/// Write a diverse subset of `path` to `out`. +/// +/// Selection is deterministic: every multi-operation commit first, since those +/// are the rare shapes and the ones where ordering and structure matter, then +/// an even stride through the rest sorted by block count so the sample spans +/// small and large trees rather than clustering at the median. +pub fn sample(path: &Path, out: &Path, want: usize) -> Result<(), CorpusError> { + let cases = load(path)?; + let (mut multi, mut single): (Vec, Vec) = + cases.into_iter().partition(|c| c.ops.len() > 1); + multi.sort_by_key(|c| std::cmp::Reverse(c.ops.len())); + single.sort_by_key(|c| c.blocks.len()); + + let mut picked: Vec<&Case> = multi.iter().take(want).collect(); + let room = want.saturating_sub(picked.len()); + if room > 0 && !single.is_empty() { + let stride = (single.len() / room).max(1); + picked.extend(single.iter().step_by(stride).take(room)); + } + + let mut writer = Writer::create(out)?; + for case in &picked { + writer.push(case)?; + } + writer.finish()?; + let ops: usize = picked.iter().map(|c| c.ops.len()).sum(); + println!( + "{} commits ({} multi-op, {} operations total) to {}", + picked.len(), + picked.iter().filter(|c| c.ops.len() > 1).count(), + ops, + out.display() + ); + Ok(()) +} diff --git a/hubble-commit/corpus/src/main.rs b/hubble-commit/corpus/src/main.rs new file mode 100644 index 0000000..1badcb4 --- /dev/null +++ b/hubble-commit/corpus/src/main.rs @@ -0,0 +1,81 @@ +//! Capture real firehose commits and benchmark operation inversion on them. +//! +//! The generated and exhaustive test suites cover correctness; this covers the +//! shapes producers actually emit, and how long they take. + +mod bench; +mod capture; +mod corpus; + +use std::path::PathBuf; + +use clap::{Parser, Subcommand}; + +#[derive(Parser)] +#[command(about, version)] +struct Args { + #[command(subcommand)] + command: Command, +} + +#[derive(Subcommand)] +enum Command { + /// Stream commits from a relay, keeping the ones that invert. + Capture { + /// Corpus file to write, one JSON object per commit. + out: PathBuf, + /// Stop after keeping this many commits. + #[arg(long, default_value_t = 2000)] + commits: usize, + /// Relay to subscribe to. + #[arg(long, default_value = "bsky.network")] + host: String, + }, + /// Cut a small, diverse subset out of a captured corpus. + /// + /// Real commits are overwhelmingly one operation over eight or so blocks, + /// so an even sample would be almost all the same shape. This keeps every + /// multi-operation commit it can and spreads the rest over block counts. + Sample { + corpus: PathBuf, + out: PathBuf, + #[arg(long, default_value_t = 200)] + commits: usize, + }, + /// Time inversion against a captured corpus. + Bench { + corpus: PathBuf, + /// Passes over the whole corpus. + #[arg(long, default_value_t = 20)] + rounds: usize, + }, +} + +#[tokio::main] +async fn main() -> Result<(), String> { + tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| "info".into()), + ) + .init(); + + match Args::parse().command { + Command::Capture { + out, + commits, + host, + } => { + let counts = capture::run(&host, commits, &out).await?; + counts.report(); + println!("wrote {} commits to {}", counts.kept, out.display()); + Ok(()) + } + Command::Sample { + corpus, + out, + commits, + } => corpus::sample(&corpus, &out, commits).map_err(|e| e.to_string()), + Command::Bench { corpus, rounds } => bench::run(&corpus, rounds), + } +} diff --git a/hubble-commit/fuzz/.gitignore b/hubble-commit/fuzz/.gitignore new file mode 100644 index 0000000..ea9ce31 --- /dev/null +++ b/hubble-commit/fuzz/.gitignore @@ -0,0 +1,5 @@ +artifacts/ +corpus/ +coverage/ +target/ +Cargo.lock diff --git a/hubble-commit/fuzz/Cargo.toml b/hubble-commit/fuzz/Cargo.toml new file mode 100644 index 0000000..6fa0e5f --- /dev/null +++ b/hubble-commit/fuzz/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "hubble-commit-fuzz" +version = "0.0.0" +publish = false +edition = "2024" + +# its own workspace: fuzz builds want their own profile and lockfile, and the +# parent workspace should not have to know about them +[workspace] + +[package.metadata] +cargo-fuzz = true + +[dependencies] +libfuzzer-sys = "0.4" + +[dependencies.hubble-commit] +path = ".." + +[[bin]] +name = "car" +path = "fuzz_targets/car.rs" +test = false +doc = false +bench = false + +[[bin]] +name = "invert" +path = "fuzz_targets/invert.rs" +test = false +doc = false +bench = false diff --git a/hubble-commit/fuzz/fuzz_targets/car.rs b/hubble-commit/fuzz/fuzz_targets/car.rs new file mode 100644 index 0000000..12f7229 --- /dev/null +++ b/hubble-commit/fuzz/fuzz_targets/car.rs @@ -0,0 +1,24 @@ +//! CARv1 framing against arbitrary bytes. +//! +//! Commit CARs come from PDSes we do not trust, and a panic in the firehose +//! intake task takes the connection down with it. Every input here must +//! produce a value or an error, never an abort. + +#![no_main] + +use hubble_commit::CarReader; +use libfuzzer_sys::fuzz_target; + +fuzz_target!(|data: &[u8]| { + let Ok(reader) = CarReader::new(data) else { + return; // a header we cannot read is a fine outcome + }; + let _ = reader.root(); + for block in reader { + // errors are expected on malformed input; we only care that we got + // one instead of unwinding + if block.is_err() { + break; + } + } +}); diff --git a/hubble-commit/fuzz/fuzz_targets/invert.rs b/hubble-commit/fuzz/fuzz_targets/invert.rs new file mode 100644 index 0000000..89a5aef --- /dev/null +++ b/hubble-commit/fuzz/fuzz_targets/invert.rs @@ -0,0 +1,68 @@ +//! Operation inversion against arbitrary blocks and operations. +//! +//! Input layout: one byte of operation count, three bytes per operation, then +//! the CAR. Drawing operation CIDs from the CAR's own blocks gets us past +//! trivial mismatches often enough to exercise the tree itself — splits, +//! merges, root trimming — rather than only the decoder. + +#![no_main] + +use std::collections::HashMap; + +use hubble_commit::{CarReader, Cid, Key, Op, OpOrder, invert_ops}; +use libfuzzer_sys::fuzz_target; + +/// Keys spanning several layers, including the ones the seed corpus uses. +const KEYS: &[&str] = &[ + "k/02", "k/04", "k/39", "k/40", "k/48", "k/49", "k/95", "k/99", + "app.bsky.feed.post/3lrbpi5ot35kpjb", + "app.bsky.feed.post/3lmq4wfloltgcdw", + "app.bsky.feed.like/3l0000000000000", + "a/b", +]; + +const MAX_OPS: usize = 7; + +fuzz_target!(|data: &[u8]| { + let Some((&count, rest)) = data.split_first() else { + return; + }; + let n_ops = usize::from(count) % (MAX_OPS + 1); + let spec_len = n_ops * 3; + if rest.len() < spec_len { + return; + } + let (spec, car) = rest.split_at(spec_len); + + let Ok(reader) = CarReader::new(car) else { + return; + }; + let root = reader.root(); + let mut blocks: HashMap> = HashMap::new(); + let mut cids: Vec = vec![root]; + for block in reader { + let Ok((cid, bytes)) = block else { + break; + }; + cids.push(cid); + blocks.insert(cid, bytes.to_vec()); + } + + let ops: Vec = spec + .chunks_exact(3) + .filter_map(|s| { + let key = Key::new(KEYS[usize::from(s[1]) % KEYS.len()]).ok()?; + let cid = cids[usize::from(s[2]) % cids.len()]; + Some(match s[0] % 3 { + 0 => Op::Create { key, cid }, + 1 => Op::Update { key, cid, prev: cid }, + _ => Op::Delete { key, prev: cid }, + }) + }) + .collect(); + + for order in [OpOrder::AsGiven, OpOrder::HighestKeyFirst] { + // any Result is a pass; only a panic or a hang is a finding + let _ = invert_ops(&blocks, root, &ops, order); + } +}); diff --git a/hubble-commit/fuzz/readme.md b/hubble-commit/fuzz/readme.md new file mode 100644 index 0000000..4c3c02a --- /dev/null +++ b/hubble-commit/fuzz/readme.md @@ -0,0 +1,27 @@ +# fuzzing hubble-commit + +commit blocks come from PDSes we do not trust, and a panic in the firehose +intake task takes the connection down with it. these targets exist to make +sure malformed input produces an error rather than an abort. + +``` +cargo +nightly fuzz run car fuzz/corpus/car fuzz/seeds/car +cargo +nightly fuzz run invert fuzz/corpus/invert fuzz/seeds/invert +``` + +- **car** — CARv1 framing against arbitrary bytes. +- **invert** — one byte of operation count, three bytes per operation, then the + CAR. operation CIDs are drawn from the CAR's own blocks, so inputs get past + trivial mismatches and reach the tree itself rather than only the decoder. + +`seeds/` is derived from the vendored mst-test-suite CARs: `car` seeds are +those files verbatim, `invert` seeds are each prefixed with four different +operation specs. they are committed because they are small, deterministic, and +give the fuzzer real trees to mutate from. `corpus/` and `artifacts/` are not. + +## found so far + +- `Cid::from_bytes_raw` indexed `bytes[3]` with a minimum length of 3, so a + three-byte CID body panicked. reachable from any DAG-CBOR a peer sends. the + bug is upstream in dasl 0.2.0 and is fixed in our vendored copy, marked + `DIVERGES FROM UPSTREAM`; it wants reporting before we un-vendor. diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_000.car b/hubble-commit/fuzz/seeds/car/exhaustive_000.car new file mode 100644 index 0000000000000000000000000000000000000000..967e7dd7547c7f1b59365d92d121a208e814dc4c GIT binary patch literal 103 zcmcColvv aPp?idOD!tS%+F)gCPww5#MFkwoNoZ%Ycf*+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_001.car b/hubble-commit/fuzz/seeds/car/exhaustive_001.car new file mode 100644 index 0000000000000000000000000000000000000000..1c4802400023b6a35fbfaffe6450c20d57648eec GIT binary patch literal 160 zcmcColv%LxH`BMMtuLW+4CiAq-+8^1MnDY$)fsaTD literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_002.car b/hubble-commit/fuzz/seeds/car/exhaustive_002.car new file mode 100644 index 0000000000000000000000000000000000000000..2009b6869c63a41ba80f0fb2426cd952adad3ea4 GIT binary patch literal 160 zcmcColv08nItTe^ye+wrZldBJtdOu%!)7)R%Qf}^h zY%wFfEVZaOGe3_pg&5U~5>p$OBxbv0>l+v)7BD21d`m2YTeancdEsA;hha4=4dvQz a6HDZ;di+cEE(lq@`1%Ud`}(?xIo|+4I7kox literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_003.car b/hubble-commit/fuzz/seeds/car/exhaustive_003.car new file mode 100644 index 0000000000000000000000000000000000000000..5eea40641b8aab6078263d7b73c5433ec8732d93 GIT binary patch literal 302 zcmc9nlv^8P*>aN2U6 zuiON-of}g?jv=H7$uR~Pj#;}R>b3r)u)S4cH-48ctowR(4 HV$L@J&xwMN literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_004.car b/hubble-commit/fuzz/seeds/car/exhaustive_004.car new file mode 100644 index 0000000000000000000000000000000000000000..bfdbcf1be73c58fea7bcd8291452bb2f013e66a7 GIT binary patch literal 160 zcmcColvi&EgXAYsV6tMmbQ|Gn+=@YvD b?>?hjth!*zo%xGztdp1Cru=MHV$L@JJ*!49 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_005.car b/hubble-commit/fuzz/seeds/car/exhaustive_005.car new file mode 100644 index 0000000000000000000000000000000000000000..21fb7d5e7965b5dfb29a1a234260ec53ab09cbca GIT binary patch literal 215 zcmcColv4SO7 z<@f1jsYS(^`FV`97>QB7C^5BZNn*B3w!VQuVgW;9$+yHZxLs>kM7`FZ6t=fY?8fiX zg>_%Au6(I~_16NoMU#2jX6=vcTauXVXp&gKjH+v=+NOZ@XP7##{ZF6J{eSlv-D1@R VQ|`=Pd}E!w^fu*Zvl4T@0RT1%VYdJP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_006.car b/hubble-commit/fuzz/seeds/car/exhaustive_006.car new file mode 100644 index 0000000000000000000000000000000000000000..e9c1a8c9cb4b176ad613edf94e6ad81686ec0649 GIT binary patch literal 302 zcmc9nlvvT literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_007.car b/hubble-commit/fuzz/seeds/car/exhaustive_007.car new file mode 100644 index 0000000000000000000000000000000000000000..d3d959e94c8f29003c37569991d82ea157f14c05 GIT binary patch literal 443 zcmc9nlv*7zez8?N6a7}wbK!*NZ zy=@!Q%TkMqGxPHpQ$VU0z1}kC?m^R+lK-df&zEuL5Xy~E?5#6^jz zjY|@gX!IV4m7vESXFTG9q z*{sBzZ(A5awh(d?U`VzYfo*|XLCAebuGw}5bhH~w!(5gasx6d^g< v0PJYwpjo>j>b3r)u)S4cH-48ctowR(4V$L@Ju>Q!w literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_008.car b/hubble-commit/fuzz/seeds/car/exhaustive_008.car new file mode 100644 index 0000000000000000000000000000000000000000..e846b4ac3a21573358a6483dbb4857e189609646 GIT binary patch literal 160 zcmcColvrw-EwK!4)%JI6XA6r~Jkw$SeYo(U ajo|Uk$K=wY|FoT4wytU7OEc!goNoX(hC!JC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_009.car b/hubble-commit/fuzz/seeds/car/exhaustive_009.car new file mode 100644 index 0000000000000000000000000000000000000000..d8f402787fd7bf0d6b38cdb49ab0b4fb9ca19700 GIT binary patch literal 386 zcmc9nlvR zAu$JT_}A{Q>Ve(r4i|j)<%hEY=8+hrw-EwK!4#rAh>XA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7OEYF9 z*AQ}i3dk{poQ!acfdPhN)~<+ptv@MjZ3H_*dg$SPe@4n~%w*MgM6#xoln2#Fu8w Li8*iw5%LWHBq52? literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_011.car b/hubble-commit/fuzz/seeds/car/exhaustive_011.car new file mode 100644 index 0000000000000000000000000000000000000000..6f20a04f87d3a91939cf9e47bf0b1ad0a8458535 GIT binary patch literal 444 zcmc9nlvZh)E!O#LRVHS3 zk%aWJ)S}|d{5-}UMv(GF6}xzyADnc$t01cQ#U`>LqRb~;OYTlanDFga<$EfG7bT`P zE=kOG$<{Y8N-SVVEcupL2DfX=3G>3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6La87zjl9B5A0TVxZt}lKb#FPkHo-re|dkO4LEJN&R1>%+s=&;*AQ|%!ZpU07_Qm= zj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jN}?ZzD@xJ4Iw8Z9AjXB;h426 oqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0B*Xy3;+NC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_012.car b/hubble-commit/fuzz/seeds/car/exhaustive_012.car new file mode 100644 index 0000000000000000000000000000000000000000..2f6af5ed1e2e18864b017f65c803ca6aecd7df12 GIT binary patch literal 386 zcmc9nlvwMuIP*2w*zmR7Ehj0 zY$BXqmReMtnV-ivixH&UY?60xVQu1vNl9}yP4K7{b5Su&*=15wkr)2ygL%s3_lpu! zo0cSIyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9cE)r)}2$ z$i5|s*^VZO1rp{~s(;(`d{rRlODm(ixN{C5_8~=A>@-Duzv{! z&!WWCMu>lnEiwGN{TOerim}jm=km0O0WF-KS!;GKhIfhZu?Yez!cUhDt=Iiy>?|* z`?|l}JRg|SQb3Mb^m@yjy9Z5QO8%d^KVQa~Lnt>cw)d1A^UUuH^>{PI6A_LvFu`!l zPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&e1mwIkW-LsF#_8H_XHvL sAqCBr6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKCgywt06$8{=l}o! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_015.car b/hubble-commit/fuzz/seeds/car/exhaustive_015.car new file mode 100644 index 0000000000000000000000000000000000000000..58aafca730deb3334e81183d1ae2f9c97a0ef277 GIT binary patch literal 585 zcmc9nlv|Uxr4|)u=I1e{fK)Gfy=BhbgQhPf|4-eYFXPN1lp7b@drFRZ=J$nqyqV&OixN{C zmn3GpWa}H4Bo;6vmV8SrgIl#zZBxMdGfbV={-;mq{=fT-Zn5fuDR<^CzOhbTdYkgI zS&2E{dKf{r5ONd37Gp~cTeiPrJ6l+^;+YQn@56-;Z3K^RJ|>qI{ip5ZvUN=pUz#x| z=D;1aH>!kt>yeAs4$80DbnE3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%AkzDT3jx4Odx z-+lSvY#xb$>;CfoJ{xe_a-FZ-1h$Y?asI@DiUh7W^+gl}e<9F%8 by02GPzSO_^Yk}LM$vkbd_DA+5=6nMH$EXPK literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_016.car b/hubble-commit/fuzz/seeds/car/exhaustive_016.car new file mode 100644 index 0000000000000000000000000000000000000000..e83b9ed3464524f11b898cf9eb7bfde8d54eecf4 GIT binary patch literal 160 zcmcColvaPWEizf55&DtN?wGVl`S^t9nnaK6G!s@W1z} VER9RQv=_zS7oA`JBq=fH8vv{BTtEN- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_018.car b/hubble-commit/fuzz/seeds/car/exhaustive_018.car new file mode 100644 index 0000000000000000000000000000000000000000..79d54ccc708334ad5d14b8e7ba662cc7cdcfc4a1 GIT binary patch literal 302 zcmc9nlv)kgVdZA0(}#7G9&O7=U3lrM;-_cg{eYQXy{Xe^ zbbi^q^s>~V;>`R!#uSk11jUSZK682gSUj-F-O!w;Sdvu!zo&EWT7yMa2Xph6UtN@# z+PEY!+a+7y#2~SNA+h9JVj0}3#$CrW#A>v-R`s4-edykN;eYQ{SsIsqX)lVuFFL>c zNm63Yw;o22Eri^Ju*JX#Yzy29LheIy&6X49g?}|3hSjh%lxx3DERnzJ@h{c8AY}F8 O>nlv}>+2@wd;G=JNcpcwm#ep*c^nB&qy=Pv_pX28*l?=H@TIx+pQV zaYOHyo(7pM>|K6*zG%o$pUKD>{bbk4h zq{N(WTNpvM5ONb>2wMz{z_!4xAmlzI*K9dqUieqzVOR}IL%H_b#1i?d9{*Ck3qn>e zzP`frzP@f^4&2nQ-CxxMyVV^o`0mROXY)u5T=$pv_t}8cmg{`wCa~??2o4%TijW+Q s88mBGM7`FZ6t=fY?8fiXg>_%Au6(I~_16NoMU#2jX6=vcOU(HO0Qcm{od5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_020.car b/hubble-commit/fuzz/seeds/car/exhaustive_020.car new file mode 100644 index 0000000000000000000000000000000000000000..08b27b9d2fd6717503ff571a70566ea57e6da7a7 GIT binary patch literal 216 zcmcColv2v^S*FDN2N`<#Xff; z)mzfbQj3Z+^Ya*IGZLeGQDSP-lEiG6Y<&Zh!~%xIl5dG+aJzP@Z3v-R`s4-edykN;eYQ{ VSsIsqX)lVuFFL>cNm63YHvpd0U{U}8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_021.car b/hubble-commit/fuzz/seeds/car/exhaustive_021.car new file mode 100644 index 0000000000000000000000000000000000000000..d8d9eeac7b148ce081b1fa217ab8830e19cde649 GIT binary patch literal 270 zcmc9nlv%MukQ7N6*F4gZxLX!G@}L2=7J%XjBfGk0y2 zx4o2{UY1%^oSC1;c#)A9<%<$io0lYJyJYJd7$g=jB$j+jEJN6}BI>pNq_DkJVmE%5 zF0A`{b>&O_tG^bwEt<^JHfw)m-;%^^N0Yj4})iwpJKf}~{?SJ}&?*F^b=oYIk zm~v9 zQ=66~X1iqT8<->(FeH|IODu!iwNq_V!1^;xo!9=SPw4)?`;2a}>VheE<}bdnPF{MO z^0Qe>60@C53=#{NP_;GgI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7)w zfE`E3FN+dW8=;Of0y_@wGD6-$^2C-C=7oPX9){JhG?Z(hUktyC7us;_E9+ L@9XO(=6nMHm${s0 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_023.car b/hubble-commit/fuzz/seeds/car/exhaustive_023.car new file mode 100644 index 0000000000000000000000000000000000000000..6e001510c6ed69c8c72e630564587c9b96eb22f9 GIT binary patch literal 499 zcmc9nlvwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o- zW-Up~b}}(YEMP*_*0}4KhFFaj*Q(x=s}J3qFZ}PlDof+iFYQI~_eJNIKS@f=`L+e@ zI6{5_Y*AurBh+z5V8_8-M#x)8p4f82yzsBa!>}5bhH~w!(F$EN&gcKn;+5qfm spNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT05yZz<^TWy literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_024.car b/hubble-commit/fuzz/seeds/car/exhaustive_024.car new file mode 100644 index 0000000000000000000000000000000000000000..f51ccc59b59f976bf4f116a0a211cd9ffcc2a453 GIT binary patch literal 386 zcmc9nlv!gq^`mI=ub| zR}`j~r4|)u=I1e{fK(?aX1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7o4@?(qQun3 zC5hQC+4?31i3JRaCEpUu;8p?Fxa*jPSdA9fs@{{U58azD{O`RgOXJcn?M3nTMdz14 zNlMK577Vgv(lY^%Hm;6KPkQIDY@N8>DE!ZyS&4Urm(Mn{6u7i9t8YR|*KO30rGmm6DxT@E*&kaLiHxcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2 K(u_GV=NkZ2+O19i literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_025.car b/hubble-commit/fuzz/seeds/car/exhaustive_025.car new file mode 100644 index 0000000000000000000000000000000000000000..2d688756c9a614a27865e83536cc1c1a02bb9041 GIT binary patch literal 611 zcmc9nlv%+s=(CATtvbGv4{k<@sar zz$SM?bDm;JQu+U$&b@057Fiw4&0l_XQDSQ2lEiG6Y<&}h!~%xIl5dG+a2pzT9n%o2 z(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8??|wBnf# z`|rbr4{ZdGZ$2iM7X7E~3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6LY?SElE(!c;_>h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fB98}B_;+KmNf1$-=f6ShQu7W+X=a83nR!-LV<~Jxv?eK<#6)}IR_~ix4&aM oTUfN>nGXB!!-WrR1dne%CYKidr|smjbxjjrnlU4}nox8B00VgL+yDRo literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_027.car b/hubble-commit/fuzz/seeds/car/exhaustive_027.car new file mode 100644 index 0000000000000000000000000000000000000000..61f16bc4019e8d26eda2599dad2e414b1f28dca4 GIT binary patch literal 669 zcmc9nlvhUPrQlBDwgJ)L{k8Z5Fpn47=+>Y~Kd z#wCf_F4_7f28jg>i6!3>%ivZu?mDI+R-?tWs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1 zk`i;i1%oV^^i05`jjQ9*lioQjTPJQe3jZ@_R^naZ<+IH!1um`3>RXhU+K`w7H-^xP(_IBo#VEWeiTqWMf2rODA*&Z(UtxM*Ul++WU%S7m2X?DFT=3nOAI|2H7`W~)@9(n# zr!Cj{%1vO~xp52FHH1PPFobK2Ey1pV`<77PAcgn#cWh@1i&i|-VgG%&@S%<1@y*BN z(xU&gom{rAY2r&WW+Yb=3LS9d6Y?6u(FT~2zjj5`YyC-Kd#l85{4QNs_x0+^m-<(K SEpS^jnWt^m{>Z+>oNoa8EiZ2X literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_028.car b/hubble-commit/fuzz/seeds/car/exhaustive_028.car new file mode 100644 index 0000000000000000000000000000000000000000..311908ff12d528c52ab2525efc31d229039ed285 GIT binary patch literal 611 zcmc9nlvlx5eDW$5 z3#Rn4)S}|d{5-}Kkm>}*jCVeBdHz^Du*u!foTpflRQ|uGbMIP%MOFuM^Os*;l$hGM zBr)41Ti?VWv4A15((S)o9Y*Aur1Cp79LJ}O@i(YS;bN8U>OUeIJ z_vgzva|q?e#rB?(W1jhap&oChcp@So3{1cQfgIdB)iwpJKf}~{?SJ}&?*F^b=oYIk fm~vMq%?`5tQx(-Y8rm0SPk*ez< zw=cacwWv5VKaX(>BQeSsC8jnmNz8W1);G3HEMQ11fm<}`nSe(dSI4C%y>nQ$PTX!3 z{%6jt#Jj@FXPa3HTw0mcmskc@y8Rv7*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2 z(u_GV2d?xY2lJH6?-wPeHbGo%U;uXYHze1rT@m$Ke^S`qDzO{C zOBdFCy}I(H{?%U#+!jsdX`8h_vTsRZwxda60dryrvaX$Kn*!FKVd}j0KYc>?|J`SF zi&Ym)xif$9jdk+U+mxTpO3e9|0t(Os#SFmS`OM|{WAVTycSCcYVo6f@|DMjhYYi4z z9n8&Neiad*CYVlZ+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip23kF$2 ZDC`#{rZyl2Dj_$4%_J1^Xl4?M0ss&gB}o7P literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_030.car b/hubble-commit/fuzz/seeds/car/exhaustive_030.car new file mode 100644 index 0000000000000000000000000000000000000000..d58cb9125d3f9ab7739d143e20621f2214e8e26a GIT binary patch literal 669 zcmc9nlv?(4nNnD!su_t);` zWxuravecsD%=|pY6p-o!#f*18b9w$)Jg~{#(441Ol2rb`r*rRGgGE*cbMu#9U6h#G zxFj*#C0pObAhCcUvE*A~8QiMIUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$ zQew`xEsP*r2)PMii?Jox7Pu9Yo(XugadljJ(mRJ`>%{Fw;eY1LO1vw)e72dTz@?R0 zeMqj^{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H}%S||8vx8`173A z=C)6jR#>a3_(37|+Lc-D>;7`{d|*lo205CL)r%5S8<5N-6q0~}gL~2IEpzT3G<_-g zf9n2x8D|cm+_>1@Q*z8Rzc19|%@j{W1cZSJI3SRNd#Bo_fc0mXI7VnW!qQ2`^URxA8_mD^9(m`H`aH_#(lV*p z(&Fi5sYS(^`FV_67>QB7C^5BhNn*B3w!X1tVgW;93EZMd&jdW$xH>L9>7B!}b>eoT z@IP~ACEgWYKHJPv;L^&hzQi)P((Uiq&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjD zmuAd~IdG+Wqe{599=Uk!p!}Lmx6WS|f1>sE@K=Fr+6w|Q^zZ6z+n54!bb?~WJD<5c ze=Hu@O=SD z3;%ns%F?*>OM6lLebM>lPm&UIz6FCUA>_YBiKz`p4kzR$u)`O<-ZJOzLDQF#|EKQH zmvQD0%8iTdJtfCH^ZPr^tMM?bhNYog`)y*0{8f*C zson)4s~2BiVR~O*7b$4Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~dc5~qX| vAvqc|PS>u8daXYxY;Tp=jo+mU>%LxH`BMMtuLW+4CiAq-+8^1MnDY$)lo)G1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_032.car b/hubble-commit/fuzz/seeds/car/exhaustive_032.car new file mode 100644 index 0000000000000000000000000000000000000000..430d1157d88e8e3949606f264989ecfc172ac29a GIT binary patch literal 160 zcmcColvOvRoLkrUwR?|!(iH89 zJ#Fb_sYS(^`FV^f#He1BnA*4`G210u-^3!ZfFZHuTVfg9D!+gFH=kDW)^;=;NZ9T% a$L8;gPOTq$U5vJ0&K`_rW%fzT`33-#<3qmy literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_033.car b/hubble-commit/fuzz/seeds/car/exhaustive_033.car new file mode 100644 index 0000000000000000000000000000000000000000..6c7b6a79e40c4343bd67117970445fa7133cfbd3 GIT binary patch literal 302 zcmc9nlv{?=~V;>`R!#vVpulrKt5ZCsL=?UJo;Vv$(DkXZ69u?%jP-#`7EPb+zAI~ooo zZ1x`y}STm45C1svg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB z=PNgXZRf@mkYflbLO9020K+kBS46$mpA@#YO6`Tn~1^~$*hqV9z literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_034.car b/hubble-commit/fuzz/seeds/car/exhaustive_034.car new file mode 100644 index 0000000000000000000000000000000000000000..7fdac44c074425b88f7e0925fc84065dc5c162ad GIT binary patch literal 216 zcmcColvi>WuQGl;wTEGu*46Ne%>{8urt4>k z{m4x(OD!tS%+F(-%}9*$MTx0ROA@nPvh@v&5(^j-OTHzR!R^{|!o2XW#>220mWFce zw}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOsLxY{^{R*TFG16(QqJPyT=@xzb`tq Ue&}^E+I~5EFq)OwCo$(602+f_82|tP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_035.car b/hubble-commit/fuzz/seeds/car/exhaustive_035.car new file mode 100644 index 0000000000000000000000000000000000000000..4e50b7b67ac123fea9c7f8d56137a95ce7519684 GIT binary patch literal 357 zcmc9nlvRX-Q(XOSZm&QDOl@V#&9}GPqq^PM8<|)p!_I!_rW$ z{Wh^g{;J2nRPTb2)r+sMFukv@yCgB&$;2YDfC*Kb-#`7EPb+zAI~oooZ1x`y}STZTQ;#RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(C zAU_aNv?wvP5$Xp63_q-05%pSsQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE E0Nh)eh5!Hn literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_036.car b/hubble-commit/fuzz/seeds/car/exhaustive_036.car new file mode 100644 index 0000000000000000000000000000000000000000..80a5b2adfd875752e5b2ce034c2614a133c5af54 GIT binary patch literal 302 zcmc9nlvW3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN*BG}GUx6=)0dL}r|!>}apn-pjf?F)CC5DT z`$9e5O!34NkYflbLO9021j8{q)iwpJKf}~{?SJ}&?*F^b=oYIkm~vo3u_ZUOiG%wX@W%LxH`BMMtuLW+4CiAq- z+8^1sBr)63B(Z=QRo70nO#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXqV z0lSTmR~99vHbUHHVu9f{zkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S9*kyX_DRfv JdxKCI001B$pZfp+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_038.car b/hubble-commit/fuzz/seeds/car/exhaustive_038.car new file mode 100644 index 0000000000000000000000000000000000000000..75d4159012abe74cc11c3b381123a641a89db010 GIT binary patch literal 357 zcmc9nlvHqh)~t^kwY=TUi&Eg zXAYs220mWFcew}~b4S3UlvdKZMOUVMFp z>3x0OC5hQiCKibWOo=7mkhJ;z)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@D zV$Qb|kRJ%SWKm*jBh(KjU_T&RvQuqS!1^;xo!9=SPw4)?`;2a}>VheE<}bdnPF{MO K^0QfqIo|+8l$=fg literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_039.car b/hubble-commit/fuzz/seeds/car/exhaustive_039.car new file mode 100644 index 0000000000000000000000000000000000000000..293d707543f83f104eea7055fe14685cccd78f56 GIT binary patch literal 498 zcmc9nlvr(E~EFsyTpBOjMcS($wj zbKo|7?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T;E#uSiW3AuPtVrnDQuO?u> zB0FZM+NOZ@XP7##{ZF6J{eSlv-D1@RQ|`=Pd}E!w^fu*Zvl4T@fh{5A5+q9uFf3WS oBI>pNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0GgHA%>V!Z literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_040.car b/hubble-commit/fuzz/seeds/car/exhaustive_040.car new file mode 100644 index 0000000000000000000000000000000000000000..24c6cbdb170420b1a9f3ad0a2bd3f526e41194cc GIT binary patch literal 302 zcmc9nlvl(jy@3BvsqCK&vZBb%s z9GGkT=>vN@c8Cqa%s_j+DzZSsNv^4&XEb|$LU+&=JlU#9nL7VhvZ zAKs^zr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5X}ondzE#--#!CzT~{U zPHK4uZ<75THO{ST{Mx<8K52^f#GbZAiK&fC60=>h^-U}i3m6hhz9p8yZSec2fAeW2 zZ*51zfrRZIb8P;;=+ye5*Trc2oz^x$UJ|x#{ zf5&#VuxQ0I9roXc3m@7D9^ZUSE-m^`+sS3?nkK$9V@3)ZLLmtb8baZRaI}E|*wM&A qvvx()YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m{>Z+>oNoZG*zC^$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_042.car b/hubble-commit/fuzz/seeds/car/exhaustive_042.car new file mode 100644 index 0000000000000000000000000000000000000000..3511172030b5809ae9d3787d1aa3666c7518b8a8 GIT binary patch literal 443 zcmc9nlv%ivaRIbmM-SL0z=4NF70_S?h~`KuoPQoRd8RxiH3!t}nr zZeq^2EsP*r2)PL`ge}IFU|Zl;xTf8A;>n&bId89%TAsn1WPeAEbL$$vcJHxInxZ|i zrwz$9+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HDDtH8^MpS&eYC vi3Qlv$U)=xPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_043.car b/hubble-commit/fuzz/seeds/car/exhaustive_043.car new file mode 100644 index 0000000000000000000000000000000000000000..f7ad723e2cb0cfed13d5cf76f64acb6f6a89ea3c GIT binary patch literal 585 zcmc9nlvl(jy@3BvsqCK&vEwK!)bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(tiTh}!4 zr5ST#4qWM?ie0?U4^BGWRS;GDViVaAQRWk_C3hzyO!)Sz@;w#8DIiA^vKrxN6AQ4T zzacrs@1Oq7rhUktyC7us;_E9+@9XO#dHHMiSM|Vdb%zVS`|`ut zJQ4%f{pJ0AHsG}7I$ya7Y&$oCy-Y|El4A@o9J6*s)NB1oVSB5@Zu~A?Soihn%9r|A Te=TrZG?}Mu*8a%8#GG#cDzW>4 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_044.car b/hubble-commit/fuzz/seeds/car/exhaustive_044.car new file mode 100644 index 0000000000000000000000000000000000000000..1c3bf756346ec7445cf517a989f962bf74e42c34 GIT binary patch literal 527 zcmc9nlvU82>6&x=S3)+g-V?k_)KvV% z3s;5ovecsD%=|pY6p(7ywEIpx+4Cjm?R8SiGkBBi@2GKZUE|m8J@!dcv?unoElNyn zT#}gWlC5uIkyyZxSn@5g3~rU*KmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>e zB<6erTe9f&mN|D1n!c3$KXre;j5CK&Zd`2dDLLku-xuofW{M{wEHN;_uw)w1>QML8)iCaaTAN0GJ27??;NYSFi)CMFo356s8bd2N+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_045.car b/hubble-commit/fuzz/seeds/car/exhaustive_045.car new file mode 100644 index 0000000000000000000000000000000000000000..de20cf9e0959690f38e8f71ce802bef87d069cde GIT binary patch literal 582 zcmc9nlvY2lJH6?-wPe zHZ4iacFEQ^Fi0$5NG$o5SO&Li?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~h zk$p=NvmH$m3z$)L?Nr+ou>K5F=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY&bJhh z(_GW;JMm=Cmz=lPNiEOdO|rkE#<_KkU%U6%Cr#0w*weNsF|`rmG!qL9r}_QUzxlM1 zx3;6teM1a`s>}E3;2x&bKY#004|ocp+>twglS(_dOx^AqCX- zcWh@1i&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ENMhsZTQeH-tCHa>oBwUNB+7 mVXM+V)0yvoh~KFGS3An2NAPnnC};>NT9laDfMh12NCp5UP6o07 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_046.car b/hubble-commit/fuzz/seeds/car/exhaustive_046.car new file mode 100644 index 0000000000000000000000000000000000000000..f7cf780d71425c30986101b5910ac83f7e155f10 GIT binary patch literal 585 zcmc9nlv-(5I31abjmSs#_V)h|x-X_#t+thz8i&f zrkqbNOD!tS%+F&?0jYLPyYIx4JzsL(UMICYgEz_kjvD9IHGb{hW1loddty)9qQun3 zC5hQC+4?3Hi3JRaCEpUu;8ywl)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@D zV$L_PC5v8fnREA`=}XD~Q}^e~ICBW)#>MuYl4G9veW4z2rg$R45(5(qOLnSl3Rr)J zsq@Pm?tTwlOsl8j>wWU|Zn+0F03Pki5L*gn8j#jfY`1EDhz_Zxc)8uX_AT z^)3imz4-bH)BF0mi81@Q*z8Rzc19|%@j{WSYlv;VaZOlO#$oA zFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXqF!U*yTA&(<$F}4KT0`~`@KtS^H z_IGS&3yW4f(_#O8xbUHk;PK7J+Gv>q`xT$-iO1QTkxp?iM{F+U- z&R-XQqV@IgSAlEV3j#9q@9J&a2yrzbRe&K}ZD54zYC@rkJArt_vMGPc_ap|`^)?LY`|&Db-r>F z*miCNM<^jhNRBoDI~qCFtX&cHT7Od5-YT&hze^X^eZ9K!rT*1l3)~h>=4qR?Ke8_| G=NkZ?_DM?s literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_048.car b/hubble-commit/fuzz/seeds/car/exhaustive_048.car new file mode 100644 index 0000000000000000000000000000000000000000..87d0eeaa15a6d5d2a397159319f075dd7390bbb0 GIT binary patch literal 302 zcmc9nlvW3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN)r?_-ucYs`D5|GCU-+~o?=N-`Tw5Iy=x5? zSsl#HUw$M9P0c-6UOP4Q+8+;( zuIcGzsYS(^`FV`989~a`*@QJC7l)miYn0Dw?!Ebf=do!w55E=M+_#4YMTDv0Zwf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe& ze`Md1#B3)MgTw+RRBesBj%kS1XmPFTJ-PbOz4^lb-m9`SF8$J86n|fIe)*H6#GG$E zV8;>i%c8{8Mu_7~EHE7B_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZPS Ie-H`;09g5&qyPW_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_050.car b/hubble-commit/fuzz/seeds/car/exhaustive_050.car new file mode 100644 index 0000000000000000000000000000000000000000..122b5dc3bd2b5054c7aa7ee79f56e952696915cf GIT binary patch literal 357 zcmc9nlviA7=oQ)0rznnc7&C2YP znDZ?KfGUu+t06j{bUj`_o2&A2zLyYi>T=`o_cS zKNnMaS!z*nW_})H3P^Q=V#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`Jx%tblE=o*o zT#}gWlC5uIkXXQwSn@5g3~p89u45WvHCkM&dQYxCbZ@@!zxS#vjZ43@7scNfonQVW zDKY2UYetYQgxs_!F|`R|i-8f?7Pu9J+y@wvYqp#)FZ`?VFsz29pEC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$E znw8lnF$eCLuianO1H087F8J=t4`=g83|#k@_xIU=)0XRe>}kL*j#`33;?@Zt3U literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_052.car b/hubble-commit/fuzz/seeds/car/exhaustive_052.car new file mode 100644 index 0000000000000000000000000000000000000000..bf96b2aea006fa6be9102b84749b6dac08fcc9e7 GIT binary patch literal 358 zcmc9nlvA} z_+v|YS!z*nW_}*yY(|jspv@;gJ`+oqRNUX9ui9uok6RNhxUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$Qew`x z9<#c2EG?7?VOW}n0y JxIYL50sxtRq9OnQ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_053.car b/hubble-commit/fuzz/seeds/car/exhaustive_053.car new file mode 100644 index 0000000000000000000000000000000000000000..a7b75bf11946ed7567124159ae839f022376023f GIT binary patch literal 412 zcmc9nlv%J^eabod_4%hHs*?~4+zZw*`{Ih&_J~eaKMtR#y$%_(G zo0lYJyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9ae}WS+KJ z`y>07BxXCBBo;8E>e{KcDPa8>rp{~s(^==}00Nr^e%dca;H6atG9 zQyU>(GO@t$lHWi5n@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#UvAbd|C=m31O ByEOm+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_054.car b/hubble-commit/fuzz/seeds/car/exhaustive_054.car new file mode 100644 index 0000000000000000000000000000000000000000..9cdab772bec50687b503cd3b410554f1b276d2b0 GIT binary patch literal 413 zcmc9nlvl&*&DbE|_v>{^A?!0F#&A zru=NylEiE$6NAJ8CRA;WyN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(W zhrx~`3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A v!Je?d@Pyw#{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6=6nMHB*3?8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_055.car b/hubble-commit/fuzz/seeds/car/exhaustive_055.car new file mode 100644 index 0000000000000000000000000000000000000000..e9b41236f232c00b53f0b0dded45afb4ec5031da GIT binary patch literal 554 zcmc9nlvjX;W^o&z(s1mc%l+(k&;<3;$|7469*jDA#_QSR#Mb<6o+GLCEUG*H@U{ z*VkQ=nC)a@kyyZ#Sn>@?o8LeEn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uv zz-{>2{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0$^-AH_iromXMQ?JZl2>EV65M zs%;8be}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($tHVf(zx_Xdr|y-(fQ?1k`i;irGO%WkPj9mrZz$&!T`f>}kL*j#`33;s9Q2j| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_056.car b/hubble-commit/fuzz/seeds/car/exhaustive_056.car new file mode 100644 index 0000000000000000000000000000000000000000..d5b6bcccb674e8a494193d25d9b8b0d9f9067ac5 GIT binary patch literal 444 zcmc9nlvjgM^#CVyPn zsI8G+mReMtnV-kl!w6C?GkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG9$%E0 z+PEY!+a+7y#3HePA+h9JVj0{nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S9*kyX z_DRfvD@{<$c;_>h=a0n$o7@e}faNKcB$fZ~>D;^4V3F0q-2CNNQ$UU(qzK6|1{jWM z+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip2gLs)x2qA1SwglS(_XMH9 sLJFGg@7T^37Oi-u!~Xkl;X@n2n+a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_057.car b/hubble-commit/fuzz/seeds/car/exhaustive_057.car new file mode 100644 index 0000000000000000000000000000000000000000..34dae7fbad3bbd2f0d1ea7dcaf8fc9d84fa2bfed GIT binary patch literal 669 zcmc9nlvR0m;m--CxxMyVV^o`0mROXY)u5T=$pv z_t}8cmg{`wCa~??m;y4Bki|$IG{Ep+GVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS z7oA`JBq=fH+ZJ#z5(;&|5Vjawf^C5Z450`>3hwRi*v=Lft$3!x{`+v@LmR>4n~%w* zMgM6#xoln2#Fu8wNI^p=B*8&LDEttPHoy#;wJV}t>rV>XTP1emcj>~quUA*T)W7;` Sf!m_VJZ-b~NA@M=d;EJ{pm zT#}gWlC5uGlvu!!Sn@5g3~tqy6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RK zCgyzWVFcMCGkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG9!J<>Vu4|c-#`7E zPb+zAI~oooZ1x`y}ST9h9J$@y=&1&mW5iHn|&`^At;x z%K!It?pzIaEjTYCc-jk~j-J37`@4YHZD&zhgUFShV7q4*T!Jg%526k8eIE Xmlpk}?c}m`O%q?5F(U;Hp@;?m-uwaP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_059.car b/hubble-commit/fuzz/seeds/car/exhaustive_059.car new file mode 100644 index 0000000000000000000000000000000000000000..3d4b3026498646e73d8fff8e6fbbbc90f4b84d4f GIT binary patch literal 727 zcmc9nlvmrkXgH9t-D8f;-xr-)KlHj7ZNHp77|qJ; zlb8cnnxL5R&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw&>R@jE@~d0Gt|8=jglmi~!LEUu zPskrguHOER?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pv(zx_Xdr|y-(fQ?1k`i;iK_ZHfQxLWo7-875<%D_RUyX-hH7pI~+HVs} zx z`y}STl_n@=yz`mM^T*~DS zQ#K|w#$5O2%ZjS4k5Akx>inSJ#S|Pgi(YS;bN8U>OUeIJ_vgzva|q?e#rB?(W1jha zp&oChcp}2l1}0!fBgfNDwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o-W+mo) U3kHQhA(t#lOl?4NI3YIy0E%cN#sB~S literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_061.car b/hubble-commit/fuzz/seeds/car/exhaustive_061.car new file mode 100644 index 0000000000000000000000000000000000000000..0987aa7743a7ccd9138f80a3be3e51eb8afb2feb GIT binary patch literal 724 zcmc9nlv(d1;nRm~izqh=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDr}VAq&U^6o9HP5dw^ zY0jnz9<^dFDuyY$Olm6f!asd5Pr3YlQDSNn#5D#67_M2nBI>pNq_DkJVmE%5F0A`{ zb>&O_tG^bwEt<^JHfw)m-;%^^N0Yi1yRNEA={tQ#+wg2f8y8rJ!qg$-HV9K5O zi*Kxxm)@rQY*u2h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDrEkYflbLUN1&hGQCc z9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8rp{~s(nGXB!!-WrR1dne% zCYKidr|smjbxjjrnlU4V|CL|==cv{2=Q*p*ZJ#QwuvSs=gF@`JE3?|y{pIHQz?23_ z4TMx7Ty0>4>S{uvisb4oC(H}~YCH_9VQDDWew$b#f7Rn(s&_%i>c!VrnBLddP0aZQ E0OJutWB>pF literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_063.car b/hubble-commit/fuzz/seeds/car/exhaustive_063.car new file mode 100644 index 0000000000000000000000000000000000000000..59b0be168feedb7dcb375a254c493095b7e3fb0f GIT binary patch literal 868 zcmc9nlv;%Qlrx z`y}STl_n@=yz`mM^T*U?>_|Qi1_~v7BY0-b$PA*&5H1VYwGg8p(jVj^ZdgS7@gYs)O z-8z3={E61r!(RoiX)g%K(7&s_y65zbcs2{CnRVHDME5IW~y1cBI>pNq_DkJ gVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0Me<0T>t<8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_064.car b/hubble-commit/fuzz/seeds/car/exhaustive_064.car new file mode 100644 index 0000000000000000000000000000000000000000..b9dcbb89f34d09344b8a89554a2e0746d102e1c5 GIT binary patch literal 160 zcmcColvaPWEizf55&DtN?wX=h=IxaoAOWdmMtm_{07AI>)EJ{pm zT#}gWlC5uInOMM(Sn@5g3~rVBA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmoyo_yj zZeq^29!8KYgxrL%#lQ$`3)~7q?n83TmJ{ZMe>EP4)vz>_Yrjn_k-zHkFV(vsWcA|f ND@^a}>n7%W0{}}=c#r@9 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_067.car b/hubble-commit/fuzz/seeds/car/exhaustive_067.car new file mode 100644 index 0000000000000000000000000000000000000000..3c7925563f46516cf4eda67eef38726679124618 GIT binary patch literal 443 zcmc9nlv){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15wM)Vu=4qR?Ke8_|=Nka=8@*)! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_068.car b/hubble-commit/fuzz/seeds/car/exhaustive_068.car new file mode 100644 index 0000000000000000000000000000000000000000..37c1a5754952056b6a50d3d46163c363e238e917 GIT binary patch literal 216 zcmcColvvr}oMuO&Bxbv0>l>IP7BD21d`m2Y+qF||Q^5K&Or6*Mr%&kq zzx#}CvFd^;cjhm?u})rkoAR?+OA@o4Oe_-%m{7H;9}+srFCV(yEo0)PbyF^zvCey$ Vv~;48o%g(h#mm@c=O*TS0|3yESkeFh literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_069.car b/hubble-commit/fuzz/seeds/car/exhaustive_069.car new file mode 100644 index 0000000000000000000000000000000000000000..597a4fc84ebca0184974e4924f4e9a0db05b11c4 GIT binary patch literal 270 zcmc9nlv~V;>`R!#*2)^C|{JA+Pow&+a+7yz#y@JA+h9JVj0}7wJV}t>rV>XTP1em zcj>~quUA*T)W7;`f!m_VJZ-b~NA@jA%yu+MEMP{}wNq_V!1^;xo!9=SPw4)?`;2a} z>VheE<}bdnPF{MO^0Qe>60@C5EE5ZuP_?Na5<1B*AG+NwW8$TCQ!bma&U=}(bfS@+ Q_q>C}%h+b;Cgywt0FwNAod5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_070.car b/hubble-commit/fuzz/seeds/car/exhaustive_070.car new file mode 100644 index 0000000000000000000000000000000000000000..c3a338558235a0bb168766cd0e88b28e58721709 GIT binary patch literal 358 zcmc9nlvi%c8{8MyTVAz>b5vjF7jGJhA13dEsA;hha4=4dvQz6HDZ;di+cEE(lq@`1%Ud K`}(?xIo|-e?U!o+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_071.car b/hubble-commit/fuzz/seeds/car/exhaustive_071.car new file mode 100644 index 0000000000000000000000000000000000000000..570b16ec07a76e813be93ca2df41943fc2fc37c7 GIT binary patch literal 499 zcmc9nlv|KfhNdmN|5OCDLCJgdqQEiZqdDcbX6 z_w)3!)S}|d{5-}jjKnBkl$hGMBr)41Ti?Jav4A151a6USZ*m=fntsn#|3pV|nVM#& z(n`l8tC(VYrm{OnE`2s7u?((s%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ zbrW;oO22l0RS)b|cevoYFF%~kBQbE@U*6wm15R76^Oc(b7~9T`v%#(=WcQ-P)F!B_ zO~9`HhUA)^YMTPqpJD2}_CI|>_y65zbc7RQr4x%H!BZ z)~BbJr4|)u=I1d6gH#7i77j69lOQI?_9)@et)t%?9~t!BQSrQ#R;qDf&bG%%ixN{C z5_8~&hoy+D%8liAnWLOs-}4@@lOfV_i~%ljtG2VQd(2y$tQnC4GLw*^MTx16OA@nP zvh__Y6AKs;OTHzR!EI1KBy^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*xP0ab$ z!w9m4kUtT&7(;A@% zN_ceZ==a7)27Px_JTIk{YFwDJ?Qs&CnPDj+t8!zxUFIk!*Y~_X86qvm7~m4OYCG$? z$GpYKnh_}=cM?*xC^5BhNn*B3w!VpFVgW;9$+yHZxU1C<37zDZ58dvTG4ay6DVNPy z=e3^d)~p~Wo)x^6LY?8VFcMiDC_`3*kTN^1#Sf)KO?zj`#ZL?g+(i#>9GGk zT=>vN@c8Cqa%s_j+D+pPVOeTg~W0C{&1EdT%j literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_074.car b/hubble-commit/fuzz/seeds/car/exhaustive_074.car new file mode 100644 index 0000000000000000000000000000000000000000..93a8a3866406dbc02d31ab8f2cd41277172e1ec5 GIT binary patch literal 527 zcmc9nlvr^tMM?bhNYog`)y*0{8f*Cson)4s~2BiVR~O* zH!<0FHWh%-Qxh z3CT5pZGXphwyjOfD_@Put05>zXFMG-FQ8ftyOm*TEo16S8_y zVrm1DnPDj+t8!zxUFIk!*Y~_X86qvm7~m4OYCG$?$GpYKni1gOCZq@v5GIg-Kn`y8 oLqaF{cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I2hz;LRK$IOl?3i zGb}}9RcezP`frzP>J!m%ny@RS)b|cevoYFF%~kBQbE@ zU*6wm15R76^Oc*xwsRxc%Y+mmImQ6PF>6;uz1E);wzo>`#_!UFbziTpe5rr+*8;ai PlX==^?T_qB%=rcY@V6o@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_076.car b/hubble-commit/fuzz/seeds/car/exhaustive_076.car new file mode 100644 index 0000000000000000000000000000000000000000..33c1d2dc657d26b78db37553f10e37d7ae940a05 GIT binary patch literal 611 zcmc9nlvx( z2b*eoS!z*nW_})HFi3UKWZ@9wH3?#JY>yHi-8%Zc@sUB_9Tm?@X{8z$=4^YMv?wvP zAu$JTcvyi6QW<(0eOhSqlC8jnmNz8W1 z);FOerim}j zn300!VSH$qPcP?V=D6RdY)op5x$e!E6;)dwpSV@j`9Z&nDL7~rz1}kC?m^R+lK-df z&zEuL5Xy~E?5M1-RaOfZ6Gr`o1~^=Ftmul-M-(EWe+8Qo&l1ykzJcSEkW0|wl#rVM#^VRU literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_077.car b/hubble-commit/fuzz/seeds/car/exhaustive_077.car new file mode 100644 index 0000000000000000000000000000000000000000..b5f0a7bd6e853ec1db2d777b94658b86a801c33a GIT binary patch literal 666 zcmc9nlvM*{|9R^1Qv3JQ*?fG` z>pIiRQj3Z+^Ya*IF@ltvP4ez7tWEqdDQV882_Cg#E-Hp8yG&{-^1?rTFi*Mseor6US0W8|LU&=Zi^=Kw9VQd z*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&dVu|5h^+Q4@`Q<~myJbwg zv~J2}GuC-8la@|2vh$vIuy`5U?A*khZ(G2D3K*d{K-gjou?6l4LViXH{O#}9&K4G} zc&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjDmuAdJLGvWTe?xeKENA?04bdIUd%gPV{dwBRO`Z~!U!A2R>| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_078.car b/hubble-commit/fuzz/seeds/car/exhaustive_078.car new file mode 100644 index 0000000000000000000000000000000000000000..111faccb97c3966e7f604d0d7829afb9730413ce GIT binary patch literal 669 zcmc9nlv(To)-&u^v(Te;566X^T1uEKcDoun5WAfE9Z$@ z^2sy3EVZaOGe3`U3nMYg7bT`PE=kOG$<{ZvOe|nXEP-1TG+8*rcuj(s9NVLWN4JiC zZ+v9XcSptZQd+6Tg*n?ECnc7_m2Q8>cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-Pt^6UQ`wHp3BXSKQQQ>7KwDk^?Zh`n}YR{OfY+&mwc(t<&bCS>)Z#MA~P zGs99uR^`TWyUbBeuJ3t&GDKRAF~B8m)ppi(k9mueH6v0$W)f0_2nZ8MKzu{;p!y-9 zll=0b+ubrIURpQhvKcF2^Ij$`ooHm|J?~)gGPc>di8(4NCUi+Uuq5J>tGrGm93#Qze zzxc*FdFgG+&t@g&eCq+nDWNb#vc(8&3q14*xev+9TTYl4{?&LGR>RUzuKhN#ME!kt>yeAs4$80DbnEMY<6?VH$uZCTzEF=hQ#=u2iGc|?w2>{@skSL#{TZgtYyZgX!IV4m z7vESXFTG9q*{sBzZ;&`86o!By*j73hlEb@%ZF}v%b0j+-IU8_tn*$b UEuCm&=RNOW@iMmAxrsU70D1akc>n+a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_081.car b/hubble-commit/fuzz/seeds/car/exhaustive_081.car new file mode 100644 index 0000000000000000000000000000000000000000..11f39f5e139778686db7520cd25ca89dfc2d8b66 GIT binary patch literal 270 zcmc9nlvW3HZMuccFEQ^Fi0$5NG$o5SO&Li?TV<^`jf);R*BvC zUAnOD>(!Mn^{@U~;I?QoPur~hk$p=Nvz<%~5(}76wKeWKrXg0N#kH#UQX->bdp~_bh}%|#7pa@TsC8!_cCeeL?b)z Pc?XM^vCYm+%=rcY*c*1m literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_082.car b/hubble-commit/fuzz/seeds/car/exhaustive_082.car new file mode 100644 index 0000000000000000000000000000000000000000..7fce614026f840a39fc32d17760d8f83609fb6a0 GIT binary patch literal 357 zcmc9nlv@|>)4k8{eGgoI*R$(%S2%lcoi=n?}Cuki?6RR zy|1sEnDcEG*foUAT$GsF1aXat0oXO)kZft(bxcF7MvH4z@5$AN?#&ne_g}5bhH~wBr)63GO>U; zu>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpFc5Y(Mw-iu-67m32fMPmr p?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~hk$s6d-vBe-;!gko literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_084.car b/hubble-commit/fuzz/seeds/car/exhaustive_084.car new file mode 100644 index 0000000000000000000000000000000000000000..702ba3c73e7ec0f210f561d3e1a2c00391f07c93 GIT binary patch literal 270 zcmc9nlvd&dkqayvRt5@gX!IV4m7vESXFTG9q*{mgr*-j<~i3Lok+8TEq(-5oC;#$>va`mBm^M(Jt zS7m8j`lY=n{=Vq^@+V1460;pG6APG8b*Uc`I>|2|y4@{f;-z&{E}OB=dzrL!qLH2V Pyo1Hd*kr6US0W8|LU&=Zi^=Kw9VQd*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm9 z3#Qzezxc*FdFgG+&t@%2%yu#{NGxDN)z-M{n1)!57T2oYldBKin=kzDy(&xN(l6~r z@%KgNmp@4YS!Ri0nff82ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&Nl#$ C7>>5I5E=o*ohPuWC?3!;#w(L~f6tMmbQ|Gn+=@YvD?>?hjth!*zo%xGz ztdp1Cru=NylEiE$6NAJ8ro<9tZH>E*X^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd z`IDq2iP?^pi3QB4y3`K|o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bG`up D);qF< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_087.car b/hubble-commit/fuzz/seeds/car/exhaustive_087.car new file mode 100644 index 0000000000000000000000000000000000000000..ec4d80d2cc67e480102782b4ad3109616d2f30e2 GIT binary patch literal 553 zcmc9nlvY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4INz8V% zOe|nV)unz&=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3unDcE5*h_>$0I)@g zsf|!C8G*e7_Ya}KK=S&Q6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKCg#9R z{o4IiJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W$Occp#(*$+7(f+ m^(TextrENOyL4gQ*Q+aE>R-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6tBgjxfP5^9CVrt`( z#B7&rePheS0*1sAxcP*flUN2YY4e{QDSNn#5E=cVAp&@vZZm?F%7XAEv{9)Cs!Z3H(&VQdsUXkrC-{M z;_r*jFMpD>Br)63GO>U;u>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpF Jc5Y(MHvrUK%{Bl4 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_089.car b/hubble-commit/fuzz/seeds/car/exhaustive_089.car new file mode 100644 index 0000000000000000000000000000000000000000..b0f7d17d718fed3f961a3c0a2ee8b90319328cd0 GIT binary patch literal 666 zcmc9nlvDpRMNhv;TYCL%MSk9f#&s88 zn^dQlr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5d9l2r`tA6BZ?=HZDob zcFEQ^woEKwNGySyzkpA0(UFL!3%xUf_#e&cJ#aLA*T;Wssdt}QI41w9)0RyvgDc(s zj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jO1!Uo&<*kA*<0s;_2S!_r3=% zzw6m`x~yhtINRdoVNY&+bojXRX7gIWs`C@&W`RS3kg7$AsZEfOFfjm!#5W`#Htss6 zAy%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>lPm-1-W;7kOrd&2-o%b?n=|m$t?|BD{m$A*xP0ab00*WL;QHh8o15Br_T@m$Ke^S`qDzO{C dOBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vq^YHB$fp literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_090.car b/hubble-commit/fuzz/seeds/car/exhaustive_090.car new file mode 100644 index 0000000000000000000000000000000000000000..a670d10f6bd395a87c16daf121cf652d1ca26b9f GIT binary patch literal 582 zcmc9nlv!=&ENm)c!VrnBLdd zP0aZg46&YX!@>?|JYLRKC^I4{#BbXm>PaJI$E!=Bvu=-@+ZRO#+G20!_6n;9Keu# zxcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2(u^6&)r3NF7TDE<{I)1DwFwg5 zCI(l54(pe^n3cR(H7IyDvYS%_A{z-Cy3{ zX9G@KuJe_fz_xSa7O-mw1qi}5#+G2$z@0)UaFATR{T^==}00NlOy59W4_Jm{CJs{gBW}e)-VtZW$9Vt($V$jCJ12 zq@@#$?7Zh4EMCSoJ2x@sTM8(82?aYMKn*aRwsu9-YyC-Kd#l85{4QNs_x0+^m-<(K SEpS^jnWt^m{>Z+>oNoYNN$dJ{ zo$~au)S}|d{5-}jjKnBkl$hGMBr)41Ti@6+v4A151a8p+KEXvtBAzbv&IsavG^_W( z(ezy(|FNaseP-d9{Hsn|Hn9w@bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(tiTh}!4 zr5ST#4qWNO_|Pz)Ue3qNalcR5nA8|^-J35fsStNJ-PAG;p5Vq&1nu6cX~@qQulDNEDhFV7R<-*D(#T8ZE9> zy(d>6x;J0=-+NV-#-(4{i{kH#&M$wGv?MXx(K4}sIk5!Uzv_pCPV&o#Zg()GR zWM+Cmq|@UUihaE<|&uoFG@^p zT9TOUlC5uGkXXQwSn@5g3~txj6;ZGCCxz{;61(xcbYb1st1DmXU;VYfZP8?&wpsfl z`<5hTJDMaGFr(_)skSL#{TZgtYyZgX!IV4m7vESXFTG9q*{sBzZ(G1_ zBjlAuiK&ecw;5Z4-3E8q0zSb-MAK2z|r(wAOEqX-hF1_nEb0wTNcR= z+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HEyw@ZS*LAj=v5TY15R z1&6Il|4e7T{~>;(`d{rRlODm(!Jq&oWc8xN)CMFopYDBr?|b0#yPjRA0V}In8qT(O zdDxR1A00j}z1h6BIzLekY$hR#(aaO)z7=an~^ou^KI|RlO%yAG$YR z_}_a~md2%D+Kb}vi_R~9k_3u*ON^LTKO}ULUp{oZTgJpo>!w^bW1aUhY3W2GJMVc1 Ni5Lty{_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_094.car b/hubble-commit/fuzz/seeds/car/exhaustive_094.car new file mode 100644 index 0000000000000000000000000000000000000000..55d21fe57b2dc54250cdfb084cc177b0fec989f1 GIT binary patch literal 724 zcmc9nlv-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6o$jn8rx6HYF(DbF` z|Ec@)Wt=&La^qrqPsuUQ{Jv0+H&Z-uQDSQ2lEiG6Y<&Zh!~%xIl5dG+a2s~2Z33I=42%lcoi=n z?}Cuki?6RRy|1sEnDcE5*foSg9pM^dOH|hoiUGioT(kWh+u6dR70-0oe;+P_|l9SDWV94&MdI22}S3k#MCB8Oqm#fU5y-5jk}I%h}CFut?E6w z`p~`k!vEf@vNSIJ(q0sQUvz%?lcXhy*^ZWp1cDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-Q28&$%+^~l9*2j$mnx^@1#_!F(KhrbG3(_Rpep?_Cz+s0s!qX}8PC^5AG z$;_vFpWpi)xcshX*XgpFrQvLgmxn#M@zLSq(wog|tMe1(Qb1-ddc9@N-GintCI3&| zpD*LgA(R^z+j~lmdFJ220mWFcew}~b4 zS3UlvdKZMOUVMFp>3w}&q@elQ{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1M(unBBC zH_iel5<&sEC^5AOl1NMpz^+CPo5o$oG{kDOxK{O^Tz%-?eBpoZRaqLBerYd?zb`t! z{7KT1#B4{)!~*8T5@cQKhlEb@%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7 zz|ls?14sdi>9n;gqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns05xok Aq5uE@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_096.car b/hubble-commit/fuzz/seeds/car/exhaustive_096.car new file mode 100644 index 0000000000000000000000000000000000000000..d83d63b2feeee31adf5506c0f734b35447db4d3a GIT binary patch literal 302 zcmc9nlvtK$uA$e-7RC{rFBy-o3YM&nY47Gk)8LvgT>3( KX6Gj6d;){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15=4qR?Ke8_|=NkYYV7-z6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_098.car b/hubble-commit/fuzz/seeds/car/exhaustive_098.car new file mode 100644 index 0000000000000000000000000000000000000000..8c116435d70781f9562de8326dcb656b1156296d GIT binary patch literal 357 zcmc9nlv7kOrd&2-o%b?n=|m$t?|BD{m$A*x IP0aZQ0L3npPyhe` literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_099.car b/hubble-commit/fuzz/seeds/car/exhaustive_099.car new file mode 100644 index 0000000000000000000000000000000000000000..85b3537fc7ba7bf273607a92bf8e32da9819c95b GIT binary patch literal 498 zcmc9nlv220mWFce zw}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOo=6MJz*&#t8!zxUFIk!*Y~_X86qvm z7~m4OYCG$?$GpYKnh{9G`~B0u`LvR^wxi)d!gh~2Hh}$o(W&)AuZz+4%h`j`tjs=% zIdD_Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~enV+zQxgsfhanA!;OtBECs zU)2u@o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bH0HsA>UOUklt8P3CEvwLh{iG3Ofq%*WG{ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_100.car b/hubble-commit/fuzz/seeds/car/exhaustive_100.car new file mode 100644 index 0000000000000000000000000000000000000000..7d40f973748764fac144804ef5bc4f1d11e64dd8 GIT binary patch literal 443 zcmc9nlv){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15}apn*LEH^H;_mmv-%{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8n8S8UUAPxhMbt literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_101.car b/hubble-commit/fuzz/seeds/car/exhaustive_101.car new file mode 100644 index 0000000000000000000000000000000000000000..de0a34a3e1715139b06767bacef752ef85ff8cae GIT binary patch literal 498 zcmc9nlv+^X%Y>mKtKCu>G5N=$8pIL*Wo!)fY=gii9y zhi-Svn0RU3l*?wU^Ij$`ooHm|J?~)gGPc>di8gRU(OzkW@YwC%z>LqC_(_F)7aPm literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_102.car b/hubble-commit/fuzz/seeds/car/exhaustive_102.car new file mode 100644 index 0000000000000000000000000000000000000000..363e1f5a68504d6721d6606d2167800b4e39fdfb GIT binary patch literal 498 zcmc9nlvZAvD_|ml#}aw-k%JSmSYTXiCeXub=_m$;$+Q;MTx16 zOA@nPvh__Y6AKs;OTHzR!L3q1By^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*x zP0acBnh|6RAvY~bOl^YLVqgTe1#ZQn*IVY?J!tw;^8eKR`GCnda|q?e#rB?(W1jha zp&oChcp{Q(wwy38{HyUWtcInbT>EWeiTqWMf2rODA*&Z(UtxM*Uw27jwv&lPVgXZP z3EX%>-bXUt@1Oq7rxW(!qwSZo2cub;eG+rNfkTv#ixDAe wU;_3la)|C!+Z3?=3{&T||LGID|L;DdTdcZZ%ANU(Z>*D--lqI)R$|UK0CbMje*gdg literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_103.car b/hubble-commit/fuzz/seeds/car/exhaustive_103.car new file mode 100644 index 0000000000000000000000000000000000000000..ab4683f1460ffdd859cbecc84f1bfa22ecf12576 GIT binary patch literal 639 zcmc9nlvvc}ambr=?5Z)c%;6mr^5gTQp$O zBxbv0>zi067BD21d`m2YTcv(T=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3u znDcEi6UY`qZd#O>+61x1zzA#$+=@l7x6HYF(DbF`|Ec@)Wt=&La^qrqPsuUQ{Jv0+ zH&Z+j$u(O}m>2%lcoi=n?}Cuki?6RRy|1skBr)5`#3HePDX|1@ zJR$ER8SnQ`|K`(5-rA0a0}0zb=GXxC_eH1H54|o%+b?GiMzb>eB<8?P{o4IiJ+NEd z;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W+%ZC*(6k$Qzh|!vs0xcdBg)Sbv78^VrV>XTP1emcj>~q auUA*T)W7;`f!m_VJZ-b~NA@M=d;@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_L}D3S zsoy{Sn@=lwYdabaBy9JXWAhiV7oA!^^tu>rznnc7&C2YPnDZ?KRI>|2|y4@{f;-z&{E}OB=dzrL!qLH2Vyo1Hd*k+Gv>scZvgp7vWEZw literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_105.car b/hubble-commit/fuzz/seeds/car/exhaustive_105.car new file mode 100644 index 0000000000000000000000000000000000000000..e0d18ba8c146e233cef5eaf994a3b2486a2bf288 GIT binary patch literal 669 zcmc9nlv&I&Ocn^ z%x0#Sr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okGwkR>R zAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5dup1Q}|w^~u83wwJB^ zld74&IkWVpX~^)bwiJ}y#rDb~;o7B~MTx16OA@nPvh__Y5(^j-OW@{*rHHJ`jpcTk zqnupd^ZsOrv>aoAOWdmMtm_{07AI>)B$mOI`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jb zVzm8o_FyzCvrl5qw-k_L2pNgw7)!8Yz9Ctnen{vfzkKL+w~UFG)=jx=#yan1($a}W zcHZ+27B6F)otv2RZ421TghCxKge}GpTj2g66j(^E+5V30Y+=!gXFBY^4;MbP5j?*6 zm|R-)pSF|B)-_FhX~v8cQH0_Z95jSt6X9qB1B{?qyCUkf{-m(IRbn@OmoBXPdUfSX V{j0wgxGkE@(>7~=WM5*=Hvnoz9w-0+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_106.car b/hubble-commit/fuzz/seeds/car/exhaustive_106.car new file mode 100644 index 0000000000000000000000000000000000000000..b6a2bde25033053cde7105e2620d8f9ab9348736 GIT binary patch literal 585 zcmc9nlv!=&ENm)c!VrnBLdd zP0ab$!w9m)Wb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^xxVN9$q;Ed#sHVNRohwDJ?1S=){H=Mjo&~0n@=lwYdabaBy9JXWApb# zr`8X>E=JogXAefRGW#Uvd;@!#kdc5PImQy~7-TQ29}+srFCV(yEo0)PbyF^zvCey$ zv~;48o%g(h#mm@c=O*TS+XD77p=dzZVhphb?qx!Oh2-V!@7T^37Oi-u!~Xkl;X@n2 ch0A@({kpKVy literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_107.car b/hubble-commit/fuzz/seeds/car/exhaustive_107.car new file mode 100644 index 0000000000000000000000000000000000000000..155b9ce9e8545a833121b52bd9c306fef1f2646f GIT binary patch literal 727 zcmc9nlvikhkgdPR-liHAYtqH!QfYa{to^-;LA0PcrZ* zID9+3EVZaOGe3{9hY_UQWb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^6L6{h#~brW;ozW&<%RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(!z!5+w zz5qkG#u(yfxcP*l4k>K5zhgUFShV7q4*T!Jg%526k8eIEmlpk}?c}m`O%q?5F(bK} zQ0Raoijdb3jy5pB2*R~1qF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns E066b4b^rhX literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_108.car b/hubble-commit/fuzz/seeds/car/exhaustive_108.car new file mode 100644 index 0000000000000000000000000000000000000000..d4916498ad6cd655895653a7d0964d08dcca0ddf GIT binary patch literal 669 zcmc9nlv15zLfkwb$`B$ zGlx)aTx{hbv%&q5)xxF~lqIz#azD+;O?l^`=%%$yI(c z_O0n@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_L}D3S zsoy{Sn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uve47P!joBpc-oo0%50jGS zY?|OvE9RnNn6k^HrXnx=(+BgE%kLK@rZz!bV_*Pw%{L@l)~<+ptv@MjZ21o-W+mo)O92HGA@3pulqH7K)DH=r^%~q0APe-4`GWj#1?oM6N*TrfZG0!?QCJuif20PzYiBav=KbM z`IuZ<^q;nq%hokbd}+pp$H%p?@a0PTJ=7ytkO literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_110.car b/hubble-commit/fuzz/seeds/car/exhaustive_110.car new file mode 100644 index 0000000000000000000000000000000000000000..3d567107372d588a6502cc1cb374f6e586556ccd GIT binary patch literal 727 zcmc9nlvaoAOWdmMtm_{07AI>)B$mOI z`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jbVzm8o_FyzCvrl5qw=H1T5OO@iHO7{xt|8

%H!6L6{h#~ JbrW;G0RXqJC?)^^ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_111.car b/hubble-commit/fuzz/seeds/car/exhaustive_111.car new file mode 100644 index 0000000000000000000000000000000000000000..9fbceead2640ec3395e9e8d666fec6607b185b38 GIT binary patch literal 868 zcmc9nlvJauy|~ zHZDobcFEQ^u}CanNGyR{6qX{gDmRwfWsY)keb4)oA<}Y;0WNW?wzIB#%v+qS8If29 zSL*jq|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Ip0!1jv-_ul4C5vj`@aU ziTWX-ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKXKFB1wOge}GpTj2g6 z6j(^E+5V30Y+=!gXFBY^4;MbP5j?*6m|R-)pSF|B)-_FhX~vwG12=VVR0;RiBNwk7 zlwY&y*7@t=Pqe-s{wi=ydqF^k{$0Io8^J-d==GL4cMqDrl>9$+f4+<}hfr=@Z0{*K z=9%9Y>hWfZCn6keV1f}eJJmJ?tUtrldF_Atgzo>l&*&DbE|_v>{^A?!ezP`frzP>I} z(0uLwsvg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB=PNgXZ6_pX2q{8xv;o-B$f;)Sim2E6 klfw2^iQV{Jy0Gr+)s-*xul`!#wrDa>+pPVOeTg~W0K=GhnE(I) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_112.car b/hubble-commit/fuzz/seeds/car/exhaustive_112.car new file mode 100644 index 0000000000000000000000000000000000000000..b13ffc5ef4503905a5e44eb687cc5551a8c913d4 GIT binary patch literal 443 zcmc9nlvXV~=Hy$*zZBtSTzc0odOF_a{T73^d)~p~Wo)x^ z6LY?SElE(!c;_>h=a0n$o7@e}d5R@~C6)j0>D;^4V3F0q-2CNNkt{L5u%vOEC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$Enw8lnF$ZocAzuRkIBL2) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_113.car b/hubble-commit/fuzz/seeds/car/exhaustive_113.car new file mode 100644 index 0000000000000000000000000000000000000000..a167962b079963d95058b3d395a665f68bbaae4c GIT binary patch literal 499 zcmc9nlvx%F*d z!?cI#WvNBQnfZB)vl&6k)!BqKBNvCAnroELYVN)Hg6FYmHxIuR+}yW^El0DCk9kpI zYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+ptv@MjZgq(OWdmMtm_{07AI>)EJ{pmgt*Pb62ookhlEb@ z%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7wtz!`P=F!XVga@V?tMb;LkcOs rfBH9{R`S+%G#p6S?lH&a?~6{YA9`JkwqMR3jAmu_Nz8$pN+?DEiQ&|{ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_114.car b/hubble-commit/fuzz/seeds/car/exhaustive_114.car new file mode 100644 index 0000000000000000000000000000000000000000..8aedeb0461b0c2c30d9a9af20f8788c9d5059de1 GIT binary patch literal 498 zcmc9nlvv^F;sYS(^`FV`58HrK8C^5BZNn*B3w!VQ;VgW;93EZLt#f*18b9w$)Jg~{#(441O zl2rb`r*rRGgGE*cbMu#9O)P^e-EzXb@UO%m}B$zMW@yey)H)EFJ})%voiZ6=6p*5`IV57ixN{CA$~Qn1pDdFiQvp3z8)U7?w2dI;J63 kqs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7%*0M^seF#rGn literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_115.car b/hubble-commit/fuzz/seeds/car/exhaustive_115.car new file mode 100644 index 0000000000000000000000000000000000000000..a0c640b07ca76c496c1df308c708b2b13dcea321 GIT binary patch literal 639 zcmc9nlvK@y z$6iY>OD!tS%+F&?0jUm45m}WR%k45pIk~>){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15c!VrnBLddU6PpXWMYw6z?4`5H=a-! zBN^}aPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8*jnzjl9B5A0TVxZt}l zKb*}YF>u{q-rr{fPFt??m7Bn}b0aw92`NH^ya8s&uU!%KT7Od5-YT&hze^X^eZ9K! WrT*1l3)~h>=4qR?Ke8_|=NkY!i4!aU literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_116.car b/hubble-commit/fuzz/seeds/car/exhaustive_116.car new file mode 100644 index 0000000000000000000000000000000000000000..7c57678094bf26b97b64b2678a5fd8ec8f5cdc41 GIT binary patch literal 499 zcmc9nlv`^{yLA@?U?tTxp); z6lj!QmReMtnV-ivn-QcuX!FUB&&1Lt75BF&EPJ{8%&8pnzHmQBrA@iTK6fJ3TNWjz zHZ4iacFEQ^Fi9+6NG$o5SO&Lir`o1~^=Ftmul-M-(EWe+8Qo&l1ykY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4A=6p*5 zxh*V3WL0h~x62&m7RQr4x%H!){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15_D5ZUk!>|{#m{|pPIRAqrB~<7~=WZ#m+Y)6yC0%laV?Nr+ou>K5F z=e7UofKBNBzx#}CvFd^;cjhm?u})rkoAR?+OA@o4ObikWm{7Gf?mDI+R-?tWs`upT zL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;iZ2^0UP%t9}oCVlR@K7TZ^+T_V(e}&PgVC(aK8ZPSQwaqz0QAG~761SM literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_118.car b/hubble-commit/fuzz/seeds/car/exhaustive_118.car new file mode 100644 index 0000000000000000000000000000000000000000..01004f699e5e887fc6e0d9826bb783251cb61e14 GIT binary patch literal 554 zcmc9nlvK zLAHbGWvNBQnfZB)vl&6kgEpW1_)IKaQgMHa!m^jU&z#CJ?+f>HRN9nV>~kkly=75i zYSWU$Y?o|(1Czu8hQyL@iDhuRcB*X(Sbv78^V{Ja}#sEy#|K>p#Vb)0VA+2aPJceJEV}> za>Bguug1f$8kUA~?YD^~@>f0nrFs{HtX_P5h3S2LU2sTQfI|vyJR$ER8SnQ`|K`(5 i-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Io|*VHSab6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_119.car b/hubble-commit/fuzz/seeds/car/exhaustive_119.car new file mode 100644 index 0000000000000000000000000000000000000000..e23d75eaa5104c8fc3e32e51175a981505f7b38f GIT binary patch literal 695 zcmc9nlv{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=ZaF=}T{;D3>t?qEacVB)un@3{c zy1%@?&jy^fT<0q{fo=irKrsOa$~Pp}>{Qznu>K5F=e7Uo6T1KJKBHT# zx?swk`HOF?lb7D6{0y*JV9y$WJ&UZZan~^ou^KI|RlO%yAG$YR_}_a~md2%D+Kb}v zi_R~9l9ZV9Ed}H@LgBI~F|`pAVJ4OsZc{%bbdp~_bh}%|#7pa@TsC8!_cCeeL?b)z zc?XM^vCYnfSwbk75SADiU|6ztMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*VTQr%cZPxzC IzQmkw0CPwvJpcdz literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_120.car b/hubble-commit/fuzz/seeds/car/exhaustive_120.car new file mode 100644 index 0000000000000000000000000000000000000000..47601e49add1cc2c4c38d89a4c1e015e7063bda1 GIT binary patch literal 585 zcmc9nlvC}%h+b; zCgywtTauud@y=&1&mW5iHn|&`^At;x%K!It?pp;p7w@` zV@|$>{7VsT#-(@dQvS3Cp4f7J{RfG8GRjktyuAG#+u6dR70-0oe;+P_|l9yG3VPBuxkjJiExdH1=!DU*AR*lB-i-;)4%z&lDD>_;XuN6k2yAf bUvz5y(CcEf{c`qTG%K@DVh-F?LU8~9P>T9a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_121.car b/hubble-commit/fuzz/seeds/car/exhaustive_121.car new file mode 100644 index 0000000000000000000000000000000000000000..6566c8d4e03c4c611f5f1d360653e1ee2f0cd190 GIT binary patch literal 810 zcmc9nlv0P^&Kdpf$wwz!8L1Lba^3=pKxYF(K*v=Lft$3!x{`+v@LmR>4n~%w*MgM6#xoln2 z#Fu8wi8*kk^7CbP7Ch|yZAvD_|ml#}aw z-k%JSmSYTXiCeXub=_m$;$+PTL_nB80^%Ez2h|S=o#dAf-R_n#@zS~}m(5t`y-Zp< z(a6qw-ofH!Y_oF{bH0HsNl?sq=QEe*kHrI<+zriniX}buc%7`BfxK z48Wm{Y)Rv;V;W*LT3oAoPp&?6Z@%!q_o^(7OTV-i#org5U;ZR1G3Og3P6@>fU`V!D zfNg%m}B$zMW@yey)H)EFJ})%voiZ2g+C!*gM)@p xBq1DafEhGvS46$mpA@#YO6`Tn~1^|tbYBc}= literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_122.car b/hubble-commit/fuzz/seeds/car/exhaustive_122.car new file mode 100644 index 0000000000000000000000000000000000000000..c0b6743db2966f329414b3dbfddd9500e453ceaa GIT binary patch literal 726 zcmc9nlv3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%A z6LY?SEeT5zS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S=){H<{Vq%G5iTWX-ll=0b z+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKX$Ag>VeIKmcVh%In`eA;3>?F|#h zoO}!Umm=JZOYhpH{Amq5vE}^w4-)fal&2zjdHXxIvxP+~p6RgvK3w?FM)3INV{&QH zf7(tiTh}!4r5ST#4%}2iK?@F=1jUSZK682gSUj-F-O!w;SOQp5`Tw5Iy=x5?Ssl#H zUw#$gXcGgBplRH7Ohc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz5{gNBd?k!-O5 z+XD9lp{PR&8oz(~H=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_rW%fY|8bZDX0CB!I A?EnA( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_123.car b/hubble-commit/fuzz/seeds/car/exhaustive_123.car new file mode 100644 index 0000000000000000000000000000000000000000..bb7dd19075baa7c25ac8858d04de0167af6f7507 GIT binary patch literal 868 zcmc9nlvcDAr+#WNlD--iny+6W%sd`vDa`cK=*W$T(I zzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I0fYBuoRJ1xv|_X zbCi?od)}W6k(Of&aEV*Bops$~-r{7<2!x|eAddcqzIaEjTYCc-jk~j-J37`@4YHZEP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>mr5g*Y2%m}B$zMW@yey)H)EFJ})%voiZ2xtdTMfFp{K*AR|2z>KK1E23WOPYT;x hC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9f74Yk)S}|d{5-}Kkm|4$kyW{|+%9vJlk0olpA3h^-U}j3m6hhz9p8ytx`WEbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^vCYm+ z%=xy35o8M?Hz8~>hS&nP;?ox6X>XV~=Hy$*zZBtSTzc0oX{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKs^vj1LX->E(RP9QXT_ zjY*9$*S-0&qH62o6Ss;wKj?Qc1qV%nV#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`J zx%tblA{=dEfDtr}yN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(WU`rOg z-ZJOzLDQF#|EKQHmvQD0%8iTdJtfCH^ZP*D--lqI)R$|V#U{LS_M##I15>p$HLWhu>AaP14W)Lnnu>iXq y9{PmR98#S6{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYU50a}1MHc|3VOIeF literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_125.car b/hubble-commit/fuzz/seeds/car/exhaustive_125.car new file mode 100644 index 0000000000000000000000000000000000000000..1227ecca0da229434b95588f6eeeb834b425d6be GIT binary patch literal 865 zcmc9nlv(t*PhtAm{OL-UI^15e z>g%PKr4|)u=I1faVgxBSo8;YFSey7^Qqr7F6Fh3gTvQBGcA3;vi6!3>%iwmcT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_ zvTsRZwxda60W+$uoobr`)}LYOy!JnRLihjOXLO5I7fiV`fANiV^3vOspUq0l`IZ85 zT3Cw6s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QX2hbz)JBNYOe`^+rhZ81B)@#< zcDIa)m)1?WY{ok8Wzy1#Mt0uw4i+zCo1L4O^KA<_00@N_!WLtQEpXp|+G0HI4HL(l zd<*%PBHWBi@7ksOX$?HF<^1{&67yt~ry>Q^_IGS&3yW4f(_#O8xbUHk;PK7J+Gv>q`xT#Mv{5OO*$a2R2R$ee+!C|Y?Khv4-e~90x{#QH7q(|^GIA{_S zGv4{k<@sarz$SM?bDm;JQu+U$&b@057Fiw4&0l^M;b;@gSZmyMOhc?ji)&Ty$<>GM z%@_XnUX`VB>6iAR`1_*s%bz4A=6nkVg+E|~T(T%JwE@ZDgi;bDxCsRslFKc?kqQqO wLdgLsxc&a=-+WrhTielaAYr@59Gkx{I<){mBq%ImQ5&xK-O(*FEMfPS%WAl$hGM zBr)41Ti?Vov4A15lS_;K z({^&%x~7RQ&6pE&;HF;r^?#094S$}q+T8Z3(h6%86+bA%Ub`}@ecfMfo)1iE;GkLb zddr-<2Tfl}{-3%(U&fh3C^s&)_mmv-% z_y65zbc(}eDRff+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/car/exhaustive_127.car b/hubble-commit/fuzz/seeds/car/exhaustive_127.car new file mode 100644 index 0000000000000000000000000000000000000000..cc070122043f94bc8d62ab7548ac6dc2814c648b GIT binary patch literal 1009 zcmc9nlv9Akh>+^X%Y>mKtKCu>G5N=$8B zl9=t1t#4wPSiq22@-49pZk75Wp_Babq1)XuCSF=M<+2&;yq8H!CmPv#&pTMWjBR#q zV$QcMj38SGxd~y5F~kvDKw{;!m``9{wtDO?yE=hW=f>Z5zQslc1RK&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw& z>R@jE@~a3(n;2jOP2;X(8e%nCT&sFdu0C{czVN^Isw|C5zqA*{-xr-<{v;_e=Ns6P zMX$HaxqHy`rR4vq`}1X-IfQcKVtY@?G0*(IP>(lLJP~1ufeD5sJJmJ?tUtrldF_At zgzo>l&*&DbE|_v>{^A?!EWeiTqWMf2rODA*&Z(UtxM*Ul%F-zjl9B5A0TVxZt}lKb*}YF>u{q-rr{fPFt?? zm7Bn}b0Z|x5Q=-i5Uw_{Ky@{tRE^|nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S z9*kyX_Cazrp#%YrP(ofqINAU+)vR3+^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEv LwLh{iG3Ofq)#1KA literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_000_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_000_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..543d5798ea77ee360bd1a8cf9801c7a3843acb08 GIT binary patch literal 104 zcmZRuT9jIppI=hkcta~fm4UHPNMY{3e~EX?UfG^{%4E^7p}F#E)qMpI-Td2+N+)%G bb5E~MFH0>d&dkqa)FwvtqQumO#GG#c-)u5d literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_000_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_000_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..5dc392b83097413babe230d09e1dd8c75fdea56e GIT binary patch literal 107 zcmZQ%U}CgdlvvPp?idOD!tS%+F)gCPww5#MFkwoNoZ(6f#!; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_000_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_000_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c9dd12f7f261577fa59c215b91e20f66bcf810e GIT binary patch literal 110 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1?!SMDcgtSco_fk;(XgSp@@mz61rOc) h+mA{ob$)YCuTC#ZEh^5;&tudkM)jh^)P}^IZvf=pGGG7z literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_000_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_000_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1017ed97f23d36e18a68b56ea03de79619e7b03e GIT binary patch literal 113 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3!zki8$%U;=@ddg(cu%Wr~YSn!O k58eFRk4h(XesfQ+PA^L>D$dN$W7H-_^`gYohQyq20Ou<*WdHyG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_001_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_001_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..55ad6889ddd55282f0446a559e686de86ceca78d GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNa1VuSM|Vdb%zVS`|`utJQ4%f{pJ0AHsG}7I$ya7 zY&$omm!%dJXXfWIrVyigQDSQ2lEiG6Y<&ZR!~%xIl5dG+aI4m?haPWEizf55&DtN?mzeVn0D+K52><{9 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_001_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_001_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e4c2030ab58c494965c197a391db3d2d9c9a81be GIT binary patch literal 164 zcmZQ%U}Cgdlv%LxH`BMMtuLW+4CiAq-+8^1MnDY$)gd9i> literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_001_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_001_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3d967d90e85b74d880a37f2db92b989c501a1c9c GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10iYxh_6z;1Pi3%>jE!`VC%1K0iK{e3pz zwBQ`R78Pga=P{-bqk2(dYU7f`Y?o|(1B1i@hQyL@iDhuB)~<+ptv@Mj iZh*Zt-F zeKz2<F{TisdQoC(r6US0W8|LU&=Zi^=Kw9VQd*_W8}4FHW%NE-kE literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_002_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_002_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..cea664f6b0ddf97c4c0b2f3762c1d6c73d23b4bb GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNI^=Y=;>S0`m8j?>VFF-9FwaLlX^d2dehur+fr`s zdu%Zyy)3n;I5R(wF@+e_ixN{Cmn3GpWa}FkB^EFwmV8SrgIl%bgn8j#jfY`1EDhz_ bZxc)8uX_AT^)3imz4-bH)BF0mi808nItTe^ye+wrZldBJtdOu%!)7)R% zQf}^hY%wFfEVZaOGe3_pg&5U~5>p$OBxbv0>l+v)7BD21d`m2YTeancdEsA;hha4= e4dvQz6HDZ;di+cEE(lq@`1%Ud`}(?xIo|+6#YhwY literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_002_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_002_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d2bf2559b110d25a312a90da7c975dd6d9c011ce GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}sN~7rMThaQgG{x$F3nv_ts}GZUKVN#& z++W*LZti<*F(bV!wWv5VKaVkm7}bjsQyZ5gX1iqT8yF=PFeH|IODuz1wdI6);a`o1 hVKpob<=Sr(OXRP5{7dyN2wA=O`U=zg`nriZ-vCIENF4wG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_002_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_002_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5547fbaa70a36507eeea48a6a84200e22da5a7bb GIT binary patch literal 170 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I>aqv+{d(fX`3#p-_xCmfTj50iR7 zUwYHrU)xe{?t5%8BfTuOs5mn}k1>T9)r%5S8RUz zuKhN#ME-%HBI>pNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)m IUt-QT0MCkokN^Mx literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_003_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_003_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b51eb4347f60730b2c3536e6073019ee831a6cb GIT binary patch literal 306 zcmZN$U}Cgdlv^8P*> zaN2U6uiON-of}g?jv=H7$uR~Pj#;}R>b3r)u)S4cH-48ctowR(4V$L@J)J}qw literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_003_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_003_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..fbcd6e43cab640c131afc20e04a3598a10620543 GIT binary patch literal 309 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1QN=D^=LaX9?kb2XezA#ch$!<3*OI#f zSVoxe?N{Y{DumO^Qj3Z+^Ya*c7>QB7C^5BhNn*B3w!VQ;VgW;9$+yHZxLsRLm>2%l zcoi=n?}Cuki?6RRy|1sEm;+b(wfn1jV7I!%1>b%7;cOm>f$RSA z{yrOU+H#$*+yu6r8&g1zA*2Y&F$NfpS-T?Ywf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{% O%+oe&e`H@`&Nl$x7lNGt literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_003_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_003_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1aeaae831c6d9f20739f300dc7f990a29b98b0d4 GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K1>#V%gw2Pd8GDu^n6v59PmDDw%| zlDh*~MwsyJSLJ&ugwxAXi;6Sz^B8*=iBY~NF|~0?Vzx`RzJXC<0YhTRx5P5IU0Y6= z7yi|F7*@m5P_F$pu|)o=$G=qXf{@jVudgt@udkb!16TUB`>T3jx4Odx-+lSvY#xb$ z>;CfoJ{xe_a-FZ-1h$7~=WM5*=Hvr{Ff}#Kb literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_004_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_004_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..a217693f27459e73c9a13fa54287b229b13fbd23 GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNMX_IEpzT3G<_-gf9n2x8D|cm+_>1@Q*z8Rzc19| z%@j{eFH0>d&dkqaOd&?~qQun3C5hQC+4=@1i3JRaCEpUu;8yKa+Z3?=3{&T||LGID c|L;DdTdcZZ%ANU(Z>*D--lqI)R$|UK06nZmF8}}l literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_004_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_004_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..673ee662ec93011b2670221e5d8c0399c56cbbb0 GIT binary patch literal 164 zcmZQ%U}Cgdlvi&EgXAYsV6tMmbQ|Gn+ f=@YvD?>?hjth!*zo%xGztdp1Cru=MHV$L@JKsZJ- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_004_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_004_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..69ae862af325d4e990ed072df0cb3b0da53252dd GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1(d#X9?jAIKDfxfu{(Ko{4x!w**xple z%rn0))Z@(*PfRaMEh^5;&tps>M)jh^)W#)=*)G}o1}2FG42dP*63gIL?Nr+ou>K5F i=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY&Nl!?14cXm literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_004_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_004_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee872944499c7b136a1be449d23d19ba9dcc5ead GIT binary patch literal 170 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3X>n(Hc9yEO^`G4yEd>LmBq1?FG z-cxeSGrup?%ivb+RNEA= l{tQ#+wg2f8y8rJ!qg$-HV9K5Oi*Kxxm)@rQY*u2|2tU?P!u%z>KPEr`o1~^=Ftmul-M-(EWe+8Qo&l W1ykz5xI>3t_ha literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_005_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_005_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..0a8ec664073f0e6f1f4ae3b435d4b69379161895 GIT binary patch literal 219 zcmZQ%U}Cgdlv4SO7<@f1jsYS(^`FV`97>QB7C^5BZNn*B3w!VQuVgW;9$+yHZxLs>kM7`FZ6t=fY z?8fiXg>_%Au6(I~_16NoMU#2jX6=vcTauXVXp&gKjH+v=+NOZ@XP7##{ZF6J{eSlv Z-D1@RQ|`=Pd}E!w^fu*Zvl4T@0RTC3VY>hT literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_005_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_005_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a4f485393b3ddffd3efef06c4d65fdf7d2dc37a GIT binary patch literal 222 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10CY?60xVQu1vNl9}yP4K7{b5Su&*=15w zkr)2ygL%s3_vvM+Ma7x`#_!UFbziTpe5rr+*8;ailX==^?T_qRl9=sil32ius%xj(rhxTlm^!chPoL2J cfA<;PV$}sx?#y3&W1YP8Hsxot5_7%*06{Hb!~g&Q literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_005_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_005_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..76ce34e278b50385969d007f51f9acea6c8878df GIT binary patch literal 225 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NaSl6P-mZQ_SXNpm($@Te7YQ87%} zWl~d-7yjvkdCKMY>1C-!#hLkejI$VtQNAcKwP{IWwoA6Yfk9#cLt@Fd#4@;DYga_Q z)}Iu%w@U2B@6v^JU$3rwsekp?0=GqzdD>>}kL+8LnC)niSip>`Yp2?#fc0mXIa3_(37|+7-ZNwXgfj z&GUgNExjzYs5mn}k1++LdeQ4GbM78AeJS~W>i&EgXAYsb&+peM0yD-Dh-*RToUTGk@`ob@I~N zl%LH?%=y;C2(pEcn~-cV0^0(&f{^==T(jkbdEsA;hha4=4dvQz6HDZ;di+cEE(lq@ O`1%Ud`}(?xIo|-t!-ARs literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_006_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_006_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9194c58bea5df7d64fe7201b8787a9feae805634 GIT binary patch literal 306 zcmZN$U}Cgdlv>n(Hc9yEO^`G4yEd>LmBq1?FG-cxeSGrup? z_y65zbc1@Q*z8R zzc19|%@j{ul$hGMBr)41Ti?JWv4A15?|J`SFi&Ym) zxif$9jdk+U+mxTpO3eAz!w9m4keiTfF#_8Hw}O!SkX*Cngn8j#jfY`1EDhz_Zxc)8 XuX_AT^)3imz4-bH)BF0mi8Xh+NriFVEq}U&TIeECv^YceMYxfb-|Q7^B3P(CojEC z`Pr<*oNrqgLADTb6JSWT7=dkpTS3TuNUqs(!o2XW#>220mWFcew}~b4S3UlvdKZMO zUVMFp>3x0O#2mP(U%S7m2X?DFT=3nOAI|2H7`W~)@9(n#r!Cj{%1vO~xe**RgcKn; w+5qfmpNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0I>ha!2kdN literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_007_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_007_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..33def478aebabbdd82adf4084330d6f5570c25f8 GIT binary patch literal 447 zcmZN$U}Cgdlv*7zez8?N6a7}wb zK!*NZy=@!Q%TkMqGxPHpQ$VU0z1}kC?m^R+lK-df&zEuL5Xy~E?5 z#6^jzjY|@gX!IV4m7vESX zFTG9q*{sBzZ(A5awh(d?U`VzYfo*|XLCAebuGw}5bhH~w!(5gasx z6d^g<0PJYwpjo>j>b3r)u)S4cH-48ctowR(4V$L@JxA(}! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_007_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_007_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..64ffe68aee971917836cdbbe0687c22773a368bc GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1Z&V5Q)*~0M9h6_Q>DKw{;!m``9{wtD zO?yE=hW=f>Z5z|eQj3Z+^Ya)}K<L-ZJOzLDQF#|EKQHmvQD0%8iTdJtfCH^ZPNVXV(ZGl@s$bCqz*>b|X@UO}cemS-T?Ywf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`H@`&Nl$Z CwaCr@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_007_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_007_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1542641f050e96cefc348161c00e9c524944b47b GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2KR0;RiBNwk7lwY&y*7@t=Pqe-s z{wi=ydqF^k{$0Io8`H~Di;6Sz^B7Y=su#W9GUx6=)0dL}r|!>}apn-pjf?F)CC5DT z`$9e5O!34;iK&fC60=>h^$koC3m6hhz9p8yt=g%!DPa8>rp{~s(Bguug1f$8kUA~?YD^~ z@>f0nrFs{HtX_P5h3S2L-NYQYsb9Olst0zfJ6!PHmmkjNkr=q{FYoWO0jDk3`N~aT z+qn@OG=vl(Iobg1Xyl+-yCUkf{-m(IRbn@OmoBXPdUfSX{j0wgxGkE@(>7~=WM5*= FHvrJ4$kPA- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_008_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_008_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..49f00d59c4b6b179fe7fa6a06ff372c416b694a1 GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNWsL=bd$1A{%%W!>wQY=WNQ495B=j8Uhd$oFso&X z+F!o(vecsD%=|pY6k=2_N=$8Bl9=t1t#53ZSiq22@-49pZq@d8Y-bCLRy@;T|9!ad bp^f12&Bx@@qW`p=T(+)h;!88;#GG#cH-|x) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_008_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_008_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a1e1d9014355b1515b5666ea38db7b1168a1142 GIT binary patch literal 164 zcmZQ%U}Cgdlvrw-EwK!4)%JI6XA6r~Jkw$S eeYo(Ujo|Uk$K=wY|FoT4wytU7OEc!goNoX+6G5E- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_008_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_008_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..590b8b3e3ac0bb5b0d4dc053ee76d43ae7319768 GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10C#L#q;vQPeQONHxwO6z25{E`p-;}>4; z;I1&MWs2HgzVx!xqT+Gv>scZva2uL8brz literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_008_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_008_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..b3fd37a213ef6b43384d5c320186f93035385bd5 GIT binary patch literal 170 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NbV&~%fsPyTL8h3kDv>tt&Dk`Mjk z7hdk*t}v@*irQbk^s>~V;>`R!#uQ>yFG@^pT#}gWlC5uSnOMM(Sn@5g3~tr-cWh@1 ki&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ER(D07FPYs{jB1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_009_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_009_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..9ab25e79c51700688a943152865d9a647ca788fb GIT binary patch literal 387 zcmZOtT9jIppI=hkcta~fm4UHPNa3!#_Sg3{*UxP@muomfSJArt_vMGP0p^hyxb83S@3R4?E!X+VO<>!(v4;_4C?O{-N=$8B zl9=t1t#53ZSiq22@-49pZpHR@Y-bCLRy@;T|9!adp^f12&Bx@@qW`p=T(+)h;!87T zB-apfd%LxH`BMMtuLW+4CiAq-+8^1M HnDY$)!y~T@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_009_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_009_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4207bafa4dd60c92fc1495c0a77105934d03925 GIT binary patch literal 390 zcmZN$U}CgdlvRAu$JT_}A{Q>Ve(r4i|j)<%hEY=8+hrw-EwK!4#rAh>XA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7 zOEYF9*AQ}i3dk{poQ!acfdPhN)~<+ptv@MjZ$jsGKrAE%e478Pga=P?F@RLjqo-C6Lk^Ot*Magnm(g8q4*_RYLABWU&J&d+;~ z2~B^tC^5AmF$Zq=*Y2+GiD^$5ORD9$T5VRjBt#B0fuANu84ZAKPhZ)mDr8nr3>r6US0W8|LU&=Zi^=K Nw9VQd*_W8}4FJ~kuNeRU literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_009_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_009_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..69b08756e1e6d75f116331f222c6bebf6321219c GIT binary patch literal 396 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OmfyY|=jHP_E=IG1ZULs`sT(U*^N zn&$+oS<=0Y|09GSrF$RNF%g>kHS@5v)mwRM!k+R}~{&}DF&Ac-sX!YjK z&wGyvO@Fp1F|{Ev2X6S+?yu^B-Rce(eD~#tvjOIj7`W~)@9(n#r!Cj{%1vO~xv_^4 zWGEpgEJ{pmT#}gWlC5uSnOMM(Sn@5g3~t5tcWh@1i&i|-VgG%&@S%<1@y*BN(xU&g zom{rAY2r&WW+c}Ta(oKNF@&6qaEyTghGW*QhaPWE Qizf55&DtN?mzeVn0N%*29smFU literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_010_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_010_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..3afeed2ec6f3e5c820209ebde181df05d080cb4d GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNa0H1ZVy@h=vDs}yW_=J7d>~k_;~p3icY}Z^L)7X zBPd(yU3yt+QE_H|9%BkfwUkED)3>7aS!s&Z{}xU-CRZOO^?ttern$eirQF>2*kZ<_ z#MH(miPezP`fr zzP@f^&bJ;$kS&DVgs{cf62q45@7T^37Oi-u!~Xkl;X@n23H_*dg$SPe@4n~%w*MgM6#xoln2 P#Fu8wi8*iw5%LWHDCUXQ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_010_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_010_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e08e1f0ddc0616ecafd7ad7cff0a76ad7f67918 GIT binary patch literal 309 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10iO5tt~S^nr%{}sFA#aI_TcenU>`0a{L zz~1wGxc4I{Tk2hUS!z*nW_})H3P`n-M$yx^qV-v6iq-!XPB%ivaRIbmM-SL0z=4NF70_S?h~`KuoPQoRd8 zRxiH3!t}nrZeq^29!8KYgxrL%#n=+VmhJD@&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9 SY+cjDmuAd~IdBIN@(lnpuZiCP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_010_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_010_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..91edad13314852b923ebec8ebb31ff0a5346f11c GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OlQ;cgFE{^(Wz6}#ibSQkBaxA=JY z?TSvo-t&C8_ai7<>RozSYEf}!ejZ~ANVSwk(bKo0^;v0()&CYwI3`ygCiQ;4^rpGL zwx!(M_t;{_qQun3C5hQC+4=@Xi3JRaCEpUu;8txpVP5!G<6&40OGCN#+r$$2s~-PS zy$eECFTTFQ^uE4sV$Qc7MvyIp+=Q^j*b>8*?eEym78b2|ro;aGaN$E6!Q-2c$)!dA VX*;=WUDL#uX3U8>a0e0c4FEaciR1tP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_011_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_011_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..61288ecbf23245e1bf68e09a2643d948e866d249 GIT binary patch literal 445 zcmZOtT9jIppI=hkcta~fm4UHPNa5pp%|8Zaa%peWmMzx#Y*i*^ydtaRw5m+y9w{Zm zMv;W{vecsD%=|pY9!8MzMHRbvogbWZx~m|n_{Ao&A)?GDTubgwMwsyJSLJ&ugcl{I zHZDobcFEQ^FiI?7NG$o5SO&Li%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ zbrW;oO22l0RS)b|cevoYFF%|OFptE*b$@w(pA9%|xz1N^0^81w5Z4fLJi;}`mKd(t z{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#*E||LcUG`1q~r5BOGI3fZ>?6 pE23WOPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9fV literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_011_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_011_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..fad5cf1a1b080eb9695bd219753921cdf43680e1 GIT binary patch literal 448 zcmZN$U}CgdlvZh)E!O#LRVHS3k%aWJ)S}|d{5-}UMv(GF6}xzyADnc$t01cQ#U`>LqRb~;OYTlanDFga<$EfG z7bT`PE=kOG$<{Y8N-SVVEcupL2DfX=3G>3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuY zruX%A6La87zjl9B5A0TVxZt}lKb#FPkHo-re|dkO4LEJN&R1>%+s=&;*AQ|%!ZpU0 z7_Qm=j_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jN}?ZzD@xJ4Iw8Z9AjXB s;h426qF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0Cl&$5C8xG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_011_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_011_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..9f1ccc8a458b3681be9dc6243b466d80f4fdcf7d GIT binary patch literal 451 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i<9f|M24-?;Z`778*7{fTU;JYtBoDDFK#K3ibd4Hb`IBmJkS8f8^&W#Y)5OO@i zHO7`0uG#*M?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pv~V;>`R!#vVqH@%C+AnmdIcA_?PNk z5VCsl^%bV~^>q_-;7Y%Ce^n3cR(H7IyDvYS4KRrV>XTP1emcj>~quUA*T)W7;`f!m_VJZ-b~NA@M=d;d&dkqaOaZB0^m@yjy9Z5QO8%d^KVQa~Lnt>cw)d1A^UUuH^>{PI6Bi|> zHZDobcFEQ^Fi9+6NG$o5SO&KWu$^j~0@j~l>b&+peM0yD-Dh-*RToUTGk@`ob@I~N zl%LH?%=s1!vgBcWXqZng=VRu$-=}O$YK*z=&6gEbTOXgeRn+-Gzl-Uj#MFkw9JsNB z+|G)g9&yOrg(?~B%Eh^5;&tpshsb2JY%bdFhOpSnL^#+gGXH!imKlpOQS?+f*K zGsP1ZC8jnmNz8W1);BOoEMQ11`IcA)w+gVGYMTPqpJD2}_CI|>_y65zbc7vBc zhQu7Wv4q^z!w52zkUtSFH@3uZ`Sy2gXA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7 MOEYF9*AQ|%02Sb*?EnA( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_012_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_012_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e47d67b4dff07d95b4b698c00770539387a5907 GIT binary patch literal 396 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om~|D4{yC_eptvsu@$?AKTv;hMPo z`AdE2_*=@)k1R>kNH0q*D$dN$V@v_5Ui5m)oVy22UrPR;x<6mWnL{WyF1GiS9P`ZY z3-x$2#S<4LrZz4~%y!AvH!w*oU`Q?|J`SFi&Ym) zxif$9jdk+U+mxTpO3e8d46@{5d}x?YFXvgxu7_2r`tAKM^iBw#0Dx_IGS&3yW4f(_#O8xbUHk;PK7J+GiD^$5OO>K9kitK literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_013_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_013_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..ad32e239688531e7e0f454feeb0e35c20fe01f01 GIT binary patch literal 442 zcmZOtT9jIppI=hkcta~fm4UHPNa3sdxg7r)b9c5)3}3II(3Pw(qps+S-nRp9n-))= zQEVcdUY1%^oSC1;IExXa+-#C}Z((iXhe=6uHcjxT6?0KBOxa~pQ;`?`>4SO7<@bvc zQ=66~X1iqT8yF-OFeH|IODu!iwRT0+YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m z{>Z*1iP?@Oi3QB4x&Yg$wkcr!8K%x_|I;UQ|KEK^w^((-lsoem-&iLvy-oSqti+se z!62tS$?)G0-XO~v|66&%gawDKO8-n}zW*V9qxxU%D3cz+&x;aM8xnKijv?fe9wMuIP*2w*zmR z7Ehj0Y$BXqmReMtnV-ivixH&UY?60xVQu1vNl9}yP4K7{b5Su&*=15wkr)2ygL%s3 z_lpu!o0cSIyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9cE) zr)}2$$i5|s*^VZO1rp{~s(;(`d{rRlODm(ixN{C5_8~=A>@-D zuzv{!&!WWCMu>lnEiwGN{TdKe;SAQ*V zTQr%cZPxzCz9os-jwXo(%&58m+o`rGVEq}U&TIeECv^YceMYxfb-|Q7^B3P(CojEC z`Pr<*oNvJ(r#;E=-w@s)%NhS$dBKDQhpkHgOlQ9TA%3I!U+pN99>LFx5>p!zbKs64 z6QfoL-h%RGgWg$2f}-q}*(hcW+^B;)h8|b2d%zs1uO&Bxbv0>l+v(7BD21d`m2Y+qHH@)NB1oVSB5@Zu~A?Soihn%9r|A ze=TrZG?}Mu*8a%8C5hRNCW!^isJZ~#skSL#{TZgtYyZgX!IV4m7vESX zFTG9q*{sBzZ^0m^J<0Ij5Z)lm8UI^(!Gr~etxEq)XTJX-exv$d?I@ET!Ox2lQyUU< z;Eo~WlOC{t2?fuh#MDNJe~m3M{JZ@f+u6dR70-0oe;+P N_|l9S$u)!=4*;Oe$S42+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_014_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_014_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..fe4c68f77288a4d86bf1df0b52e8cdf4455e0bf1 GIT binary patch literal 445 zcmZOtT9jIppI=hkcta~fm4UHPNWrt{>6Wu|{EjQuzg&8XVb{@br=_QK%@IxD-lS_;K({^&%x~7RQ&6pE&;7YIj`aeglhCk0)ZEpKiX}}cLDk^?Zh`n}Y zR{OfY+&mwc(o#Tn?lZc@stcyvnZNkPI(g}B%Fkvc=6r*AnUGVEY%v1c0`~+V t_aOz%mJ{ZMe>EP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>n7%W0{}lu$LIh6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_014_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_014_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..485c3e9f844600fb211e94669588203f7558f18a GIT binary patch literal 448 zcmZN$U}CgdlvOerim}jm=km0O0WF-KS!;GKhIfhZu?Yez!cUhDt=Ii zy>?|*`?|l}JRg|SQb3Mb^m@yjy9Z5QO8%d^KVQa~Lnt>cw)d1A^UUuH^>{PI6A_Lv zFu`!lPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&e1mwIkW-LsF#_8H w_XHvLAqCBr6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKCgywt07gg0>;M1& literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_014_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_014_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3146aa153160c39a2bf4fe07bdcb27df12078643 GIT binary patch literal 451 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10Cv*_uTvvd58E7reUdWvD!(Ql`vr*zE` zP2k^|`}xBAP1n=QQj3Z+^Ya*c7>QB7C^5BhNn*B3w!X1tVgW;9$+yHZxLw=dv7Id} zTJcPW{rBO*hc<%8Hy@Kri~iGga@o43i7(BV6La87ul)KyN3DiG&slA5`&4Pb6xJ## zeo%21o-W+mo)gLs*cQ;=*i z0^0)j1R?h!1hUktyC7us;_E9+@9XO(=6nMHRu0GY literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_014_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_014_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..912c3ce26139fcbd78fcb786627fbeef2b3f4985 GIT binary patch literal 454 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NbE=;@ZTbNr4g*1ueOiecB$Z>OcF zbj=Y>;NO}1`NI26*VD^Vi;6Sz^B8*=iBY~NF|~0?Vzx`RzOiLu0YhTRx5P5IUEANW zoh>X{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKpv^{Q5sft%g6(S#56nRB6Bz z)+#D~P>8*DWmfyTzuY_@n9@=}j#>12%bdFhOpSnL^#+gGXH!imKlpOQS?+f*K zGsP1TjxjL7aLi7%O#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXpCc$tt> zkZdsm+XD9lA@?B#&6X49g?}|3hSjh%lxx3DERnzJ@h{c8AY}F8>nlv}>+2@wd;9c6j)CCclCk7>_Y*E2H; zp4oS&m!%dJXXfWIrhrs0dc9@N-GintCI3&|pD*LgA(R^z+j~lmdFJEU^jBc^&f+=_AFTSx(UV5AI zvssBb-+CB9wh(d?!WLso3|qFpV>??|wBnf#`|rbr4{ZdGZ$2iM7X7E~vmtb@3-!Uk`s3xTd`zAVdGI-nNZfz^);r3NVCg42;08 zftyb#w2;DP%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~b&*{Cwfn1jV7I!% z1>b%7;cOm>f$RSA{yrOU+H#$*+yu6r8^IApND-2w4Zw~@j;OUOqF(Dy3fo&HcH?*H c!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0LQ5a@Bjb+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_015_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_015_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9322fe3f3b9f9a10081b93b64399fd221dca22d1 GIT binary patch literal 589 zcmZN$U}Cgdlv|Uxr4|)u=I1e{fK)Gfy=BhbgQhPf|4-eYFXPN1lp7b@drFRZ=J$nqyqV&O zixN{Cmn3GpWa}H4Bo;6vmV8SrgIl#zZBxMdGfbV={-;mq{=fT-Zn5fuDR<^CzOhbT zdYkgIS&2E{dKf{r5ONd37Gp~cTeiPrJ6l+^;+YQn@56-;Z3K^RJ|>qI{ip5ZvUN=p zUz#x|=D;1aH>!kt>yeAs4$80DbnE3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuYruX%AkzDT3j zx4Odx-+lSvY#xb$>;CfoJ{xe_a-FZ-1h$Y?asI@DiUh7W^+gl}e f<9F%8y02GPzSO_^Yk}LM$vkbd_DA+5=6nMH(Afy| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_015_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_015_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f045df6a694dcda39dfee51b708d841c3cb979ed GIT binary patch literal 592 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1@$6`kowfz-%QEtfoGu+@dGaO7>xGYL z&sop$OBxbv0>l>IP7BD21d`m2YTeVYdQ^5K&Or6*Mr%&kqzx#}CvFd^;cjhm? zu})rkoAR?+i8nGXB!!-WrR1dne%CYKidr|smj zbxjjrnlUHlz#X(Vs)T#%k&D+3%CFgU>-=@`Ct6<*e-*fZ8C zt9oF!y2AzEefi;R9*KeL{__4l8*tikov+*kww)Wn5k*K5lA{g4jz*5CwJV}t>rV>X iTP1emcj>~quUA*T)W7;`f!m_VJZ-b~NA@M=d;}Zjlwgv6WGV+a_E*)ig@+Hda zg^y{^S=Tc&3ZB__rF{Xf2FM7RY&fSBiFD3s^-JdVx%psH;7u$PEj(O(y zg?hZ1;)#nAQyZ5gX1iqT8<->(FeH|IODuz1wNq_V!1^;xo!9=SPw4)?`;2a}>VheE z<}bdnPF{MO^0QfqIp2C1LADTb6T%i_OAK4KzhgUFShV7q4*T!Jg%526k8eIEmlpk} z?c}m`O%q?5F(>B09ke&9gnR3ei`Ndyui13#{B`jsT3-);6}YCoARt5kuHLqdTfnX% zqzW*EYYdFQu7R6RD728mX3Gil!oM01!)jO>%C+AnmdIcA_?PNk5VCsl^%bV~^>vY4 z{k8k6dSJJ@!v)`c`QdCHiGl0>^8P*>aN2U6uiON-og2XsMMx2nqYc20MvkbpE23WO lPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9fD;^4V3F0q-2CNN)5}teiZk=`7*mK*y(lrYaYOHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(W0N!6m(*OVf literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_017_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_017_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..1e14d9c75f6960c9986d4b9813e1c5c35fcf379a GIT binary patch literal 217 zcmZRuT9jIppI=hkcta~fm4UHPNI{)VSTk~Q*r~Zj`K;#Nn=g1Cn|AZ?TfxnJd)RU` z>-d<{%TkMqGxPHpXEPF`d{JU*(~`t&mu!6lgTw-c#FB4`WpKOJu84ZAKPhZ)mDr8n zr3>r6US0W8|LU&=Zi^=Kw9VQd*|#Jy+sVWrv49CxTjQ={8e%nCT&sFdu0C{czVN^I Wsw|C5zqA*{-xr-<{v;_e=Nka4?_59t literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_017_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_017_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..bfd48d4cde0a0aedd544d3c633c483c8da445ebf GIT binary patch literal 220 zcmZQ%U}CgdlvaPWEizf55&DtN?wGVl`S^t9nnaK6G!s Z@W1z}ER9RQv=_zS7oA`JBq=fH8vw6cTtol> literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_017_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_017_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b234aeced92f77683d623ee233f11c5d840b8891 GIT binary patch literal 223 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}solRIXa&g$HxkmY{=H8nxcpjT}^YB~2 z&3${=ay0AsnA6Kri;6Sz^B89{5~F-kVrtWp#B7&reFKBU0*1trZ;54ayVkCVdaXYx zY;Tp=jo+mU>%LxH`BMMtuLW+4CiAq-+8^1sBr)5`#2~SN2~}I;u45WvHCkM&dQYxC cbZ@@!zxS#vjZ43@7scNfonQVWDKY080Jk1oO#lD@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_017_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_017_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e6ea199477b1b3e2934cdf37c359e3725399266 GIT binary patch literal 226 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I?YO;|H>aoDN3M)|Df-kUFY9-DUa z@LR#neS6q)H0$`7)5}teiZk=`7-usQqkK_fYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+p ztv@MjZIB7%cRq7@{#ZP)$=%SLr&y9y{=cVl?^=UJRtIzQmtS3! znA*4`G210u-^3uXfFZHuTVfg9s>WT%G{kDOxK{O^Tz%-?eBpoZRaqLBerYd?zb`t! z{7F(`&bJ;$kS&DVgs{cH2y6@73PSEfa?O?#=7oPX9){JhG?Z(hUktyC7us P;_E9+@9XO(=6nMHrCx`$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_018_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_018_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6d29b56b048f0c365a86bbd827e0b6856a02ab01 GIT binary patch literal 306 zcmZN$U}Cgdlv)kgVdZA0(}#7G9&O7=U3lrM;-_cg{eYQX zy{Xe^bbi^q^s>~V;>`R!#uSk11jUSZK682gSUj-F-O!w;Sdvu!zo&EWT7yMa2Xph6 zUtN@#+PEY!+a+7y#2~SNA+h9JVj0}3#$CrW#A>v-R`s4-edykN;eYQ{SsIsqX)lVu zFFL>cNm63Yw;o22Eri^Ju*JX#Yzy29LheIy&6X49g?}|3hSjh%lxx3DERnzJ@h{c8 SAY}F8>nlv}>+2@wd;EP4)vz>_Yrjn_k-zHk VFV(vsWcA|fD@^a}>n7%W0|2z^hrs{< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_018_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_018_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..eba004865a788f62458c40f1f6aac968f932cca5 GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MP4%|>D6W~bAKb(9`$%Sc^#>8s+W zXX5>UnO?oA(`a;l*}U|!)S}|d{5-}Kkm>}*jCVeBdHz^Du*u!foTpflRQ|uGbMIP% zMOFuM^Os*;l$hGMBr)41Ti?VWv4A15{M_2TO*Oz-RKCgywt0J|H9#sB~S literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_019_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_019_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0cc28af8b1c5774d74267328d274a2d826dcd6d6 GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNMVBBWcCT)>&|}P`Sr{xo~zLXt7m>F$V;DLGgo9= z^xoUH>1C-!#hLkej42@135pr-eCG1}v3OvUyP-Kxu_USde^2M$wFZl<4(8@Bzq%+f zwQ)&ewoA6Yi9uokLt@Fd#4@;5jk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQUvz%? zlcdC)Z(A5awh(d?U`Tn~1_1Zv$(;ZI literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_019_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_019_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..85cdd08679888c9f57194c3f152b97d03acfa577 GIT binary patch literal 447 zcmZN$U}CgdlvG=JNcpcwm#ep*c^nB&qy=Pv_pX28*l?=H@TI zx+pQVaYOHyo(7pM>|K6*zG%o$pUKD>{ zbbk4hq{N(WTNpvM5ONb>2wMz{z_!4xAmlzI*K9dqUieqzVOR}IL%H_b#1i?d9{*Ck z3qn>ezP`frzP@f^4&2nQ-CxxMyVV^o`0mROXY)u5T=$pv_t}8cmg{`wCa~??2o4%T wijW+Q88mBGM7`FZ6t=fY?8fiXg>_%Au6(I~_16NoMU#2jX6=vcOU(HO0RG*{p#T5? literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_019_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_019_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..1b847db5a329be7c0b597a846ef0bdf8a1a2b1e0 GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1g5G5I3E%6^e&6}^%qgC$(FLn#ekjOG zpJ6jsWLxy!+qUUtsYS(^`FV^fAk_(q8Si}N^8B%QV3WI{IZv@9sr-LW=iapji>waj z<}bgxC^5BhNn*B3w!Vo$VgW;9$+yHZxK)k2j%kS1XmPFTJ-PbOz4^lb-m9`SF8$J8 z6n|fIe)*H6#GG$i7(uoWauZ+(TMUfAw!p0*wM)Vu`#_!UFbziTpe5rr+*8;ailX==^?T_qB%=rcY4ywtj literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_019_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_019_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3e39a70e135a0e5c436b5b55a9cc9c95b7ab5ec GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2d-emR(-|NnP-}&{-DW0p*1*>O% zD9B5nVKY}`TlC)Bw&`W5Ma7x>}kL*j#`33+N Co5`;L literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_020_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_020_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5edf4df716efd5304f4e4fe6e30d8e2e5819d64a GIT binary patch literal 217 zcmZRuT9jIppI=hkcta~fm4UHPNFiwR$&b&((j^u5w@wv&lLVgVDXw#Hq@G{kDOxK{O^Tz%-?eBpoZ WRaqLBerYd?zb`t!{7F(`&Nl#_)nHNp literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_020_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_020_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae8b932b3684ffa15980d502bf47f05d4d636790 GIT binary patch literal 220 zcmZQ%U}Cgdlv2v^S*FDN2N`< z#Xff;)mzfbQj3Z+^Ya*IGZLeGQDSP-lEiG6Y<&Zh!~%xIl5dG+aJzP@Z3v-R`s4-edykN Z;eYQ{SsIsqX)lVuFFL>cNm63YHvpnRU{(MC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_020_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_020_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..99925276022d8bd34efdd1b8b2d09755123e3184 GIT binary patch literal 223 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}MX!FUB&&1Lt75BF&EPJ{8%&8pnzHmQB zrA@iTK6fJ3Thhx?i;6Sz^B89{5~F-kVrtWp#B7&reFKxk0*1trZ;54ayLPH=3Rr)J zsq@i9uok6RNhxUB@)UYP7gk^`2aP c=-zzcfA3XU8kc@)FN(h}I=}o$Qew_G0ICFFUjP6A literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_020_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_020_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c6b82789bac8f8bc64e9bf631f216872695ed14 GIT binary patch literal 226 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H$Y^U06T#L^`d_qQl4d%63}sT}jZ za6d<-O}WKBcOunW(#ukdiZk=`7-usQqkK_fYSWU$Y?o|(1Czu8hQyL@iDhuRcB*X( zSbv78^V7~=WZ#m+Y)6yC0%lZQJJmJ?tUtrldF_Atgzo>l&*&Db zE|_v>{^A?!%MukQ7N6*F4gZxLX!G@}L2=7J%XjBf zGk0y2x4o2{UY1%^oSC1;c#)A9<%<$io0lYJyJYJd7$g=jB$j+jEJN6}BI>pNq_DkJ zVmE%5F0A`{b>&O_tG^bwEt<^JHfw)m-;%^^N0Yj4})iwpJKf}~{?SJ}&?*F^b z=oYIkm~v5)~&FpXhK6|CJqR^YyDiamzo; zcjr?xcWsony_B3@mReMtnV-jak&zhXixN|tmn3GpWa}FkBo;6vmV8SrL)f(<>b3r) zu)S4cH-48ctowR(GVl`S^t9nnaK6G!s@W1z} VER9RQv=_zS7oA`JBq=fH8vq-keJTI| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_021_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_021_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..67089c92b0dcdd479c34f66ee6badd2c6b1b5f3b GIT binary patch literal 280 zcmZN&WMN`pWn^Mtuv(N_l%HQx+z8kWtq4^H#zG;5weHIj6(<&-=x`1Hl^tmF^{YW~ z%RkF^=TkFxZIrjYl$>6cT2!2wpT~HSkr?HR5>uO(Bxbv0>l+v(7BD21d`m1t*tH_+ zwf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`Md1#B4{C!~$kiT|3n_1*|{A)OqcH z`h@QPyU*wrt1g&wXa3?F>*S@kDLw2@tIhuO&Bxbv0>l>IP7BD21d`m2Y+qF||Q^5K&Or6*Mr%&kqzx#}CvFd^;cjhm?u})rk zoAR?+OA@o4ObikWm{7Gf?mDI+R-?tWs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;i z^?)5m$S;c$QyZa{M_2TO* MOz-RKCgywt0GGO)X8-^I literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_022_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_022_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..adf8f352fd0a9b573533237cfc08e41dcaca8a2c GIT binary patch literal 362 zcmZN$U}Cgdlv9Q=66~X1iqT8<->(FeH|IODu!iwNq_V!1^;xo!9=SPw4)?`;2a}>VheE<}bdn zPF{MO^0Qe>60@C53=#{NP_;GgI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN z5_7)wfE`E3FN+dW8=;Of0y_@wGD6-$^2C-C=7oPX9){JhG?Z(hUktyC7us P;_E9+@9XO(=6nMHonD-4 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_022_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_022_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..950da29bc7a6914b0868bfd14018cd464e4c1629 GIT binary patch literal 365 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}M>6)He&b$LLx5fMq+MG)NDJvKr*>Ck# z>C7X&xh%dHy3)&1i;6Sz^B89{f|LhsKKb#PSh}R*{uYI0FL$3gm1Eu)?&qkqDYw|? zPNaGZV2ct{o0cSIyJYJdm?Rc3B$j+jEQ8y%Q*Beg`ZG+O*Z!wZ=>EU^jBc^&f+=_A zFTSx(UV5AIvsp_Lvz<%~5(}76wKeWKrXg0N#kH#Unlv}>+2@wd;O=SD3;%ns%F?*>OM6lL zebM>lPm&UIzV(0|N60UW5>p$Yjxz!~4(>8S-a_)kmJ{ZMe>EP4)vz>_Yrjn_k-zHk VFV(vsWcA|fD@^a}>n7%W0|2pSoOu8M literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_023_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_023_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..9f4a1780c1810423570facfb85a5e349c04e89fa GIT binary patch literal 500 zcmZOtT9jIppI=hkcta~fm4UHPNTI2TBl=~b*{1`^5iO;*To!Se6-{Ta$qMyOn7&w1 zyV)kaEVZaOGe3`UHX}%R(B_jLpNXYQD(-JlSoU)FnNvCDec^tNN}F(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+ z&t@%2%yu#{NGxDN)z-M{n1)!57T2oYldBKin=kzDy(&xN(l6~r@%KgNmp@5L%=xwj z>^MSx0c=rXY9rKfMqtOmT}H@TNS@eo!o2XW#>220mWFcew}~b4S3UlvdKZMOUVMFp z>3x0O#2mP(U%S7m2X?DFT=3nOAI|2H7`W~)@9(n#r!Cj{%1vO~xiJM4qJ$J7Iobg1 tXyg!GyCUkf{-m(IRbn@OmoBXPdUfSX{j0wgxGkE@(>7~=WM5*=Hvlz++2#NM literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_023_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_023_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ce9046af4f8b02479128660434b3a7e703f5338f GIT binary patch literal 503 zcmZN$U}CgdlvwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU z>21o-W-Up~b}}(YEMP*_*0}4KhFFaj*Q(x=s}J3qFZ}PlDof+iFYQI~_eJNIKS@f= z`L+e@I6{5_Y*AurBh+z5V8_8-M#x)8p4f82yzsBa!>}5bhH~w!(F$EN&gcKn; w+5qfmpNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT06kpU>Hq)$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_023_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_023_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..c644e68e91666c2e85c58598e056b69a55606c23 GIT binary patch literal 506 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%sfi={Wue)p1IZCBrM6raahVlOXRpZ$ z^-h?+SW&y#CcP}Rs5mn}k8w65NO{oalOLanrAsRAZ&6tGa`%~2Ip%%gevV3;a*KWL zM5?zeN=$89l9=t1t#4qGSiq22@-49pZr4t=O#$oAFm+!0pFW}c|L!xo#i|RY+?l`l z#yWZFZOYGPElJFFGBHRjU_#Z_xa*jPSdA9fs@{{U58azD{O`RgOXJcn?M3nTMdz14 zNlMK5wgv1sLVf{kQDSN%)Nw{&$H84j$XiIB*mA>b3r)u)S4cH-48ctowR(4V$L@JPZHVl literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_023_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_023_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..8f01637a040855501d610a5f2331f74496eaeed2 GIT binary patch literal 509 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MPvi6i=Dq1mSc$q_B3wprw-EwK!4*G{!f0qf5&bzb|QKB4>n?lZc@stcyv znZNkPI(g}B%FkvkNz8UKF-R<6LezIaEjTYCc-jk~j-J37`@4YHZBguug1f$8kUA~?YD^~@>f0n zrFs{HtX_P5h3S2L-NYQYsb9Olst0zfJ6!PHmmkjNkr=q{FYoWO0jDk3`N~aT+qp3X z6rzL_AvxLr>}cc=UArRcwf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`H@`&Nl#A C8`<~( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_024_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_024_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb53fc206266a1e197b6756864eb1e6dd9d2064c GIT binary patch literal 387 zcmZOtT9jIppI=hkcta~fm4UHPNa50d=iBRMR@QT7-!zT>bM>QW@~@xLLYxz&oo>_y zvsVhUPrQlBDwgJ)L{k8Z5Fpn47=+>Y~Kd z#wCf_F4_7f28jg>i6!3>%ivZ4*0}4KhFFaj*Q(x=s}J3qFZ}PlDof+iFYQI~_eJNI zKS@f=`4$YaWYRMMk2bE3OHX>|uxy>U-6;IeoLPx?g_qAZvlO_rGOKS L_|l9yG3OfqRNJji literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_024_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_024_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6c67f1c9babffcb95b011ddbae5cc932e8814e30 GIT binary patch literal 390 zcmZN$U}Cgdlv!gq^`mI=ub|R}`j~r4|)u=I1e{fK(?aX1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7o4@?( zqQun3C5hQC+4?31i3JRaCEpUu;8p?Fxa*jPSdA9fs@{{U58azD{O`RgOXJcn?M3nT zMdz14NlMK577Vgv(lY^%Hm;6KPkQIDY@N8>DE!ZyS&4Urm(Mn{6u7i9t8YR|*KO30rGmm6DxT@E*&kaLiHxcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(M Ot!tY2(u_GV=NkZ8@2ye* literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_024_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_024_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e6c8766bd8f3ceb73b773dc3cd96fe40032e61de GIT binary patch literal 393 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i(tqdM>tqiFK4pVC5{ z6Q!MQ)CRLx6sDJ@78Pga=P{;$R3|8Ayz`mM^T*zIaEjTYCc-jk~j-J37`@4YHZGXak_u8vDjdgrigow(g7{Lh?OiFbvU&o;9ZxU@2>Z&6}u zLt+lxSVC^(g7X5Tc8{&V%CX!5V0 z(n6dQrJZin2D4WbrkAA_6=&w>F{Xf2Cn#pT^O?)@$Krua?uO<(#ge4*|2>_1*BUIc zI+&Zk{OY2_)W#)=*)G}oCI*QG42dP*63gIL0oJ(dn1)!57T2oYldBKin=kzDy(&xN z(l6~r@%KgNmp@5L%=s1!vSiXT0gpDWj!RE^=df&@xZNoH&zxC_cZHYFHnSACv@)x2 zQDSOCVh-F`LT>6|1Q|-mp9q&5TY_B~V;>`R!#$b?Y`T4Rt3m$gCYA= zrZyzzzzzS}{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0^81wDIhZw6f@rW%;ouG z@xUf`Lvx;DNmBX$p3c2%4Hj7)%*|hZbx~q!^==}00Nr^e%zz(1EOu(a!tK-s>-Z?B=CvG%LxH`BMMtuLW+4CiAq-+8^1MnDY$)*b*9v literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_025_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_025_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e331676f5a5b8b71f5fcf7818d589ff75d4e814 GIT binary patch literal 615 zcmZN$U}Cgdlv%+s=(CATtvbGv4{k z<@sarz$SM?bDm;JQu+U$&b@057Fiw4&0l_XQDSQ2lEiG6Y<&}h!~%xIl5dG+a2pzT z9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8??| zwBnf#`|rbr4{ZdGZ$2iM7X7E~rFL)S}|d{5-~BkZSq)vO5bNcK&jYEG|-3T+l!7)4rK^W(2L?-1&L$ zF`?k|JwakJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W$M`GZPdu z-ucYs`D5|GCU-+~o?=N-`Tw5Iy=x5?Ssl#HUw(B_Vrt`(#B7&reG`Mk0*1trZ;54a z8ya^V(-5oC;#$>va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1&Ip4qzpY%+?qm8TM(v#jf zEL$gTHwynVXIA1};pMZqI{ip5ZvUN=pUz#x^1vjDC0S7msI6*kt05iDPu84ZA lKPhZ)mDr8nr3>r6US0W8|LU&=Zi^=Kw9VQd*_W8}4FLC08kPV6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_025_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_025_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..87c5a6c76bdaded7aa02c21dee3eaf92388f52d1 GIT binary patch literal 621 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OmN(Tmnlx5X+)@3xhEyZv#`Z`mIU zIK)yXZhd)(Ph!s8ko2c!p&_D0fzL|Gs1g+lO z`FZa#q3O>SC8jnc=D-dA+Wl2Muv^{Xg73cka5j&`z;%Clf1eFFZMn`@ZUWoRjVT~A z6BIMv`OM|{WAVTycSCcYVo6f@|DMjhYYi4z9n8&Nesxh|YU7f`Y?o|(6NAJ8hQyL@ ziDhsb8h0Jj5UbJRTGe}U^`U$7h5x-*WocacrM)QrzUch&CrODp-@p!^^i05`jjQ9* zlioQjTPJQe3jZ@_R^naZ<+IH!1um`3>O*rlAvbMd1i740*a3!cxv?eK<#1;cat@LY zx4&aMTUfN>nGXB!!-WrR1dne%CYKidr|smjbxjjrnlU2aPWEizf55&DtN?mzeVn00WpBn*aa+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_026_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_026_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..aed963a46a03c0aabd2a8263c08eca5591889253 GIT binary patch literal 528 zcmZOtT9jIppI=hkcta~fm4UHPNMU6`)#fv5`cbWn7hPpV?S6|K)oQ>^~CaKbUU`Y@^Y^QAY<{k1LS=Dx=kGZrPL zHZDobcFEQ^FiI?7NG$o5SO&Lh%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ zbrW;Gfh|c;%y{QBm*qI{ip5ZvUN=pUz#x^xtdUP0RRJe?%V(X literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_026_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_026_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6087b0dc5c349932b9bdf036a2c7c09ba48dc904 GIT binary patch literal 531 zcmZN$U}Cgdlv3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuY zruX%A6LY?SElE(!c;_>h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fB98}B_;+KmNf1< zrXg0N#kH#U$-=f6ShQu7W+X=a83nR!-LV<~Jxv?eK<#6)}IR_~i sx4&aMTUfN>nGXB!!-WrR1dne%CYKidr|smjbxjjrnlU4}nox8B01LtH-~a#s literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_026_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_026_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7689b74ef2ea480643133489ea3dfe2d415f290d GIT binary patch literal 534 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1WkJ>EGiv%#t&A64Wp91@^RX%BUB1E@ zxg6(!oCE z#}+ddC8jnmNz8W1);BOpEMQ11`IcA)w`$7?^TNLx55sC$8p^fbCYH!w_4t?ST@bQ* z@%0s^_w{uXbH0HsNl?sq=QEe*kHrI<+zriniX}buc%7`Bj7^CI%Rm zH10a4Ay%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>lPm&UIz6FDP0@$Qy0v>H#9haW; z&SBX)al29YpEzR9&_&L literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_026_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_026_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaa689ff92f641fbb2390c1f0036930c1c300c2f GIT binary patch literal 537 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2ALDl9nYWh*Fj2B&HZ+-gnu_@+V zzQP%~9Ori-tP}7BdzlrZz4~%y!AvH!w;pU`Q%C+AnmdIcA_?PNk z5VCsl^%bV~^>q_-zJV=CP|SGeGneO&#RHq%4b6FqB}wJ~dph^7HCSYIFgJhsRfHub z1{jt!?mDI+R-?tWs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;i1%rG7*raCy9&KD5 zm!9;_Vc9xyyHWU`IkOV)3NN2+W+`xKWmey!#MFkw9Jt#FxoHa{$WTIoiEz2GCD`R~ y^9eZzDHylEV>??|wBnf#`|rbr4{ZdGZ$2iM7X7E~5!i&p$Pn}JCarVqzz0)ie%V+NTdtz?+ z&v$3nrI)1^6=&w>F{Xf2Cn#pT^O?)@$Krua?uO<(#ge4*|2>_1*BUIcI+&Zk{OY2_ z)W#)=*)G}oCI*QG42dP*63gILHSRj5Ay%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>l zPm&UIz6FCUnekC zn|c^QhAyhu#q0dwq|;pmQN=Gdkqr@LKH*w&cQV3+Z@((vQz49Sxq%Ue%eR~`FZ`?V zFsz29pgf%}$F;2?$f_IGS&3yW4f(_#O8xbUHk;PK7J z+GiD@L6AB%0hUPrQlBDwgJ)L{k8Z5Fpn47=+ z>Y~Kd#wCf_F4_7f28jg>i6!3>%ivZu?mDI+R-?tWs`upTL-*zj|9h{>(zx_Xdr|y- z(fQ?1k`i;i1%oV^^i05`jjQ9*lioQjTPJQe3jZ@_R^naZ<+IH!1um`3>RXhU+K`w7 zH-^xP(_IBo#VEWeiTqWMf2rODA*&Z(UtxM*Ul++WU%S7m2X?DFT=3nOAI|2H7`W~) z@9(n#r!Cj{%1vO~xp52FHH1PPFobK2Ey1pV`<77PAcgn#cWh@1i&i|-VgG%&@S%<1 z@y*BN(xU&gom{rAY2r&WW+Yb=3LS9d6Y?6u(FT~2zjj5`YyC-Kd#l85{4QNs_x0+^ Wm-<(KEpS^jnWt^m{>Z+>oNoXHy)SbB literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_027_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_027_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..ed3ccf93d35c9d56c16a9426c190ab8fd5c25efc GIT binary patch literal 676 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1XRvx)40pnd%X?3qO?+|o%w4_HEEUUV z?)rOTZu!r5XV;~dr4|)u=I1e{fK(?aX1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7 zo4@?(qQun3C5hQC+4?31i3JRaCEpUu;8r#6I;J63qs6tV_vGqB_vQ=#d#}pUxb#bV zQT%<;`Q=ZN5_7%-Z?B=CvGr^tMM?bhNYog`)y*0{8f*Cson)4s~2BiVR~O*7s)kWyT7UjcB?yF@ZFam&gPLA zxb83S@3R4?E!X+VO<>!(aSPZrghCxKglmi~!LEV(mQdgzh4=P%Y-bCLRy@;T|9!ad zp^f12&Bx@@qW`p=T(+)h;!87TBv%s(9dP6m@*2X?2AGk*c16@{{YhbatHf^nE?rpn Z_3Fx(`d5D~a9cE)r)}2$$iBp!ZvY)_FMI$1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_027_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_027_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..8df3bea6ba9061eb2c6fd5c4bda0c10913f3d5cd GIT binary patch literal 679 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2CuzFk!cfyOydrzHBd~x>7UA@yR z70YMt`g>w-`OkM}*QJ-G78Pga=P{;$R3|8Ayz`mM^T**v0Go;H1-C1yRK>HjxbxWj^6ra(6Pqgm1qp-%}xsaJhjI zhRe5{FfaV8@i450rJ-E=ZDNW1RgZtE-UT767hhjtdS71`$u(cQzp4jzt2An32DBMbvBkNnv}d#BTg9 cU0C<^>dKe;SAQ*VTQr%cZPxzCzQmkw04m5YfdBvi literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_028_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_028_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..387bc705f4e3bacb7782672a00de24a4f2486b9d GIT binary patch literal 612 zcmZOtT9jIppI=hkcta~fm4UHPNTJlnf7U@RmjXSBv!693f5@9JT%=;+=F>XM)qL_Q z77M2IvecsD%=|pY6p-o!#f*18b9w$)Jg~{#(441Ol2rb`r*rRGgGE*cbMu#9U6h#G zxFj*#C0pObAhCcUvE*A~8QiMIUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$ zQew`xEsP*r2)PMii?Jox7Pu9Yo(XugadljJ(mRJ`>%{Fw;eY1LO1vw)e72dTz@?R0 zeMqj^{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H}zqBXqZng=VRu$ z-=}O$YK*z=&6gEbTOXgeRn+-Gzl&)w$kBwX25eDcY6Fs)ghCP=+>2gsnREA`=}XD~ zQ}^e~ICBW)#>MuYl4G9veW4z2rg$PEAPh{v0f8LcJJmJ?tUtrldF_Atgzo>l&*&Db gE|_v>{^A?!b%7 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_028_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_028_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..324ccedc2c5b41d087f9cb77942fca725b28ba96 GIT binary patch literal 615 zcmZN$U}Cgdlvlx5 zeDW$53#Rn4)S}|d{5-}Kkm>}*jCVeBdHz^Du*u!foTpflRQ|uGbMIP%MOFuM^Os*; zl$hGMBr)41Ti?VWv4A15((S)o9Y*Aur1Cp79LJ}O@i(YS;bN8U> zOUeIJ_vgzva|q?e#rB?(W1jhap&oChcp@So3{1cQfgIdB)iwpJKf}~{?SJ}&?*F^b j=oYIkm~vIB7%cRq7@{#ZP)$=%SLr&y9y{=cVl?^=UJRtIzQ zmtS3!nA*4`G210u-^3uXfFZHuTVfg9s>WT%G{kDOxK{O^Tz%-?eBpoZRaqLBerYd? zzb`t!{7F(`&bKX$AX^Bz31N$|CD<0Y6_cI`c(ieKTzb+whh^);?MC5$=FCdGE4+NR znWey`m05jAuG#*M?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pLm z_n_%Z$^TRL=gT;A2<67b_MVbsp80*D9&e_2A|fCROuzww9NatAHU+Fd!_;~0fBJ;( m|GUrV7OO6pa%cYH8|&nyw<$lHm6-Dl>~KQ9LvuJGHvs^rB?G~V;>`R!#uSk11jUSZK682gSUj-F-O!w;Sdvu!zo&EWT7yMa z2Xph6UtN@#+PEY!+a+7y#2~SNA+h9JVj0}3#$CrW#A>v-R`s4-edykN;eYQ{SsIsq zX)lVuFFL>cNm63Yw=IkyTL`%cVT-XP*cP}Ilb#89v~hJ@deS?GW$VQ4M&WFv!t_tOjgRVrm1DnS??T9Nddu zZ<%xVpy^A=|5Nwp%Q$lg<;KPKo|0pp`F)`tZ>D%6A|MP*zyX0A+&k4a1*|{A)OqcH p`h@QPyU*wrt1g&wXa3?F>*S@kDL6w5>8&}7rC%to6wocq` z6#i$ z_|l9yF$b>nNrwN1@CI4V_}|J4CM-B?Rr+T-^ZgI;8`b}6N15~pex3z(wb>-^-oo0% z50jGSY?|OvE9RnNn6k^HrXnx=(+BgE%kLK@rZz!bZD0U)^*1EftX&cHT7Od5-YT&h zze^X^eZ9K!rT*1l3)~h>=4qR?KeBI0Vz#46VgYkv39_!8YMTPqpJD2}_CI|>_y65z zbcMq%?`5tQx(-Y8rm0SP zk*ezBQeSsC8jnmNz8W1);G3HEMQ11fm<}`nSe(dSI4C%y>nQ$ zPTX!3{%6jt#Jj@FXPa3HTw0mcmskc@y8Rv7*}|d~&ve*-A1-`oBY1rCF}bwpKW!(M zt!tY2(u_GV2d?xY2lJH6?-wPeHbGo%U;uXYHze1rT@m$Ke^S`q zDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vTsRZwxda60dryrvaX$Kn*!FKVd}j0KYc>? z|J`SFi&Ym)xif$9jdk+U+mxTpO3e9|0t(Os#SFmS`OM|{WAVTycSCcYVo6f@|DMjh zYYi4z9n8&Neiad*CYVlZ+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip2 d3kF$2DC`#{rZyl2Dj_$4%_J1^Xl4?M0stC~B~1VT literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_029_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_029_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f1a66065e2e7e5063e892c9f5b62eb45f07ae144 GIT binary patch literal 673 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}s+dQzGF*#_9l0!>%;CpZHWv&*w4omZ< zsZM&4s_P-QFTE_as5mn}k8uklG0GPurZz4~%y!AvH?~YHU`Q;1TQupJfJYlw$E7E| zb6B=c+-?;9XU?p|yTZ$7n^_86TA9_CSO!^ay^Q1$MRB zB=6qB+Qbi&lICoh;882)qGFh`%cQ0vFZ|O7^OVc)7bT`PL0oNM0Cx2^B-gB65%pSs zQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(Z%Jadqe)@`b7BdyuAOR|0@j~l>b&+p zeM0yD-Dh-*RToUTGk@`ob@I~Nl%LH?%=wlA3eW__48Y#`%;ouG@xUf`Lvx;DNmBX$ zp3c2%4Hj7)%*|hZ6%n8&m`-clbxcF7MvH4z@5$AN?#&ne_g=z}bHXsEmAvb}|Boy*!W)g}505T#aRsaA1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_029_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_029_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..7bb989ba4fc6d03771b8063cc178641bf85850cd GIT binary patch literal 676 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I@BJg}TGIcSTLLrZnwdvEV$t`@ou zOY^3wPI{55>mj!W3HZDobcFEQ^woEKwNGyR{H0hauM;lki zr6;{}Shh~wZWR7!&aA|{!pmoySqfZQnbntA23NZM9oyN$q7~0{*nb}`d}t$heDg86 zwCF!=Czq{jn)uR;IWY&W^ht*QhVTYi&iLQT3nnZ$Y*qSaI`jPx@f+3uYDby$2!5Ug zcD30g@7}`N#1E5_=4_haQ7h)6Vwkeaq^2S-{L=^Xl*{iIC8jn(Ty0UOUklt8P3CEvwLh|NNn*C6Nn!zWVhOUYoobr`)}LYO zy!JnRLihjOXLO5I7fiV`fANiV^3vOspUq0l`IZ6-&;-Q{z~1@H<@sarz$SM?bDm;J zQu+U$&b@057Fiw4&0l^M5uhfRPHWtCOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s j%bz4A=6nkVSwbl67bT`PAO$KRH-XJ06!K_h5{d!~V;>`R!#uSk11jUSZK682gSUj-F-O!w;Sdvu!zo&EWT7yMa2Xph6UtN@# z+PEY!+a+7y#2~SNA+h9JVj0}3#$CrW#A>v-R`s4-edykN;eYQ{SsIsqX)lVuFFL>c zNm63Yw=IkyTL`%cVT-XP*cP}Ilb#89v~hJ@deS?GW$VQ4M&W^L$`R3kErwkkyM4QyY-XBovZ>frER|>n(Hc9yEO^ z`G4yEd>LmBq1?FG-cxeSGrup??(4nNnD!su z_t);`WxuravecsD%=|pY6p-o!#f*18b9w$)Jg~{#(441Ol2rb`r*rRGgGE*cbMu#9 zU6h#GxFj*#C0pObAhCcUvE*A~8QiMIUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h} zI=}o$Qew`xEsP*r2)PMii?Jox7Pu9Yo(XugadljJ(mRJ`>%{Fw;eY1LO1vw)e72dT zz@?R0eMqj^{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H}%S||8vx8 z`173A=C)6jR#>a3_(37|+Lc-D>;7`{d|*lo205CL)r%5S8<5N-6q0~}gL~2IEpzT3 zG<_-gf9n2x8D|cm+_>1@Q*z8Rzc19|%@j{W1cZSJI3SRNd#Bo_fc0mXI4!@UXcW?df>%G&M z_8;E&*Y4(JzqItS)S}|d{5-}Kkm>}*jCVeBdHz^Du*u!foTpflRQ|uGbMIP%MOFuM z^Os*;l$hGMBr)41Ti?VWv4A15i&EgXAYszV(2En~?XAY%v1c0uLBM?n4UhEho$i|7tu8 ht6^y<*M6H=B7fE6U#fRO$m+${SD4<{*GIB7%cRq7@{#ZP)$=%SLr&y9y{=cVl?^=UJ zRtIzQmtS3!nA*4`G210u-^3uXfFZHuTVfg9s>WT%G{kDOxK{O^Tz%-?eBpoZRaqLB zerYd?zb`t!{7F(`&bKX$AX^Bz31N$|CD<0Y6_cI`c(ieKTzb+whh^);?MC5$=FCdG zE4+NRnWey`m05jAuG#*M?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pp$H%p??&fPsU1 z(d#X9?jAIKDfxfu{(Ko{4x!w**xple%rn0))Z@(*PecTSfeAPukb`@t+NOZ@XP7## z{ZF6J{eSlv-D1@RQ|`=Pd}E!w^fu*Zvl4T@^?-w$koS;mF#_8H4;Vu3LkjLKC(H}~ kYCH_9VQDDWew$b#f7Rn(s&_%i>c!VrnBLddP0aZQ00_G+g#Z8m literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_031_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_031_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..372081529d51624dd9c81f9bb2c37eee8c174a2d GIT binary patch literal 811 zcmZOtT9jIppI=hkcta~fm4UHPNI|O8yXl|vqQcTi#`DaZSR2j1`W|`bk@`H!=h8B% z+0x?aWvNBQnfZB)TNsH^z9=!ZaY4n~%w*MgM6#xoln2 z#Fu8wi8*kkd!tIYw;s88?V$XcO}EZp7k{Gl_3&4LYuXC}GW752ZQGava&&@X#yg+6 zJbx@6*yL_#&QmN&D*xZpxp%F>BCCVB`OB{&9BpC%cJwzS$29IbrXg0N#kH#UE?5M1;c)OfVe2Q*Beg`ZG+O*Z!wZ=>EU^jBc^&f+=_A zFTSx(UV5AIvssBb-ym^HC=3BZvc(8&3q14*xeqBAx12C9{HyUWtcInbT>EWeiTqWM zf2rODA*&Z(UtxM*Ul%E8zIK0A5A0TVxZt}lKb*}YF>u{q-rr{fPFt??m7Bn}6B4I{ w6d^epGfvm8haPWEizf55&DtN?mzeVn0F)VPJ^%m! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_031_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_031_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b8bb40ad0a4a9d26e8c0c6f50cdd8e1a8a34c7d GIT binary patch literal 814 zcmZN$U}Cgdlv7VnW!qQ2`^URxA8_mD^9(m`H`aH_# z(lV*p(&Fi5sYS(^`FV_67>QB7C^5BhNn*B3w!X1tVgW;93EZMd&jdW$xH>L9>7B!} zb>eoT@IP~ACEgWYKHJPv;L^&hzQi)P((Uiq&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9 zY+cjDmuAd~IdG+Wqe{599=Uk!p!}Lmx6WS|f1>sE@K=Fr+6w|Q^zZ6z+n54!bb?~W zJD<5ce=Hu@O=SD3;%ns%F?*>OM6lLebM>lPm&UIz6FCUA>_YBiKz`p4kzR$u)`O<-ZJOzLDQF# z|EKQHmvQD0%8iTdJtfCH^ZPr^tMM?bhNYog`)y*0 z{8f*Cson)4s~2BiVR~O*7b$4Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~dc z5~qX|Avqc|PS>u8daXYxY;Tp=jo+mU>%LxH`BMMtuLW+4CiAq-+8^1MnDY$)pv`MS literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_031_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_031_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..95d58a895bcdb0ff938779b38824d40e486a24df GIT binary patch literal 817 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}ss?)papYx)^(n-ei%$ryn&A<8{dFPS( zJj&aHV^rO1QTkxp?iM{F+U-&R-XQqV@IgSAlEV3j#9q@9J&am;!Qi zf?~!ypSe7LEFRe8ZfMR^EJ-T=-_yBwt-&IzgSq+3uOb|6VgPpZHzdb2?mDI+R-?tW zs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;i1%oUh}apn-pjf?F)CC5DT`$9e5Oz}j7!wpO@9KKU+Q^5K&Or6*Mr%&kqzx#}C zvFd^;cjhm?u})rkoAR?+i8H^a;5SDHyk$FfaV8@i450rJ-E= zZDNW1RgZtE-UT767hhjtdS71`DQLcSe^n3cR(H7IyDvYS%_A{z-Cy3{X9G@KuJe_f zz_t?-r-T$CIT|xg*RF_qtv@MjZ1C-!#hLkej9VCqQNAcKwQ)&ewoA6Yv1MWbLt+WsqDjvLJleQA zETTPY z0&;YMV#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`Jx%tblA{=dE0Cw~@B*!%FI;J63 zqs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7%e!1^;xo!9=SPw4)? z`;2a}>VheE<}bdnPF{MO^0QfqIo}|0N+=8gL$bvPYzsW}3Aqm`7`L1-FZ`?VFsz29 zpr6US0W8|LU&=Zi^=Kw9VQd*_W8} F4FJuKYfu0H literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_032_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_032_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..1a8ef0917680a233ac0f110f50e530bc3b6c311d GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNWnGjz7tROe93uxoz(IS-X!}wYMfiw__ceFebN-| zi9K!UWvNBQnfZB)Da5E=l$hGMBr)41Ti?VYv4A15gRU(OzkW@YwC%=rcYl;lId literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_032_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_032_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..381e26750e4d8f19ad25bb3ea68c5a2c89d92a73 GIT binary patch literal 164 zcmZQ%U}CgdlvOvRoLkrUwR?|! z(iH89J#Fb_sYS(^`FV^f#He1BnA*4`G210u-^3!ZfFZHuTVfg9D!+gFH=kDW)^;=; eNZ9T%$L8;gPOTq$U5vJ0&K`_rW%fzT`33-&a6`iY literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_032_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_032_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..a50a3f93a1912a54964c14b3fe57e3fc1764cf66 GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10CHSN9=PxgGtd3&AI@(kW2`#Wl!Ti5ut zdyjq66zz#UZRusHMa7x1C-!#hLkej48yZUX+;HxFj*#C0pObBC&uWvE*A~8QdzrfBH9{ kR`S+%G#p6S?lH&a?~6{YA9`JkwqMR3jAmu_NzC~M0HCEq(EtDd literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_033_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_033_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..de0b04f481f20940b43db31ddde1f57418f6c78a GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNI^j3_TAF0jH@Rmp1pSPdgPY;)UMd|*Zu(J|5VFo zj-tnOz4WrwqTrw-EwK!4m)}4An@=lwYdaba zBy9JXWApb#r`8X>E=JogXAefRGW#Uvz?FXO{;D3>t?qEacVB)un@3{cy1%@?&jy^f zT<0q{fo>} KkL*j#`33;VA&0d9 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_033_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_033_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..3c155a8591e59c20cdc68e8758b24bcfb01caf79 GIT binary patch literal 306 zcmZN$U}Cgdlv{?=~V;>`R!#vVpulrKt5ZCsL=?UJo;Vv$(DkXZ69u?%jP-#`7EPb+zA zI~oooZ1x`y}STm45C1svg*_?r_0(Uw$~7M`GZ*zr4TC z2AsBB=PNgXZRf@mkYflbLO9020K+kBS46$mpA@#YO6`Tn~1^~_Fhq(X% literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_033_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_033_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..69684a33aaad30169136b877ef94dbb735b533e0 GIT binary patch literal 309 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}sK;!n^(yffECnlb~cJO-Smi*MN*!9=` z0OtQx%V&8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<8@Ce(nCM9@wq!aKU$9emI*)V&J;J zyuZ%|oVHx&D>s2{=f)I}V+biiIL5#L!!c`DM7`FZ6t=fY?8fiXg>_%Au6(I~_16No QMU#2jX6=vcOU(HO0NAdF!TQ%m}B$zMW@yey)H)EFJ})%voiZ6=D?MH?f$AB*sbnx!FOMNIGaae z;JUxOzt0Aowp`~cH-T;E#uSia2q{81#=ro>F>6;uz1E);wzo>`#_!UFbziTpe5rr+ T*8;ailX==^?T_qB%=rcY-rk4D literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_034_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_034_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..2dfad6fe3a665bd2e1d93a3d45b504e42571a033 GIT binary patch literal 217 zcmZRuT9jIppI=hkcta~fm4UHPNMYSnzAZjmLs{ZQp06@~J++5nnby_tip>RaNv7*( ziT%h;FH0>d&dkqaoXtp#@Bguug1f$8kUA~ z?YD^~@>f0nrFs{HtX_P5h3S2L-6e_HP9_$K1x%>g{Ql|Rd|Js{+tF|!VY|m1o4+qQ VwSMSzG1`7PdoY@n*(WjQ8vq)FTp0iW literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_034_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_034_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..da9afa9edc8461be67e79e5bfbf3ff6ece12f12c GIT binary patch literal 220 zcmZQ%U}Cgdlvi>WuQGl;wTEGu*46Ne%>{8u zrt4>k{m4x(OD!tS%+F(-%}9*$MTx0ROA@nPvh@v&5(^j-OTHzR!R^{|!o2XW#>220 zmWFcew}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOsLxY{^{R*TFG16(QqJPyT=@x Yzb`tqe&}^E+I~5EFq)OwCo$(603GmL9RL6T literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_034_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_034_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3513ef465e22e364dedf7a938ab97dafb4e31aa2 GIT binary patch literal 223 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1-Bi9UK3hXs;zgdXGJZX^hhdr4)$oeV z1#wBH>t~7m$W1RxEh^5;&tsg;NR0ADiK$IX60=>h^$m;?3m6hhz9p8y?b>p}yzsBa z!>}5bhH~wEC=>$y?jea3Ep3 b#~ho#FFLh;=yfsLemQ$Enw8lnG3OfqC9_;6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_034_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_034_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b7852d881d5ecb982a7b5ed9a93fdb0958079f2 GIT binary patch literal 226 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3jRK6`fTSHmmMV_xRem%8^VVTy| z@QTd^aY?4@XNmpDO)pC=D$dN$W1P)MjPgZ^sZC1~vt6?F4U7^C7!pgqC6>YM+H%6Y z@UO1)2*WHUMy!9SobhI zr{GO`S!z*nW_}*yVMbz<1GXqJwP{IWwoA6Yfl*=sLt@Fd#4@;DTTYl4{?&LGR>RUz zuKhN#MEE=JogXAefRGW#Uvz-{>2{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0^81w zDIh-(QnV;BwGrwE0}MZ`T@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vM({` F8vxu~nuY)X literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_035_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_035_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..53ffb4ad871dcc6a76be2e95ad0145758bf59c61 GIT binary patch literal 361 zcmZN$U}CgdlvRX-Q(XOSZm&QDOl@V#&9}GPqq^PM8<|)p!_I z!_rW${Wh^g{;J2nRPTb2)r+sMFukv@yCgB&$;2YDfC*Kb-#`7EPb+zAI~oooZ1x`y}STZTQ;#RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>% z+s=(CAU_aNv?wvP5$Xp63_q-05%pSsQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f( IFEQsE0O9iaectCayM5EGqU>HQ zXBSxaFg&N=O?p{sQE_H|9^+v~Vw3~6C^5BZNn*B3w!VQ;VgW;9$+yHZxLsRLm>2%l zcoi=n?}Cuki?6RRy|1skBr)5`#3HeP300flKmD6eD|u@>8V)3E z_n2ez_eH1H54|o%+b?GiMzb>eB<8?v_}cwdJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJk zS8f8^&W$M`KM+#1C^5AW>IVZ1KdfC5^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEv LwLh{iG3Ofq?zEbd literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_035_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_035_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..98178a0b26e87701b3fcda14ecb728628ae7da74 GIT binary patch literal 367 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Nb^r3U}R&h{TozKY^~-sd&DebcR? z>|QKq7g+Z&Jg4AIdRb~wab|uV<6%Z(lmoUXF|}z)Vzx`RzJXC<0YhTRx5P5IU0Y6= z7yi|F7*@m5P_F$pu|)o=$G=qXf{@jVudgt@udll#G26++BC&u8Rh!>G{hLoKd22fw z4kT>%m}B$zMW@yey)H)EFJ})%voiZ6=D= O=4qR?Ke8_|=Nka^_nMdh literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_036_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_036_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..90959d894b727a2900bac59c80829b80f5d20d16 GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNFn@P|LIq15l&*&DbE|_v>{^A?!W3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN*BG}GUx6=)0dL}r|!>}apn-pjf?F) zCC5DT`$9e5O!34NkYflbLO9021j8{q)iwpJKf}~{?SJ}&?*F^b=oYIkm~vP5klBjg zfC?U%C$qgk1K5_8~67rovx=k7t%my-Xd?$4KT<`Bw_ zi|sun$2{}`VAytN$-2NJe>%(40VqEqXKUKgY7m$L_>S($wjbKpuBz1}kC?m^R+lK-df&zEuL z5Xy~E?5#1xQY2q{81#=r!_F+0^Z1*|{A)OqcH`h@QPyU*wrt1g&w TXa3?F>*S@kDL~V;>`R!##xLYaPWEizf55 z&DtN?w21o-W+mo) z>jArskXIHZrZz&{W@3TiHot%RH=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_rW%fzT KfqR2c7ytkuA)osI literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_037_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_037_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7fdafd1cc3e5e6cc53d4637579d111708c88d371 GIT binary patch literal 361 zcmZN$U}Cgdlvo3u_ZUOiG%wX@W%LxH`BMMtuLW+4 zCiAq-+8^1sBr)63B(Z=QRo70nO#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGP zCFXqV0lSTmR~99vHbUHHVu9f{zkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S9*kyX N_DRfvdxKCI001SypZ@>= literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_037_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_037_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d78909140df303f18cf4c8c6aebd2f82ee462761 GIT binary patch literal 364 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}Mu6_2(-PT;&*K{q@cbd*M_qy~Ro^^g# zmvetzYP2Hg$f@+Q)S}|d{5-~4j3DJ^le~KiYZE_AN}982f=8{Gi;7{&E|Z#yyzoyS z%u_A{_I^=fYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+ptv@MjZ*G{!f0qf5&bzb|QKB4>n?lZc@stcyvnZNkPI(g}B z%Fkvc=6ve`yN!@n7A2-OLfmFzf#Ej4fBH9{R`S+%G#p6S?lH&a?~6{YA9`JkwqMR3 QjAmu_Nz8$JgHRX%05W-?2mk;8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_037_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_037_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..aa78aae61222b08e84151ddaf3b0a907f765f461 GIT binary patch literal 367 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H%JefG-T)?C}ybS=|&n$9)%y7V5N zb$(ZubAMfGv?A!psr0hcqTr6US0W8 z|LU&=Zi^=Kw9VQd*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*F zdFgG+&t@g&eCq+bjgVIsC8jn)+-72d;Wod2`Zu3e^44}V97x#iF~{cbi%zW{dR>gR TU(OzkW@YwC%z=A@P#6FJIlQ0^ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_038_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_038_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..d784ffbabe6ac27ef3e1c4981d5a519c0640fefe GIT binary patch literal 358 zcmZOtT9jIppI=hkcta~fm4UHPNFm+tk=Cq_8@0UM&E)u>-q-s(f3oNu&--&OarfC9 z{z!b4UY1%^oSC1;c$kqG<$x_pOl?|{nC+6SZ(x*Iz>ru1w`kGpEpzT3G<_-gf9n2x z8D|cm+_>1@Q*z8Rzc19|%@j{eEQ2fEa>Bguug1f$8kUA~?YD^~@>f0nrFs{HtX_P5 zh3S2L-6e_HP9_$K1x$%0-;lKV{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYU zPh!ru6p$YXxnxmdY9rJSCSX4xTe4GaQ^5K&Or6*Mr%&kqzx#}CvFd^;cjhm?u})rk LoAR?+i8Hqh)~t^kwY=TUi&EgXAYs220mWFcew}~b4S3UlvdKZMO zUVMFp>3x0OC5hQiCKibWOo=7mkhJ;z)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qT zG%K@DV$Qb|kRJ%SWKm*jBh(KjU_T&RvQuqS!1^;xo!9=SPw4)?`;2a}>VheE<}bdn OPF{MO^0QfqIo|+EHJnla literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_038_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_038_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..43f4d63cb78292699088cd05fe2bb2765c800d81 GIT binary patch literal 364 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}M-S3gstdASDyxq;@_@Ca_`#XQK=pE1d zb1rfB*&F^ye3f37T2!2wpT~HZkr?HGElNynT9TOUlC5uGlvu!!SOT|b(d#X9?jAIK zDfxfu{(Ko{4x!w**xple%rn0))Z@(*PfRR>E8TL!yzsBa!>}5bhH~wteM1 za`s>}E3;2x&bJhh9|*Z*QDSN%)DI?LKOkGOQ*Beg`ZG+O*Z!wZ=>EU^jBc^&f+=_A RFTSx(UV5AIvssBb-vCzaoLc|@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_038_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_038_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..031814e8a474cc8d5ab3c7f0e6d4bcbde461d908 GIT binary patch literal 367 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H%&?~&H5j~lhT-Oc3qpWfH|JAbn1 z9nbr7E^+tS8~#Xqm0p%wRGgWg$9R~L80CO1N=$89l9=t1t#4qISiq220=H<<>n(Hc z9yEO^`G4yEd>LmBq1?FG-cxeSGrup?jb zVzm8o_FyzCvrl5qw-k^c2)SfYVrnDQ4<=wgAX~CiZBxMdGfbV={-;mq{=fT-Zn5fu UDR<^CzOhbTdYkgIS&2E{0A4VhU;qFB literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_039_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_039_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..3be7568165bf5b943fa96e17a810882e27db0e1d GIT binary patch literal 499 zcmZOtT9jIppI=hkcta~fm4UHPNTEGjvo53e!MntLZ;aK%OFJWFMdkReTrfZ26LGd` zciZIjvecsD%=|pY*Nns{UzC{Iv?MXxC0pOXD6xPcu>@|>qSssI+&yUeQu6=Q{rNJ^ z974HqvAw6{m}h=psK=Wro|sq$SGwhddEsA;hha4=4dvQz6HDZ;di+cEE(lq@`1%Ud z`}(>|60@C5ED{Tt5=*`zY4iK1fAeW2Z*51zfrRZIb8G?U%C$qgk1K z5_8}-eC__K9@wq!aKU$9emI*)V&J;JyuZ%|oVHx&D>s2{=f)I}UkSN*QDSN%)UPIB zzal$kr`o1~^=Ftmul-M-(EWe+8Qo&l1ykzJV7~=WM5*=HvpQJ+06g| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_039_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_039_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1cacc93159a442df3c1e90e7f13ab8f1f9cd1e9d GIT binary patch literal 502 zcmZN$U}Cgdlvr(E~EFsyTpBOjMc zS($wjbKo|7?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T;E#uSiW3AuPtVrnDQ zuO?u>B0FZM+NOZ@XP7##{ZF6J{eSlv-D1@RQ|`=Pd}E!w^fu*Zvl4T@fh{5A5+q9u sFf3WSBI>pNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0HSKy(EtDd literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_039_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_039_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..bbbb7d3e41b5d604d282f58128374b8c366daef5 GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%JzKLbqxZqP#C>m!)x=9XBV|S9_^wu*Q|pIb7o+W$ zvj?MDnSBy-;5K~i{;D3>t?qEacVB)un@3{cy1%@?&jy^fT<0q{fob3r)u)S4cH-48ctowR(4V$L@Jv=`ah literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_039_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_039_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..9e612aedfc6f47b155f3220860558390394eae2a GIT binary patch literal 508 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MOYTeB{s_rbfweQ%7_#7jFPWku!q zu3Rub;1hASYIob@^s>~V;>`R!#@CF*C|{JA+O#Aw+a+7yz$meRA+ZE*(W2K|=G;AK z`cm@$)cyG~&KyFyak0IpB}`}?9(>xW(! zqwSZo2cub;eG+rvHhk^=svg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB=PNgXZRf@mkY5S8 zcu`_%Bh;@ZV80?eW~bVwfc0mXI~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`H@`&Nl$Q8`<9g literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_040_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_040_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..8b3c1165dbae7cab110d53348968a394b97dd471 GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNa5N3sP;DAH5ad1*G_G=6f$bt5}cK^x&*Kd^(yiz z`TOF{Xf2yQbZD;>n&bId89%TAsn1WPeAEbL$$vcJHxInxZ|ir)^PU zYU7f`Y?o|(6N|(GhQyL@iDhuB{Ql|Rd|Js{+tF|!VY|m1o4+qQwSMSzG1`7PdoY@n z*(WjQTMr}17D8@9*kWu6wgqklA@?Dl(jy@3BvsqCK&v zZBb%s9GGkT=>vN@c8Cqa%s_j R+D2o-a9XuajDy!JA}%M~!pq8oze$u}_+! zJ+Y^4QDSQ2lEiG6Y<&}p!~%xIl5dG+aI5_O>EC=>$y?jea3Ep3#~ho#FFLh;=yfsL zemQ$Enw8lnG3Q$kBghs)ZbH~%YzejnZUrItA-QJzJGQfhMJt}^u>U?>_|Qi1_~v7B UY0-b$PA*&5H1VYwb7Ian0M4d?RsaA1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_040_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_040_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..b08778325b81f8c075a171e5631215a77bb48e99 GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om~{;2jg-ZdAmTGvi(wiGgI+Y+3W zw7LYa4fQJWD*5~M_otVo78Pga=P{;$RJ*3#cjC#OFF9|olUkm^n`D1SjdSZ7zjp7j zPnx1Vv8QcOVrt`(#B7&reG`ks0*1trZ;54atNi}y-+WrhTielaAYr@59Gkx{I<eD zEg#;em!%dJXXfWI27^?~&zId<@UZijdt`Buvf_gNd7t*pyfY(c_2$mcdyffCf3_$w zwIMMFZur;kuj+x_>JArt_vMGPc_ap|`^)?LY`|&Db-r>F*miDA0h#HVcHfC7d%onn zy-sR*25*x69W~CaYy8^1$3AI__QamHMTx16OA@nPvh__Y5(^j-OTHzR!ENySr+@Ql zC2wsE|zUb8Yq1VM|`{nGxXjW#Q#GG$i7(uoW@+V*jTZ}Eiw!p0*jOfD_@Put05>zXFMG-E~z8bTon4jMw?hj6rk0oc*V rL9=#6)NB1oVSB5@Zu~A?Soihn%9r|Ae=TrZG?}Mu*8a%8#GG#cuG#F* literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_041_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_041_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..5db9eb6d5d0f60a4d3ffbf3cabd6f7eb97f5ee3b GIT binary patch literal 531 zcmZN$U}CgdlvzZSsNv^4&XEb|$LU+&=JlU#9nL z7VhvZAKs^zr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okG zwkR>RAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5X}ondzE#--#!C zzT~{UPHK4uZ<75THO{ST{Mx<8K52^f#GbZAiK&fC60=>h^-U}i3m6hhz9p8yZSec2 zfAeW2Z*51zfrRZIb8P;;=+ye5*Trc2oz^x$U zJ|x#{f5&#VuxQ0I9roXc3m@7D9^ZUSE-m^`+sS3?nkK$9V@3)ZLLmtb8baZRaI}E| u*wM&Avvx()YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m{>Z+>oNoZPA?(ut literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_041_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_041_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..de14708901acc7e5df54b9374ee099832838917f GIT binary patch literal 534 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}M#NyG_Eay{g@`3^K-8)xyCaTulKJa*7 zruS?X?(i)i-lvzP78Pga=P?F@RLjqo-C6Lk^Ot*Magnm(g8q4*_RYLABWU&J&d+;~ z2~B^tC^5AmF$Zq=*Y26&)m zi6?u$W$ z@cXBK^Jyh-ZAZg_gzX-4Z2rFJ)cT><#c2EG?7?VOW}n2IZ(A5awh;0sUF$RNF%g>kHS@5v)mwRM!k+R}~{&}DF&Ac-sX!YjK z&wGyvO@Fp1F|{Ev2X6S+?yu^B-Rce(eD~#tvw0*2uKUaT`)t5z%XPkT6WDfcOaYnc zns(obCwso+yuD6pc?NHi{T(&Vt!w<+y~jRjiuS~wwnd4ljY|@dKe;SAQ*VTQr%cZPxzCzQmkw0Muyg A;Q#;t literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_042_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_042_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..d3b326b6a791416581699d85d9ffb8bb70b03fd3 GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNI|3g)4%wnJsCwy%O&Fi?N?-e`}U#W)8UJMAK(AR z_w7wpdRb~wab|uVV+u&Mlt$6hx1#k~X^PeV7EU-OS05(ze!ldkxxcoh+}!urV#cDx z)W#)=*)G}o21bbm42dP*63gILZ8>3H_*dg$SPe@X{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKs^D@-;YU2w9DA ww21}S(a1sL_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZQs0LzribpQYW literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_042_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_042_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab0f047d0126bbaeef1200f497d17549af682f08 GIT binary patch literal 447 zcmZN$U}Cgdlv%ivaRIbmM-SL0z=4NF70_S?h~`KuoPQoRd8RxiH3 z!t}nrZeq^2EsP*r2)PL`ge}IFU|Zl;xTf8A;>n&bId89%TAsn1WPeAEbL$$vcJHxI znxZ|irwz$9+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HDDtH8^Mp zS&eYCi3Qlv$U)=xPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8;A|Hk+2O;vhXYEf}!ejZ~ANVSwk(bKo0^;v0()&CYwI3`ygCiQ;4^rpGLwx!(M z_t;{_qQun3C5hQC+4=@Xi3JRaCEpUu;8txpVP5!G<6&40OGCN#+r$$2s~-PSy$eEC zFTTFQ^uE4sV$QcMj38SGxd||YEyk8$Ti{l>rrmeq$(}DcZ?BVDp23@Be@BgT>l(jy z@3BvsqCK&v4aqgz-?5!7EL!nQhyC~A!iP43$2T97ON;)~c5>Oerim}jm=km0rV{cs zIA{o2jc~My1=!KZLF4yN|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Io|-{ CO3Q)( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_042_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_042_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd8ddca31a04e8fde62356029db8602dd9e83617 GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I?e{L{bqq&*o$OUotW0_|61e*5;J z;M3uYe;?of#`o<_ReD)!QE_H|9%BkfwUkED)3>7aS!s&Z{}xU-CRZOO^?ttern$ei zrQF>2*kZ<_#MH(miPezP`frzP@f^&bKX$AX^Bz2{42$#+G1P;8wV%-FM>2o-a9XuajDy!JA}%M~!pq z8oze$u}_+!J+Y?^$u-;Gv7Id}TJcPW{rBO*hc<%8Hy@Kri~iGga@o43i7(BV6La9E z67n@TXb4%2aI}d9*wM&A{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Z F-vH}7%ZC5} literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_043_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_043_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a118effe23ebc4cf7f6e7ce6704dcf68763f91f GIT binary patch literal 586 zcmZOtT9jIppI=hkcta~fm4UHPNI~WJ9@oRJEVoygyqKyY{CdrqO)QmKO`ckd&dkqa+`>qV@n&bId89%TAsn1 zWPeAEbL$$vcJHxInxZ|ir!BDzu5|l5wzGvrE1v1F|2|y!&_?k1=3{bc(SO=bE?d_$ z@ueAaVh&vCqKaL-&JRvH-Bl1({9+T?5K-n6t|fOTBTV@AtMWY+!YLp}6S5lNXcG&t zqrV|J#_ym0&8L;TwH*xy61IEHvH1(wi%zW{dR>gRU(OzkW@YwC%=y*>4jMvELD*to zgkj5;6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKB6<01_gD46ZgqzXzWegS z**p>h*Zt-FeKz2<dKe; USAQ*VTQr%cZPxzCzQmkw04lQkfdBvi literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_043_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_043_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b65cc955b568edd185f795fe42dea7b4e635d055 GIT binary patch literal 589 zcmZN$U}Cgdlvl(jy@3BvsqCK&vEwK!)bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(ti zTh}!4r5ST#4qWM?ie0?U4^BGWRS;GDViVaAQRWk_C3hzyO!)Sz@;w#8DIiA^vKrxN z6AQ4Tzacrs@1Oq7rhUktyC7us;_E9+@9XO#dHHMiSM|Vdb%zVS z`|`utJQ4%f{pJ0AHsG}7I$ya7Y&$oCy-Y|El4A@o9J6*s)NB1oVSB5@Zu~A?Soihn X%9r|Ae=TrZG?}Mu*8a%8#GG#cGvfP& literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_043_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_043_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..46e418cbe12231dba078a4a63c6f9c549ba6cc2d GIT binary patch literal 592 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}s<@g@g!>%m1SDCz+sv`V)&6!Osm0C@n zTCF#WjF&7mvrI2bEh^5;&tu%eNR0ADiK&fC60=>h^^GkP3m6hh;1;>2-FM>2o-a9X zuajDy!JA}%M~!pq8oze$u}_+!J+Y@Pu?((s`#ZL?g+(i#>9GGkT=>vN@c8Cqa%s_j z+Dnlv}>+2$U`D^!A^}ud* zhYP;@^26CY5(C%$<^6p&;I!pBU%3fvJ2!&8Oh^%uV+=4Hvvx()YyC-Kd#l85{4QNs a_x0+^m-<(KEpS^jnWt^m{>Z+>oNoX~p8Jjf literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_043_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_043_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..f5ea7ad77b48e148601bed3e84cda47b02a69714 GIT binary patch literal 595 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I@L_#W58t}M4#nY@^)BK&&InN2K} zT1}o>tv8E|mn=22OfO3jPgZ^sf|k#vt6?FjV%)k7!ph17P+R~cjC#O zFF9|olUkm^n`D1SjdSZ7zjp7jPnx1Vv8OGu46bzhJGQfhMJt}^u>U?>_|Qi1_~v7B zY0-b$PA*&5H1VYwb7Br$>7t5Vyv`3!I^9(eRs3QT*$`3Y6Rst9CnHSw_N($e6~ZYX zM-#Fd;b;>Ju%o{rImYjw{>`VAytN$-2NJe>%(3|k*o#iBA9`JkwqMR3jAmu_NzD1y z0}dKOPC?jWV1!}ImJ{ZMe>EP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>mqsiYxh_6 zz;1Pi3%>jE!`VC%1K0iK{e3pzwBL1N{u-~ff-szfi{8vIYuig{9OVm{S z#S2%3^s>~V;>`R!#uSih*R=aiJlXRl=k0Y;%QJYB?C+>?Ze8Qo?mhNNQ?w`cv@J?Z zZCsL=?UJo;Vv$(DkXZ69u?%jN-#`7EPb+zAI~oooZ1x z`y}Rk16#7_^_Dqz51PJ|{6BSnzKk=6P;Ojo?4n~%w*MgM6#xoln2#Fu8wi8*jnAI67<`Sfx=W{&%P o%EqL|nCsqrSy8q1@rheSogehOmU82>6&x=S3)+g-V?k_ z)KvV%3s;5ovecsD%=|pY6p(7ywEIpx+4Cjm?R8SiGkBBi@2GKZUE|m8J@!dcv?uno zElNynT#}gWlC5uIkyyZxSn@5g3~rU*KmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?Gi zMzb>eB<6erTe9f&mN|D1n!c3$KXre;j5CK&Zd`2dDLLku-xuofW{M{wEHN;_uw)w1>QML8)iCaaTAN0GJ27??;NYSFi)CMFo356s8eAVO+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_044_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_044_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..892732a270030924135b47390ac10c8760dc7f1b GIT binary patch literal 534 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10iF6-hoOZn;_&3Uljs_owCnsfYDLN>47 z6TC~*RQ$yYSB3Pl)S}|d{5-}KkZRYo`%XOB^Cjo)byCYSc$4h!sBvyx%m}B$zMW@yey)H)E zFJ})%voiZ6=6nNNvgq}eId>15zLfkwb$`B$Glx)aTx{-Y?eEym78b2|ro;aGaN$E6!Q-2c$)!dAX*;=WUDL#uX3U8>a8n<~hlcs| uaz18``+dsBq{f)*-h5e6we|6dTSc88^t+e_gB(pr(W1oE1|%~Hg(LuvhvXOl literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_044_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_044_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5a65bf72e7267fe399a970882b17a0d009b2a2f8 GIT binary patch literal 537 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Ok}>*6&_`RX6dd9dHA?cV8{bNp9A zHm}|jyi3$n{KX4bh4ix2qTrw-EwK!4mES-8n@=lwYdabaBy9JXWApb#r`8X> zE=JogXAefRGW#Uvd;?pu==GL4cMqDrl>9$+f4+<}hfr=@Z0{*K=9%9Y>hWfZCn78{ zFu|~7r`o1~^=Ftmul-M-(EWe+8Qo&l1ykzHMOyc?B>+9!J<> zYzejn?hitNfaK-v@7T^37Oi-u!~Xkl;X@n2YMV%k?yO;)p98E~kqQuk&Br^$xBmkNm?hjth!*zo%xGztdp1Cru=MHV$Qb| zkkee#?mO{h&zGFH*GVnU;7zi>qsF;)jbFR>*e6ZVp4ij2C^5AW;xrQr45#`1)4%z& zlDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@DV$QcM-~a%OP+Gv>q`xT#Mv{5OO*$a2R2R$ee+ n!C|Y?Khv4-e~90x{#QH7q(|^`FeqpUDO!}6+JIyxp-2V*B~J#j literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_045_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_045_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..f705979c09af4fc31b35b24baa9b139d31aff5d7 GIT binary patch literal 586 zcmZN$U}CgdlvY2lJH6 z?-wPeHZ4iacFEQ^Fi0$5NG$o5SO&Li?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?Qo zPur~hk$p=NvmH$m3z$)L?Nr+ou>K5F=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY z&bJhh(_GW;JMm=Cmz=lPNiEOdO|rkE#<_KkU%U6%Cr#0w*weNsF|`rmG!qL9r}_QU zzxlM1x3;6teM1a`s>}E3;2x&bKY#004|ocp+>twglS(_dOx^ zAqCX-cWh@1i&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ENMhsZTQeH-tCHa>oBw qUNB+7VXM+V)0yvoh~KFGS3An2NAPnnC};>NT9laDfMh12NCp5da|X5m literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_045_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_045_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..c5f82a469ef7ec99b9bb3188a99717ac041ff336 GIT binary patch literal 589 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%eKPyb;^3?g7g?WNj{DS^xJ!RubLY;# ze1Fr|*K7-)J~_QCwWv5VKaX)1BS^W~B=6qB+Qbi&lICoh;882)qGFh`%cQ0vFZ|O7 z^OVc)7bT`PElJFF$<{Y8NGxDTEcupL2DfYNim2E6lfw2^iQV{Jy0Gr+)s-*xul`!# zwrDa>+pPVOeM=Iv9ZeDom{E1@RNEA={tQ#+wg2f8y8rJ!qg$-HV9K5Oi*Kxxm)@rQ zY*u2jbVzm8o_FyzCvrl5qw=LiR0E|$0A#5?W1lt1l zJt6lY1=RL;Y-bCLRy@;T|9!adp^f12&Bx@@qW`p=T(+)h;!88;#2mP(Pcr;Bgg3}? t#{X7cFk!)AtI|KyneTsy->CjqJIbU-@N+OIXb34*D- z-lqI)R$|V#6p+(g)9yR*WY3qJx7SH6&)`k6zoW*vb&X%U_t+;*(Vp1TwkR>R5#lrx z3k;|E{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYUPh!ruE#LqEj8J$XY%#V3 z+XDAJA@?B#)b@95XA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7OEc!g9Jr}ZGW<7$ wH^_3v|5jcwVZmXm(m&Ig?|+EjsQyd&dkqaOaZBOO}p>JlRaN@-d-oQJcBpM{*D^w)-`_Z-eaFMMSEgT+oHtO z#wCf_F4_7f7KsH6i6!3>%ivb|{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYU zPh!qDuqBILZ<%xVpy^A=|5Nwp%Q$lg<;KPKo|0pp`F)`tZ>D%6!V&`$3`=&ZZ33I=4jv1F}6f?4WTGOa?SR4Y-bCLRy@;T|9!adp^f12 b&Bx@@qW`p=T(+)h;!88;#2mOE355;-Ug`Uj literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_046_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_046_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..cb0ee25cfb777e4091bf36d9a1ec6155a7699fe4 GIT binary patch literal 589 zcmZN$U}Cgdlv-(5I31abjmSs#_V)h|x-X_#t+th zz8i&frkqbNOD!tS%+F&?0jYLPyYIx4JzsL(UMICYgEz_kjvD9IHGb{hW1loddty)9 zqQun3C5hQC+4?3Hi3JRaCEpUu;8ywl)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qT zG%K@DV$L_PC5v8fnREA`=}XD~Q}^e~ICBW)#>MuYl4G9veW4z2rg$R45(5(qOLnSl z3Rr)Jsq@Pm?tTwlO zsl8j>wWU|Zn+0F03Pki5L*gn8j#jfY`1EDhz_Zxc)8 zuX_AT^)3imz4-bH)BF0mi8teM1 za`s>}E3;2x&Nr|ni(YS;bN8U>OUeIJ_vgzva|q?e#rB?(W1jhap&oChcp}0Q0}~8O zcB*X(Sbv78^V+Gv>q`xE~3H4gh@B`=9^- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_046_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_046_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..91df83a52dac1ef15b5481775a587c306adbdf1f GIT binary patch literal 595 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om`#LCd8k@j(7XEv%^8PAB(N__Ys zcBbTct;xO{g>jb zVzm8o_FyzCvrl5qH?Sp(UT>Lm_n_%Z$^TRL=gT;A2<67b_MVbsp80*D9&e_2BEk{_ z6AVjss%;8be}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($tHY+jbTMr}1D_4H~pQBd8 zpXaPLw|%O#!dgYe4+^o@uFPs*_m`XJ15+B3Ek;a`o1VKpob z<=Sr(OXRP5{7dyN2wA=O`U=zg`nriZ-?o5VLns;$t}(Vmbq%2?L2}LZcWh@1i&i|- kVgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ENMh9|?sH0EmqHr2qf` literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_047_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_047_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5e9f8ea05b8c1fdf87e355b8bca6da160381110f GIT binary patch literal 727 zcmZOtT9jIppI=hkcta~fm4UHPNMUO)-{+Vq50*cWKXz?z_@~WxPxaX5`0afk%EmF_ z-O&p+>1C-!#hLkej42@1u4(t3c(Uh9&fDvxmS^xL+22v)+`7iE-Fxhlrf5&>Xn(Hc9yEO^`G4yEd>LmBq1?FG-cxeSGrup?%{wM_x* z&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o-W+mo)+rkL)3L%dpY%#V3+XD9op+G?L z^7eOZXA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7OEc!g9Jr}_qe{599=Uk!p!}Lm zx6WS|f1>sE@K=Fr+6w|Q^zZ6z+X!(rAyt4OTy0>4>S{uvisb4oC(H}~YCH_9VQDDW zew$b#f7Rn(s&_%i>c!VrnBLddMRN7m?yu^B-Rce(eD~#tvw0*2uKUaT`)t5z%XPkT z6WDfc1V<<#MM#b|06Q8v)vR3+^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEvwLh{i HG3Ofqp7%*h literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_047_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_047_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..5215fa09598e50b0e21566f98e58f72349640ab5 GIT binary patch literal 730 zcmZN$U}Cgdlv1@Q*z8Rzc19|%@j{WSYlv;VaZOl zO#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZFZOYGPCFXqF!U*yTA&(<$F}4KT0`~`@ zKtS^H_IGS&3yW4f(_#O8xbUHk;PK7J+Gv>q`xT$-iO1QTkxp?iM z{F+U-&R-XQqV@IgSAlEV3j#9q@9J&a2yrzbRe&K}ZD54zYC@rkJArt_vMGPc_ap|`^)?LY`|&D zb-r>F*miCNM<^jhNRBoDI~qCFtX&cHT7Od5-YT&hze^X^eZ9K!rT*1l3)~h>=4qR? KKe8_|=Nka3TS-p< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_047_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_047_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..1377f84931ea746a49b5edaccb0a30f7d1386bb2 GIT binary patch literal 733 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1YcJpDm?;mIKaf9mZEyIe&38}r*yi}{ zeILrkG2z|O3pVLxsYS(^`FV^fAl0sE_nmmM=S$Ap>!g-v@Fv;cQRCdY#;@Ib?31Qw zPwZ)1l$hGMBr)41Ti?VYv4A15gR zU(OzkW@YwC%=rekWYOy_bM78AeJS~W>i&EgXAYsn?lZc@stcyvnZNkPI(g}B%Fkvc=6u`22=WRck0Wd`wglS( z_XnXsK=ShTcWh@1i&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ENMhse7YJxVIj; zcTTNyaWx@TfFWFMV1(*wLZOP}>MbYC3;$|7 z469*jDA#_QSR#Mb<6o+GLCEUG*H@U{*VjdI_1EsN>Ve(r4i|j)<%hF*BnGbg%lrFm zz-h~MzH$@Tc5VbmC?Q2ijy3>08adUhT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsd NX`8h_vM({`8vw)%Nmu{? literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_047_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_047_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..b4342b7157ae9cb012820d42630184fe2a2df5eb GIT binary patch literal 736 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2GFW={wDG!!EkUw^9Z}_LpcTe@$ z=J@S>AIiot;oZ>-HtA)lMa7x zlcs1->}gw+nA*4`G210u-^3!ZfFZHuTVfg9D!+gFH=kDW)^;=;NZ9T%$L8;gPOTq$ zU5vJ0&K`_rW%fzT`3AOR(d#X9?jAIKDfxfu{(Ko{4x!w**xple%rn0))Z@(*PefQ^ zV1i-EPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g&eA~hZ@(Ll3BWy9Y z1lt1l2cbYf^78g~Y-bCLRy@;T|9!adp^f12&Bx@@qW`p=T(+)h;!88;#2mP(d!tIY zw;s88?V$XcO}EZp7k{Gl_3&4LYuXC}GW752ZQBTOH6c}iAzW=>gz9QSp^D_{Eho$i z|7tu8t6^y<*M6H=B7fE6U#fRO$m+${SD4<{*F|#m*Y2T>t<8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_048_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_048_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e33e52740ca1af7ad5d52f1d73a758cddc2995 GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNI_=$#xEw}Zzrr#$_h)ijW**fZ>?NUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$ IQew_G0Ey3o%K!iX literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_048_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_048_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..388c66b14c71e37e4e250cd3b6789b7c649fe862 GIT binary patch literal 306 zcmZN$U}CgdlvW3HZDobcFEQ^u}CanNG$o5SO&Mt@1Oq7rxW(!qwSZo2cub;eG+rvN)r?_-ucYs`D5|GCU-+~o?=N-`Tw5I zy=x5?Ssl#HUw$?U%C$qgk1K5_8~66BIMv`OM|{WAVTycSCcYVo6f@ z|DMjhYYi4z9n8&Nel-Q;7($AW9Akjtn8sblG{kDOxK{O^Tz%-?eBpoZRaqLBerYd? Ozb`t!{7F(`&Nl#=T!YvE literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_048_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_048_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e4d5e6e9431d0fcfae56f930dee8eb6a8dbb0bd GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I>$`o=FN;cq9bQOVFdm1cR6@tK2# z$fVDJ$qMO5Y&@@f_IP?(YEf}!ejZ~FBQeSsC8jnmNz8W1);F<8EMQ11`IcA)x6ALJ z{>`VAytN$-2NJe>%(40VqEqXKUKgY7m$L_>S($wjbKpu76f@rW%;ouG@xUf`Lvx;D zNmBX$p3c2%4Hj7)%*|hZH3j4tLW+v-R`s4-edykN;eYQ{SsIsq RX)lVuFFL>cNm63YHvpfEgWUiC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_049_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_049_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..22330fb384066321cf5f7c0654ea75858d9bbfe4 GIT binary patch literal 359 zcmZOtT9jIppI=hkcta~fm4UHPNFlDUyw3hwh|YxPfg7|SYA6d_1Yf~ zkFM$IWvNBQnfZB)vl&6k)!BqKBNvCAnroELYVN)Hg6FYmHxIuR+}yW^El0DCj~TE< ziK$IX60=>h^$iRX3m6hhz9p8y?OMAc>b3r)u)S4cH-48ctowR(OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(W zJz&QX^2?&c)JBNoOe`=Q=l4(l=F>{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Z JaDNaA1OQn2nxp^# literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_049_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_049_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..aeb8945a7e9ac246a24e27f503e5f4d0dabb5dac GIT binary patch literal 362 zcmZN$U}CgdlvM9P0c-6UOP4Q z+8+;(uIcGzsYS(^`FV`989~a`*@QJC7l)miYn0Dw?!Ebf=do!w55E=M+_#4YMTDv0Zwf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{% z%+oe&e`Md1#B3)MgTw+RRBesBj%kS1XmPFTJ-PbOz4^lb-m9`SF8$J86n|fIe)*H6 z#GG$EV8;>i%c8{8Mu_7~EHE7B_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(a MK8ZPSe-H`;0A8M&r~m)} literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_049_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_049_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5f9dc0bc3969d009bbe78873be52fe3f5cfaf199 GIT binary patch literal 365 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}MuCTn${#uB9+3zN)i~H7FBsxz`%{^FN zJ2my%9}kbN>FH&uMa7xhl+SAJz4?OYv1vCCzZKlvw}&l9 zvyP7$utkZfO-mB9U9$BJ3=#_%5=*`%mci{>yCUkf{-m(IRbn@OmoBXPdUfSX{j0wg zxGkE@(>7~=WZ#m+Y$p?g!~!N%ZH>E*X^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd z`IDr?oNql~#}V?&qQuljh~rEwFdXOiPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW P(X7lqi8*k85DEkUYhRkN literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_049_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_049_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c658bd2ebe4f30a8a44ce60e962ae3c610b00be GIT binary patch literal 368 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H%Ju)NOxT8Mnv?`_@||I!{f_ zJy>2lHTBvb509?t>1C-!#hLkejI$X*%GKF~H6s^?otkTu&uZ?y`GV)MX*UnQ72Mpn zhb>35j*l6zMTx0ROA@nPvh@uN5(^j-OTHzR!R=bRBI>pNq_DkJVmE%5F0A`{b>&O_ ztG^bwEt<^JHfw)m-;%^^CliCj0wz>#jk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQ zUvz%?lcdC)Z#`hg5%SBT#MDNJ<4i0t9Ow5>|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4 S%h`j`tjs=%IdFdv3IqUhr<%3^ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_050_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_050_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0365f0b9d54448b6561d65dd081cc0f14d1880ac GIT binary patch literal 358 zcmZOtT9jIppI=hkcta~fm4UHPNP)A=XG`3F4r_y%51D4JI{mliDCeH8&il3d6wWSW zduGX#UY1%^oSC1;c$kqG<$x_pOl?|{nC+6SZ(x*Iz>ru1wr^tMM?bhNYog`)y*0{8f*Cson)4s~2Bi zVR~O*cS&NllZi!Q0aIehHzaL-|MYJ@t>mrkXgH9t-D8f;-xr-)KlHj7ZNHp77|qJ; zlbG`@1>^@pE?JbA+6eK3i2>LT$d)wjI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<; M`Q=ZN5_7%*0J>kDPyhe` literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_050_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_050_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..d7cb81ec6158fa2c40bda8b248af9f5e8402fe5a GIT binary patch literal 361 zcmZN$U}CgdlviA7=oQ)0rznnc7 z&C2YPnDZ?Kv0*bm5-H10a4Ay%WswW{~z>O=SD3;%ns%F?*> SOM6lLebM>lPm&UIz5xKtx1C)8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_050_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_050_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..98d3ac598c7312654d5ae2a88b450c421a5af0a0 GIT binary patch literal 367 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)LEZ%x6p7e-3MdnGcy}t~&j<<|yZ$ zuFm_l`xMSDWP4`GlU|luRGgWg$9R~L80CO1N=$89l9=t1t#4qISiq220=FnZG2@-j zT%JD`4{UNbH0LRnB$fZ~>D;^4V3F0q-2CNN6U*RAx12C9{HyUWtcInbT>EWeiTqWM zf2rODA*&Z(UtxM*Uw27jwv&lPVgXZP$u}fze*g4uKCR@f?PxfVu-#*h&EFTDT0iu< z7;V3tJs8c(?30-DEd}HULM~a9nA!;OgNXsy56G4@?mDI+R-?tWs`upTL-*zj|9h{> V(zx_Xdr|y-(fQ?1k`i;i0RYqbonin0 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_051_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_051_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..87f201511ffd7b6dd276d3cdbc6487aa426c0174 GIT binary patch literal 499 zcmZOtT9jIppI=hkcta~fm4UHPNTHRN?M-jWmax+c%Z~nfdi&Exfgd)lj%#i{-1^4D z>pvG$dRb~wab|uVV+u%hf?~!ypSe7LEFRe8ZfMR^EJ-T=-_yBwt-&IzgSq+3uP#bV zZCsL=?UJo;VvtzCkXZ69u?%iiGVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS7oA`J zBq=fH+iOOUEri^(C^5AOVvB(h*cP}Igxm)hl54h{FfaV8@i450rJ-E=ZDNW1RgZtE z-UT767hhjtdS736Nn*B>iA7=o6RIct{^{R*TFG16(QqJPyT=@xzb`tqe&}^E+I~5E zFq)OwCou=^n6KSm)dRcL9WMCp%MWMsNDN%}m-qMCfYX-ieB~yv?c4|sQ9_CkA!>jb rqH9+~z1E);wzo>`#_!UFbziTpe5rr+*8;ailX==^?T_qB%=rcY_VMBM literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_051_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_051_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9254245e6fbd38815ce0cc83c5993868b9e5939a GIT binary patch literal 502 zcmZN$U}CgdlvfGUu+t06j{bUj`_o2&A2zLyYi>T= z`o_cSKNnMaS!z*nW_})H3P^Q=V#Yh4xjcU?9@yk=XwFkCNh<%})46x8!6K`Jx%tbl zE=o*oT#}gWlC5uIkXXQwSn@5g3~p89u45WvHCkM&dQYxCbZ@@!zxS#vjZ43@7scNf zonQVWDKY2UYetYQgxs_!F|`R|i-8f?7Pu9J+y@wvYqp#)FZ`?VFsz29pEC=>$y?jea3Ep3#~ho#FFLh;=yfsL zemQ$Enw8lnF$eCLuianO1H087F8J=t4`=g83|#k@_xIU=)0XRe>}kL*j#`33;~#o_q? literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_051_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_051_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b1e0c542a4bad21bef4142cf1801b3356870bade GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%m6z>JZ_1Xi(+kUv{(5@*(?)?GHm#0p zZa&=l#>4AB7gKs!YEf}!ejZ~ANOgi@#yg+6Jbx@6*yL_#&QmN&D*xZpxp%F>BCCVB z`OB{^N=$8Bl9=t1t#4wGSiq22@-49pZdK#1V;W*LT3oAoPp&?6Z@%!q_o^(7OTV-i z#org5U;ZR1G3VQBMvyIp+_We$wFzR2ff3jixD|xl2N;rTwwy38{HyUWtcInbT>EWe ziTqWMf2rODA*&Z(UtxM*Uw27jwv&lPVgVDXC;a~D-+WrhTielaAYr@59Gkx{I<`Tn~1^^I&;sO8w literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_051_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_051_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..19fb2b6831a2965c6d1fa4d9d995c5a6d14f0217 GIT binary patch literal 508 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MPbm+eh&%9gOx3(JoFdV2fQMu8tT zt&VGMKHU1o!|Oj6Q+ioyQE_H|9%Bkfb%J8XJD<5ce=Hu@rw-EwK!4RpYK>8e%nCT&sFdu0C{czVN^Isw|C5 zzqA*{-xr-<{v;_e=i6&WkS&DVv?wvP31W+Z5!e>E6@=Ue7?NwYoG>r^tMM?bhNYog z`)y*0{8f*Cson)4s~2BiVR~O*cS&NllZi!Q0TZex{Ql|Rd|Js{+tF|!VY|m1o4+qQ zwSMSzG1`7PdoY@n*(Wgv?wGILU)2M<)g3PQ?#mBn^GFO__m}tg*?`lQ>wM)Vu_%Au6(I~_16NoMU#2jX6=vcOU(HO02+nj A2LJ#7 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_052_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_052_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b61d2540320d5fccc0fed28a274d64551b8b26b6 GIT binary patch literal 359 zcmZOtT9jIppI=hkcta~fm4UHPNMTXXW5=Hcmf!qNWs5a9i7RYccJR&P$$y?pOtepZ z(fDIadRb~wab|uV<7`Hd@}SKpKRy#nmsH%}qOk1c?lY%y%=^Oq9F;cZ7W>?ZRBr)n zQDSP-lEiG6Y<&Zh!~%xIl5dG+aJzP@Z3v-R`s4-edykN;eYQ{SsIsqX)lVuFFL>cNm63Y zw;r(L2>E4EVrnDAaV8cRj`RDcfAeW2Z*51zfrRZIb8P;;=+ye5*Trc2fTAJ* literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_052_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_052_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..952a3d23e1767360ef0fbb2267d5b472003245a5 GIT binary patch literal 362 zcmZN$U}CgdlvA}_+v|YS!z*nW_}*yY(|jspv@;gJ`+oqRNUX9ui9uok6RNhxUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$ zQew`x9<#c2EG?7?VO NW}n0yxIYL50sx;Rq9y^kBgAng78s86`=@{NX(exMN5g@H?H+S%{=Vqc`k~jwX#3^t Q!Dv=ypTr!vKL`Z^0ITJqF8}}l literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_052_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_052_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b183a3f4edd824b935167bacb398f65cb64cf76 GIT binary patch literal 368 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K1>&|}A+2A1FaPGyTVIEgE4T6XZw z)XOH8y+ebM-1OL|#qQE_H|9^-6Akn*6-CqF(DOP5sK-=eVW@wv&lLVgVDXw#Hq@G{kDOxK{O^Tz%-?eBpoZRaqLBerYd? zzb`t!{7F(`&bJ=0;|Td>QDSN%#BnAT7>@J%r+@QlC2wsE|zUb8Yq1VM| T`{nGxXjW#Q#2mOk2n7NFvn`@D literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_053_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_053_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..1081ebb9b89fbb47460ef8de52304723e7f19893 GIT binary patch literal 413 zcmZOtT9jIppI=hkcta~fm4UHPNa6O>CWFi;J_RoypIdo}HAz2j%9QU}7Qdd`WttgE zMu%#qm!%dJXXfWIUStF*U+casQE_7Ni4NEBU)g~+U%wg@xBRnwcRn?9*G75UOUa88 zQ=6A0X1iqT8yF-OFeH|IODu!iwRT0+YyC-Kd#l85{4QNs_x0+^m-<(KEpS@|*kqoz zS^FdVmLz67nj{u5qw3nJwkcr!8K%x_|I;UQ|KEK^w^((-lsoem-&iLvy-oSqtR;!r zP9_G41x%>g8h0Jj5UbJRTGe}U^`U$7h5x-*WocacrM)QrzUch&CrODp-+I7aA`}9P z5>p!?UNW)3@RHv@{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6<{*4eAm{*m Cv%56_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_053_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_053_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..3aaea7e2e2c4e625fbe9728cf95b694ee4ec8ebb GIT binary patch literal 416 zcmZN$U}Cgdlv%J^eabod_4%hHs*?~4+zZw*`{Ih&_J~eaKMtR#y z$%_(Go0lYJyJYJd7$g=jB$j+jEQ8y%c16@{{YhbatHf^nE?rpn_3Fx(`d5D~a9ae} zWS+KJ`y>07BxXCBBo;8E>e{KcDPa8>rp{~s(^==}00Nr^e%dca;H z6atG9QyU>(GO@t$lHWi5n@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#UvAbd|C F=m3K+yEy;= literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_053_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_053_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5d1042dc9e6a25fd24a00dd5ef1065555f13e5d7 GIT binary patch literal 419 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i_S7bW%qKntFCU*i8WgwuvwU|xHFMWS zdD~0LixN|tmn3GpWa}FkBo;6vmV8SrgWI)sMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*V zTLjo-p0-*0Bm0&lW;>cB7BHjg+NriFVEq}U&TIeECv^YceMYxfb-|Q7^B3P(CojEC z`Pr-`iP=sj28jhssM;EL9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8-#`7EPb+zAI~oooZ1x`y}Qd Id`}?g0FlCq4x)AD>%!i8V<-Z_1SK zSr)&Z+hv*=N=AojrkAA_6=&w>FuO(Bxbv0>l+v(7BD21d`m2Y+qHH@)NB1oVSB5@Zu~A?Soihn%9r|A ze=TrZ1lVMrwpsfl`<5hTJDMaGFr(_)skSL#{TZgtYyZgX!IV4m7vESX zFTG9q*{mgr*-j<~i3Lok+8TEq(-5oC;#$>va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1& zIp2D~ULq6%ixN{CAzm`E!0?jaKmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>e LB<3J|Pax<3nk>6V literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_054_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_054_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..14cdb3ce9e9425779197f095e7162d3b4db54cf9 GIT binary patch literal 414 zcmZOtT9jIppI=hkcta~fm4UHPNMY?Vfkhd`8nc&j9e;GHHAV2{)~yzIF0K-eO=y@a zy>rU+^s>~V;>`R!#@UP@?-DghanD>SIIVx?+E%vz+sot_E zF|}z)Vzx`RzJW<%0YhTRx5P5IT|3n_1*|{A)OqcH`h@QPyU*wrt1g&wXa3?F>j0CN z-lqI)){?|*CliCj0wz>#jk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQUvz%?lcdC) zZ->E-Bjgt(#~Fbg2X`4EZy|YN%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ wb-|vn!0?3MKmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<6er03^Y;YXATM literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_054_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_054_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b4cc4ed677a3b9c61169ae798ef17afd75f251c GIT binary patch literal 417 zcmZN$U}Cgdlvl&*&DbE|_v>{^A?! z0F#&Aru=NylEiE$6NAJ8CRA;WyN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4h zq{N(Whrx~`3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuY zruX%A!Je?d@Pyw#{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6=6nMHD?zt! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_054_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_054_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..eedd2eee211c69a5d951a2759b33a39b82061371 GIT binary patch literal 420 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1?J|Ky8O0j2mvS9{bgDH)@a5L67I!YL z5{^x1m@B<=%JlTI)S}|d{5;0lj3DJfn@@gxCYCO#xW7eV*~{H$PUV>Qh5I=wZOSe7 zxf7}0vM4dNX-Q(XOSZm&Nn!y*V#&9}GPqqk)iwpJKf}~{?SJ}&?*F^b=oYIkm~vE=JogXAefRGW#Uvd;E*X^7Qmajoh-x%$w(`NIF+tFkmM{nB0( ze_wQd`IDr?oNtH0jw9q3B*z(n9S3(AA#WjhV#^8h!oM01!)jO>%C+AnmdIcA_?PNk z5VCsl^%bV~^>x9Xu)y$y-#`7EPb+zAI~oooZ1x`y}Rk F0{}uyw|xKr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_055_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_055_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..fe4220a4d9a3a44c01539cd6f713b186d929e748 GIT binary patch literal 555 zcmZOtT9jIppI=hkcta~fm4UHPNI`!3Za0w$;h8^_<{ageRKF*C`rzMrLEX1h94~HK z#@`#BUY1%^oSC1;_?nRz<%<$io0cSIyJYJd7$p`kB$mJ}3fg?~<1?{zNyYsw3d>&Z zK65I^yf56(QE5|dvCo}I^_IjkxY8{r%nSc&JPfO0X(-ozn^+=$)#G2PcR|SN#n)Gu z-q+V%l9=seVv$(Dlvwf&Nt@q4{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6 z=D=O=SD3;%ns%F?*>OM6lLebM>lPm&UIzNLU7f{+guC8jn)Bf` f#_!UFbziTpe5rr+*8;ailX==^?T_qB%=rcY;2rdq literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_055_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_055_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b5736b7e27c5d69b573cd319d656242a55ff261f GIT binary patch literal 558 zcmZN$U}CgdlvjX;W^o&z(s1mc%l+(k&;<3;$|7469*jDA#_QSR#Mb<6o+GLCEUG z*H@U{*VkQ=nC)a@kyyZ#Sn>@?o8LeEn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefR zGW#Uvz-{>2{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0$^-AH_iromXMQ?JZl2> zEV65Ms%;8be}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($tHVf(zx_Xdr|y-(fQ?1k`i;irGO%WkPj9mrZz$&!T`f>}kL*j#`33;!(e#=C literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_055_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_055_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9f0365c71d1b557c2cf7e7315a5343a4625e0ab GIT binary patch literal 561 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}se)?`VkqP0MKa}Pi<&;#vCwuzf-+4jZ zw^ST2Zd%6Q8=hX4T2!2wpU3!`kr?HR5>uO&Bxbv0>l+v)7BD21z%2^eeDdQnv2;nr z{VfX1UhY0~D#yGp+|N;IQ*N=(ok;bT#4@x`y}STZTQ;#RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%U~D@#&IWsykdu)- zYXbHxvTJs#Z3`Tn~1_1na^rHX( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_055_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_055_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..198ec8eae7f00439e6ecfb8d479c86f57cc20123 GIT binary patch literal 564 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I?3`ffLo3E`PPl;#}elvKYbd-~wt zc|qN`R2(mETE^cSo?ez(RGgWg$M~9&80Cu+Q=66~X1iqT8yF=PFeH}1EehIv^5ZkH zbVc!VrnBLddU6PpXWMYw6z?4|>4N05dKmD6eD|u@>8V)3E_n2ez_eH1H54|o% z+b?GiMzb>eB<8?v_}cwdJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f7eY&$p3278u} zlaV}Y0`@GjYj&z_3Rr)Jsq@_%Au6(I~_16NoMU#2jX6=vcOU(HO00*J;r~m)} literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_056_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_056_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..4e68bfb37b2c73632529673d196a1dea5b737abb GIT binary patch literal 445 zcmZOtT9jIppI=hkcta~fm4UHPNMXBlf#uPCMLTMWEC0s4%d-4*w*Jo2RgI5r3MPMC z*{H3NUY1%^oSC1;*uw}?E;D`O7nAU}6V|9?=$%TlJjnRW!9rxxXIUZrh>hoU&mLct znA*4`G210u-^3!ZfFZHuTVfg9F28^JH=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_r zW%fzTfh$c=%y{QBm*-vCO&$9Vt% literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_056_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_056_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..de697067566b4742af8ac6704fd2a48bcd15ab33 GIT binary patch literal 448 zcmZN$U}CgdlvjgM^# zCVyPnsI8G+mReMtnV-kl!w6C?GkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG z9$%E0+PEY!+a+7y#3HePA+h9JVj0{nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_jJ99S z9*kyX_DRfvD@{<$c;_>h=a0n$o7@e}faNKcB$fZ~>D;^4V3F0q-2CNNQ$UU(qzK6| z1{jWM+;vPttVWA#Rqx5whwjZ6{`X#$rE%$(_M-UvqVvn2Bqip2gLs)x2qA1SwglS( w_XMH9LJFGg@7T^37Oi-u!~Xkl;X@n2UzC{IxFj*#C0pObBC&uWvE*A~8Qd;S&bxcF7MvH4z@5$AN?#&ne_g4n~%w*MgM6#xoln2#Fu8wi8gRU(OzkW@YwC%z-OSP|SGeGneO&#RHq%4b6b%DV8La|L^JCyVhWl)xq5SGM%@_XnUX`VB>6iAR`1_*s%bz4A=6r*AnNSEJ zY%#V3+XD9lp};~4n(gn{&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjDmuAd~Io|+k Cd&i3a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_057_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_057_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..dce434ab4332c72ca260f8662e46d44bb05a4031 GIT binary patch literal 670 zcmZOtT9jIppI=hkcta~fm4UHPNa1+>;ThYXJ!F~BXw12H*ZIj8mfI-BMEIx7)$umU zo2EG_y)3n;I5R(wv4;_)TxR;lFDBt{C#+G)&^wi8d64m$gN4YX&$2@L5gX6zo;|)O zF|~0?Vzx`RzKKO*0YhTRx5P5IU4H-cZ$7Q$t?g(ykg(ljj?Lc}omxNix)^Q0oIM!L z%IuSv16P`$nDNeMF3%r}2R6AIn)4J(lFI-0bnabiu*m9QZvOJC!63)T&zId<@UZij zdt`Buvf_gNd7t*pyfY(c_2$mcdyffCf3_$wwE@Y@uianO1H087F8J=t4`=g83|#k@ z_xIU=)0XReR0m;m--CxxMyVV^o`0mROXY)u5 zT=$pv_t}8cmg{`wCa~??m;y4Bki|$IG{Ep+GVl`S^t9nnaK6G!s@W1z}ER9RQ zv=_zS7oA`JBq=fH+ZJ#z5(;&|5Vjawf^C5Z450`>3hwRi*v=Lft$3!x{`+v@LmR>4 zn~%w*MgM6#xoln2#Fu8wNI^p=B*8&LDEttPHoy#;wJV}t>rV>XTP1emcj>~quUA*T W)W7;`f!m_VJZ-b~NA@M=d;UoS+n+sTna^mmrkXgH9t-D8f;-xr-)KlHj7 zZNHp77|qJ;lb8cnnxL5R&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw&>R@jE@~goh$H>o@ z-C6Lk^Ot*Magnm(g8q4*_RYLABWU&J&d+;~2~B^tC^5AG$;_|aU)2M<)g3PQ?#mBn z^GFO__m}tg*?`lQ>wM)Vuu45WvHCkM&dQYxCbZ@@!zxS#v zjZ43@7scNfonQVWDKY2U7H}{U3U$B`wisK2ZGi_2p$I?dzzmwTE23WOPYT;xC3fR?>B73N ZS69B&zxr!|+oH)lZL{`A_9fKW%A2M+DZMPUs5mn}kFkdlq+DkD#xEw}Zzrr#$z+NnC^5BhNn*B3w!Vo)VgW;9$+yHZxLtn#^lv_`rznnc7&C2YPm;+aupqTN_XD-hliw8Ej8=CVJOOnd}_jK-EYp}@bU~c~MtHB`0 z$j_JES@5v)mwRM!k+R}~{&}DF&Ac-sX!YjK&wGyvO@Fp1F|`57%&*;F)dRcL9WMCp z%MWMsNDN%}m-qMCfYX-ieB~yv?cA6GGLw+SNFFr6@L=PvV;W*LT3oAoPp&?6Z@%!q z_o^(7OTV-i#org5U;ZR1G3VPBa4-@Ib-)m|7+ZpEfd>qs2tW$%?eEym78b2|ro;aG zaN$E6!Q-2c$)!dAX*;=WUDL#uX3R)ILntJ{K|?6~5RNv$44SnoqF(Dy3fo&HcH?*H c!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0L)@5cmMzZ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_058_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_058_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..c978a7a037162a36eb7f5e3c6827bd22427ad03e GIT binary patch literal 586 zcmZOtT9jIppI=hkcta~fm4UHPNa3kVQCI3;TRYXoo;xr6cYnJgpYOunyTKy+#LlX7 z$eIMCm!%dJXXfWIrhrsSX%szuD_WnGrda)N;e=yy^EP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a} z>n7%W>tO`hA~SvC7nAU}6V|9?=$%TlJjnRW!9rxxXIUZrh>hoU&mKqEVq$?|i{C%} zn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uvz#WvJnDNeMF3%r}2R6AIn)4J( zlFI-0bnabiu*m9QZvOJCU@sF=1Q?QI3@{wixa*jPSdA9fs@{{U58azD{O`RgOXJcn z?M3nTMdz14NlMK5wgv2ELeYS*#n=*T3)~Zg0t+buw!dRLTUfN>nGXB!!-WrR1dne% YCYKidr|smjbxjjrnlU2<4WWnz0N(up<^TWy literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_058_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_058_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..a8912b565ee4d1831ffef9d29f18f4bfe3abc87a GIT binary patch literal 589 zcmZN$U}Cgdlv zEJ{pmT#}gWlC5uGlvu!!Sn@5g3~tqy6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO* zOz-RKCgyzWVFcMCGkxP1lkm3_)~ICYol3Jj$oR~`LS)isSt0$1jpudG9!J<>Vu4|c z-#`7EPb+zAI~oooZ1x`y}ST9h9J$@y=&1&mW5iHn|&` z^At;x%K!It?pzIaEjTYCc-jk~j-J37`@4YHZ zD&zhgUFShV7q4*T!Jg%526 bk8eIEmlpk}?c}m`O%q?5F(U;Hp@;?m=q&;2 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_058_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_058_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..430f6e883c616c9e008f6d566487eefbe6f68a2c GIT binary patch literal 592 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10isY_8;>R($s)y1AWFZ_3ZyCR?O!rr^V zBKyS7s&mMi1f-Xx78Pga=P{;$R7+_TJ$)-$pOvOq{cqufV{-LjQt#(WZ<_mSTguIS zk1b{_N=$8Bl9=t1t#4qISiq22@-49pZq=3(=7oPX9){JhG?Z(hUktyC7us z;_E9+@9XO(=6vg61lb}ped8CC@V67zsATA!O0zu3_{_mVWYT9@A^nJr=XK8>N7!Ow zfnkf^KmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<8>!l%SaL&Sx&qABzVz zxf`1E6ibrI|Mzt6U2Cw&>R@jE@~dDk6H){il4A@o9Mib#n1)!57T2oYldBKin=kzD zy(&xN(l6~r@%KgNmp@5L%=xwj>}5jHfUw2b5^M|H6NCZ_DFU{?V>??|wBnf#`|rbr e4{ZdGZ$2iM7X7E~hWq literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_058_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_058_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..8d407d922bd3aa8282aec061c294b0046d5ba099 GIT binary patch literal 595 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OmaOHo(qUt2rX#hyDa{C9u5BA@TV z-n+pf`^3(wbI6(mq?e@@6=&w>F{Xf2OKB86eJfg@m8MwzZ{dVva`j8 z%FTU`EoLlAOl@3}nC+6SZ(x*Iz>rw-EwK!4)s_?Hg?}|3hSjh%lxx3DERnzJ@h{c8 zAY}F8>nlv}>+2@weCuHZ*&;K2;}?_gw-eT=WaynrvpmT7%)vrr(q~yA{fLd{b%m}B$zMW@yey)H)EFJ})%voiZ6=D;14pqTN_XD-hl ziw8Ej8=CVJOOnd}_jK-EYp}@bU~c~Mt6(n^QUn;1V+=4H)41!HhFFaj*Q(x=s}J3q zFZ}PlDof+iFYQI~_eJNIKS@f=`L+e@WkS(_u*KLCYzy2IgaQjG0=BqI{ip5ZvUN=pUz#x^1r4Ey1^@`J0r&s_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_059_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_059_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0d6075ebcce5d26a7ebe41db927625ccbfdafdc7 GIT binary patch literal 728 zcmZOtT9jIppI=hkcta~fm4UHPNWpJL-_3jX3%^&J9}eELi@j{JRB7;(9ap8guAhHl zKewkiy)3n;I5R(wv4;_)TxR;lFDBt{C#+G)&^wi8d64m$gN4YX&$2@L5gX6zo;|)O zF|~0?Vzx`RzKKO*0YhTRx5P4pUH|lNKCR@f?PxfVu-#*h&EFTDT0iu<7;V3tJs8c( z?30)SSDK)h@y=&1&mW5iHn|&`^At;x%K!It?pLqRb~;OYTlanDFga<$EfGQ$RsT$ZH5kn;3u{jU0rHyN+py)o5|8>OHyo z(7pM>{{VZh%F?*>OM6lLebM>lPm&UIzCj|2kW&!07#LyLvgL$%;a`o1VKpob<=Sr( zOXRP5{7dyN2wA=O`U=zg`npJ7{@VRjJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^ z&W&I%6HmrkXgH9t-D8f;-xr-)KlHj7ZNHp7 z7|qJ;lb8cnnxL5R&Sx&qABzVzxf`1E6ibrI|Mzt6U2Cw&>R@jE@~d0Gt|8=jglmi~ z!LEUuPskrguHOER?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pv(zx_Xdr|y-(fQ?1k`i;iK_ZHfQxLWo7-875<%D_RUyX-hH7pI~ z+HVs}r zznnc7&C2YPm;+aupqTN_XD-hliw8Ej8=CVJOOnd}_jK-EYp}@bU~c~Mt6RXXA>??3 zYm6O~d1 zc%2`dbh@h`s`$kwvLT|(CtOSJPDYsU?N{Y{Duh!&K}g7J2uGV3fE|q-gpIq7X^7Qm zajoh-x%$w(`NIDId#}pUxb#bVQT%<;`Q=ZN5_7&mB8rex5VjZ?Vc4?egn8j#jfY`1 zEDhz_Zxc)8uX_AT^)3imz4-bH)BF0mNM8Qh{Z&1%TixM;@4ozSHjl)>b$@w(pA9%| zxz1N^0^81wU@sF=gya}ZFRxt@^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEvwLh{i HG3Ofq#Xv!) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_059_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_059_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..299abddc7997453a190a747eb95fd3ca34fef19e GIT binary patch literal 737 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NaVM&HeQ_Y1#Qn;#C|vx~iKvQ%mC zlpR;4x~`vpVL!L0IK3>js5mn}kFkdlq+DkD#xEw}Zzrr#$z+NnC^5BhNn*B3w!Vo)VgW;9$+yHZgkAsiZ$7Q$t?g(ykg(ljj?Lc}omxNi zx)^Q0oIM!L%IuSv16P`$nDNeMF3%r}2R6AIn)4J(lFI-0bnabiu*m9QZvOJCTfnX% zgftydrA4sm={*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#*F0Z zMHRbvogbWZx~m|n_{Ao&A)?GDTubgwMwsyJSLJ&ugi}C4NXTmlN1GUc9gQ4>jk}I% zh}CFut?E6w`p~`k!v6q!ugcQ6^hdEsA; zhha4=4dvQz6HDZ;di+cEE(lq@`1%Ud`}(>_UjEwsRXwm<-Qj}ozWi`DkHo-re|dkO z4LEJN&R1>%+s=((FB4LP=4qR? KKe8_|=Nkaiy+N!1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_060_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_060_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..16f73fe8b84e7b4c1bccda5bbbbc58d85fe29a3b GIT binary patch literal 670 zcmZOtT9jIppI=hkcta~fm4UHPNTDwH#pO3MMXah=gCYce{o|=!68iFSV*OjKdw+b& zHNQPeFH0>d&dkqa>|q2cmzloti%Iy~32Rg`^iHK&9%OvxU?DQ;v#gMQ#K!ZwXOAyR zOl@3}nC+6SZ(@;Hz>rw-EwK!4m)}4An@=lwYdabaBy9JXWApb#r`8X>E=JogXAefR zGW#Uvz?CK_X1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7o4@>O3dk{p6d^gr0K+kj zyN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(WTfkl>6ha7Fj4i>oz&$}I zu#kcVucwunREA`=}XD~Q}^e~ICBW)#>MuYl4G9v zeW4z2rg$R4(FP`9M(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g& Vdx`y}STl_n@=yz`mM^T*~DSQ#K|w#$5O2%ZjS4k5Akx>inSJ#S|Pgi(YS;bN8U>OUeIJ_vgzva|q?e#rB?( zW1jhap&oChcp}2l1}0!fBgfNDwM_x*&oFgf`=36c`~U7Uy2Yvsrrepo_{KVU>21o- YW+mo)3kHQhA(t#lOl?4NI3YIy0F>z@$^ZZW literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_060_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_060_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..fcdbfdc7ecfc97bcc421e904794173200f13e351 GIT binary patch literal 676 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%F8IaeH#0@7s#t>}1b+SFsa+EK@^NDQ zTdjM4e9ASyJxec3Eh^5;&tvRi1Syx9zVVAm_}d9CdkbcC* z^SWn`FG@^pT#}gWlC5uIkyyZxSn@5g3~ra-KmD6eD|u@>8V)3E_n2ez_eH1H54|o% z+b?GiMzb>eB<8@CCMagS^O?)@$Krua?uO<(#ge4*|2>_1*BUIcI+&Zk{AvowF@zK$ zImQ6PF^#*9X^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd`IDr?oNrseUM3Vm2wRLT z!M4CXK`5}0f(Eed@7T^37Oi-u!~Xkl;X@n2Lm_n_%Z$^TRL=gT;A2<67b z_MVbsp80*D9&e_2BEr!ICSXS+$J0)=O#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZF bZOYGPCFXn!28BN%mn=$5Z9sB3AvXa4teGU! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_060_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_060_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..67d3becc50608f10dadc322bb1d6f8f75c02ac80 GIT binary patch literal 679 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MOJ_{HTnGexYbSc4)2e*NRAT@w28 zabo>jt$Tlb$~C_|OD{_;D$dN$W9(rBDVLeP@rz0L+X-t_GW1TRSsrA3=3pT*>9eem ze#FM}x@V6sN=$8Bl9=t1t#4wHSiq22@-49pZkOLb{hLoKd22fw4kT>%m}B$zMW@ye zy)H)EFJ})%voiZ6=D?LEC}zC#nalIX;(<->hUPrQlBDwgJ)L{k8Z5Fpn47=+Y6{3P zgcKn;#sI@Hjk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQUvz%?lcdC)Z(G1#CKN&l zTZ}Eiw!l3>D6o)%2C(h#*v=Lft$3!x{`+v@LmR>4n~%w*MgM6#xoln2#Fu8wNI~;3 zJ~Ygym-8`m-0xF1CN;)f_vXurs;!St+$!q)px?z595jnwZ<%xVpy^A=|5Nwp%Q$lg z<;KPKo|0pp`F)`tZ>D%6!qEmMU`Hdz(@wQb0qf5&bzb|QKB4>n?lZc@stcyvnZNkP eI(g}B%Fkvc=6nkVg+C#eEJ{pmKyo-CHvs^-^d#5- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_061_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_061_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..4659c3dabf48b4b7fc8a0feba6ffc2bcef6fa9c2 GIT binary patch literal 725 zcmZOtT9jIppI=hkcta~fm4UHPNFnj>#X}8Kk`^lRWqE0qOqg)>HRI1vkp&am>ee1+ z?M+#bUY1%^oSC1;*uw}?E;D`O7nAU}6V|9?=$%TlJjnRW!9rxxXIUZrh>hoU&mLct znA*4`G210u-^3!ZfFZHuTVfg9F28^JH=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_r zW%fzTfh$c=%y{QBm*7~=WZ#m+Y)6yC0%lY{>{Qznu>K5F=e7Uo6T1KJKBHT#x?swk z`HOF?lb7D6{A^ZY&bJg$KoRl)Qb1ukt#Q{e4Y3+6u2sD!S0B1JU-;j9RhGu3U)qb} z?~Beaf0C4#^KA<_001Ktdk9;MEx`c*4`4zOi4<+y-?5!7EL!nQhyC~A!iP43$2T97 zON;)~c5>Oerim}jn31CGNrwN1@CI4V_}|J4CM-B?Rr+T-^ZgI;8`b}6N15~pehvl& Q4IxE~5>p$H%p?@a0Eieu&Hw-a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_061_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_061_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..73c78664e0a2d92b1ccb9798e0245f0d825e2588 GIT binary patch literal 728 zcmZN$U}Cgdlv(d1;nRm~izqh=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDr}VAq&U^6o9H zP5dw^Y0jnz9<^dFDuyY$Olm6f!asd5Pr3YlQDSNn#5D#67_M2nBI>pNq_DkJVmE%5 zF0A`{b>&O_tG^bwEt<^JHfw)m-;%^^N0Yi1yRNEA={tQ#+wg2f8y8rJ!qg$-H zV9K5Oi*Kxxm)@rQY*u29g&rp#C z6Wi+69%k)LS&&|qT2!2wpU2q42vROHed8CC@V67zsATA!O0zu3_{_mVWYT9@A^nJr z=XK8>UzC{IxFj*#C0pObBC&uWvE*A~8Qdbuc%7`PErq*O*Q6 z?k%iM{4gnL&ZY?-wPG$RhAF#DYAW)=KYcJyx%_@nVrmn_H3kM4u35Vx>b3r)u)S4c zH-48ctowR(*D--lqI)R$|V#6i`4B@&HmmVLGjG*D(#T8ZE9>y(d>6x;J0=-+NV- z#-(4{i{kH#&M$wGl$i5v3pfA(BNTfGTZ}Ei0RRtRLJ^4+ZQI|moh>X{@l1#P_u;~a zHiE}DACpUq{?m4H*}A5QFU^>dqU}kB|Az1eS W^ay?q1_ccvMT-(s8<5N-6v+Us6GGbn literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_061_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_061_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a7638822b60d62b922a499f35c06ad56cf17b65 GIT binary patch literal 734 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H&1@5Mt6Q<4@c@@08xmQ0v%^)=(q zP>}@_+v?UHX6;Q`kY1KrRGgWg$JoONQZ6%n;}?_gw-eT=WaynrvpmT7%)vrr(q~yA z{fLd{bgRU(OzkW@YwC%z-OSP|SGeGneO&#RHq%4b6FqB}wJ~dph^7HCSYIFgJhs)mdQI zm`(ETEv!xaFez!yrU@RkVlFC%DZ5N+D)PcVeK1eC{C-hlY7@jY1_l_eS-T?Ywf>~A zy;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`Md1#B4{C!~$kiKkQW76tMmbQ|Gn+=@YvD z?>?hjth!*zo%xGztdp1Cru=MHV$Qb|P(Ts#08&6lS_;K({^&%x~7RQ&6ts*?Ma6JhVTYi&iLQT3nnZ$Y*qSaI`jPx@f+3u ZYDby$2!0L*1q~rZixN{Ckjx|$$pE{7Lf`-Z literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_062_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_062_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3009f901c7ab3394b1a33067ea069a966105972 GIT binary patch literal 728 zcmZOtT9jIppI=hkcta~fm4UHPNMYCYrG1~PCOtjPv@u%g<+uFK?z)J}PbP;bmGrw^ ztjd|1UY1%^oSC1;*uw}?E;D`O7nAU}6V|9?=$%TlJjnRW!9rxxXIUZrh>hoU&mLct znA*4`G210u-^3!ZfFZHuTVfg9F28^JH=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_r zW%fzTfh$c=%y{QBm*^==}00Nr^e%z?Lj}y=BhbgQhPf|4-eY zFXPN1lp7b@drFRZ=J$nqyqV&O2ulo1Ff7@rwkcr!8K%x_|I;UQ|KEK^w^((-lsoem z-&iLvy-oSqti+seTfpH;C>jv97+ZpEfrk`egkl6K{I|bjJ6l+^;+YQn@56-;Z3K^R zJ|>qI{ip5ZvUN=pUz#x^h5wab|L3UH@aH+J&2675t*};6@qgz9QSp^D_{Eho$i|7tu8t6^y<*M6H=B7fE6U#fRO$m+${SD4<{*Gh=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fBDrEkYflbLUN1& zhGQCc9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8rp{~s(nGXB!!-WrR z1dne%CYKidr|smjbxjjrnlU4V|CL|==cv{2=Q*p*ZJ#QwuvSs=gF@`JE3?|y{pIHQ zz?23_4TMx7Ty0>4>S{uvisb4oC(H}~YCH_9VQDDWew$b#f7Rn(s&_%i>c!VrnBLdd IP0aZQ0PcE1XaE2J literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_062_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_062_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b280b085e8d118bef065cd57a0fa0bccec2bcc66 GIT binary patch literal 734 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1*Y%}+pQ|Q4JUzC{IxFj*#C0pObBC&uWvE*A~8Qdbuc%7`PCGVV+bii za*P3nV;XlI(-5oC;#$>va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1&Ip4sREPB0V&fSBi zFD3s^-JdVx%psH;7u$PEj(O(yg?hZ1;)w`L3`{UA*{QZEVEq}U&TIeECv^YceMYxf zb-|Q7^B3P(CojEC`Pr<*oNrse;YuhP5Vjawf^C6^6kvp61S$NtzhgUFShV7q4*T!J zg%526k8eIEmlpk}?c}m`O%q?5F(ZZlm0$nosMYZ2IjhZWpDL}eR#EYTLhQ9Gv)b4F z<>vXolmE*Zl&hEO1 z%TFeUD3$cPU98HPnqHP#RGgWg$JoONQZ6%n;}?_gw-eT=WaynrvpmT7%)vrr(q~yA z{fLd{bgRU(OzkW@YwC%z-OSP|SGeGneO&#RHq%4b6FqB}wJ~dph^7HCSYIFgJhs)fA9p z2q{8xi~)vY8h0Jj5UbJRTGe}U^`U$7h5x-*WocacrM)QrzUch&CrODp-@ukEdc9@N z-GintCI3&|pD*LgA(R^z+j~lmdFJgX!IV4m7vESXFTG9q*{sBzZ(G3ON+=o-wisK2ZGndrV1!}>Dg3v;V>??|wBnf# z`|rbr4{ZdGZ$2iM7X7E~MbYC3;$|7469*jDA#_QSR#Mb<6o+GLCEUG O*H@U{*Vj$V`33+Mz(RHa literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_063_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_063_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a67b2bd11080dfbbc78151cd837654ae7342539 GIT binary patch literal 869 zcmZOtT9jIppI=hkcta~fm4UHPNTK9nPwWK6&8L>OZrZsdTS7kc)&b2tj@i5W<)#UA z#b(}4FH0>d&dkqa>|q2cmzloti%Iy~32Rg`^iHK&9%OvxU?DQ;v#gMQ#K!ZwXOAyR zOl@3}nC+6SZ(@;Hz>rw-EwK!4m)}4An@=lwYdabaBy9JXWApb#r`8X>E=JogXAefR zGW#Uvz?CK_X1w#6%k#(Lflcm)<~+rcr1JkgoqN|BEV4S7o4@>O3dk{p6d^gr0K+kj zyN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(WTfkl>6ha7Fj4i>oz&$}I zu#kdg`#ZL?g+(i#>9GGkT=>vN@c8Cqa%s_j+D}apn-pjf?F)CC5DT z`$9e5Oz}j7qYX^Jjz*5Boobr`)}LYOy!JnRLihjOXLO5I7fiV`fANiV^3vOspUr{? z4I!rhhGdHo*cN!u5ON<<&}=zjUieqzVOR}IL%H_b#1i?d9{*Ck3qn>ezP`frzP>I} z(0uLwsvg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB=PNgXZ6_pX2q{8xG-j$7~=WM5*=HvrPAgIxds literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_063_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_063_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b2af04d233459d24054d084a8ade4b765d47b802 GIT binary patch literal 872 zcmZN$U}Cgdlv;%Qlrx`y}STl_n@=yz`mM^T*U?>_|Qi1_~v7BY0-b$PA*&5H1VYwGg8p(jVj^ZdgS7@ zgYs)O-8z3={E61r!(RoiX)g%K(7&s_y65zbcs2{CnRVHDME5IW~y1cBI>pN kq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0N_T0VE_OC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_063_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_063_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..daddd0e3d4a1ef35997745a3e1fc4b9e335e5d1f GIT binary patch literal 875 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%CdkbcC* z^SWn`FG@^pT#}gWlC5uIkyyZxSn@5g3~ra-KmD6eD|u@>8V)3E_n2ez_eH1H54|o% z+b?GiMzb>eB<8@CCMagS^O?)@$Krua?uO<(#ge4*|2>_1*BUIcI+&Zk{AvowF@zK$ zImQ6PF^#*9X^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd`IDr?oNrseUM3Vm2wRLT z!M4CXK`5}0f@b?WwzGvrE1v1F|2|y!&_?k1=3{bc(SO=bE?d_$@ue9vQqb&;D&gLG zE?5M1-RaOu&vtj;Eb!n*!FKVd}j0KYc>?|J`SFi&Ym)xif$9jdk+U z+mxTpf(H#DrvQdzixJosc+e1XA5ze4IbmM-SL0z=4NF70_S?h~`KuoPQoRd8RxiH3 z!t}nrE>h5Z?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T*@BxndJLUJ@_s#&`t n>b3r)u)S4cH-48ctowR(4V$L@J{`G@u literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_063_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_063_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..8bfc562cdf4c6f67c386a82ea5b6a55670d5679f GIT binary patch literal 878 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MQVVo&S@#m%Rdwr<+FBwIp0^wt5* zJdWAB`{kwybj4=gPA^L>D$dN$W9(rBDVLeP@rz0L+X-t_GW1TRSsrA3=3pT*>9eem ze#FM}x@V6sN=$8Bl9=t1t#4wHSiq22@-49pZkOLb{hLoKd22fw4kT>%m}B$zMW@ye zy)H)EFJ})%voiZ6=D?LEC}zC#nalIX;(<->hUPrQlBDwgJ)L{k8Z5Fpn47=+Y6{3P zgcKn;#sI@Hjk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQUvz%?lcdC)Z(G1#CKN&l zTZ}Eiw!l3>D6o)%X8Sv~vxP+~p6RgvK3w?FM)3INV{&QHf7(tiTh}!4r5Q6)(Cm#W z;of@W;Y?ar=4n>0@j~l>b&+peM0yD-Dh-*RToUTGk@`o zb@I~Nl%LIl2Mr;o0ET3X5!e=Z&=7JTQqXKUVP5!G<6&40OGCN#+r$$2s~-PSy$eEC zFTTFQ^uE3>QqX+u{;D3>t?qEacVB)un@3{cy1%@?&jy^fT<0q{fo&%wXb34nax`YD qS-T?Ywf>~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`H@`&Nl!MLW6Gr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_064_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_064_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..bbd4ca00e3c83094be4e289edc5720d1dc1b1fc0 GIT binary patch literal 161 zcmZRuT9jIppI=hkcta~fm4UHPNFgjmWL0h~x62&mp$OBxbv0>zi067BD21d`m2YTcv(T=p?^<=ytb^iI>(* bxopNd?`6``iAHwb^9~j-W1F3unDY$)oRmHB literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_064_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_064_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..d16c27e40e5c3683c5956554f701566a33f69a2e GIT binary patch literal 164 zcmZQ%U}CgdlvAU*W} literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_064_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_064_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3e5f25fe2245d6c3274f24be98517c2cf53635ea GIT binary patch literal 167 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}MEJb8hZY;OU9OdNtp7$q1q~#a`T;f)3 zXI=N0w>VidBE2lNs5mn}k1>T9)r%5S8dOF_a{T7r6US0W8|LU&=Zi^=Kw9VQd*|#Jy+sVW-v49CxoBAQ4ll=0b+ubrIURpQhvKi~V Wmq|+}8rgZzJ6ODoZFX*A&Nl$Pm0h9$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_065_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_065_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e1fcc8c0d2947e44df95d5ec7c337966a2ff8cc GIT binary patch literal 220 zcmZQ%U}CgdlvaPWEizf55&DtN?w%LxH`BMMtuLW+4CiAq-+8^1sBr)5`#4@pf300f=A)%A}@}b+^GA3SH cH|4S!>%5mqOD7uHdCxmoyo_yjZeq?i0La8$uK)l5 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_065_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_065_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0a4abe2ea3e22cff5810b56658f4697d8ce85452 GIT binary patch literal 226 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2Nw!{k72`M4D&d=B9U*P@!;gn`d zW&EjgE5nqtN`xG3(#ukdiZk=`7-usQqkK_fYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+p ztv@MjZUORh#-Dp_Babq1)Xu fCSF=M<+2&;yq8H!CmPv#&pTMWjBR#qV$L@J%|>0c literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_066_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_066_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b3a76d5ade297e4172aa6fa33ed23214ecd9f7d8 GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNFlmt{_^`jweAZTX-R#qp6ZxWb2>6bGY7Eb?S`_7 z*2aq;rF{Xf2hoy+D%8liAnWLOs-}C-th_oDIfJ@w}?X2q_^A;y-Ml4E9 zZCsL=?UJo;VwqULkXZ69u?%jN`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpF zc5Y(Mw;o22Eri^Ju*JX#Yzy29LheIy&6X49g?}|3hSjh%lxx3DERnzJ@h{c8AY}F8 O>nlv}>+2@wd;X=h=IxaoAOWdmMtm_{07AI>) zEJ{pmT#}gWlC5uInOMM(Sn@5g3~rVBA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmo zyo_yjZeq^29!8KYgxrL%#lQ$`3)~7q?n83TmJ{ZMe>EP4)vz>_Yrjn_k-zHkFV(vs RWcA|fD@^a}>n7%W0{~DKc$5GD literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_066_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_066_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..bfc117bc9f14f2dca412bd6ed0c8df280daccf4d GIT binary patch literal 309 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}Mx@i9L`#-hr3m9oheXgGBm{W5)GDR~7 zu;lHAvWnKmiyx<#r4|)u=I1e{fK-R2h^)$u<#w5)oLt}Y{$z->9Akh>+^X%Y>mKtK zCu>G5N=$8Bl9=t1t#4wPSiq22@-49pZk75Wp_Babq1)XuCSF=M<+2&;yq8H!CmPv# z&pTMWjBR#qV$Qc7MvyIp+=Q^jzzA#$+zLYOLvqcQ6Xu0~H6Di5ur!owzfCNWzv}TX U)w>{M_2TO*Oz-RKCgywt09xO8od5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_066_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_066_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..817789ec8860dda1b1ab91f220971cb2a900fc9d GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H%VX#Vp1Keg@)7->m;uAb_cQ*$~p zMKcGmrw-EwK!4mHHu}ll=0b+ubrIURpQhvKi~Vmq|+} z8rgZzJ6ODoZFX*A&bJ;$kS&DVgs{cH2y6@73PSEfa?O?#=7oPX9){JhG?Z(hUktyC7us;_E9+@9XO(=6nMHVGnqs literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_067_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_067_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..36a1158ccdcb29504bc4a603b02485e737c1538b GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNa2ja!~L4YdD~yqpVfGNFX!uXiG1Tu3yw9S6N*{x zW^{f^FH0>d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{2wMz{z_!4xAmlzI*K9dqUieqzVOR}IL%H_b#1i?d9{*Ck3qn>e zzP`frzP@f^4&2nQ-CxxMyVV^o`0mROXY)u5T=$pv_t}8cmg{`wCa~??2o4%TijW*_ v0CqHT(5zh%^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEvwLh{iG3Ofq@f^Kn literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_067_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_067_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..0df929add3014826cefda5d809d6643723200c8b GIT binary patch literal 447 zcmZN$U}Cgdlv){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15wM)Vu=4qR?Ke8_|=Nka{6uoHx literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_067_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_067_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..38024a8e72ef33eb9ee172cc4b4e84cb3f06e2aa GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10ijKahHn#FnBU(}z~cz!SE>vM^G<4y~X zHKG%WS?*?Zeo8M(Eh^5;&tpshsSZmKS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNrqgLADTb6JQ8i42;0Gz^x$UJ|x#{IbmM-SL0z=4NF70_S?h~`KuoP zQoRd8RxiH3!t}nrZekAH)UVxN)dRcL9WMCp%MWMsNDN%}m-qMCfYX-ieB~yv?c4|s z8bXSY9Blx0G;+|aT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vqC4 By>b8m literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_067_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_067_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..6aeb4583e1807acb20e7568006c8132f9556bbbb GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om7!o&TV#d+Ib)SuOOelO?ibBTQ8 zP797Tq7#Z)?q+m;N-s+-D$dN$V@v_54oeYPl^e_LGDkVNzUTeP5NSEa0GGH`+gaB= z<}FUvj98SI+PEY!+a+7y#4@pfA+h9JVj0{j^+Q4@`Q<~myJbwgv~J2}GuC-8la@|2 zvh$vIuy`5U?A*khZ(A5awh(d?UcK`qY literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_068_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_068_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..55a0e76f40d89a6b41486dbf0e49ac6e9b5b7801 GIT binary patch literal 217 zcmZRuT9jIppI=hkcta~fm4UHPNWr!@xsE?gzh|p|qNBJ>O|w&JrQ?xROtC#v*_|Vo zKAVzWmReMtnV-ivn~@mhixN|tmLz7oWa}H4Bo;6vmV8SrgWI)JZBxMdGfbV={-;mq z{=fT-Zn5fuDR<^CzOhbTdYkgISxXYLolGnf3z$%~sUH$L$uA$e-7RC{rFBy-o3YM& WnY47Gk)8LvgT>3(X6Gj6d;vr}oMuO&Bxbv0>l>IP7BD21d`m2Y+qF||Q^5K&Or6*M zr%&kqzx#}CvFd^;cjhm?u})rkoAR?+OA@o4Oe_-%m{7H;9}+srFCV(yEo0)PbyF^z ZvCey$v~;48o%g(h#mm@c=O*TS0|3+fSk?dl literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_068_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_068_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b098b3938eda0684e19feff2243d69a3b99ae1e GIT binary patch literal 223 zcmZQ#Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10Cwl}$sKTW@9tAC=SxJ*s6Q)#8+kyT8w zJyY48BbPp#l3tctRGgWg$2gmj80Cu+Q=66~X1iqT8<->(FeH|IODu!iwNq_V!1^;x zo!9=SPw4)?`;2a}>VheE<}bdnPF{MO^0Qe>60@C5EE5ZuP_?Na5<1B*AG+NwW8$TC cQ!bma&U=}(bfS@+_q>C}%h+b;Cgywt0NcM<-v9sr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_068_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_068_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..fec45d3021d671b97b969116c34405913f16589c GIT binary patch literal 226 zcmZQ(WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NbHH@S{KO}}TWf1;zfOii;>X{FEU^jBc^&f+=_AFTSx(UV5AIvsp_Lvz<&V6APG7wW%KxI>|2|y4@{f f;-z&{E}OB=dzrL!qLH2Vyo1Hd*k~V;>`R!#*2)^C|{JA+Pow&+a+7yz#y@JA+h9JVj0}7wJV}t>rV>X zTP1emcj>~quUA*T)W7;`f!m_VJZ-b~NA@jA%yu+MEMP{}wNq_V!1^;xo!9=SPw4)? z`;2a}>VheE<}bdnPF{MO^0Qe>60@C5EE5ZuP_?Na5<1B*AG+NwW8$TCQ!bma&U=}( UbfS@+_q>C}%h+b;Cgywt0GB~}p#T5? literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_069_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_069_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..83cfb94239360fc4d941f22894843b52b6d96700 GIT binary patch literal 277 zcmZN!Vq#=qX0}?CT9lt(QrrmG4Xp@O2F5}m1(y%c_7tzWE!A?9$9#|T30t|0Dw`#t z5|1`~S+`-;E|#?PvecsD%=|pYi;To5UzC{Iyd*K(C0pOXAhCcUvE*A~8QiY5E23WO zPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_AN=wb~H&WU`ExoQ*Beg`ZG+O*Z!wZ z=>EU^jBc^&f+=_AFTSx(UV5AIvsp_Lvz<&V6APG7wW%KxI>|2|y4@{f;-z&{E}OB= XdzrL!qLH2Vyo1Hd*k3(X6Gj6d;1u zQ{OI5FH0>d&dkqaoXrSQZrht&$DgL(v(-P*QCy~`*{QVB@yIHs*q*8E&XG%>O#y6C zVrtWp#B7&reFKxk0*1trZ;54ayLPH=3Rr)Jsq@iDhB|6RI}#LqaF{i%c8{8MyTVAz>b5vjF7jGJhA13dEsA;hha4=4dvQz6HDZ;di+cEE(lq@ O`1%Ud`}(?xIo|-kl9z7) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_070_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_070_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..af094732f1fe9fc782f83cfdcc0213c7e1ac7792 GIT binary patch literal 365 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10ihxoNU>76r{2{|8Y`|&8vM)!`=Ck2_) z5nP>8omErcE>15?Eh^5;&tsg;2vTm_n_S1Arr)#GKhaTKrl#4cw9@g&DyG<;sqD^? zOP@^vY*Aur(~`t&mu!6llf(js#FB4`WpKN8s%;8be}<{^+W+(k-T!x=(JfY8Fy+qt z#W&W;OK($tHfu>@wv&lvVgVDXHuXb7C;8<=x4UIbytHo0Wi!@!FO!x|G_v!acd&RF z+w9!LoNql~#}V?&qQuljsN;;lj)S|5khhRLvE_t$;a`o1VKpob<=Sr(OXRP5{7dyN R2wA=O`U=zg`nriZ-vG>0mv{gG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_070_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_070_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..f9153ac1062b7c09b35277b33ef02a4b6bedec5b GIT binary patch literal 368 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om2__aOhoimmRIUj5L@hHtk_m0vh z1)0+kT%A&#Ra4(CPA^L>D$dN$W1P(hQf}LuT*sfL-?P;}(NSEcrrD{q((%YDrr4gT z?9P!(pG^U5QDSP-lEiG6Y<&Zh!~%xIl5dG+aJzP@Z3g#>wR;?=#Y-Mpo;<6{5-l%(pefq( zWB2p)vecsD%=|pYEsVq{UzC{IxFj*#C0pOXD6xPcu>@|BZEtcNf0};JR{umtahaNC zr_xHtBdeHVd#18GM=pIfC9w>ybju0z!oM01!)jO>%C+AnmdIcA_?PNk5VCsl^%bV~ z^>q_-;7Y%Ce^n3cR(H7IyDvYS%_A{z-Cy3{X9G@KuJe_f02tfOjkCe7CS>=b#MCCJ zt4+YJ{)Xh5oobr`)}LYOy!JnRLihjOXLO5I7fiV`fANiV^3vOspUqm5nC)a@nOMM- zSc0rg{gBW}e)-VtZW$9Vt($V$jCJ12q@@#$?7Zh4EMCSoJ2x@sTM8&d3HbmiL=7<9 qwsu9-YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m{>Z+>oNoZH#L?;i literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_071_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_071_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..f7a96751fc2c83d48b9c5f2e3cc157ac8eb24ef4 GIT binary patch literal 503 zcmZN$U}Cgdlv|KfhNdmN|5OCDLCJgdqQEiZqd zDcbX6_w)3!)S}|d{5-}jjKnBkl$hGMBr)41Ti?Jav4A151a6USZ*m=fntsn#|3pV| znVM#&(n`l8tC(VYrm{OnE`2s7u?((s%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L z6{h#~brW;oO22l0RS)b|cevoYFF%~kBQbE@U*6wm15R76^Oc(b7~9T`v%#(=WcQ-P z)F!B_O~9`HhUA)^YMTPqpJD2}_CI|>_y65zbc7RQr4x%H!3g8V|#2SQ^T;-zJvGU-kHx>Rk}B zdhzuYruX%A6La87zjl9B5A0TVxZt}lKb*}YF>u{q-rr{fPFt??m74$<+s=)%!LBA` z_oBqqCa9}Tz^?v=?|J`SFi&Ym)xif$9jdk+U+mxTpT9TOU zWMY|Ez?4{mtWEup&`Eyz(Cuy+6ECfsa@mY^-piz=6OHV==N&9w#x^@QG3Q$fC`1YQ w04YQbFx<9wMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*VTQr%cZPxzCzQmkw0LfC(_W%F@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_071_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_071_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..6a70529bc578f0e9e064cc48b7111ef9c6c61ba5 GIT binary patch literal 509 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)LDSBSJN`%as4(ezkiXr^QPiS)M$r z$`UOvf1oMa^JDk(^s>~V;>`R!#x0D*C|{JA+PEY!+a+7yz$meRA+ZE*k!^2s9e{fTU;JYtBoXsOKaNS?t-)93(Tdwn!n*bQw&W*Fd zt|nynqQulDsH;uDuKtGPnw@H!0@j~l>b&+peM0yD-Dh-*RToUTGk@`ob@I~Nl%LI7 zl9=seVwqULlvskSP5qG2Nq+gz?QR(pFRhz$*^G7G%cP|fjqJSV9V}kPHaj;l=UWOW zL<#u-DMSr0+_rW_)NB1oVSB5@Zu~A?Soihn%9r|Ae=TrZG?}Mu*8a%8#GG#c(_7K} literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_072_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_072_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..ae60951b552053f8192334bdaa0ee64a3875e501 GIT binary patch literal 387 zcmZOtT9jIppI=hkcta~fm4UHPNa2L@PyPwB4s4ffaDBGzg}S9=P1e!w^bW1aUhY3W2GJMVc1i{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ J#+;b*4FD^~qBZ~k literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_072_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_072_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..3ecf59ef2a4e62a010b2603c5ccb7a7a9f6817e5 GIT binary patch literal 390 zcmZN$U}CgdlvBZ)~BbJr4|)u=I1d6gH#7i77j69lOQI?_9)@et)t%?9~t!BQSrQ#R;qDf&bG%% zixN{C5_8~&hoy+D%8liAnWLOs-}4@@lOfV_i~%ljtG2VQd(2y$tQnC4GLw*^MTx16 zOA@nPvh__Y6AKs;OTHzR!EI1KBy^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*x zP0ab$!w9m4kUtT&7(;AB>t78Pga=P?F@R0mBK4l!PnASTE5DB;nqqu(1J8T8#z@w}8)s&Qe? zw#P|}5>p!zbKr)DrHHJ`jpcTkqnupd^B%C1A<}Y;0WNW?wzIB#%v+qS8Ib}qlaQiC ziK&fC60=>h^-U}j3m6hhz9p8yZBRcXbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^ zvCYm+%=y;C2(pEcKM}SVLu`RtLCDWYuG#*M?QCJuif20PzYiBav=KbM`IuZ<^q;nq P%hokbd}+pvkq*RY;b+H?S;CfWKGu9 zZFV6%0F$RNF2Tc|ZFW$P(LJel3zY_yIaP@OY5dwHe;RlGHK~VBRlVT z2aA`n&CX5C`PRb-vW1X85w;jZY=K)r$j?Zw+5V30Y+=!gXFBY^4;MbP5j?*6m|R-) SpSF|B)-_FhX~vwG^9=w;YobU1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_073_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_073_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..a710fb9750e9c890bd92c5074320ea5bc83eb17f GIT binary patch literal 612 zcmZOtT9jIppI=hkcta~fm4UHPNMRO_^-t?qEacVB)un@3{cy1%@?&jy^fT<0q{fo*)8!M+SX&R6H-Gm1{Ja}#sEZD9o2LMZG2L)c;ru?21gAwMIzX8Sv~vxP+~p6Rgv zK3w?FM)3INV{&QHf7(tiTh}!4r5Q6)a1)9haL^En6NIA;3^0Ob?TV<^`jf);R*BvC dUAnOD>(!Mn^{@U~;I?QoPur~hk$s6d-vD`d5G?=z literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_073_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_073_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..f8f62aad3e78cfb289ee9460c2d52b831725b932 GIT binary patch literal 615 zcmZN$U}Cgdlv@%N_ceZ==a7)27Px_JTIk{YFwDJ?Qs&CnPDj+t8!zxUFIk!*Y~_X86qvm7~m4O zYCG$?$GpYKnh_}=cM?*xC^5BhNn*B3w!VpFVgW;9$+yHZxU1C<37zDZ58dvTG4ay6 zDVNPy=e3^d)~p~Wo)x^6LY?8VFcMiDC_`3*kTN^1#Sf)KO?zj`#ZL?g+(i# z>9GGkT=>vN@c8Cqa%s_j+D+pPVOeTg~W0D}+^F#rGn literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_073_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_073_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..a44e9b7b71512bfe8bba3fa18aff5142bbdf2745 GIT binary patch literal 618 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~17LWB&*`uFMG|gM9(iFLWeu}Hsv%}Y7 zpM-6YntG`>_ilPwYEf}!ejZ~mNVWWY*_{OsJAb)H78fZiF6f{4Y2VB{GlEuc?)<#> zn9%fRixN{C5_8~&f9?LN9@wq!aKU$9emI*)V&J;JyuZ%|oVHx&D>s2{=SHxZL6e0; zjMpTH$+103cy#ON_r^yCeRotmFQt`gT$r=%aT1!DVJRZ3a$~t&<|rrE_q;zDA}z-l z;1aiLJL|f~yv50y5h);d5>m7%F|~0?Vzx`RzKLaG0YhTRx5P5ItJMz)o#dAf-R_n# z@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bG~h11ld9;>;Oa9VhphbZUrGfBe`b#JGQfh zMJt}^u>U?>_|Qi1_~v7BY0-b$PA*&5H1VYwGg5F9iXCv!5Q-CoqYVr&f@bZCsMq?F j!uD2)-S}O)u_wfub9odpj&f4N5%7bz<)=%4p#-^@ERf>v+t z{Ji&=(DY}E5>p!zbKr)5?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T;EMzEPd zlZ8W!*CdF^u{}z7bnEE%#zzKycT_wtrIl)2n6vG15}KJ|DI%+KW4T@CC@0tVygwNt zEyoz(61QqQ>$=Ch#mSlxDIj+eQnV;BwQ)&ewoA6YiDhB|Lt@Fd#4@<6)ei}s^%~EWeiTqWMf2rODA*&Z(UtxM* zUpF!5+ZINUEri^Ju*KLCYzy3qpvl4^#%mJ9Lq$k)LjM-#Go zQDSNXl9^#CBCB#^xn1TcC)fA9KN%t|#~9!ew`x1r^tMM?bhNYog`)y*0{8f*Cson)4s~2Bi zVR~O*H!<0FHWh z%-Qxh3CT5pZGXphwyjOfD_@Put05>zXFMG-FQ8ftyOm*TEo1 z6S8_yVrm1DnPDj+t8!zxUFIk!*Y~_X86qvm7~m4OYCG$?$GpYKni1gOCZq@v5GIg- sKn`y8LqaF{=Vxx;SSeq_wN3C={%KzsY3XgI z7T>cjc78Z$c00W+wWv5VKaVj5q*_X&=;>S0`m8j?>VFF-9FwaLlX^d2dehur+fr`s zdu%adQDSQ2lEiG6Y<&Zx!~%xIl5dG+aI3bQFfaV8@i450rJ-E=ZDNW1RgZtE-UT76 z7hhjtdS72RG3VPBMvyIp+=Q^j*b;0D+=`&d!Xd_M62#=#9wj`wb@Y4VBZIy>DxR0p zN;NLb+4eXI$u)p&f5&#VuxQ0I9roXc3m@7D9^ZUSE-m^`+sS3?nkK$9V@}M0n@Y&n z!5~KyvU*WsY6Fs)VJRZ3a$~t&<|rrE_q;zDA}z-l;1aiLJL|f~yv50y5#Zn^qzDlZ vCXj$Y4sP{BLMQp$?T=^YXKvqEDPP02P4HI!X z>20PK-?J`uemH1$JH0Hms5mn}k1++LT1unn>08nItTe^ye+wrZldBJtdOu%!)7)R% zQf}^hY%ya|Vrt`(#B7&reFLM!0*1trZ;54atG1jlFZ`?VFsz29pB|N%y^n2qYgT6Z| zo|n=}H7?BA_BaX2HGpk@$9A@`XvH%f_TPsKAKC~W-+W9iE&5N}$z|)BCcZRdPRxOu zO32s2AV(9jdQoC(1Cp6xDI%+KW4T@CC@0tVygwNtEyoz(61QqQ>$=Ch#mSlx;NT{t y2oVq_kbpoAZuLV#C;8<=x4UIbytHo0Wi!@!FO!x|G_v!acd&RF+w9!LoNoZbspT2~ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_075_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_075_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a13acbd9c421df53302f25be02c52a2780c8eb4 GIT binary patch literal 670 zcmZOtT9jIppI=hkcta~fm4UHPNI|OPd5Zpj(FnPsjct#Qx4%5-Jw;F_Y0cw=i&x)% z{Q8+Yy)3n;I5R(waSJ0c$`>W3HZDobcFEQ^woEKwNGyR{6f{{l#CT1Dm>k=qgh#iI zes6qa(0510^HN%=#)UcC9w#N1!If@*$9A@`XvH%f_TPsKAKC~W-+W9iE&5N}$z|)B zCcZRdPRxNTT~x7)*ZILor@IQGieGFZ8zRbl!nNe?WP}OdepSAwLO2-YXhK#mN=$7) zGBYeiWL0h~x62&m|2|y4@{f;-z&{E}O9eHt%K9(uqcP-t!I?FJqgXo0#*h2OQjlyoa#Gzz7`N$hK@b zVP5!G<6&40OGCN#+r$$2s~-PSy$eECFTTFQ^uE3>l9#`Be^n3cR(H7IyDvYS%_A{z z-Cy3{X9G@KuJe_fz_xQE*vo_zAvwkX!!c`DM7`FZ6t=fY?8fiXg>_%Au6(I~_16No QMU#2jX6=vcOU(HO0PwgXEdT%j literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_075_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_075_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e91b55991315ad05b14310623d75bdb592588655 GIT binary patch literal 673 zcmZN$U}CgdlvcDAr+#WNlD--iny+6W%sd`vDa`cK=* zW$T(IzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I2hz;LRK$I zOl?3iGb}}9RcezP`frzP>J!m%ny@RS)b|cevoYFF%~k zBQbE@U*6wm15R76^Oc*xwsRxc%Y+mmImQ6PF>6;uz1E);wzo>`#_!UFbziTpe5rr+ T*8;ailX==^?T_qB%=rcY`#2&o literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_075_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_075_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f170e20e49b5b992096a32fed2e30276b98ff73d GIT binary patch literal 676 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}ss^oc!{(sR3xuT72kB_&%Jm@_|P$y~4 z-+ui1nLE8KwWv5VKaX(>BQeSsC8jnmNz8W1);G3HEMQ11fm;+bSvbUaO@f#l z+oOa>w~l^qd}PpfN5%6}TB*i`Iolp5C6>XJZhyyiwyjOfD_@ zPut05>zXFMG-FQ8fh%29v5VLF!AYmP3ZjZ%Y$6*X%6!7LVidA_Zh7Aw`IQFo6Wb zHzW_L9}+srFCV(yEo0)PbyF^zu>v;lWzy1#Mt0uw4i+zCo1L4O^Q{LQ+=RS`u*JX# z9NfsZY&l_G_*dg$SPe@u{q-rr{fPFt??m7Bn}b0gTxgcKn;#sI@HYga_Q)}Iu%w@U2B@6v^JU$3rw Wsekp?0=GqzdD>>}kL*j#`33+I_aZs~ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_075_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_075_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..428ef724e1f028e1264d08860f9355dc76bda849 GIT binary patch literal 679 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I?ldOF_a{T7{fTU z;JYtBoXsOKaNS?t-)93(Tdwn!o4~enBiPG?6d^gr0K+kBS46$mpA@#YO6`Tn~1^^&ZB0m5C literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_076_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_076_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..9211eb9c79633d70871d1932ac60f6cbd489b190 GIT binary patch literal 612 zcmZOtT9jIppI=hkcta~fm4UHPNFgcS{mb8T=iczfu)lnEvf;v|72ggQ_+7RQr4x%H!+zLW|Msf{c+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ z&6tsb=3#tjm`^X~W9GQur)*4WjJfX3mlai8AD_5Y)cHZbizzs07QNmw=k7t%my-Xd z?$4KT<`Bw_i|sun$2{}x(2b*eoS!z*nW_})HFi3UKWZ@9wH3?#JY>yHi-8%Zc@sUB_9Tm?@X{8z$=4^YM zv?wvPAu$JTcvyi6QW<(0eOhSqlC8jnm zNz8W1);FOe zrim}jn300!VSH$qPcP?V=D6RdY)op5x$e!E6;)dwpSV@j`9Z&nDL7~rz1}kC?m^R+ zlK-df&zEuL5Xy~E?5M1-RaOfZ6Gr`o1~^=Ftmul-M-(EWe+8Qo&l f1ykzJcSEkW0|wl#rVM(0m8Q literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_076_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_076_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..9cca96be89a263dd32a3a4e592022001e5b109ca GIT binary patch literal 618 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}MDc=3d-*e~Q@W!yee0H+o!lf184j1@j z{eOBlSD|PJn`(MlYEf}!ejZ~mNOjO;;Sl3B31V_=j}ji;I{LlwkwM=b70*j)r5YFJ zYxWuj6&bsa~Z*j6_L<-1ELW&k8 zrZz4~%y!AvH?d4CU`QNq+gz?QR(pFRhz$*^G7G%cP|fjqJSV9V}kP zHaj;l=i3%WkS&D#iLk{OVhh{~LViYa4Pe{fv7Id}TJcPW{rBO*hc<%8Hy@Kri~iGg za@o43i7(BVk%H!7d}x?YFXv_bX{@l1#P_u;~aHiE}DACpUq z{?m4H*}A5QFU^>dg63g-XqZng=VRu$-=}O$YK*z=&6gEbTOXgeRn+-Gzl$k2XcoQR zGUx6=)0dL}r|!>}apn-pjf?F)CC5DT`$9e5Oz}j7qYX?jf@Y`MrhxTlm^!chPoL2J lfA<;PV$}sx?#y3&W1YP8Hsxot5_7(Rm#d8vP2j*6#seZ@lyNu)7gA{ z((5|Y%TkMqGxPHpXEB15n@#fWEv!xaFez!yrU@RkVlFC%DZ5N+D)PcVeK1eC{C-hl zYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+ptv@MjZ*G{!f0qf5&bzb|QKB4>n?lZc@stcyvnZNkPI(g}B%Fkvc=6nkV zIW1_iaES4m1Ti_bM+uK^9sS<;$e{0zisz-YQjH69wmnW-l$hF(m;-lASc=H1+*odx zIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_L<-1ELW&k8rZz&nYhsDvUG+mkC;8<=x4UIb zytHo0Wi!@!FO!x|G_v!acd&RF+w9!LoNrsefeIL*I6&B946z072||8G3jFQw*v=Lf zt$3!x{`+v@LmR>4n~%w*MgM6#xoln2#Fu8wNI~-?!+%3~gDhwKZ{-CO796%J{WG2U a{)hOD>VLJPOnL-AgM*upBDCNplyCqk`X4g@ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_077_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_077_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5311c46f1aa901d4519dda2b95a2268a9c3c6d9 GIT binary patch literal 670 zcmZN$U}CgdlvM*{|9R^1Qv3JQ z*?fG`>pIiRQj3Z+^Ya*IF@ltvP4ez7tWEqdDQV882_Cg#E-Hp8yG&{-^1?rTFi*Ms zeor6US0W8|LU&=Zi^=K zw9VQd*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>tGrGm93#Qzezxc*FdFgG+&t@g& zdVu|5h^+Q4@`Q<~m zyJbwgv~J2}GuC-8la@|2vh$vIuy`5U?A*khZ(G2D3K*d{K-gjou?6l4LViXH{O#}9 z&K4G}c&5Yt`*7hy8^Pn7kIAJ)|7kn9Y+cjDmuAdJLGvWTe?xeKENA?04bdIUd%gPV{dwBRO`Z~!!JA2$F1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_077_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_077_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e2b256667546cc99ccdac5f1f970042b1b8caa84 GIT binary patch literal 673 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1gMsB?<=At=EK%ztt4*>*7&a9DdFt^} z`}fn?e0aPWE zizf55&DtN?w21o- zW+mo)3kEqYXtHpK@tOoNIkra$k8U0P-uTF%?~aP+rLJm+wWCaW1V4j=n~);3;3kxC089fPKmY&$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_077_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_077_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..277eda67cb5f33ef3fe5e7d3e4b33f24c161ecb0 GIT binary patch literal 676 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2ef#qT4*mJ@xQR^eCO|nE7HWdGP z>hV(h_tV*YeA4SW)5}teiZk=`7-unpl$%ZR?k%iM{4gnL&ZY?-wPG$RhAF#DYAW)= zKYcJyx%_@nVrtWp#B7&reFKBU0*1trZ;54ayVkCVdaXYxY;Tp=jo+mU>%LxH`BMMt zuLW+4CiAq-+8^1sBr)63B(Z=QRo70nO#$oAFm+!0pFW}c|L!xo#i|RY+?l`l#yWZF zZOYGPCFXn!201NgvT%s;nglU9wnqt%ZXNyJ_{gB|j*91{v{H==bGAKBT9laDkeCB^ zOjwG@s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QW<(0eOhSqlC8jn)ylY~K;a&AZ zLMQpJE zMhg7x@7T^37Oi-u!~Xkl;X@n2>y)3n;I5R(waSJ0c$`>W3HZDobcFEQ^woEKwNGyR{6f{{l#CT1Dm>k=qgh#iI zes6qa(0510^HN%=#)UcC9w#N1!If@*$9A@`XvH%f_TPsKAKC~W-+W9iE&5N}$z|)B zCcZRdPRxNTz4Gh-9JLz$JZH7J?Ng-{)+#D~P>8*DWmfyTzuY_@n9_nljwWRFqQuk& zBs0TOL{{a-a=Xk?POk5He=n?lZc@stcyv znZNkPI(g}B%Fkvc=6ve`$0?yOM6$&QYzsW}3Aqo+%Ue#E7yi|F7*@m5P_F$pu|)o= W$G=qXf{@jVudgt@udkb!^9=w9P#%8( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_078_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_078_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..2250e54ec5568ae2ab5a42e32bde104ed6fee0f1 GIT binary patch literal 673 zcmZN$U}Cgdlv(To)-&u^v(Te;566X^T1uEKcDoun5WAf zE9Z$@^2sy3EVZaOGe3`U3nMYg7bT`PE=kOG$<{ZvOe|nXEP-1TG+8*rcuj(s9NVLW zN4JiCZ+v9XcSptZQd+6Tg*n?ECnc7_m2Q8>cDAr+#WNlD--iny+6W%sd`vDa`cK=* zW$T(IzBFS_%z-Pt^6UQ`wHp3BXSKQQQ>7KwDk^?Zh`n}YR{OfY+&mwc(t<&bCS>)Z z#MA~PGs99uR^`TWyUbBeuJ3t&GDKRAF~B8m)ppi(k9mueH6v0$W)f0_2nZ8MKzu{; zp!y-9ll=0b+ubrIURpQhvKcF2^Ij$`ooHm|J?~)gGPc>di8(4NCUi+Uuq5J>tGrGm9 z3#Qzezxc*FdFgG+&t@g&eCq+nDWNb#vc(8&3q14*xev+9TTYl4{?&LGR>RUzuKhN# ZME&BQeSsC8jnmNz8W1);G3HEMQ11fm;+bSvbUaO@f#l z+oOa>w~l^qd}PpfN5%6}TB*i`Iolp5C6>XJZhyyiwyjOfD_@ zPut05>zXFMG-FQ8fh)c8>;D|J8vZ?|*`?|l}JRg|SfkW+2op#^ zd_(e}`XQl{{PLmO-7+R#S~umg87pA(UM4M_Xk_O-?_lvVw%NIfIp4sREPB0V&fSBi zFD3s^-JdVx%psH;7u$PEj(O(yg?hZ1;)w`L3{1eGjcmzIwM_x*&oFgf`=36c`~U7U zy2Yvsrrepo_{KVU>21o-W+mo)>jB3pp)f?U#RzN*JoE{<56R10PM8<|)p!_I!_rW$ c{Wh^g{;J2nRPTb2)r+sMFukv@o0#(r04jhUi~s-t literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_078_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_078_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..43e377ebd094be4ea0fc2febb9bd3c8a58758ce2 GIT binary patch literal 679 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)I@R&3B#`3wQL*{b%4b*WUBMU8X;u z^tqU)%N;A{iCgl?GrcUes5mn}k8uklG0GPurZz4~%y!AvH?~YHU`Q;1TNE@|IK+5O zf|wlJql8Ddj(%@^WYBj<#q&~Hsm6sl+a4z+mcf;7f5&#VuxQ0I9roXc3m@7D9^ZUS zE-m^`+sS3?nkK$9V@}M0E4}jT{~Wa%{yb;3x$RS>71k;$eo%H^a;5S$;(?#m>2%lcoi=n?}Cuki?6RRy|1sEnDY$)H`^YO literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_079_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_079_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b3ea485f36536106901546aba28a7d0cb84560e0 GIT binary patch literal 811 zcmZOtT9jIppI=hkcta~fm4UHPNP(;3(yGra4_5q^d3))Onf|Ptulpu5e7ktLC?`-u zM?Cs?dRb~wab|uV;}%9@lrKt5ZCsL=?UJo;Y?)ZVkXQn@C}^^9i1C^PF*&wJ36E|a z{oeSvmtb@3-!Uk`s3xTd`zAVdGI-nNawAV(9jdQoC( z1Cp6xDI%+KW4T@CC@0tVygwNtEyoz(61QqQ>$=Ch#mSlxDIhZmDMAE<2_zuCA$d^! zkkCnf`Oxid851w9n{wHVb>7RQr4x%H!!kt>yeAs4$80DbnEMY<6?VH$uZCTzEF=hQ#=u2iGc|?w2>{@skSL#{TZgtYyZgX z!IV4m7vESXFTG9q*{sBzZ;&`86o!By*5iHHtemg=CNq4y zc)2JiP(w#N`gnR-YEf}!ejei%Mq-pNN=$8Bl9=t1t#53ZSiq220=Fn=vT%s;nglU9 zwnqt%ZXNyJ_{gB|j*91{v{H==bGAKBN-Tpb-Tsd4Y+=!gXFBY^4;MbP5j?*6m|R-) zpSF|B)-_FhX~vwG16R5?s)T#%k&D+3%CFgU>-=@`Ct6<*e-*f(lLJP~1ufeARYkuBM&wkcr!8K%x_|I;UQ|KEK^ zw^((-lsoem-&iLvy-oSqti+sekT@k2hJYd2Vg$AY9{PmbhvelgC(H}~YCH_9VQDDW zew$b#f7Rn(s&_%i>c!VrnBLddMGF6~-CxxMyVV^o`0mROXY)u5T=$pv_t}8cmg{`w zCa~??2o4%TijW*_0CqHT(5zh%^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEvwLh{i HG3Ofqjx%QC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_079_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_079_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..dd63d517f3be7b126cc449dda9443b2fd0e7e894 GIT binary patch literal 820 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)LER;?kru1w7e2HRJihsu zTw3&>wv)@&HBEeJ#+;Y~SGqTrp{~s(wM)Vu=4qR? KKe8_|=NkZ?PiE)< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_080_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_080_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..50977e90543ffaad0b2ee4a5ce5c2f12b8aa78d9 GIT binary patch literal 216 zcmZRuT9jIppI=hkcta~fm4UHPNa5+;=l8w`F2C#9b-Ju(X*k>Bik5x^s>~V;>`R!##xNSC|{JA+O#Aw+a+7y#2~SNA+h9JVj0}7#$CrW#A>v-R`s4- zedykN;eYQ{SsIsqX)lVuFFL>cNz#(UY)8w)0%lZQ>W73*^2>*AcgvV~Y2B2|W~}pG VCM}(4WamBaVDU1x*|~{1-vD|0WO)Dp literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_080_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_080_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6bf1c0911a60f6dfc254c55df3c0cb29e09328cd GIT binary patch literal 219 zcmZQ%U}Cgdlvj73hlEb@%ZF}v%b0j+-IU8_ Ytn*$bEuCm&=RNOW@iMmAxrsU70DWU*eEE7q}z6UP9>)Ca>tY&FA+v4S6Pi}m4 z__*|D^V;hCM7i{`)S}|d{5-~4jKnBkl$hGIBr)41Ti?VWv4A15di8$?CW@$Lv;^kpa zZhUn3xb$Z8+Uop7x%9HsqT7kOrd&2-o%b?n=|m$t Q?|BD{m$A*xP0aZQ0N5OM#Q*>R literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_081_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_081_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..874bbf47be2954599d1c3f69bd1bc79ff216be8a GIT binary patch literal 274 zcmZN$U}CgdlvW3HZMuccFEQ^Fi0$5NG$o5SO&Li?TV<^`jf); zR*BvCUAnOD>(!Mn^{@U~;I?QoPur~hk$p=Nvz<%~5(}76wKeWKrXg0N#kH#UQX->bdp~_bh}%|#7pa@TsC8!_cCee TL?b)zc?XM^vCYm+%=rcY++cRe literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_081_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_081_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..4f3775df6aa88c36e588289c35feb4ff2fc6216c GIT binary patch literal 277 zcmZN!Vq#=qX0}?CT9lt(QrrmG4Xp@O2F5}mg|0iEhK3yFjOsg{ocj1awM$Zi=j-On z^?cX%dTtY6Hj_WSEVZaOGe3{+pPVOeM=IvolFc83z$%~HSRj5Ay%WswW{~z z>O=SD3;%ns%F?*>OM6lLebM>lPm-1-W;bgl3zY_yIaP@OY5dwHe;Rl WGHK~VBRlVT2aA`n&CX5C`33;y33k!| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_081_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_081_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..99227f4b427aec1a2cc2ec09137bca5e892802f3 GIT binary patch literal 280 zcmZN&WMN`pWn^Mtuv(N_l%HQx+z8kWtq4^H#zG;5t~;KFh8*RL>N}pC`uIMzOHza9 z>*mY#eAo7RZWCWNlRv#IwWv5VKacSuBQeSsC8jnnNz8W1);BOnEMQ11`IcA)w`=W+ zsMq?F!uD2)-S}O)u(zx_Xdr|y-(fQ?1l9nW9J6a|dFr(^HKO}ULUp{oZTgJpo>!w^b ZW1aUhY3W2GJMVc1i zRfS7>S!z*nW_})H4bXm>P zaJI$E!=Bvu=L(-;iu++;vPttVWA#Rqx5whwjZ6{`X#$rE%$( z_M-UvqVvn2BrQqIcC<_^U`{MS)}?+(=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j- LW1F3unDY$)A+eum literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_082_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_082_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..fc0759279bf4586aa49319c8e03c684a63151819 GIT binary patch literal 361 zcmZN$U}Cgdlv@|>)4k8{eGgoI*R$(% zS2%lcoi=n?}Cuk zi?6RRy|1sEnDcEG*foUAT$GsF1aXat0oXO)kZft(bxcF7MvH4z@5$AN?#&ne_gGM%@_Xn zUX`VB>6iAR`1_*s%bz4INz8V%Oe|ndEJ4<#en{vfzkKL+w~UFG)=jx=#yan1($a}W RcHZ+27B6F)otv2R4FEI=pLGBL literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_082_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_082_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0689b52a3372372bbd080c4419cc359fabae891e GIT binary patch literal 367 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MOYw8?DF`R-LaxJ%_~BsQ#kHdRb~wab|uVV-F)S$^l!HnA*4`G210u-@qubfFZF2Zqd`d&+mN? zTz=QH>vUPo(r~uL%fp`B_~`I)>CNV~)%l5XiDhu5TTYl4{?&LGR>RUzuKhN#MEyNa!TLeCT$!jER@lO}T8wI`3uD U(uqcP-t!I?FJqgXo0#(r06R>ddH?_b literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_083_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_083_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f5ca6fb60759c1dbea1354c8624ac65ad0c05c58 GIT binary patch literal 499 zcmZOtT9jIppI=hkcta~fm4UHPNMV2cfyVFiw%iszzcirdWiqSzq}ZG<{CTewg5>LS z)?{0!m!%dJXXfWIZeb)w`J%+s#wCf_F4_79Mu`Osi6wB0p6-2q?|b0#yPjRA%W9T} zvn^g8_T220mWFcew}~b4S3UlvdKZMOUVMFp z>3x0O#2mQNuianO1H087F8J=t4`=g83|#k@_xIU=)0XRey(d>6x;J0=-+NV-#-(4{i{kH#&M$wGv?MXx(K4}s zIk5y;m-->0ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bJg$fD-ZmQh;JQ qZS9Jv*ZPyf_Ew4A_+7fN?(5Z+FZHkfTHv;5GEdvA{gHi%Io|*?-{MaI literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_083_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_083_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..80505e12386fac6135fce21025e9e687fbbb77f6 GIT binary patch literal 502 zcmZN$U}Cgdlv}5bhH~wBr)63 zGO>U;u>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpFc5Y(Mw-iu-67m32 tfMPmr?TV<^`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~hk$s6d-vB$a;!^+s literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_083_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_083_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..a993e9554369e5fdd17498c42bdf8c790e2d8f2c GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1fBb>Q@AJ0Y7Cyf;pyy>WtNEnZoG<)& zuM~ph>vPs*Tc?+$78Pga=P_twM(^o4~en<1DbN z3E90UF|`TeY7+yntG^++rg7IX4Y3+6u2sD!S0B1JU-;j9RhGu3U)qb}?~Beaf0DE$ zG278Hv4A%5mqOD7uHdCxmoyo_yjZeq^26i|Q? w@&HnRVmfW@im2E6lfw2^iQV{Jy0Gr+)s-*xul`!#wrDa>+pPVOeTg~W08L=xTmS$7 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_083_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_083_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..69eed4afc346c90fe88cbf45170ff612e910fd01 GIT binary patch literal 508 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K2a{DH>r^S0a;KEE`e=Vdah`J~vK zFZ_A06oTaIbJk>ArF>YZbM){(|)W#)=*)G}o21bbm42dOhi=OU%e(!tW z^1Gg0r^{-VhO;eR9`@wMM~9C~Z#J*3&QFv}EQ2fEa>Bguug1f$8kUA~?YD^~@>f0n zrFs{HtX_P5h3S2L-NYQY(y!fL)dRcL9WMCp%MWMsNDN%}m-qMCfYX-ieB}U}z_xSa zEU>Ey*}W(+wF%;C69cfTzahD%an~^ou^KI|RlO%yAG$YR_}_a~md2%D+Kb}vi_R~9 zlC&f-+tD(yfH|=QS(o}Dp_Babq1)XuCSF=M<+2&;yq8H!CmPv#&pTMWjBR#qV$Qb| zP=FHh08)TrI&JNWsMq?F!uD2)-S}O)unjPgZ^sm)6gvt6?F4NMXX7!pgqC6>YM+NriFVEq}U&TIeE zCv^YceMYxfb-|Q7^B3P(CojEC`Pr-`iP=sj28jhssM;EL9n%o2(c)Uwdvf)md-H|= zy;o&vT>7QGDE_|a{PHJBOA@mkEfWivQFW;w5<1B*AG+NwW8$TCQ!bma&U=}(bfS@+ Q_q>C}%h+b;Cgywt0CA~yLjV8( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_084_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_084_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7541d28972801da304912a1634a5fed08aff9ebe GIT binary patch literal 274 zcmZN$U}Cgdlvd&dkqayvRt5@gX!IV4m7vESXFTG9q*{mgr*-j<~i3Lok+8TEq(-5oC;#$>va`mBm z^M(JtS7m8j`lY=n{=Vq^@+V1460;pG6APG8b*Uc`I>|2|y4@{f;-z&{E}OB=dzrL! TqLH2Vyo1Hd*k}krlHD4g8h0Jj5UbJRTGe}U z^`U$7h5x-*WocacrM)QrzUch&CrL{ZvmGrH3z$)LsUH$L$uA$e-7RC{rFBy-o3YM& WnY47Gk)8LvgT>3(X6Gj6d;h^$koC3m6hhz9p8y?b@lf zDPa8>rp{~s(^==}00NlOy59W4_Jm{E199}+srFCV(yEo0)PbyF^z ZvCey$v~;48o%g(h#mm@c=O*TS0|134c2xiX literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_085_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_085_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..31b40eb74d6b7118a1637bcb76928336fe7b4189 GIT binary patch literal 325 zcmZOtT9jIppI=hkcta~fm4UHPNa4_wwE0gBnq*P}b#8|1TW)7H>lc2_HKonG>EDAO zrS4*G{!f0qf5&bzb|QKB4>n?lZc@ zstcyvnZNkPI(g}B%FkvkNz8UKF-R<6LezIaEjTYCc-jk~j-J37`@4YHZVVU|Np_Babq1)XuCSF=M<+2&;yq8H!CmPv#&pTMWjBR#qV$L@J Dj~R}M literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_085_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_085_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b3f80d48819daefa628aa05341c22ccd73e7728 GIT binary patch literal 328 zcmZN$U}Cgdlvr6US0W8|LU&=Zi^=Kw9VQd*|#Jy+tDPkfEiWSPPI(|>(4NCUi+Uuq5J>t zGrGm93#Qzezxc*FdFgG+&t@%2%yu#{NGxDN)z-M{n1)!57T2oYldBKin=kzDy(&xN z(l6~r@%KgNmp@4YS!Ri0nff82ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A G&Nl#*HI9t{ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_085_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_085_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..116da4bb676782dea8a037d7600df982de24a331 GIT binary patch literal 331 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i(3G_KPYs%6QUY~uhU;5yXEo~=e$6$d z&AjQ~gCM2uW9en7Ma7xaPWEizf55&DtN?w21o-W-Up~b}}(YEMP*_*0}4KhFFaj*Q(x=s}J3qFZ}Pl zDof+iFYQI~_eJNIKS=^vW{F{$`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpF Jc5Y(MHvpf+j+Oub literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_085_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_085_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..d6f153d54ba866cb2889d962390804368b6d6162 GIT binary patch literal 334 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om>l(hLz4Vq+90(EYN>sxMTHR~6C z%{8UXyy@SAAf@hO>1C-!#hLkejO|RsC%LxH`BMMtuLW+4CiAq-+8^1sBr)63B(Z=QRo70nO#$oAFm+!0 zpFW}c|L!xo#i|RY+?l`l#yWZFZOYGPElJFFGBHRjU_#Z_xa*jPSdA9fs@{{U58azD z{O`RgOXJcn?M3nTMdz14Ndj4BiD8-gA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmo Myo_yjZeq?i0H$J&n*aa+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_086_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_086_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..62d19fc0f38e21f483b7c1a8595a7bdcf295401e GIT binary patch literal 413 zcmZOtT9jIppI=hkcta~fm4UHPNI_2KyZicf{;>HKMj;Y1is!PnX>UJt=vTr!&55Ox zv=1ImFH0>d&dkqa>|rEE`J%+s#wCf_F4_79Mu`Osi6wB0VuGDxf|yrIc5C=DJ%9RV zw$n~Wfr8rk>5uj$-3IL8-%!iMGPu$$C(H}~YCH_9VQDDWew$b#f7Rn(s&_%i>c!Vr znBLddP0aar5$qa5W-dxhZHBtW1nin`NVe=$+Z3?=3{&T||LGID|L;DdTdcZZ%ANU( zZ>*D--lqI)){?|*CliCj0;a?gWNnSRj%kS1XmPFTJ-PbOz4^lb-m9`SF8$J86n|fI ze)*H6C5hRNmWc(-sJhe-37zDZ58dvTG4ay6DVNPy=e3^d)~p~Wo)x^6LY=+ E0M>5I5E=o*ohPuWC?3!;#w(L~f6tMmbQ|Gn+=@YvD?>?hjth!*z zo%xGztdp1Cru=NylEiE$6NAJ8ro<9tZH>E*X^7Qmajoh-x%$w(`NIF+tFkmM{nB0( ze_wQd`IDq2iP?^pi3QB4y3`K|o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{ HbG`up+_{Qznu>K5F=e7Uo6T1KJKBHT# zx?swk`HOF?lb7D6{A|{e#B3)MgTw-+#1dp}jk}I%h}CFut?E6w`p~`k!vEf@vNSIJ z(q0sQUvz%?lcXhy*^ZWp1^%~e=DYj)cK)#W6-FTvGK%N2wrOua zbm&*YJI#rule7;WPA^L>D$dN$W9(rhM){(|)W#)=*)G}o21bbm42dOhi(-PEV}h7h zN_K1bGChC#XSUN$M}dOc`RR}LCEW(>;onfp#4@OHyo(7pM>|K6*z zG%o$pUKD>{bbk4hq$P>jj+Ti9%&5B54+)**mk-_UmND_tx+#~{Ja}#sE0RZ#0vX%e< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_087_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_087_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..21de2dbfef2515549fc7fcca9e7d71a2c90599b5 GIT binary patch literal 554 zcmZOtT9jIppI=hkcta~fm4UHPNa4tq8J>r8BgEP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>n7&F zP5s*aRXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(Cpm-pp2+7d~U`Hdz!`c;5 nuk|N|?X42K@w;?k-PfxtU+Q1|wZLuBWS+KJ`y=}jbG`upA5QZL literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_087_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_087_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..5ece07369adbc51328dbd05d2011c880a17ad05b GIT binary patch literal 557 zcmZN$U}CgdlvY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4I zNz8V%Oe|nV)unz&=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3unDcE5*h_>$ z0I)@gsf|!C8G*e7_Ya}KK=S&Q6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RK zCg#9R{o4IiJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W$Occp#(*$ q+7(f+^(TextrENOyL4gQ*Q+aE>R* zON2rIutkZfjZiNcfxQIx523(7^7@t&=7oPX9){JhG?Z(hUktyC7us;_E9+ z@9XO(=D!^UvRUd{6k zQ_$>_a~^HYG-Hpyn_iY$RGgWg$9Rzuq&z0rIVOmCrDV5;FVpjnlv}>+2@wz)k(y{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0^81wDWG^DqzK8; w24F`c$HUqcQLptUh3%~pyYahpVcplOD_`ng{k6bt(PW;sS^FdV5_7%*07kL%8vpd&dkqa3LQVi|QDSQ2 zlEiG6Y<*+P!~%xI61e$ z_|l9yG3VPXuxkjpc~N3&6T~$p24L5GL$alD*D(#T8ZE9>y(d>6x;J0=-+NV-#-(4{ zi{kH#&M$wGv?MXx(K4}sIk5y;m-->0ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODo KZFX*A&Nl$mUd=WD literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_088_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_088_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c8b84207bcd23c055edba08a2e55e315538dd5e GIT binary patch literal 445 zcmZN$U}Cgdlv-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6tBgjxfP5^9C zVrt`(#B7&rePheS0*1sAxcP*flUN2YY4e{QDSNn#5E=cVAp&@vZZm?F%7XAEv{9)Cs!Z3H(&VQdsUXk zrC-{M;_r*jFMpD>Br)63GO>U;u>@I{`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9 NSiFpFc5Y(MHvrpC%{l-8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_088_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_088_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f222a243cc9bc0ffc6085b50b94e3b26ed5c4ed9 GIT binary patch literal 448 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10ix_f@;KDD#OAN+iNB`H^&=`P%|H|*h` zI-!#r4qAGhhQt!M`GlO4SO!%5mqOD7uH QdCxmoyo_yjZeq?i0P6b9LjV8( literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_088_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_088_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..ff7a97c4dcba2426c3b80fe846485ceed4706d04 GIT binary patch literal 451 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Omrdw%FXwX?+^{Cs{TDOa57F5I#= z?BSm}p_3a9T6&%2NiRz+D$dN$V+;nVUce`~=t#uVh29xK{Eue!9ypr5>*GJR)Vt3t z9Fu?5Y0EB3Ol?TafgApG@AG@#1DD_R>^famvoxG-@$#@IH$FOiTza#4ZFPR4Tn{72 zP(n@sY*AurFd_%IOan~^ou^KI|RlO%yAG$YR z_}_a~md2%D+Kb}vi_R~9lC&f-+tD(yfH|=QS(o}Dp_Babq1)XuCSF=M<+2&;yq8H! TCmPv#&pTMWjBR#qV$L@J^Wn`% literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_089_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_089_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..e8ca4023b9bb6f26018059e031b339ee1ab5d09f GIT binary patch literal 667 zcmZOtT9jIppI=hkcta~fm4UHPNTJ!t_nvg-BQ9CPuCy82$3;)SNn3jTZAE_GhQ@Ul zUz=2?m!%dJXXfWI27^?~&zId<@UZijdt`Buvf_gNd7t*pyfY(c_2$mcdyffCf3_$w zwIMMFZur;kuj+x_>JArt_vMGPc_ap|`^)?LY`|&Db-r>F*miE*!U!^ykP{XqrZz4~ z%y!AvH?~YHU`Q;1o4OF8Yeb>i-Y^isjSvV&Ds?(NDEQ2fE z{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#*E}@LY@SN1R<-@LgMM(=l8w` zF2C#9b-Ju(X*k>B!w^bW1aUhY3W2GJMVc1i=4qR?Ke8_|=NkYW>NQgU literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_089_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_089_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..f0b97f2c34ee32b53879f729ab0484d95733a3a7 GIT binary patch literal 670 zcmZN$U}CgdlvDpRMNhv;TYCL%MSk9f z#&s88n^dQlr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okG zwkR>RAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5d9l2r`tA6BZ?= zHZDobcFEQ^woEKwNGySyzkpA0(UFL!3%xUf_#e&cJ#aLA*T;Wssdt}QI41w9)0Ryv zgDc(sj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_jO1!Uo&<*kA*<0s;_2S! z_r3=%zw6m`x~yhtINRdoVNY&+bojXRX7gIWs`C@&W`RS3kg7$AsZEfOFfjm!#5W`# zHtss6Ay%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>lPm-1-W;7kOrd&2-o%b?n=|m$t?|BD{m$A*xP0ab00*WL;QHh8o15Br_T@m$Ke^S`q hDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vrO?HCF%t literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_089_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_089_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7a9eecf9aec4d036fbe7077d7106e4848839a62 GIT binary patch literal 673 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%*~s^vbmk*2S;MZh8QRB1Prpf9di`xh ze%^-0br)ZoRHv7v78Pga=P?F@RLjqo-C6Lk^Ot*Magnm(g8q4*_RYLABWU&J&d+;~ z2~B^tC^5AmF$Zq=*Y2E7q}z6UP9>)Ca>tY&FA+v4S6Pi}m4__*|D^IE{F^AqJ}fkT3jszr&ZO^}c(zx_Xdr|y-(fQ?1l9nW9J6a|dFejEE>ry`? zbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^vCYm+%=wlAiX=i&iHIZvOsB0~5%pSs kQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE06+6JU;qFB literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_089_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_089_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5c04c757fa6f8040a77b9c52683c19bef9d998c2 GIT binary patch literal 676 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MQK$oHOf<|8gy!>+U$+Q&stze!tq z{cS~l-iF3?7hjuHrF$RNF%g>kHS@5v)mwRM!k+R}~{&}DF&Ac-sX!YjK z&wGyvO@Fp1F|{Ev2X6S+?yu^B-Rce(eD~#tvw0*2uKUaT`)t5z%XPkT6WDfc+`$?CW@$Lv;^kpaZhUn3xb$Z8TEMFF6Xj-sLxPa1MTx0RkdQDj z0EfgkBp){JI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZNmLz67S|%1SCzc@V zQa>bgl3zY_yIaP@OY5dwHe;RlGHK~VBRlVT2aA`n&CX5C`IZ8TBtlV%h$I6{r>$KP n^;&;Y*xo9!8^22z)_uLY@}>UOUklt8P3CEvwLh{iG3OfqO+Phd literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_090_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_090_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c37e1b05183cb82d0fdb338830476e25a107519 GIT binary patch literal 583 zcmZOtT9jIppI=hkcta~fm4UHPNa04V{mRz@izi1qDQf+z(PWLj8M9-D?kCm=&V*l2 ze1GmuFH0>d&dkqaOaZBu(kOcRRcgbo&zIgb_t&@6|O#W4;ExRZ&wIMMFZtT;& z&+mN?Tz=QH>vUPo(r~uL%fp`B_~`I)>CNV~)%l5XTNpux67na)<;Ip^m&45`_|l9S$<>5Hau(Rtg#5NBF|`R2 z-X;cMS0jgaGVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS7oA`JBxy-vwxeZY0W)eW qsUH$L$uA$e-7RC{rFBy-o3YM&nY47Gk)8LvgT>3(X6Gj6d;!=&ENm)c!Vr znBLddP0aZg46&YX!@>?|JYLRKC^I4{#BbXm>PaJI$E!=Bvu=-@+ZRO#+G20!_6n; z9Keu#xcwd5*}|d~&ve*-A1-`oBY1rCF}bwpKW!(Mt!tY2(u^6&)r3NF7TDE<{I)1D zwFwg5CI(;8L{j1SrjlLPPV~6f1 z)(FmoUr&60?oBUCEh^5;&tpshsg}|xdiqwhJ}XVJ`rpC{$K>k6q~6b$-Zb~uwv?Ou z9$U;*QL533YC&J~%mSC5| z%_rm>z>s{n{TR2@>8W24Ghshj-(yV;W*LT3oAoPp&?6Z@%!q_o^(7OTV-i#org5U;ZR%Nn*C6 wWnuv{YAmTA5<1B*AG+NwW8$TCQ!bma&U=}(bfS@+_q>C}%h+b;Cgywt02{UnW&i*H literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_090_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_090_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..512cd623c14a84f55be37c7df6bfe99e8f1e110d GIT binary patch literal 592 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OlMuKmi_0*fa{Iw@-XtI=eQz8SM) zhwdlV2+o9GPkevwO)pC=D$dN$V@v_5meMGC`c||)D^0Qb-@*yUHh zVz#4YVgWO1EU6z7I>|2|y4@{f;-z&{E}OB=dzrL!qLH2Vyo1Hd*k%ivaQIbmM- zSL0z=4NF70_S?h~`KuoPQoRd8RxiH3!t}nrE|P1$c7Ih5>{fTU;JYtBoXsOKaNS?t z-)93(Tdwn!o4~en;})=M2n7hjHO7`;*T9`ZC~%Nmz5N~A*}|d~&ve*-A1-`oBY1rC zF}bwpKW!(Mt!tY2(u^6&)r3L^uvuVN6AI}?iK$JHFf=g$yBawR8+RSk5UbJRTGe}U z^`U$7h5x-*WocacrM)QrzUch&CrL{ZvmGrH3z$(uUj2~JNq+gz?QR(pFRhz$*^G7G z%cP|fjqJSV9V}kPHaj;l=UWOWdI<$PB0vo=owjyG)NB1oVSB5@Zu~A?Soihn%9r|A Te=TrZG?}Mu*8a%8#GG#cU`s;T literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_091_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_091_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..88cf11605af3ef12495966d46d9a524bd32517f4 GIT binary patch literal 728 zcmZN$U}Cgdlvl54(pe^n3cR(H7IyDvYS%_A{z z-Cy3{X9G@KuJe_fz_xSa7O-mw1qi}5#+G2$z@0)UaFATR{T^==}00NlOy59W4_Jm{CJs{gBW}e)-VtZW$9Vt($V$ zjCJ12q@@#$?7Zh4EMCSoJ2x@sTM8(82?aYMKn*aRwsu9-YyC-Kd#l85{4QNs_x0+^ Wm-<(KEpS^jnWt^m{>Z+>oNoYYr$XHT literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_091_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_091_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5c97d368cc530fede80231a1a4d6b7f4c7f918f9 GIT binary patch literal 731 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1pPr_|`z=0tr7PLOukp9^75r9wAl7-UCO|cYXZFmU{P@g=6xs zI&IlSiKz{VIdH?D?tOmmd*JfBo?WNQYL%q z7q9b!lTLRPL>0f-L^ec}`Gjl9-N^_OzWu6vPlfQJ#MH(miPezP`frzP>J!Yrb}WRS)b|cevoYFF%~k zBQbE@U*6wm15R76^Oc*xwsYeauxkhf2*NeSmSESwokA#ZkX*g}9oyN$q7~0{*nb}` zd}t$heDg86wCF!=Czq{jn)uR;8OhazLI7QGDE_|a{PHJBOA@mkEfWivQA1w+kkCnf`Oxid851w9 zn{wHVb>7RQr4x%H!e)7C4>1C-!#hLkejKLt)3-|;V9f^3l&^sfD|Iw`814q+$ef-CkdiR-y zWAd*$ZP`VMsSSxaaKoSOeSYtI;PShkU8l=xmWHz}ULN-3#z%*bOK&!>ttO^L zx~O6ouk(YGPInbV6~EX-Hbj*9gloy&$p{m^{i=LVh47-p)W#)=*)G}o21bbm42dP* z63gILY&l_G_*dg$SPe@u{q-rr{fPFt??m7Bn}bK@4UYX}7h!ZpU0VAsH%LMU*MT)q7r+u6dR70-0o ze;+P_|l9S$<>5H2e4USR}%{9MTx0RkT5hc0J|DF3>$YH z(-5oC;#$>va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1460;pG6APG8Ltg!m&`Eyz(Cuy+ z6ECfsa@mY^-piz=6OHV==N&9w#x^@QG3Q$fD0&G6J0d_0FrBt`MbvBkNnv}d#BTg9 cU0C<^>dKe;SAQ*VTQr%cZPxzCzQmkw0F$&r>i_@% literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_092_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_092_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..a2f40d94cad498f1a166f0a7b1fae9028b691d96 GIT binary patch literal 667 zcmZOtT9jIppI=hkcta~fm4UHPNTKwo5qr&Mi;xqw&bJmC>$B{0)eyhTko_URL+iHg zYMt`*vecsD%=|pYEsVq{UzC{IxFj*#C0pOvGO>Umu>@|>0zSb-MAK2 zz|r(wAOEqX-hF1_nEb0wTQ;!_u5|l5wzGvrE1v1F|2|y!&_?k1=3{bc(SO=bE?d_$ z@ueAaVh&vC!}!oJpI*+#%yGX@*_hNAbKRRSE2_3WK5?t4^MigD(_oOJ30b`;F|`57 z%%^*w-}@f8{H|x$>9U%o;cSbShdsIR(c$CLo6T#h^AqJ#KxQs_y=BhbgQhPf|4-eY zFXPN1lp7b@drFRZ=J$nqyqV&Oh=4FK0SCl4BoFRX+Z3?=3{&T||LGID{{y!BjBc^& zf+=_AFTSx(UV5AIvssBb-@pzhdi8$dJ{o$~au)S}|d{5-}jjKnBkl$hGMBr)41Ti@6+v4A151a8p+KEXvtBAzbv&Isav zG^_W((ezy(|FNaseP-d9{Hsn|Hn9w@bo)EDvxP+~p6RgvK3w?FM)3INV{&QHf7(ti zTh}!4r5ST#4qWNO_|Pz)Ue3qNalcR5nA8|^-J35fsStNJ-PAG;p5Vq&1nu6cX~@qQulDNEDhFV7R<-*D(#T z8ZE9>y(d>6x;J0=-+NV-#-(4{i{kH#&M$wGv?MXx(K4}sIk5!Uzv_pCPV&o#Zg`6SdB_78>ib>~qx+zs!*R zA;3fHw(e@3^7OLQqT=su?((s`#ZL?g+(i#>9GGkT=>vN@c8Cqa%s_j z+Dwmv>_tElsXeizeVkfRA% zy(lrY0m;m#d!OI?9=QCjXV>Ynnx)}viK5F=e7Uo6T1Hc zw)>23vFd^;cjhm?u})rkoAR?+i8Br)63GO>U;u>{$_>W73*^2>*A hcgvV~Y2B2|W~}pGCM}(4WamBaVDU1x*|~{1-vEUrBc1>N literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_092_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_092_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..25e7aa1abd59aeee7861a66b4610b682903e8fb1 GIT binary patch literal 676 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MQls1bY3W{Z#$wa&K|8tb#{bJY;P z%#i&dz(eb{?rNR#^s>~V;>`R!#x0D*C|{JA+PEY!+a+7y*fOzzA+ZE*(E>ifMMol@ zF7(a_;(s)&_rTHgT_69krQUsJ;h6lZPFpsy46bzhJGQfhMJt}^u>U?>_|Qi1_~v7B zY0-b$PA*&5H1VYwb7Br$>BIQYFrQw|$INlRPuZB%7<1j5FDt6HK0a})sPlt<7t>&n zqX}8PC^5AG$;_vFpWpi)xcshX*XgpFrQvLgmxn#M@zLSq(wog|tMe1(Qb1-ddc9@N z-GintCI3&|pD*LgA(R^z+j~lmdFJV`;2a}>VheE<}bdnPF{MO^0QfqIp4qzC*(UchZAzsEN~PO^4_Av)Fwz2niycX zym8kt4Y3+6u2sD!S0B1JU-;j9RhGu3U)qb}?~Beaf0DE$G278Hv4A0`9y3o&mr+aejq_3{5$o1G zab#wCS!z*nW_}*yEJl!Wvq|2)g|&$vCMC_;G{K`*%tgg8WtT}!MPB%)59TSC-!Do` zZCa9;?UJo;V31hAkXZ69u?%k4+7(f+^(TextrENOyL4gQ*Q+aE>RcB7BHjg+NriFVEq}U&TIeECv^YceMYxfb-|Q7^B3P(CojEC`Pr<*oNrse zZX@KCMTx165Vsjyg53sp*aAMmMMol@F7(a_;(s)&_rTHgT_69krQUsJ;h6lZPFohq z58L0doh>X{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKs^v$?)G0-XO~v|66&% zgawDKO8-n}zW*V9qxxU%D3cz+&%vMoC1mxY#MA~PGoS8#e(!tW^1Gg0rvWRgSsKo^ zczM{98y_7$F1^{jwmLsi4s0eNi_y#^6sM4wCuB1s=1nkTzH!$v4Y3+6u2sD!S0B1J zU-;j9RhGu3U)qb}?~Beaf06`>c}t9#S3e|ll3zY_yIaP@OY5dwHe;RlGHK~VBRlVT O2aA`n&CX5C`33;6PeWk< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_093_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_093_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..12071b3514fea444278a614af065ae1dc69a8e04 GIT binary patch literal 725 zcmZN$U}Cgdlv()GRWM+Cmq|@UUihaE<|&uo zFG@^pT9TOUlC5uGkXXQwSn@5g3~txj6;ZGCCxz{;61(xcbYb1st1DmXU;VYfZP8?& zwpsfl`<5hTJDMaGFr(_)skSL#{TZgtYyZgX!IV4m7vESXFTG9q*{sBz zZ(G1_BjlAuiK&ecw;5Z4-3E8q0zSb-MAK2z|r(wAOEqX-hF1_nEb0w zTNcR=+uyOBEi78`Oo#pV;lhVDg2y)>lS_;K({^&%x~7RQ&6pE&;HEyw@ZS*LAj=v5 zTY15R1&6Il|4e7T{~>;(`d{rRlODm(!Jq&oWc8xN)CMFopYDBr?|b0#yPjRA0V}In z8qT(OdDxR1A00j}z1h6BIzLekY$hR#(aaO)z7=an~^ou^KI|RlO%y zAG$YR_}_a~md2%D+Kb}vi_R~9k_3u*ON^LTKO}ULUp{oZTgJpo>!w^bW1aUhY3W2G RJMVc1iOerim}jm=km0rasB=-w@s) z%NhS$dBKDQhpkHgOlQ9TA%3I!U+pN99>LGSpa3Og^`gYo1|&0|?tOmmd*JfBo?WK_ zE2~)=&bD}Y*pnL{9X>9-*}S$oKT!^BCLxQ_%p?@2keDZAGa}|qFk`-P*D(#T8ZE9> zy(d>6x;J0=-+NV-#-(4{i{kH#&M$wG1d4e}jF?wHBy^HrK6JZV#>7kOrd&2-o%b?n U=|m$t?|BD{m$A*xP0aZQ0M#QyZU6uP literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_093_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_093_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0ec76ab9ee05d2ee601ad83e03bd08382579107 GIT binary patch literal 731 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H&5qIRj|8j}awzPp%2w;nT3OqWqh z^NsUTC=u({JaJ@ZdRb~wab|uV<19vyarw-EwK!4*V+|Puk|N|?X42K@w;?k-PfxtU+Q1| zwZLuBWS+KJ`y>07BxXCBBo;8E>e{KcDPa8>rp{~s(=M$q(D#v7Id}TJcPW{rBO*hc<%8Hy@Kri~iGga@o43i7(BV6La9EKFRRk z5Z)lm8UI^(!Gr~etxEq)XTJX-exv$d?I@ET!Oy{<03~GgqQuk&Br~7xeSYtI;PShk zU8eynt63V(ws?8ilN%o$J}$l4ytX<&Q4VY-A&b$>BowERm?va2BIZpnW4>|MF%7XA zEv{9)Cs!Z3H(&VQdsUXkrC-{M;_r*jFMpB*ig`?iCbPEjpxk?A-yri(yQnD^G^~ z@s`a_FH0>d&dkqa3(*xopNd X?`6``iAHwb^9~j-W1F3unDY$)NE$^W literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_094_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_094_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..3412aed01c92eb00edf7475715d578a6ab00b356 GIT binary patch literal 728 zcmZN$U}Cgdlv-}US|T~@O+oNe*)uqQV@I(%Guvw3ZGexh6o$jn8rx6HYF z(DbF`|Ec@)Wt=&La^qrqPsuUQ{Jv0+H&Z-uQDSQ2lEiG6Y<&Zh!~%xIl5dG+a2s~2 zZ33I=42%lcoi=n?}Cuki?6RRy|1sEnDcE5*foSg9pM^dOH|hoiUGioT(kWh+u6dR70-0oe;+P< zXd`%h^D()!=s#^Im#u4>_|l9SDWV94&MdI22}S3k#MCB8Oqm#fU5y-5jk}I%h}CFu zt?E6w`p~`k!vEf@vNSIJ(q0sQUvz%?lcXhy*^ZWp1MY<6?VH$uZCTzEF=hQ#^4|Vrt`(#B7&reFKxk0*1trZ;54a z8+NK~3Rr)Jsq@*HH1PP;TmI0RM!xS0l<)4v;7_0*}|d~&ve*- zA1-`oBY1rCF}bwpKW!(Mt!tY2(u^4?q6me~EU>EyMdzZ#)FwzwnHYdwjT}>ryN+py z)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq$P>jj+Ti9%&76Jen{vfzkKL+w~UFG d)=jx=#yan1($a}WcHZ+27B6F)otv2R4FGKwMKAyW literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_094_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_094_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..3729e4058895ebd7c9320ad907dc3dd570eba4d3 GIT binary patch literal 734 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OmiGl$=mf|#|6$LD$dN$V+;nVUce`~=t#uVh29xK{Eue!9ypr5>*GJR)Vt3t z9Fu?5Y0EB3Ol?TafgApG@AG@#1DD_R>^famvoxG-@$#@IH$FOiTza#4ZFPR4Tnfm{ zMX$HaxqHy`rR4vq`}1X-IfQcKVtY@?G0*(IP>(lLJaJKCYU7f`Y?o|(1Czu8hQyL@ ziDhsbcB*X(Sbv78^Vnco7+BBT4AlC;s=G;YgcBqulvi*^MNT1$rdB9EpRIcxev)TTTYl4{?&LGR>RUz zuKhN#MEaT*AR*Uz>r+C{Ts zUEk4@UY1%^oSC1;xP_4z<%<$i8*GJR)Vt3t9Fu?5Y0D;-!If@*$9A@`XvH%f_TPsKAKC~W-+W9iE&5N}$z|)B zCcZRdPRxNT-5XWHz4ge&YX{}mY`S&+y7&{VuZO=1T+?0Ynnx)}viK5F=e7Uo6T1KJKBHT# zx?swk`HOF?lb7D6{A^ZY&NoPK6Y?ICEkBguug1f$8kUA~?YD^~ z@>f0nrFs{HtX_P5h3S2LU8JD-+Wl2Muv^{Xg73cka5j&`z;%Clf1eFFZMn`@4zLMq zJ2%b(ClW#dxF|8T36e-m48X2N4x7eZ$27!hw76FFo?LzC-hAPI?^RhEmwst4ioY*9 zzx+wklEiFB%ftfa#1dp(>W73*^2>*AcgvV~Y2B2|W~}pGCM}(4WamBaVDU1x*|~{1 z-@wsE$OA|Lis`hqE23WOPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9fcDAr+#WNlD--iny+6W%sd`vDa`cK=* zW$T(IzBFS_%z-Q28&$%+^~l9*2j$mnx^@1#_!F(KhrbG3(_Rpep?_Cz+s0s!qX}8P zC^5AG$;_vFpWpi)xcshX*XgpFrQvLgmxn#M@zLSq(wog|tMe1(Qb1-ddc9@N-Gint zCI3&|pD*LgA(R^z+j~lmdFJ220mWFce zw}~b4S3UlvdKZMOUVMFp>3w}&q@elQ{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1M( zunBBCH_iel5<&sEC^5AOl1NMpz^+CPo5o$oG{kDOxK{O^Tz%-?eBpoZRaqLBerYd? zzb`t!{7KT1#B4{)!~*8T5@cQKhlEb@%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmA zxrsU7z|ls?14sdi>9n;gqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns E07CtYrT_o{ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_095_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_095_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7fdbce18a5cbd11fcdf5d92083eb8c5cf8ded0f7 GIT binary patch literal 872 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}sE-yaaYS!V@<_XEi=d(QGcRllPf$hKL zAG3l^EaP3@(UV@5T2!2wpU1d`kr?HR5>p$OBxbv0>l<4p7BD21z%5$9C%EWH#M6b| z8A1GyX7wI8n!fAfKep7n&nz61f7NNrCYHgKZhyyiwyjOfD_@ zPut05>zXFMG-FQ8fh*k`Rl>dX$i-_1<=1Swb^f~e6Rod@zY1K_UJ#I>e^+nY#$b@6 z30b`;F|`57%%^*w-}@f8{H|x$>9U%o;cSbShdsIR(c$CLo6T#h^AqJ#KxQs_y=Bhb zgQhPf|4-eYFXPN1lp7b@drFRZ=J$nqyqV&Oh=4FK0SCl4BoFRX+Z3?=3{&T||LGID z|L;DdTdcZZ%ANU(Z>*D--lqI)R$|UKNN^MK9+E9aU|Zk;L&$wduGw}5b zhH~wv-R`s4-edykN;eYQ{SsIsq zX)lVuFFL>cNz#(UY)8w)0_MaLWL@fqgii9yhi-Svn0RU3l*?wU^Ij$`ooHm|J?~)g zGPc>di88FFxIB*5TCV3CYLjvpnK=J@asZ z?Z4$8vw}`6<6Ym;lU|luRGgWg$GC-&80Cu+QyZ5gX1iqT8(St8FeH}1En2`Qxadg4 z(}ms{LHv(q^&U8yzU$*Zw$!`NEF6=6)oIHnmcf;7f5&#VuxQ0I9roXc3m@7D9^ZUS zE-m^`+sS3?nkK$9V@}M0E8QDa!oBs##cK!U*KE3V{<`=Rt*?i_3S84(5RjpNS8vStNJ-PAG;p5Vq&1?hjth!*zo%xGztdp1Cru=MHV$L^6a1-(#k}XDHTi^jh$bCqz*>b|X@UOrV>XTP1emcj>~quUA*T)W7;`f!m_VJZ-b~ KNA@M=d;Ks2 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_096_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_096_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f8fff0bd94517ff8e7fc4c29752d372052794454 GIT binary patch literal 303 zcmZOtT9jIppI=hkcta~fm4UHPNWo<5lZC5oFI)L1RWpBcX6a4Skl|TvDF~S4F1A+| z3D+*=q?e@@6=&w>G4?PLqkK_fYU7f`Y?o|(6N|(GhQt!MMPVr-t8!zxUFIk!*Y~_X z86qvm7~m4OYCG$?$GpYKnh}X*aHW3#^lv_`rznnc7 z&C2YPnDZ?KRI>|2|y4@{f;-z&{E}OB=dzrL!qLH2Vyo1Hd L*ktK$uA$e-7RC{rFBy-o3YM&nY47Gk)8Lv OgT>3(X6Gj6d; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_096_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_096_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..461c139a29a7e8e34ee266dc6bb63e94141eb764 GIT binary patch literal 309 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10CWb2cKt8Fh^`6pE~e{*K(P1BI!S#2o@ znB*?DR~8A^F6E?`r4|)u=I1f?FcPDDQDSQ2lEiG6Y<&}p!~%xI61YWSDI%+KW4T@C zC@0tVygwNtEyoz(61QqQ>$=Ch#mSlxiDhu5e*g4uKCR@f?PxfVu-#*h&EFTDT0iu< z7;V3tJs8c(?30-DEd}HlLPjDv#uDt9Z%CG?9}+srFCV(yEo0)PbyF^zvCey$v~;48 Ro%g(h#mm@c=O*TS0{{*hcQyb3 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_096_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_096_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..72331b73af9f6d3e658db1581896d96cd9a744f1 GIT binary patch literal 312 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NaK>yw46Z7*B-Csi|lb7tvH(~#j= zZ7B$tX775ob<)oLT78Pga=P~v$5~F-kVrt`(#B7&reG`ks0*1sAxJ6+pBCB#^ zxn1TcC)fA9KN%t|#~9!ew`x1mrkXgH9t-D8f;-xr-) zKlHj7ZNHp77|qJ;lbG`@1>_h)Mj|=J66~07NS3G{5<1B*AG+NwW8$TCQ!bma&U=}( UbfS@+_q>C}%h+b;Cgywt02E4hI{*Lx literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_097_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_097_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0278bec41426145f8cea71c9eb677e391db17552 GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNa6jgWlgTlwmJU-`d>DPi}zghc>H7U9fNzhB9mwG zHcc{0FH0>d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{NVZsjZGl@s$bCqz@%yKL^Jyh-ZAZg_gzX-4Z2rFJ)cT><#c2EG z?7?VOW}n0yxT#;ezp4jzt2UOUklt8P3CEvwLh{iG3OfqA7Q){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15=4qR?Ke8_|=NkYfS-qA3 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_097_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_097_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..423232314f8ca2ba9535f61cbbe8627bee1e771b GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i{j6n8uFbYN{{s47Hi(P&T=jVTWA7b< zd$}T$XYw{pGDxxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNrqgLADTb6JSWTSb%MTTS3TuNUrhwr+@QlC2wsE|zUb8Y zq1VM|`{nGxXjW#Q#2mP(U%S7m2X?DFT=3nOAI|2H7`W~)@9(n#r!Cj{%1vO~xe**R zgcKnhZD0U)G;+|aT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vr&J By`KO8 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_097_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_097_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..10991ff90d9d394983f3e561594b79415ef87640 GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OnZtYuBE&9*uJ0{UMzh>Q1J^?3Ya z?;V4CxgwKi@-|H}N-s+-D$dN$V@v_54oeYPl^e_LGDkVNzUTeP5NSEa0GGH`+gaB= z<}FUvj98SI+PEY!+a+7y#4@pfA+h9JVj0{j^+Q4@`Q<~myJbwgv~J2}GuC-8la@|2 zvh$vIuy`5U?A*khZ(A5awh(d?U`V!DfNg!( z5gasx6d@dKU;uVBa?q?@5%pSsQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE E06z%5qyPW_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_098_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_098_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..de2b93cf7450857dc472b4d45bdb97b97bb43f59 GIT binary patch literal 358 zcmZOtT9jIppI=hkcta~fm4UHPNWpI93&u|6t>&G3=J_;Be`DV*gDUUS zyYC05m!%dJXXfWI9%dv)Ibe$tQ=66~X1iqT8yF=PFeH|IODu!iwdI6);a`o1VKpob z<=Sr(OXRP5{7dyN2wA=O`U=zg`npRJvz<&V5(}6TOW=CKQbbne#&WyNQBJP!d4DoQ zT8=TmC2rMr)^(40i<31Ykc{{Hr+@QlC2wsE|zUb8Yq1VM|`{nGxXjW#Q z#GG#_AU_Z?a#3PxBg79TmKc6eKO}ULUp{oZTgJpo>!w^bW1aUhY3W2GJMVc1i7kOrd&2-o%b?n=|m$t?|BD{ Mm$A*xP0aZQ0LsslQ~&?~ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_098_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_098_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3f5f1cb446038c0910fce02dd480612df45433a7 GIT binary patch literal 364 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10CZsiNcPUWrUoxwp3zx|&mc5mkSG)sSD z-z|eG@6)^Q2d9^%78Pga=P@2;Bt|)4ixN|tmLz7oWa}FkB^EFwmV8SrgWI*`gn8j# zjfY`1EDhz_Zxc)8uX_AT^)3imz4-bH)BF0mOA@o4Oe_)$m=a6idcsmfR^`TWyUbBe zuJ3t&GDKRAF~B8m)ppi(k9mueH6xIW_xq=R^Jyh-ZAZg_gzX-4Z2rFJ)cT><#c2EG z?7?VOW}n2IZz&)@5HfO6VrnDA4F&<_lMmb=M5>uO&Bxbv0>l+v)7BD21d`m2Y+qLC{ zdEsA;hha4=4dvQz6HDZ;di+cEE(lq@`1%Ud`}(>|60@C5ED{Tt5=-EE!cs(5<;HTm z%u!CR?|FYRL|Tq9z$I?gcGh)|d5e=ZBan>u`=@{NX(exMN5g@H?H+S%{=Vqc`k~jw zX#3^t!Dv=ypTwMRDIh-(GICL3Y9quCCYBg}P(LJel3zY_yIaP@OY5dwHe;RlGHK~V SBRlVT2aA`n&CX5C`33;q%9LUN literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_099_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_099_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fd0871401570d951e05b5292e3ad16250ffa6b6 GIT binary patch literal 499 zcmZOtT9jIppI=hkcta~fm4UHPNI~J<)z|r_1R~Bf&DgnQA@7OeTq(z|!kwl}fd@(( z*|z>pFH0>d&dkqae9cIV@Bguug1f$8kUA~ z?YD^~@>f0nrFs{HtX_P5h3S2L-6e_HP9_$K1x$%0a6MruBCB#^xn1TcC)fA9KN%t| z#~9!ew`x1u{q-rr{fPFt??m7Bn}b7Km~uY{~#l$hEG@vDg? zhF{eW37zDZ58dvTG4ay6DVNPy=e3^d)~p~Wo)x^6LY?SEg|F*ge3+B7?!ME o5%pSsQrO-qu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE0L;kKlK=n! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_099_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_099_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..d299a2a7fc3b7f57641aa7db69082e655cf0ad8d GIT binary patch literal 502 zcmZN$U}Cgdlv220 zmWFcew}~b4S3UlvdKZMOUVMFp>3x0OC5hQiCKibWOo=6MJz*&#t8!zxUFIk!*Y~_X z86qvm7~m4OYCG$?$GpYKnh{9G`~B0u`LvR^wxi)d!gh~2Hh}$o(W&)AuZz+4%h`j` ztjs=%IdD_Ic7Ih5>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~enV+zQxgsfhanA!;O ztBECsU)2u@o#dAf-R_n#@zS~}m(5t`y-Zp<(a6qw-ofH!Y_oF{bH0HsA>UOUklt8P3CEvwLh{iG3Ofq)ST0o literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_099_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_099_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b0257285870aae4344bc9f5dc76dcfb5db413fbe GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}s;oa5O`KJUT&NR)~xnv>liQ-%-$FIVj zrc8kcN*md>{!TATEh^5;&trVeNR0ADiK$IX60=>h^$m;?3m6hhz9p8y?b>p}yzsBa z!>}5bhH~w^%~ u1_l_GtX&cHT7Od5-YT&hze^X^eZ9K!rT*1l3)~h>=4qR?Ke8_|=Nka#NzD$dN$V|>j>jPgZ^sZC1~vt6?F4U7^C7!pgqC6>YM+H%6Y z@UO$=Ch#mSlxNXGm9)4%z&lDD>_;XuN6k2yAg{e97?^+T_V z(e}&PgVC(aK8ZPSQ@?h9RS)b|cevoYFF%~kBQbE@U*6wm15R76^Oc*xwsT_&$ghN~ zUX+;H2=S|lC5B(s4+)**mk-_UmND_tx+#~{Ja}#sEfh{5A x5`-lN1{jvCT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsdX`8h_vM({`8vyW4)1?3a literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_100_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_100_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..7982e39248804e15bf1df28d8a5e7e28cace5408 GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNa6gXJCWUt$+miO%M}huv`+aw(JFJk(UT1~8g+!{ z_eK6sFH0>d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{{PI6A_jem|$44Q*Beg z`ZG+O*Z!wZ=>EU^jBc^&f+=_AFTSx(UV5AIvssBb-?lJ){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15}apn*LEH^H;_mmv-%{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8n8S8UUVPxhwzx literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_100_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_100_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..ef8d34175feca1ca345c67c30634b36a77477015 GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i{G>aP-Hge$dUDGZ4oS35`90ApbH34& z4L2Hfgy;7~{!cGUEh^5;&tpshsSZmKS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNr)D7QNmw=k7t%my-Xd?$4KT<`4obH!imKlpOQS?+f*KGsP1TmKc~| zSh7=XQ^5K&Or6*Mr%&kqzx#}CvFd^;cjhm?u})rkoAR?+i8^+T_V(e}&PgVC(aK8ZPSQwjMR0InXn AH2?qr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_100_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_100_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..4cdd8c1a84ee7dcdcb1381cd174f46080c629aca GIT binary patch literal 453 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OnYq&tz_jLEioa?2GCNwiM+J<%$2 zzR{BnHyU+>=l4baPcKU?D$dN$V@v_54oeYPl^e_LGDkVNzUTeP5NSEa0GGH`+gaB= z<}FUvj98SI+PEY!+a+7y#4@pfA+h9JVj0{j^+Q4@`Q<~myJbwgv~J2}GuC-8la@|2 zvh$vIuy`5U?A*khZ(vInz1}kC?m^R+lK-df&zEuL5CSYWF1GiS9P`ZY3-x$2#S;;h z7?@yKvQuqS!1^;xo!9=SPw4)?`;2a}>VheE<}bdnPF{MO^0QfqIp4N0g1kb=;|N4SO7<@bvc zQ=66~X1iqT8yF-OFeH|IODu!iwRT0+YyC-Kd#l85{4QNs_x0+^m-<(KEpS^jnWt^m z{>Z*1iP?@Oi3QB4x^}8<3Rr)Jsq@gq(OWdmMtm_{07AI>)EJ{pmggDK_62ocghlEb@ z%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7wtxeGP+^X%Y>mKtKCu>G5N=$8pIL*Wo!)fY= zgii9yhi-Svn0RU3l*?wU^Ij$`ooHm|J?~)gGPc>di8gRU(OzkW@YwC%z>LqC_(_NsMy>9 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_101_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_101_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e4c5155090ebcb2a9347d73e385cea13880b0c1 GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1&y*`aWnv${`tgq~S2h0~v+^Ff?p+HK zclmy7eqR|M6P;d`T2!2wpT{_h5v1H~l6P-mZQ_SXNpm($@Te7YQ87%}Wl~d-7yjvk zdCKMYixN|tmLz7oWa}FkBo;6vmV8SrgWI)sMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*V zTQr%cZPxzCz9os-jwXo(%&59{s%;8be}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($t zHY+jbTMEc&VJRZ3a$~t&<|rrE_q;zDA`O@vV}MKCs_m@n9`hC_YepuO&Bxbv0>l+v(7BD21d`m2Y+qHH@)NB1oVSB5@Zu~A?Soihn%9r|A ze=TrZG?}Mu*8a%8C5hRNCW!^isJeElZ33I=3dm_;DI%+KW4T@CC@0tVygwNt4VWBbfJ@w}?X2q_^A;y-Ml4E9ZGW73*^2>*AcgvV~Y2B2|W~}pGCM}(4WamBaVDU1x*|~{1-?o4QfKYfL*Hq)$ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_102_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_102_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..1aab56feb0f7300487a192b08fed4569b7957c33 GIT binary patch literal 499 zcmZOtT9jIppI=hkcta~fm4UHPNTHM|a{hvc)$`UYyWshLlbP_dJv>@P+aDL(SXdsK zbK>En^s>~V;>`R!#uSk1uoRJ1xv|_XbCi?od)}W6k(Of&aEV*Bops$~-r{7!w^bW1aUhY3W2GJMVc1io73n4cxN=$8n*kWJ=wgqm*qSssI+&yUeQu6=Q{rP~&ICBW)#>MuYl4G9v zeW4z2rg$QfYqp#)FZ`?VFsz29pZAvD_|ml#}aw-k%JSmSYTXiCeXub=_m$;$+Q; zMTx16OA@nPvh__Y6AKs;OTHzR!L3q1By^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{ zm$A*xP0acBnh|6RAvY~bOl^YLVqgTe1#ZQn*IVY?J!tw;^8eKR`GCnda|q?e#rB?( zW1jhap&oChcp{Q(wwy38{HyUWtcInbT>EWeiTqWMf2rODA*&Z(UtxM*Uw27jwv&lP zVgXZP3EX%>-bXUt@1Oq7rxW(!qwSZo2cub;eG+rNfkTv# zixDAeU;_3la)|C!+Z3?=3{&T||LGID|L;DdTdcZZ%ANU(Z>*D--lqI)R$|UK0DNQA Ag8%>k literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_102_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_102_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..76962a4e2f77aebf50211efc5231fb18456d545d GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%lqqulf``@f)-1c=`F@j`@UuNUT1DF* z7u#4^9-4FF;iL4j)S}|d{5-}Kkm|4$kyW{|+%9vJlk0olpA3h^-U}j3m6hhz9p8ytx`WEbdp~_bh}%|#7pa@TsC8!_cCeeL?b)z zc?XM^vCYm+%=z}35o8M?H!Vs`ZGzZhU<9@WZpEV4Tjtz7X!=s}|J42YfXO&>2<67b z_MVbsp80*D9&e_2B9d#ioG>r^tMM?bhNYog`)y*0{8f*Cson)4s~2BiVR~O*cS&Nl zlZi!Q0aIcL+;~FXM>5{;pZ?9KmAthb4F?jod(5%<`=V3phh7(>?U%C$qgk1K5_7(R zLzIw<5g}?|0`@C%i0)L|6tMmbQ|Gn+=@YvD?>?hjth!*zo%xGztdp1Cru=MHV$L@J Dju6z0 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_102_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_102_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..a10cfb9a4d0d51c65b2f6d0b585a72952117be62 GIT binary patch literal 508 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MPaDRTaTht>1eEW6aY}%Rk^X;E_0NV>wDgx43U;&3~-5CwVid{ zW8UIq&4@*bsf|k#vt6?FO)L`&7!pgqC6>XhQa>bgl3zY_yIaP@OY5dwHe;RlGHK~V zBRlVT2aA`n&CX5C`SzL-WD6lTElNyng4kkU1hxfk#iG|+=G;AK`cm@$)cyH@$vATe z<;KPKo|0pp`F)`tZ>D%6l54h{FfaV8@i450rJ-E=ZDNW1RgZtE-UT767hhjtdS736 zNn*B>iA7=oQ(_6+ctYMsGT!f>{>`VAytN$-2NJe>%(40VqEqXKUKgY7m$L_>S($wj zbH0H?l#q)NA!=X(_A7FT?o`_pu>K5F=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY G&Nl#<6x5Lb literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_103_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_103_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..a71466f6190a96f9bcae1bcc124a32e586e54b1a GIT binary patch literal 640 zcmZOtT9jIppI=hkcta~fm4UHPNTK;>=RcOZQ+Y{&Hm9Xa-_-t?nU_){a$7dPR_3+O z=5$=Ch#mSlxixN{C zmn3GpWb2z)CKfOxmV8SrgIlG3Na!TLeCT$!jER@lO}T8wI`3uD(uqcP-t!I?FJqgX zo0#)$G84!aLT*}=nA!xf#lQ$`3*3rDueZ#(d(iZy@MPM8<|)p!_I!_rW${Wh^g{;J2nRPTb2)r+sMFukv@yCgB&$;2YDfGM#A zZag9HBN^}aPygoAO5WOzh64%PJ?7W|_V-1n)(^cdM%yoE4@R>x`y}STP5s*aRXwm< z-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=*PkSF9bM93SMfWrhi+MUh7W^+gl}e<9F%8 by02GPzSO_^Yk}LM$vkbd_DA+5=6nMHb^a1I literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_103_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_103_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9a28aa828d4d42c199ac0c291e7afca1fd5091c GIT binary patch literal 643 zcmZN$U}Cgdlvvc}ambr=?5Z)c%;6mr^5gTQp$OBxbv0>zi067BD21d`m2YTcv(T=p?^<=ytb^iI>(*xopNd?`6``iAHwb^9~j- zW1F3unDcEi6UY`qZd#O>+61x1zzA#$+=@l7x6HYF(DbF`|Ec@)Wt=&La^qrqPsuUQ z{Jv0+H&Z+j$u(O}m>2%lcoi=n?}Cuki?6RRy|1skBr)5`#3HeP zDX|1@JR$ER8SnQ`|K`(5-rA0a0}0zb=GXxC_eH1H54|o%+b?GiMzb>eB<8?P{o4Ii zJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^&W+%ZC*(6k$Qzh|!vs0xcdBg)Sbv78 z^VrV>XTP1em ecj>~quUA*T)W7;`f!m_VJZ-b~NA@M=d;MY<6?VH z$uZCTzEF=hQ#=vLHCs-Y7yi|F7*@m5P_F$pu|)o=$G=qXf{@jVudgt@udll#G26++ zBC&ueu>@{BA@3s@@Apst=F>{v+Kz?;3EMs9*Z}tTMW@yey)H)EFJ})%voiZ6=DE@1Uck)s%;8b ze}<{^+W+(k-T!x=(JfY8Fy+qt#W&W;OK($tHY+jb8`u&;EB73NS69B&zxr!|+oH)lZL{`A_9ft0 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_103_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_103_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c4434afacdcb0a67f8a1f689e1d2b602f2ce2d2 GIT binary patch literal 649 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MQqXXihbx>I>cfi|b5OW)M~n31C-!#hLkej42@1VJRZ3a$~t&<|rrE_q;zDA}z-l;1aiLJL|f~ zyv50y5sMO28(lLJQ2w?TTYl4{?&LGR>RUzuKhN#MEE=JogXAefRGW#Uv zz)k(y{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0^81w;E*TeGepQ6n1I6sIplY$ zZ33IA*b+i6L9)aE!;-ZtqF(Dy k3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0HbXZNB{r; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_104_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_104_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..07fb557f81d30da1abf0bb42bfc407f30dde5a3d GIT binary patch literal 445 zcmZOtT9jIppI=hkcta~fm4UHPNa5(52PV-0ymqc^H~PF8{AQHx5_@t)gPqr`)$jA~ z5byozWvNBQnfZB)J&YjbCR?8@Ty1;V%0H=^`I|FKZ<>Y-&uU9S$z5!(EE29=%2||{ z+PEY!+a+7y#3HePA+ZE*QCNz|s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QW<+8c zT&dqb{hLoKd22fw4kT>%m}B!7uos_h)Mj|=J66~07 zNS3G{5<1B*AG+NwW8$TCQ!bma&U=}(bfS@+_q>C}%h+b;CgyyDc$rWLA#5>**aG(l up}<0N&GvU}XA6r~Jkw$SeYo(Ujo|Uk$K=wY|FoT4wytU7OEc!goNoa6NwS9k literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_104_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_104_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..31b71a96eb4dde234318f1bb294c85dbd04da5c2 GIT binary patch literal 448 zcmZN$U}Cgdlv@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_ zL}D3Ssoy{Sn@=lwYdabaBy9JXWAhiV7oA!^^tu>rznnc7&C2YPnDZ?KRI>|2|y4@{f;-z&{E}OB=dzrL!qLH2Vyo1Hd*k+Gv>scZvX&PvWox! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_104_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_104_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e8daf5c5a55afe8896226dc38495a92b95c20727 GIT binary patch literal 451 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i=$r>8(E+@6u535@yczsvltK$uA$e-7RC{rFBy-o3YM&nY47Gk)8LvgT>3(X6Gj6e1mwIPzWJx zF^1Rz_XnZCLUPUacWh@1i&i|-VgG%&@S%<1@y*BN(xU&gom{rAY2r&W=ER(D01z9p AlmGw# literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_104_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_104_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..bdb4e7a70304db25aa60b25ed36a34618d538659 GIT binary patch literal 454 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)OnEoChY+0lapuY&ZJ68T@9H?Gk%( zM1!5ztkv)H?-1|(>1C-!#hLkej6IAX8V)3E_n2ez7qAzdT0iu<7;V3tJs8c(?30-DEd}Hl zLPjDv#uDt9Z%CG?9}+srFCV(yEo0)PbyF^zvCey$v~;48o%g(h#mm@c=O*TSgLs)x z2qA1ShS&o42cf`1a?SR4Y-bCLRy@;T|9!adp^f12&Bx@@qW`p=T(+)h;!88;#GG#c D84t<%RZO?L<6_LTY*!bW&Gx58{p3Xm9 zJArt_vMGPc_ap|`^)?LY`|&Db-r>F*miF0VFVd!vh~Tr)wY+d z{FADgzd5t?rfJCVthN-C+{O0FBH`MloJEPLjY|@teM1a`s>}E3;2x&bJhhV+a|E*%Y;H5FoZ3}5L@8>AQV_guG#*M?QCJuif20PzYiBav=KbM z`IuZ<^q;nq%hokbd}+pv6j6lY6&y5#ViVzL0|ShpS-T?Ywf>~Ay;Wj2ewQw+`+9Zd WOZ}_A7Pu{%%+oe&e`H@`&Nl#RM;<5u literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_105_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_105_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1df5dde83b348914b45eec7bda86b0e53618c0c4 GIT binary patch literal 673 zcmZN$U}Cgdlv&I z&Ocn^%x0#Sr4|)u=I1d6gH+4Um)%+Lu=AIDWO0$Q;)4EppZ3kXGb3pA=FZQ1j|okG zwkR>RAu$JT_}A{Q>Ve(r4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5dup1Q}|w^~u83 zwwJB^ld74&IkWVpX~^)bwiJ}y#rDb~;o7B~MTx16OA@nPvh__Y5(^j-OW@{*rHHJ` zjpcTkqnupd^ZsOrv>aoAOWdmMtm_{07AI>)B$mOI`u)?t`LvR^wxi)d!gh~2Hh*7q zYW>jbVzm8o_FyzCvrl5qw-k_L2pNgw7)!8Yz9Ctnen{vfzkKL+w~UFG)=jx=#yan1 z($a}WcHZ+27B6F)otv2RZ421TghCxKge}GpTj2g66j(^E+5V30Y+=!gXFBY^4;MbP z5j?*6m|R-)pSF|B)-_FhX~v8cQH0_Z95jSt6X9qB1B{?qyCUkf{-m(IRbn@OmoBXP ZdUfSX{j0wgxGkE@(>7~=WM5*=Hvn|U9xMO= literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_105_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_105_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..6fc920a2caea42f206ab5505299c067930b7cf1d GIT binary patch literal 676 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10iT@B|wj#=wwX18t6a+wv8!MWJ@;5sw$ zyTzW)KV0L?W~P^=78Pga=P?F@RLjqo-C6Lk^Ot*Magnm(g8q4*_RYLABWU&J&d+;~ z2~B^tC^5AmF$Zq=*Y2pPm#zGhs+qqzv-GBE$ndPT6qMY>_R1pR+NGRDiK&fC60=>h^-U}i3m6hh;O2*= zh^)$u<#w5)oLt}Y{$z->9Akh>+^X%Y>mKtKCu>F|mcf z7e2HRJihsuTw3&>wv)@&HBEeJ#*7qEgyIz(G=yRk;b;Q`jG$S&BI>pNq_DkJVmE%5 cF0A`{b>&O_tG^bwEt<^JHfw)mUt-QT0E~AYH2?qr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_105_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_105_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5dedb8fe368ff6d87a10961fdfa73cf9b2151e7e GIT binary patch literal 679 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Olj4d*?MS?gwIw{6dInH7=2x!CyN zIy3RR#h%VTT;t4UrkAA_6=&w>F$RNF%g>kHS@5v)mwRM!k+R}~{&}DF&Ac-sX!YjK z&wGyvO@Fp1F|{Ev2X6S+?yu^B-Rce(eD~#tvw0*2uKUaT`)t5z%XPkT6WDfc>|q2M zYO?jo!qv8yt^AX!nZG%+^rmUZ@T|5Jl-$Mk$|B*~rJO~Hsf|k#vt6?FO)L@%7!ph1 z=7*(-tjdk$cA2A`T;KElWQepJV}MKCs_m@n9`hC_YepoN!Ik>`)4%z&lDD>_;XuN6 zk2yAfUvz5y(CcEf{c`qTG%K@DV$Qb|kYflLiR2hduw%X(* zxopNd?`6``iAHwb^9~j-W1F3unDcE5*vo`M9WaC~#t>WJ{vZ@sNUqubj_qt=(TZm} z?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_j1*CX;uRb;gklrnXafU`pjo>j>b3r)u)S4c fH-48ctowR(4V$L@JnbICQ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_106_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_106_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f19f72196e9175443d3946ea0d65cc086023f731 GIT binary patch literal 586 zcmZOtT9jIppI=hkcta~fm4UHPNTI9R_@2P$gk5X)`Sw5B=@SrXG<9p8)5YL@?fQ$i z*~ni`FH0>d&dkqaOaZBu(kOcRRcgbo&zIgb_t&N z5m}WR%k45pIk~>){mBq%ImQ5&xK-O(*FEMfPS%V-a*f|V{hLoKd22fw4kT>%m}B$z zMW@yey)H)EFJ})%voiZ6=6nNtnUIlyAvwkp>=3(X6Gj6eA@!{GNEWd*kTN^1@2`+fraGd?eEym78b2|ro;aGaN$E6 d!Q-2c$)!dAX*;=WUDL#uX3U8>a8n6IGyrBv_mKbq literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_106_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_106_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1088dbaae5d44ae38a7ca39c2dbad635c969d036 GIT binary patch literal 589 zcmZN$U}Cgdlv!=&ENm)c!Vr znBLddP0ab$!w9m)Wb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^xxVN9$q;Ed#sHVNRohwDJ?1S=){H=Mjo&~0n@=lwYdabaBy9JX zWApb#r`8X>E=JogXAefRGW#Uvd;@!#kdc5PImQy~7-TQ29}+srFCV(yEo0)PbyF^z zvCey$v~;48o%g(h#mm@c=O*TS+XD77p=dzZVhphb?qx!Oh2-V!@7T^37Oi-u!~Xkl g;X@n2h0B?Esl>h($ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_106_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_106_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f75270d2e399a6b2c2183bea458edd3164912cb2 GIT binary patch literal 592 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%tJ?UUz~_WrYxeo}KicUN5NR}ZYn{`@ z;C=1-i?`XxUrsMeEh^5;&tpshsg}|xdiqwhJ}XVJ`rpC{$K>k6q~6b$-Zb~uwv?Ou z9$U;yw46Z7*B-Csi|lb7tvH(~#j=Z7C?Zi|v&~!nI2|2wO}n zz_!4x2ul%Jl^e_LGDkVNzUTeP5NSEa0GGH`+gaB=<}FUvj6iaY-#`7EPb+zAI~ooo zZ1x`y}Rk1ACc}k$@pN#uDrpWG|~95<1B*AG+NwW8$TC zQ!bma&U=}(bfS@+_q>C}%h+b;CgyzG0`@YYXh7Iv46z07WkP|44n~%w*MgM6#xoln2#Fu8wi8*jn2}Lvjgf;h` literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_106_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_106_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..4ae2cc42fde526cc58331ccd5647041c0772bc2f GIT binary patch literal 595 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)MPx+W4Np=Y(Br_WAZd+UXMzX*6|f zozunOeeL>-x7o;FPA^L>D$dN$V@v_5meMGC`c||)D^0Qb-@*yU8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qKyr=WKmD6eD|u@> z8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<6erdzp}tfFU`?66_dcFRLFCI>|2|y4@{f z;-z&{E}OB=dzrL!qLH2Vyo1Hd*kxxVN9$q;Ed#sHVNRohwDJ?1S=){ICj zgDds>r+@QlC2wsE|zUb8Yq1VM|`{nGxXjW#Q#GG#_Ajc3g63H=^V8?tz zvPAum&`Eyz(Cuy+6ECfsa@mY^-piz=6OHV==N&9w#x^@QG3Oh^%Zn;@@j5>^>2y~? zRPl>VWJ5%mPq>!cos2Ny+po&^R0tz%F)+fgWy=Zk!oM01!)jO>%C+AnmdIcA_?PNk z5VCsl^%bV~^>q_-;J*Ia{Z&1%TixM;@4ozSHjl)>b$@w(pA9%|xz1N^0^81wTfh-O zD82wgxW*XbXSn%nGXB!!-WrR1dne%CYKidr|smjbxjjrnlU4} zno#I~BZ`pM5RNu5zzD*%E23WOPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9fikhkgdPR-liHAYtqH!QfYa{to^-;LA0 zPcrZ*ID9+3EVZaOGe3{9hY_UQWb2cKt8Fh^`6pE~e{*K(P1BI!S#2pOxr^6L6{h#~brW;ozW&<%RXwm<-Qj}ozWi`DkHo-re|dkO4LEJN&R1>%+s=(! zz!5+wz5qkG#u(yfxcP*l4k>K5zhgUFShV7q4*T!Jg%526k8eIEmlpk}?c}m`O%q?5 zF(bK}Q0Raoijdb3jy5pB2*R~1qF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^! ICFXns07O_ZdH?_b literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_107_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_107_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..f537385e8fcfa83f0799bed95e1e66fe5800d1a1 GIT binary patch literal 734 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1je@$6x9Rjw&D-8JMpq0sEV!_8|I-NH zjnlqQGVmxkd^^1?wWv5VKaa785v1H?>yw46Z7*B-Csi|lb7tvH(~#j=Z7C?Zi|v&~ z!nI2|ixN{Cmn3GpWb2z)Bo;6vmcT6vOA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0 zEl$>qNGyXZ_4}uP^Jyh-ZAZg_gzX-4Z2rFJ)cT><#c2EG?7?VOW}n2IZz&+h5Hb?U zF_vJ*d_%HC{gBW}e)-VtZW$9Vt($V$jCJ12q@@#$?7Zh4EMCSoJ2x@s8^p_tDt7TY zKRD@hS3y+qi%n!hM43;xmfW3;FyY&;%J)3g8V|#2SQ^T;-zJvG zU-kHx>Rk}BdhzuYruX%A6La9c{@VRjJ+NEd;ezkJ{BSmp#K3ibd4Hb`IBmJkS8f8^ z&W&5Z5kM%u07JOO7~*HR`GlelDQvdCV>??|wBnf#`|rbr4{ZdGZ$2iM7X7E~GV#`+uk)sR}42SxUh2n z(+J;<)4oqK@F+NZJH0Hms5mn}kFkdlq}*idlZC5oFI)L1RWpBcX6a4Skl|TvDJZ#% z?UhBswM#jR5>p$OBxbv0>zi047BD21z%2?(5m}WR%k45pIk~>){mBq%ImQ5&xK-O( z*FEMfPS%V_EQ2fc`=@{NX(exMN5g@H?H+S%{=Vqc`k~jwX#3^t!Dv=ypTwMRDImuX zG7`x#mSD$xL$XBukkCnf`Oxid851w9n{wHVb>7RQr4x%H!qI{ip5Z zvUN=pUz#x^xtdVufFp{K*AR|2Fu(}HwJV}t>rV>XTP1emcj>~quUA*T)W7;`f!m_V OJZ-b~NA@M=d;b< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_108_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_108_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..2d4bcc8570e6717e44f6266b13900ba7d15face6 GIT binary patch literal 670 zcmZOtT9jIppI=hkcta~fm4UHPNa0km+W8B8%~MurUzzkyN#dd5M|H7j<{i#I+Ppty z9Bd&dkqa>|q2cH`)4R;cDBEC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$Enw8lnG3Q$f$T5VBL~@KJ*fHOb zEKxrsbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^vCYnfS+eN$mN|D1n!c3$KXre; zj5CK&Zd`2dDLLku-xuofW{M{wEHN;_uwD}{*LWzVbO|bI_$p>7e2HRJihsu zTw3&>wv)@&HBEeJ#+;Y~H}zqBXqZng=VRu$-=}O$YK*z=&6gEbTOXgeRn+-Gzl&)w SDEtX2T9laDfMh12kOTm#2o@>; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_108_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_108_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e2726cfa59eb89d4c0a47f9f93ca86994664827a GIT binary patch literal 673 zcmZN$U}Cgdlv15zLfkw zb$`B$Glx)aTx{hbv%&q5)xxF~lqIz#6Sd|Js{+tF|!VY|m1o4+qQwSMSzG1`7PdoY@n*(WjQTMEcAgp5RT zj3wAH-;gX(KO}ULUp{oZTgJpo>!w^bW1aUhY3W2GJMVc1i9$+f4+<}hfr=@Z0{*K=9%9Y>hWfZCn78{Fu|~7r`o1~^=Ftmul-M-(EWe+8Qo&l z1ykzHI@AD`1480bz?V#4GT?A`~M?Uf%wW?QCJuif20PzYiBa zv=KbM`IuZ<^q;nq%hokbd}+p7kOrd&2-o%b?n=|m$t?|BD{m$A*xg;}!b^_Dqz z51PJ|{6BSnzKk=6P;Ojo?Fev;9DO!}6+JIyxp^yXs*^?GL literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_109_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_109_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..39a27023e669f7140d8a28324bace1614d4fbf37 GIT binary patch literal 725 zcmZOtT9jIppI=hkcta~fm4UHPNMZ8d3N_XXGW$y+ovutRHT82zuiSCD(eY-&uU9S$z5!(EE29=%2||{ z+PEY!+a+7y#3HePA+ZE*QCNz|s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QW<+8c zT&dqb{hLoKd22fw4kT>%m}B$zMW@yey)H)EFJ})%voiZ6=6st4c8%F2@7}`N#1E5_ z=4_haQ7h)6Vwkeaq^2S-{L=^Xl*{iIC8jn(Tw`DWcFi{=Th^|KdaXYxY;Tp=jo+mU z>%LxH`BMMtuLW+4CiAq-+8^1sBr)63B(Z=wu>@JyPPI(|>(4NCUi+Uuq5J>tGrGm9 z3#Qzezxc*FdFgG+&t@g&d`kfZ6d~^-1(YR*)6@?Mo#dAf-R_n#@zS~}m(5t`y-Zp< z(a6qw-ofH!Y_oF{bG~f>2LND%Vh>@9F~k;l7!!&}q=4G~j_qt=(TZm}?7t5eKC}@$ zzWJD3TJ)c`lgrjMO?+v_oR|YQ^+|^RhVTYi&iLQT3nnZ$Y*qSaI`jPx@f+3uYDby$ V2!0L*1q~rZixN{Ckjx|$$pGztGZ+8> literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_109_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_109_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..bf248213c51d9759aca7c822235ecfcce2fe66d7 GIT binary patch literal 728 zcmZN$U}CgdlvazD+;O?l^`=%% z$yI(c_O0n@{WSc=H1+*odxIm*fPJ?~G3NXsz>xWuj6&bsa~Z*j6_ zL}D3Ssoy{Sn@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uve47P!joBpc-oo0% z50jGSY?|OvE9RnNn6k^HrXnx=(+BgE%kLK@rZz!bV_*Pw%{L@l)~<+ptv@MjZ21o-W+mo)O92HGA@3pulqH7K)DH=r^%~q0APe-4`GWj#1?oM6N*TrfZG0!?QCJuif20PzYiBa zv=KbM`IuZ<^q;nq%hokbd}+pp$H%p?@a0QlQ88~^|S literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_109_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_109_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..464bafefed9616e01b378635417d387cd595c2d9 GIT binary patch literal 731 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1^4|(I)(bNGOCp`FOf5C_b4jnx`y}Rkn+0}_*(C4Y z!rH_Slal6an&43@=AvSlvdg5VA}{>Y2lJH6?-wPeHbGotU;uW_HzZruu84ZAKPhZ) zmDr8nr3>r6US0W8|LU&=Zi^=Kw9VQd*|#Jy+tDPkfH|=QS=UarO#$oAFm+!0pFW}c z|L!xo#i|RY+?l`l#yWZFZOYGPCFXof0R{Ja}#sEZ2<=WV1!~1VT&=u7I+vFib$k@+WwC1Y+=!gXFBY^ z4;MbP5j?*6m|R-)pSF|B)-_FhX~vwG12^?ahX01}23gMd-^vRnEI4dc`e!=x{SWaQ b)&FWone+&L4h97cAw`Q4QyY-XBoxU25{WY< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_109_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_109_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5d4df0d3e9318fff4695ff92e228ee21b60bd608 GIT binary patch literal 734 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3&-wHL>3o`plBAu>GEj9IXNw3^- zxzY8eR!+%Pelzy1>1C-!#hLkej6IAX8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<6gZ1$K?u zB=6qB+Qbi&lICoh;882)qGFh`%cQ0vFZ|O7^OVc)7bT`PL0n^C0CvqcBwN<5haPWEizf55&DtN?wn?lZc@stcyvnZNkPI(g}B%Fkvc=6p*51r#CgA_bHshSSs!37zDZ58dvTG4ay6 zDVNPy=e3^d)~p~Wo)x^6LY?80S5qJgkle2i!sC&co-9kNTh(;{*LWzVbO|b zI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H}y$||Az1eS^ay?q1_ccvMT-(s8<5N-6v+S}_cJO0 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_110_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_110_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..00928f3cbd67bc1c7ee4e3bffe69af8164d9327f GIT binary patch literal 728 zcmZOtT9jIppI=hkcta~fm4UHPNFj(lGMmpUoJ0EhSH6D&+#zzdJT;+bS9mFWt>AOz zx>}ZAmReMtnV-kl!w6Dtvh~Tr)wY+d{FADgzd5t?rfJCVthN-C+{O0FBH`MloJEPL zjY|@teM1a`s>}E3;2x&bKXK*AQ|%!ZpU0sIDR8 z4a3_(37|+Lc-D>;7`{d|*mT0R7kO zrd&2-1#I5Sq@@#$?7Zh4EMCSoJ2x@s8`zRXueZ#(d(iZyesE!nBIDPa8>rp{~s(%C+AnmdIcA_?PNk5VCsl^%bV~ K^>q_-z5xKYuqY+~ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_110_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_110_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7268c28cd5f3aa794e93abb535ad614ea14b6a14 GIT binary patch literal 731 zcmZN$U}CgdlvaoAOWdmMtm_{07AI>) zB$mOI`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jbVzm8o_FyzCvrl5qw=H1T5OO@iHO7{x zt|8%H!6L N6{h#~brW;G0RY1oC@KH| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_110_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_110_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7b87327f95d2b8b347b95d25c6f851f0f3707e46 GIT binary patch literal 734 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}Mh&?i!&nuim`ubPCe*)Yga<)7*p=Vck zDSWNqbLF~PmR^=xRGgWg$JoONQf{*K$->pPm#zGhs+qqzv-GBE$ndPT6qMY>_R1pR z+NGRDiK&fC60=>h^-U}i3m6hh;1-3Yh^)$u<#w5)oLt}Y{$z->9Akh>+^X%Y>mKtK zCu>F|mcfMY z<6?VH$uZCTzEF=hQ#=u2iGc|?WRNY{skSL#{TZgtYyZgX!IV4m7vESX zFTG9q*{sBzZ;;eL$iGOo7=dkphZG_AA$fVr3G>3g8V|#2SQ^T;-zJvGU-kHx>Rk}B QdhzuYruX%A6LY=+0Nm0jGXMYp literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_110_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_110_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..bfbf4ceb0755caf904113d5d3373ccecc54eff71 GIT binary patch literal 737 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H$&Ju;imE1X06`d7Yx0^A{TwmdbV zXIFSBe68Sf<+@syUY1%^oSC1;*uw}?ZnE{s!qv8yt^AX!nZG%+^rmUZ@T|5Jl-$Mk z$|B*~rJO~Hsf|k#vt6?FO)L@%7!ph17KNpVtjdk$cA2A`T;KElWQepJV}MKCs_m@n z9`hC_YepoN!Ik>`)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K@DV$QcMVAl|G zJi;}`mZ+{FjOfD_@Put05>zXFMG-FQ8fjj)l zum5w@YWVY<)#kQOl~!1*sQ5u4_S%(M?d$$>^L$`RO92HTp@2X*+63b0Z%B?&KO}UL zUp{oZTgJpo>!w^bV+Cy9%cP|fjqJSV9V}kPHaj;l=Ns6PMX$HaxqHy`rR4vq`}1X- zIfQcKVtY@?G0*(IP>(lLJP~1ufeAQdkS*D%wkcr!8K%x_|I;UQ|KEK^w^((-lsoem z-&iLvy-oSqti+sekkmlPzeu(ifo*|@6e0H^d3nnT^TNLx55sC$8p^fbCYH!w_4t?S TT@bQ*@%0s^_w{uXbG`up>rW^+ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_111_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_111_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3854830fe9054f80ff5306bcaaa3ab210b262ff GIT binary patch literal 869 zcmZOtT9jIppI=hkcta~fm4UHPNTE9YnQ)E%`N_RYXJ^}-G_2n|zj_Ue7-w(?J^X8z{P(wn9s!?W5_P;wXBD~p6{mvR;* zrZz4~%y!AvH?c@8U`Q;1TNIWevMM*0+hvY&a(&PHlOfV_i~%ljtG2VQd(2y$tQnD5 z23P9$PygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8 zAQV_guG#*M?QCJuif20PzYiBav=KbM`IuZ<^q;nq%hokbd}+pDKw{;!m``9{wtDO?yE=hW=f>Z5zQsv*`7fId>15zLfkwb$`B$Glx)aTx{*S@kDL zQqX+u{;D3>t?qEacVB)un@3{cy1%@?&jy^fT<0q{fo&%wXb34na1(a5Q0?TV<^ l`jf);R*BvCUAnOD>(!Mn^{@U~;I?QoPur~hk$s6d-vGmzd6@tJ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_111_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_111_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..fc4e41cae1ebceaca6b775aa5615f4c69f683719 GIT binary patch literal 872 zcmZN$U}CgdlvJ zauy|~HZDobcFEQ^u}CanNGyR{6qX{gDmRwfWsY)keb4)oA<}Y;0WNW?wzIB#%v+qS z8If29SL*jq|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Ip0!1jv-_ul4C5v zj`@aUiTWX-ll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKXKFB1wOge}Gp zTj2g66j(^E+5V30Y+=!gXFBY^4;MbP5j?*6m|R-)pSF|B)-_FhX~vwG12=VVR0;Ri zBNwk7lwY&y*7@t=Pqe-s{wi=ydqF^k{$0Io8^J-d==GL4cMqDrl>9$+f4+<}hfr=@ zZ0{*K=9%9Y>hWfZCn6keV1f}eJJmJ?tUtrldF_Atgzo>l&*&DbE|_v>{^A?!ezP`fr zzP>I}(0uLwsvg*_?r_0(Uw$~7M`GZ*zr4TC2AsBB=PNgXZ6_pX2q{8xv;o-B$f;)S oim2E6lfw2^iQV{Jy0Gr+)s-*xul`!#wrDa>+pPVOeTg~W0MRvhod5s; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_111_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_111_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..58ce167dd3bfb3c0b854fe75f1b4ac1b713465f6 GIT binary patch literal 875 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%I{le&jsE$`y-R0j+nhA4-#ov14U6Pr z>1`kXG#y;AXnlHFYEf}!ejZ~FBS^W))+Y;B+g`TvPpW4A=FHNYrXj<#+EP$*7uzd~ zglm^_7A2-OE=kOG$<{ZqNGxDTEP-1TmLjq$Hi19o=F>{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Z-%>!1A!H7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H+64R z3HR0`7q1s2{CnRVHDME6z0oc*V rsb=kpsMq?F!uD2)-S}O)uoHVT8JimGk zi{xVIZ6E(M9bB_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZQsQb3L& zWF(SfEWwWXhGdEQA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmoyo_yjZeq^2EnqJb z3L%6o#t>WJ{vZ@sNUqubj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_oR|YQ zb#GJ&_tqm9uN{*7zez8?N6a7}wbK!*NZy=@!8L9^)fmN|D1n!c3$KXre; zj5CK&Zd`2dDLLku-xuofW{M{w9Bp8N5i~p1HU+Fd!_;~0fBJ;(|GUrV7OO6pa%cYH z8|&nyw<$lH1rHiRP5}(b79+4Na8D3&A5ze4IbmM-SL0z=4NF70_S?h~`KuoPQoRd8 zRxiH3!t}nrE>h5Z?f$AB*sbnx!FOMNIGaae;JUxOzt0Aowp`~cH-T*@BxndJLUObL u*wM(TX6=fo*ZPyf_Ew4A_+7fN?(5Z+FZHkfTHv;5GEdvA{gHi%Io|*QF?p*1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_112_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_112_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..251ed4a5635e9a76f54f563a70a68848c4f55540 GIT binary patch literal 444 zcmZOtT9jIppI=hkcta~fm4UHPNa52K<7sc0IOgPA$iEcfW?XvLF6B>a;E65g*ME?h zC!;(yy)3n;I5R(wF$JVLEJb8hZY;OU9OdNtp7$q1q~#a`T;f)3XI=N0w>VidVo_ph z{J za}#sEfh|c;%y{QBm*y(d>6x;J0=-+NV-#-(4{i{kH#&M$wGl$i5v3nR!YgglO9iv`#gxIYL50+N^g s{^{R*TFG16(QqJPyT=@xzb`tqe&}^E+I~5EFq)OwCouXV~=Hy$*zZBtSTzc0odOF_a{T73^d)~p~ zWo)x^6LY?SElE(!c;_>h=a0n$o7@e}d5R@~C6)j0>D;^4V3F0q-2CNNkt{L5u%vO< zF%7XAEv{9)Cs!Z3H(&VQdsUXkrC-{M;_r*jFMpDhnDcE5BgiX+JdR|G1=tq2KL`Z^ vl9&Dd>EC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$Enw8lnF$ZocAzuRkKV!N; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_112_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_112_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d5e3cda2f6234436abd2103127116c6fe0dcc507 GIT binary patch literal 450 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i(-z}tZ^%~6Sd|Js{+tF|!VY|m1o4+qQwSMSzG1`7PdoY@n*(WgvZYm*P0{~bO Bx=sK9 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_113_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_113_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..a0dee65dfa2c9222c6144344af9ac3dee235d3df GIT binary patch literal 500 zcmZOtT9jIppI=hkcta~fm4UHPNMXecm$^&k?n;b**?D~HgMVA!NEx|u6fUqY=ehN5 zU&FMA>1C-!#hLkejI$X*%GKF~H6s^?otkTu&uZ?y`GV)MX*UnQ72Mpnhb>35j*od! zVrtWp#B7&reFKBU0*1trZ;54ayVkCVdaXYxY;Tp=jo+mU>%LxH`BMMtuLW+4CiAq- z+8^1sBr)5`#2~SN2~}I;u45WvHCkM&dQYxCbZ@@!zxS#vjZ43@7scNfonQVWDKY0; z3dn6?DI%+KW4T@CC@0tVygwNt4VWBbfJ@w}?X2q_^A;y-Ml4E9ZG^bZ#1g}8>W73* z^2>*AcgvV~Y2B2|W~}pGCM}(4WamBaVDU1x*|~{1-?o55fKY%T* zx%F*d!?cI#WvNBQnfZB)vl&6k)!BqKBNvCAnroELYVN)Hg6FYmHxIuR+}yW^El0DC zk9kpIYSWU$Y?o|(1B1i@hQyL@iDhuR)~<+ptv@MjZgq(OWdmMtm_{07AI>)EJ{pmgt*Pb62ook zhlEb@%ZF}v%b0j+-IU8_tn*$bEuCm&=RNOW@iMmAxrsU7wtz!`P=F!XVga@V?tMb; vLkcOsfBH9{R`S+%G#p6S?lH&a?~6{YA9`JkwqMR3jAmu_Nz8$pN+?DEk-F5s literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_113_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_113_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..54591d126a556e50b183107f457eefc53d489bc8 GIT binary patch literal 506 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1#SE9ZOXluMjDOjAeCvaMTi-|-xpEXP zurKGi^=)6nw1??ssYS(^`FV`989~a`*@QJC7l)miYn0Dw?!Ebf=do!w55E=M+_#4< zN3)KPc~N3&(~`t&mu!6lgTw-c#FB4`WpKOJu84ZAKPhZ)mDr8nr3>r6US0W8|LU&= zZi^=Kw9VQd*|#Jy+sVWrv49CxTjQ={8e%nCT&sFdu0C{czVN^Isw|C5zqA*{-xr-< z{v;_e=UWQMZDA=Qt8!zxUFIk!*Y~_X86pjs9Akh>+^X%Y>mKtKCu>G5N=$8pxXr{8 z!)@w^gii9yhi-Svn0RU3l*?wU^Ij$`ooHm|J?~)gGPc>di8gRU(OzkW@YwC%z>LqC`JIIaMZ{E literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_113_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_113_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..605936b4066f4be3cac218f3bbfcb3efca1f088d GIT binary patch literal 509 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3L441h}=I%<2f7y9_>w|w=-$)s` zauhDGFXy@SZC}H*hv{XhMa7xhl+SAJz4?OYv1vCCzZKlv zw}&l9vyP8>QDSP-lEiG6Y<&ZR!~%xIl5dG+aJ$y7haPWEizf55&DtN?wGVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS z7oA`JBq=fHTMEc+VJRZ3a$~t&<|rrE_q;zDA`O@vV}MKCs_m@n9`hC_Yepdy3pVZPPV0HJWqOjgWlD?l z=9snVWvNBQnfZB)uNjF^z9=!ZX-Q(XOSZm&QDOl@VhP-$1jUSZK682gSUj-F-O!w; zSdvu!zo&EWT7yMa2Xph6Urj87E8TL!yzsBa!>}5bhH~w93x->E^({2v#xv0Tb!&Jfn>bj zKmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>eB<6fe0r{1Xk&6;j8zFu*u>||| z8(zx_Xdr|y-(fQ?1k`i;i0RYz2(lG!4 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_114_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_114_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..531591f880c715c7b50be80c5f6167432dd4ed19 GIT binary patch literal 502 zcmZN$U}Cgdlvv^F;sYS(^`FV`58HrK8C^5BZNn*B3w!VQ;VgW;93EZLt#f*18b9w$)Jg~{# z(441Ol2rb`r*rRGgGE*cbMu#9O)P^e-EzXb@UO%m}B$zMW@yey)H)EFJ})%voiZ6=6p*5`IV57ixN{CA$~Qn z1pDdFiQvp3z8)U7?w2d oI;J63qs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7%*0N$w5H2?qr literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_114_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_114_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..45eafc57c03c41629fe0e1379dcf46153c8b6893 GIT binary patch literal 505 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10CF-kR+JJ&Bguug1f$8kUA~?YD^~@>f0nrFs{H ztX_P5h3S2L-6e_HP9_$K1x!fBhoy+D%8liAnWLOs-}C-th_oCdU;!?1tG2VQd(2y$ ztQmo1yx%|ln@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#Uvd`kiOm5`B(5>p!? zel@WK`}G@=CF+NSPV&o#Zg1C-!#hLkejISAqQNAcKwP{IWwoA6Yfl*=sLt+Wsq6Ec^cRq7@ z{#ZP)$=%SLr&y9y{=cVl?^=UJRtIzQmtRdRgDc%~!o2XW#>220mWFcew}~b4S3Ulv zdKZMOUVMFp>3x0OC5hQiCKibWOi0FurHHJ`jpcTkqnupd^ZsOrv>YQ~0WNW?wzIB# z%v+qS8G&TH-#`7EPb+zAI~oooZ1x`y}RkO9AW73*^2>*AcgvV~Y2B2|W~}pGCM}(4WamBaVDU1x*|{)F2n7q0 uB?cIlH10a4Ay%WswW{~z>O=SD3;%ns%F?*>OM6lLebM>lPm&UIz5xLGS<*uQ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_115_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_115_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..70833818968691a92fe2e05b93ec6f0bcce39b29 GIT binary patch literal 640 zcmZOtT9jIppI=hkcta~fm4UHPNTFug=2`!re`!~W3^~Db%UsOZDueZ>@hX-7cc-Y9 zRmWaSFH0>d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1&Io~ETfxJS<2>Fap~G_Xi>O zA$fVr3G>3g8V|#2SO9A%*M6H=B7fE6U#fRO$m+${SD4<{*IkmB?POw+SiqE60ymye z7$X_)_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZPSQ@?h9RS)b|cevoY zFF%~kBQbE@U*6wm15R76^Oc*xwsRvmUOUklt8P3CEvwLh{iG3OfqJBkx5 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_115_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_115_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ebd6bef91d9e7f0124a1b4ca85efc8c046cb2386 GIT binary patch literal 643 zcmZN$U}CgdlvK@y$6iY>OD!tS%+F&?0jUm45m}WR%k45pIk~>){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15c!VrnBLddU6PpXWMYw6z?4`5 zH=a-!BN^}aPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8*jnzjl9B5A0TV zxZt}lKb*}YF>u{q-rr{fPFt??m7Bn}b0aw92`NH^ya8s&uU!%KT7Od5-YT&hze^X^ aeZ9K!rT*1l3)~h>=4qR?Ke8_|=NkY;k`pih literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_115_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_115_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..9264260696ff551d6f9bf6b05df8e49a140409ec GIT binary patch literal 646 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~%X4&Rh|DS(pSBeZd!E?)8%-AY}^{4SF zmH&6AsFqd7UP~`aEh^5;&tpshsSZmKS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNr)D5)?Du`OM|{WAVTycSCcYVo6f@|DMjhYYi4z9n8&Neig|Q0}M+V zcOBCZtI^_G)q8UFp?mX%|GigbX^==}00Nr^e%CNqJ&LdfHb5>uNXUNJBN z+XD9oA@?D9dCLj&!oM01!)jOnYbe)#n^+=$)#G2PcR|SN#n)Gu-q+V%l9=seVv$(D zlvn~co=_Mg8SnQ`|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%IdD_Ic7Ih5 z>{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~enBRJ#+2&dQpMPmriVQiybIV-J*eZkd zr|~M4|97XTmQ}}IOD{_;D$dN$V@v_54oeYPl^e_LGDkVNzUTeP5NSEa0GGH`+gaB= z<}FUvj98SI+PEY!+a+7y#4@pfA+h9JVj0{j^+Q4@`Q<~myJbwgv~J2}GuC-8la@|2 zvh$vIuy`5U?A*khZ(vIj6f@rW%;ouG@xUf`Lvx;DNmBX$p3c2%4Hj7)%*|hZ70D6< z3`-h!9n%o2(c)Uwdvf)md-H|=y;o&vT>7QGDE_|a{PHJBi8{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8ti_ ze^n3cR(H7IyDvYS%_A{z-Cy3{X9G@KuJe_fz_xQEIOGW_LWH~lX2`Ey5%pSsQrO-q gu^Ycj7uJ2fy7Hy|)n5zT7ER`9o3%f(FEQsE0BHFWJ^%m! literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_116_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_116_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..cc3812c5ee6cdaa75b0ac8fb73ce1671bb567da0 GIT binary patch literal 500 zcmZOtT9jIppI=hkcta~fm4UHPNa1}#(8cDZ;qMtX`knBd_4oh0M)j^6O7dTSx?E|V z;}mF=UY1%^oSC1;IGYiqJZSUDkI%%?B^CF#C@g!q`^>2v^S*FDN2N`<#Xff;)ms)N zrZz1}%y!AvH!w*oU`QdOF_a{T70h414aEV*Bops$~-r{7^+T_V(e}&PgVC(aK8ZPSQwhZg0K|;f6951J literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_116_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_116_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..27911df824a37c67902bbaf96cb0b5b5c7ddf766 GIT binary patch literal 503 zcmZN$U}Cgdlv`^{yLA@?U?t zTxp);6lj!QmReMtnV-ivn-QcuX!FUB&&1Lt75BF&EPJ{8%&8pnzHmQBrA@iTK6fJ3 zTNWjzHZ4iacFEQ^Fi9+6NG$o5SO&Lir`o1~^=Ftmul-M-(EWe+8Qo&l1ykY}Bo;8CYHQqeOhc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz4A z=6p*5xh*V3WL0h~x62&m7RQr4x%H!X`bU0Xp~--T2!2wpT{_x5u`k5^U06T#L^`d_qQl4d%63}sT}jZa6d<-O}WKB zcOunW7A2-OElJFF$<{Y8Ni1MUEcupL2DfXc+NOZ@XP7##{ZF6J{eSlv-D1@RQ|`=P zd}E!w^fu*Zvz8=gJDC_H7BHb|Yut5AL##%NYgO;b)raoQ7ykENm8Eg%m-eFg`=ay9 zpCl#bd`khjEi6T3Rc yPsn{pA?5c^|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%IdD@6#Rvf28rL8I literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_116_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_116_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0dd99fe33ffafdd1b7b1bc7098c3a419404cc9f1 GIT binary patch literal 509 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Ol@LeRzLrQz=xHu|0Lo%Q$syhin| z8%pwDf4W?0p5qi~lwOuvRGgWg$2gl2q&#Tz$&b&((j^u5w{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8n7z2mt6K B*ChY| literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_117_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_117_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..8470fc9536f4644816ee3f84179de9b8c66f71e6 GIT binary patch literal 554 zcmZOtT9jIppI=hkcta~fm4UHPNa4h>DG7F*{@d*OrY~?=|CVi+td-N-g{9%m(;^$> zdw1d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{~Ay;Wj2ewQw+`+9ZdOZ}_A7Pu{%%+oe&e`Md1#B4{C!~$kix9wEh6tMmb zQ|Gn+>3~h>{=fT-Zn5fuDR<^CzOhbTdYkgISxXYLolFc83z$%~HSRj5Ay%WswW{~z z>O=SD3;%ns%F?*>OM6lLebM>lPm&UIzHI?}iBK>j1)K%gOYl%56y!(&?DtRq=F>{v l+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Za8n5dF#z<$@D>07 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_117_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_117_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..95d45b894e7a06018aaa839d6a4a144483af7537 GIT binary patch literal 557 zcmZN$U}Cgdlv){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15_D5ZUk!>|{#m{|pPIRAqrB~<7~=WZ#m+Y)6yC0%laV?Nr+o zu>K5F=e7UofKBNBzx#}CvFd^;cjhm?u})rkoAR?+OA@o4ObikWm{7Gf?mDI+R-?tW zs`upTL-*zj|9h{>(zx_Xdr|y-(fQ?1k`i;iZ2^0UP%t9}oCVlR@K7TZ^+T_V(e}&PgVC(aK8ZPSQwaqz0R43E8UO$Q literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_117_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_117_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fbdbe362614da1036d377493cf54e9932414cd1 GIT binary patch literal 560 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10i#IY#}cAWm(?E0oJa9RJBZI`T-)7yom z;my+`8{~U;?M*LBEh^5;&tpshsSZmKS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNpHyLAI=QUzVsivG_!XYxuA1K%1{$4T@X-S-v};nz?JEyzQmrMTx1+ z5L*lkFl<@7BI>pNq_DkJVmE%5F0A`{b>&O_tG^bwEt<^JHfw)m-;%^^N0YmNB zRNEA={tQ#+wg2gWP3Zo=`;2a}>VheE<}bdnPF{MO^0Qe>60@C53=#{NP_;GgI;J63 zqs6tV_vGqB_vQ=#d#}pUxb#bVQT%<;`Q=ZN5_7(70egv1Fe3$=1=vgQP$LxNNCE8k rPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8*jn2?a3#5g+g) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_117_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_117_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..62601f3126bc78fe7129027e94262a53be04ad3f GIT binary patch literal 563 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)Om#u_+05oc`PF`lc^%S^t)8m#mf3 z+l8g!&C?ARO)pC=D$dN$V@v_54oeYPl^e_LGDkVNzUTeP5NSEa0GGH`+gaB= z<}FUvj98SI+PEY!+a+7y#4@pfA+h9JVj0{j^+Q4@`Q<~myJbwgv~J2}GuC-8la@|2 zvh$vIuy`5U?A*khZxJ ziK)#HTMP^^Y+1V^>b3r)u)S4cH-48ctowR(EU^jBc^&f+=_AFTSx(UV5AIvsp_Lvz<%~5(}76wKeWK zrXg0N#kH#Udx=mmBL$oV*h}zGBNXIF u0qplr|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%IdD@61u*~|Ht;9_ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_118_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_118_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..ed99ab2bbcafbe96de0f55dbe8543a1b1cb91fd6 GIT binary patch literal 555 zcmZOtT9jIppI=hkcta~fm4UHPNMZR-zfHUsoutl1?$5q;?T*2rmvaoS+22s!n61C-!#hLkejI$X*%7Zqa{P;{PT~cv>i^8&(yU(1;G4Biab5z=tTkLZuQoUtS zVrtWp#B7&reFKxk0*1trZ;54ayLPH=3Rr)Jsq@i9uok6RNhxUB@)UYP7gk^`2aP=-zzcfA3XU8kc@)FN(h}I=}o$Qew`x z6p-7(Qbbne#&WyNQBJP!d4DoQT8=TmC2rMr)^(40i<31Y7A2-OLfmFziQzW&LqaF{ z^%~3Ol5b z+H%6Y@UOKLAHbGWvNBQnfZB)vl&6kgEpW1_)IKaQgMHa!m^jU&z#CJ?+f>HRN9nV>~kkl zy=75iYSWU$Y?o|(1Czu8hQyL@iDhuRcB*X(Sbv78^V{Ja}#sEy#|K>p#Vb)0VA+2aPJce zJEV}>a>Bguug1f$8kUA~?YD^~@>f0nrFs{HtX_P5h3S2LU2sTQfI|vyJR$ER8SnQ` m|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%Io|*d>hC%L literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_118_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_118_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5bc2c00af3a18a6e021e654d73684dfc18d3ff46 GIT binary patch literal 561 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1`A)x0yceCM&PDFezIE-6!J(IP46oVW zP~MoevUB1=wu9+qsYS(^`FV`989~Z}HlO_XOe|eeaes@#vX{HhoXRop3-@zW+LT-D zb0<>0Wl>^k(~`t&mu!6llf(js#FB4`WpKN8s%;8be}<{^+W+(k-T!x=(JfY8Fy+qt z#W&W;OK($tHfu>@wv&lLVgVDXw#Hq@G{kDOxK{O^Tz%-?eBpoZRaqLBerYd?zb`t! z{7F(`&bJhh+rm;rR^`TWyUbBeuJ3t&GDKRAF~B8m)ppi(k9mueH6s=!rZz&{W@3rq zHuXb7C;8<=x4UIb1nknfDVNPy=e3^d)~p~Wo)x^6LY@328RHl07D7^Bd{%S z?-L3;q>$Qj!o2XW#>220mWFcew}~b4S3UlvdKZMOUVMFp>3w}&a7bBzLkey@A@3s@ p@Apst=F>{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=Z-vAv-R`s4-edykN;eYQ{SsIsqX)lVu zFFL>cNm63Yw-k`u!cs(5<;HTm%u!CR?|FYRL|Tq9z$I?gcGh)|d5e=ZBNip5HbUHH zVu|54^+Q4@`Q<~myJbuS?9#d^m(5t`y-Zp<(a6qw-ofH!Y_oF{bH2R>hXA1fLka;S zuq|-!6AC+|klJ#>yzsBa!>}5bhH~w^+T_V(e}&PgVC(aK8ZQs04=NUNB{r; literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_119_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_119_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..4601089800d5926553e565ceb8c3e173dadcc18e GIT binary patch literal 696 zcmZOtT9jIppI=hkcta~fm4UHPNWsZUPCH0M`QQ8MpcBhZtX4LzTv6J#R!VnnTg%z7 zn+C4wWvNBQnfZB)lbMK7z9=!ZX-Q(XOSZm&QDOl@VhP-$pv@;gJ`+oqRNUX9u}5bhH~w9Akh>+^X%Y>mKtKCu>F^8SnQ` z|K`(5-rA0a0}0zb=Ggpw(W&)AuZz+4%h`j`tjs=%IdGSJ?f$AB*sbnx!FOMNIGaae z;JUxOzt0Aowp`~cH-T;E#@URZKq2Hcq(CtN2g)}j*X&f=6tMmbQ|Gn+=@YvD?>?hj zth!*zo%xGztdp1Cru+=BSzyl^fIW+>t#Q{e4Y3+6u2sD!S0B1JU-;j9RhGu3U)qb} z?~Beaf0C4#^DPDBHbUXDC^5AW5@9Bm7;aNPBy^HrK6JZV#>7kOrd&2-o%b?n=|m$t z?|BD{m$A*xg;_!{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sz=ZaF=}T{;D3>t?qEacVB)u zn@3{cy1%@?&jy^fT<0q{fo=irKrsOa$~Pp}>{Qznu>K5F=e7Uo6T1KJ zKBHT#x?swk`HOF?lb7D6{0y*JV9y$WJ&UZZan~^ou^KI|RlO%yAG$YR_}_a~md2%D z+Kb}vi_R~9l9ZV9Ed}H@LgBI~F|`pAVJ4OsZc{%bbdp~_bh}%|#7pa@TsC8!_cCee zL?b)zc?XM^vCYnfSwbk75SADiU|6ztMbvBkNnv}d#BTg9U0C<^>dKe;SAQ*VTQr%c MZPxzCzQmkw0DdtjK>z>% literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_119_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_119_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..dbc42020342ea9d16406da140bf7c00d5303f661 GIT binary patch literal 702 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~10C$x2Q;NJRPH`|6+*%TBCTHm+Pz+O}3o zcWztD*|3`iuIXi|Ma7xMF|}z)Vzx`RzJXC<0YhR5+@he(CqF(DOP5sK z-=eVWBguug1f$8kUA~?YD^~@>f0nrFs{H ztX_P5h3S2L-6e_HP9_$K1x!fBhoy+D%8liAnWLOs-}C-th_oDIfJ@w}?X2q_^A;y- zMj#pQ_fP-k(@Ngjj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK8ZPSmwfI1svg*_?r_0( zUw$~7M`GZ*zr4TC2AsBB=PNgXZRf_>jG#avX&l-R|i>$42*D(#T8ZE9>y(d>6x;J0=-+NV- z#-(4{i{kH#&M$wGl$i4^1>`nD;j$<(wGk3wCYBg(Q$Hkhl3zY_yIaP@OY5dwHe;Rl zGHK~VBRlVT2aA`n&CZ2cLMWIJmKYddSh99S)NB1oVSB5@Zu~A?Soihn%9r|Ae=TrZ PG?}Mu*8a%8#GG#cmdhwg literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_119_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_119_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e0c511b8eb3bc0081faf5f2d759423da8e5c50c GIT binary patch literal 705 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)NbaN=`dSMET$Q>Yx+LPOMfou3S;t zwpL1aZd=RQu$u<1>1C-!#hLkejFXv&QNAcKwP{IWwoA6Yfl*=sLt+WsqM*$uKRy#n zmsH%}qOk1c?lY%y%=^Oq9F;cZ7W>?ZRBuTvgDc%~!o2XW#>220mWFcew}~b4S3Ulv zdKZMOUVMFp>3x0OC5hQiCKibWOi0FurHHJ`jpcTkqnupd^ZsOrv>aoAOWdmMtm_{0 z7AI>)AQ|uXPygoAO5WOzh64%PJ?7Z_ebK4)L$8a`_RHCW(X7lqi8*kWeC__K9@wq! zaKU$9emI*)V&J;JyuZ%|oVHx&D>s2{=f>HLpg0SC%AB-iXz+Z3?=3{&T| z|LGID|L;DdTdcZZ%ANU(Z>*D--lqHvuvuWw8h|~EtgUg^F%7XAEv{9)Cs!Z3H(&VQ zdsUXkrC-{M;_r*jFMpDhnDZ?K!w^b zW1aUhY3W2GJMVc1iZ+>oNoZ6s3=bW literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_120_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_120_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..f5ddcd5eafa95443aa8fd6f24f19ef492fa987ea GIT binary patch literal 586 zcmZOtT9jIppI=hkcta~fm4UHPNMZe~Jm#|;d(Y3b&Jq+(T~uIbq8`q-xWuj6&bsa~Z*j6_#G=I1 z#wCf_F4_7fmWc%ni6!3>%ivb29}+srFCV(yEo0)PbyF^zvCey$v~;48o%g(h#mm@c z=O*TS16z`ynDNeMF3%r}2R6AIn)4J(lFI-0bnabiu*m9QZvOJCNR}92Skk!bn1)!5 z7T2oYldBKin=kzDy(&xN(l6~r@%KgNmp@5L%=y;C2=WRck0Wd`hIj?;55PWcF`o8@ ziDOQ_h5SnqZpNi|?Na`<2AC} z%h+b;CgywtTauud@y=&1&mW5iHn|&`^At;x%K!It?pp; zp7w@`V@|$>{7VsT#-(@dQvS3Cp4f7J{RfG8GRjktyuAG#+u6dR70-0oe;+P_|l9yG3VPBuxkjJiExdH1=!DU*AR*lB-i-;)4%z&lDD>_;XuN6 fk2yAfUvz5y(CcEf{c`qTG%K@DVh-F?LU8~9S-bjD literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_120_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_120_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0817f4a22060a97f6f406c877dd935d433306411 GIT binary patch literal 592 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1{j5CZvmATR&$P}G6i!`KU}&Nq&bQ;? zy|t%qpS!;9t3i5MYEf}!ejZ~ANOf3>$g12}ZkIXA$@M+&Plia#F$TEAt=i7I?lEt1 zvS!4h#MH(miP|2|y4@{f;-z&{E}OB=dzrL!qLH2V zyo1Hd*kR@jE@~cRe7+_e^ zxa*jPSdA9fs@{{U58azD{O`RgOXJcn?M3nTMdz14NlMK5*24($3L%dpY%zv-1?~^P zK5a3c_J)aLPQHcwOA&6yrFZR8{9*}|d~&ve*-A1-`o zBY1rCF}bwpKW!(Mt!tY2(u_GV=i3&rYY3T%aE*xt*w1j+5Q-8c*ZBR@zxlM1x3;6< iK*Dy9IW~V^bZY(3>teM1a`s>}E3;2x4%}2iaR2~rcluiZ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_120_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_120_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..a11ed4d8955397b3176a9dbe9207d7d18224e439 GIT binary patch literal 595 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)K3@tUTtk9DC2tw9XO~PF+-BXrdm@ zx8vcxwWn^MyT0zLL3&wgQE_H|9%Bkfby$kXs@zy^mpRJG^*!%ThDggX2Drqn+RnP} zF>i6QX2hbz)W#)=*)G}oCYFf>42dP*63gILsUH$L$uA$e-7RC{rFBy-o3YM&nY47G zk)8LvgT>3(X6Gj6d;?pOpqTN_XD-hliw8Ej8=CVJOOnd}_jK-EYp}@bU~c~Mt4Nj@ zU|7<)>zIaEjTYCc-jk~j-J37`@4YHZft5pKq%ckNRCv<9Boa(?{>iFq>0Q<1#9{TjbVzm8o_FyzCvrl3U+*Cqw004R}`d|P6 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_121_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_121_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..664a7188654241621d2c5ec038615d56ab2b29ec GIT binary patch literal 811 zcmZOtT9jIppI=hkcta~fm4UHPNP&5VZ~CS!5nnD{k@|MX=1%gw>#v;egls6gQa5LP zSI7B#>1C-!#hLkej9VCqQNAcKwQ)&ewoA6Yv1MWbLt+WsqEB0lr@dj~n3HcI|5AjT zap_&Vls~P3C$^kl|3PA&jPlgPGPu(1@7T^37Oi-u!~Xkl;X@n2{fTU;JYtBoXsOKaNS?t-)93(Tdwn!o4~enV+zR3uoRJ1xv|_XbCi?o zd)}W6k(Of&aEV*Bops$~-r{7<2t+`bKmy_$k_Xif37zDZ58dvTG4ay6DVNPy=e3^d)~p~Wo)x^6LY?SElE(!c;_>h=a0n$o7@e}d5R@T<^Ov+_pUWqWOXn%fB97; zOANrFjciHdu45WvHCkM&dQYxCbZ@@!zxS#vjZ43@7scNfonQVWDKY08Bu)v%3}8sM zSb%MThd!Y|K=QKRKmD6eD|u@>8V)3E_n2ez_eH1H54|o%+b?GiMzb>eAca36UxR~& yP$VH7ZGagxYga_Q)}Iu%w@U2B@6v^JU$3rwsekp?0=GqzdD>>}kL*j#`33-ul4>;o literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_121_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_121_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..2a05acf5557dbd50c9fb7e062528134c7b4aa264 GIT binary patch literal 814 zcmZN$U}Cgdlv0P^&Kdpf$wwz!8L1Lba^3=pKxYF(K*v=Lft$3!x{`+v@LmR>4n~%w*MgM6# zxoln2#Fu8wi8*kk^7CbP7Ch|yZAvD_|m zl#}aw-k%JSmSYTXiCeXub=_m$;$+PTL_nB80^%Ez2h|S=o#dAf-R_n#@zS~}m(5t` zy-Zp<(a6qw-ofH!Y_oF{bH0HsNl?sq=QEe*kHrI<+zriniX}buc%7 z`BfxK48Wm{Y)Rv;V;W*LT3oAoPp&?6Z@%!q_o^(7OTV-i#org5U;ZR1G3Og3P6@>f zU`V!DfNg%m}B$zMW@yey)H)EFJ})%voiZ2g+C!* zgM)@pBq1DafEhGvS46$mpA@#YO6`Tn~1^}8y BYB>M^ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_121_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_121_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..3cf412c34a91fdd27d0ad048648d8001cf64b3fb GIT binary patch literal 817 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~Xd4_NLrY#X)E?trOcF5*V^1SP>obQBe zD7#WOXMI=4`FrVQsYS(^`FV_67>QB7C^5BhNn*B3w!X1tVgW;93EZMjTa2f@Vd9vR zZz2Cugqv~cUAvS&t$`=DoL~PzVxElh)WkBl((Uiq&K4G}c&5Yt`*7hy8^Pn7kIAJ) z|7kn9Y+cjDmuAd~IdG-&^JRAyJna1C9$8$Zthk_m-lu&t@5~5Vy}9%A-eW@3p9O;) zO-RwA#MA~PGrx9!RS)b|cevoYFF%~kBQbE@U*6wm15R76^Oc*xwsT_&$jq=5kyW{| z+%9vJlk0olpA3^ z%~E=JogXAefRGW#Hf zKOtX(gN9HfAslUh88mBGM7`FZ6t=fY?8fiXg>_%Au6(I~_16NoMU#2jX6=vcOU(HO E0JiIDLI3~& literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_121_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_121_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..d4a9c7bf96b9700e2d4a69b37c68eef3c7d3ef76 GIT binary patch literal 820 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)LD!hHv_&EfHTXU6J~B$mUM+yz8%= z?}Th9yHYo2eOJf%d+BAVMa7xaHaC|Wp@@l?EK{(SzM&7xS)UDr+qW;%m`Y&x%2bhV?xuP z1%n(-NYSFi)CMFozjl9B5A0TVxZt}lKb*}YF>u{q-rr{fPFt??m7Bn}b7Km~%&-)Z zRk^X;E_0NV>wDgx43U;&3~-5CwVid{W8UIq%?Lz5m_P#J8{Ja}#sEfh|c;%y{QBm*GVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS7oA`JBq=fH z8zfE%#SCCbwpf5|frmb!KtS@c-#`7EPb+zAI~oooZ1x z`yhosAzy=ohEOCS9BqIZG;3Exz1E);wzo>`#_!UFbziTpe5rr+*8;ailX==^?T_qB H%=rcY#|LUh literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_122_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_122_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b399c23c93e59a76ca6726b64e05c32e7287ba76 GIT binary patch literal 727 zcmZOtT9jIppI=hkcta~fm4UHPNFjouJ9fsB+I0J0`#<>X6Vy9?U>g(fi}lty{amN5 zn=5?M%TkMqGxPHpQ$VVvG>V?S6|K)oQ>^~CaKbUU`Y@^Y^QAY<{k1LS=Dx=kGZrPL zHZDobcFEQ^FiI?7NG$o5SO&Lh%L((szZwt2YFHY|wcjR|$Y1sNm+D;*vU>6L6{h#~ zbrW;Gfh`G35m}WR%k45pIk~>){mBq%ImQ5&xK-O(*FEMfPS%V-SYl#{VTt-7p_Bab zq1)XuCSF=M<+2&;yq8H!CmPv#&pTMWjBR#qV$QcMj3BQN@;Jg4V~8zqe|*|vJnan= z$DDi%`IjQxj7#s@rTl3PJhA2c`VSKGWR#~Od3pOgwzGvrE1v1F|2|y!&_?k1=3{bc z(SO=bE?d_$@ueAaVh-F?LO}}-ngqp+cRq7@{#ZP)$=%SLr&t15Qu+U$&b@057Fiw4 z&0l^M;b;>BjG$@UbxcF7MvH4z@5$AN?#&ne_ggRU(OzkW@Yw43K~Mb1^{ut BH|+ob literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_122_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_122_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e023b5330923cd2bd24a43d193fa125b9e19982 GIT binary patch literal 730 zcmZN$U}Cgdlv3g8V|#2SQ^T;-zJvGU-kHx>Rk}BdhzuY zruX%A6LY?SEeT5zS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S=){H<{Vq%G5iTWX- zll=0b+ubrIURpQhvKi~Vmq|+}8rgZzJ6ODoZFX*A&bKX$Ag>VeIKmcVh%In`eA;3> z?F|#hoO}!Umm=JZOYhpH{Amq5vE}^w4-)fal&2zjdHXxIvxP+~p6RgvK3w?FM)3IN zV{&QHf7(tiTh}!4r5ST#4%}2iK?@F=1jUSZK682gSUj-F-O!w;SOQp5`Tw5Iy=x5? zSsl#HUw#$gXcGgBplRH7Ohc?ji)&Ty$<>GM%@_XnUX`VB>6iAR`1_*s%bz5{gNBd? zk!-O5+XD9lp{PR&8oz(~H=kDW)^;=;NZ9T%$L8;gPOTq$U5vJ0&K`_rW%fY|8bZDX E0DU7j@c;k- literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_122_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_122_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..186fe39b3977d1cf544c59fa8be7bca49c6932f6 GIT binary patch literal 733 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}Mf}uNh#**4}`(OJ%`0NwZJAPmr6Yq=l z);axLr>&bSeA3HOi;6Sz^B7Y=s--lFp1u{W&q`CQ{CE z#}+ddC8jnmNz8W1);BOpEMQ11`IcA)w`$7?^TNLx55sC$8p^fbCYH!w_4t?ST@bQ* z@%0s^_w{uXbH0Hs2}==Kl^e_LGDkVNzUTeP5NSEa0GGH`+gaB=<}FUvj6hgoVu@ji z`XQl{{PLmO-7+R#S~umg8SA{4NlPah*?G@9SiFpFc5Y(Mw=IkyuMqM$!WLtQEpUH) z+G0HI4HL(ld<*%PBHWBi@7ksOX$?HF<^1{&67yt~ry_ZI`#ZL?g+(i#>9GGkT=>vN z@c8Cqa%s_j+D=V>Geqb9D z?~C=;IsIIxt(z-+(#ukdiZk=`7*jy1r8J73z7?&{N>i-tP}7BdzlrZz4~%y!AvH!w;pU`Q%C+AnmdIcA_?PNk z5VCsl^%bV~^>q_-zJV8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qKv-g8 ziD8NQA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmoyo_yjZeq^2EsP+q5b`*}7GsDl zaDRN-Vm$2)6UUr<3;CBK+>A@_+NJzy4Lq^s{Q3_P^JJ8#B6)fHJGQfhMJt}^u>U?> z_|Qi1_~v7BY0-b$PA*&5H1VYwb7BtMR6;=u4w?kTjCVeBdHz^Du*u!foTpdjiw_XMG+Lkb$dfBH9{R`S+%G#p6S?lH&a?~6{YA9`JkwqMR3jAmu_ KK?)i|z6JoLOgH}k literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_123_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_123_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..87df402be45ddb666b7a5a0c96602efad5ff8284 GIT binary patch literal 869 zcmZOtT9jIppI=hkcta~fm4UHPNP+$0(sVajRr$PVl?x?PHpx!j`+U0lvB0{8GnKfH z3SJdSFH0>d&dkqa+`>qV@wDgx43U;&3~-5CwVid{W8UIq%?N~}O(2f`hU6IaLqaF{nlv}>+2$g>(}nD>Ve(r z4i|j)<%hF*BnGbg%lrFmz-h~MzH$@Tc5Z~E210QP7{WCs7GT%F8V)3E_n2ez_eH1H54|o%+b?GiMzb>eAi0`Q9DpN=kk=57Ho%OiwJV}t>rV>X iTP1emcj>~quUA*T)W7;`f!m_VJZ-b~NA@M=d;cDAr+#WNlD--iny+6W%sd`vDa`cK=* zW$T(IzBFS_%z-OiRI!WK`N2u2y9%O;Uu+^9BFcQiwdC$(gbCk%RlcV}I0fYBuoRJ1 zxv|_XbCi?od)}W6k(Of&aEV*Bops$~-r{7<2!x|eAddcqzIaEjTYCc-jk~j-J37`@4YHZEP4)vz>_Yrjn_k-zHkFV(vsWcA|fD@^a}>mr5g*Y2%m}B$zMW@yey)H)EFJ})%voiZ2xtdTMfFp{K*AR|2z>KK1E23WO lPYT;xC3fR?>B73NS69B&zxr!|+oH)lZL{`A_9fMeH(6Eryl9mRB~v!ZPTu=`y8E%f zx`i{9xQ_~66-h5kEh^5;&tu%eNR0ADiK&fC60=>h^^GkP3m6hh;1+$_Vm$2)6UUr< z3;CBK+>A@_+NJzy4Lq^s{Q3_P^JJ8#CYHgKZhyyiwyjOfD_@ zPut05>zXFMG-FQ8fh%29v5VLF!AYmP3ZjZ%Y$6*X%6!7LZAvD_|ml#}aw-k%JSmSYTXiCeXub=_m$;$+PTgriL$j{b(^81+L!C;8<=x4UIb zytHo0Wi!@!FO!x|G_v!acd&RF+w9!LoNr)D5)?Du`OM|{WAVTycSCcYVo6f@|DMjh zYYi4z9n8&Neig|Q18~S7Thh4en1)!57T2oYldBKin=kzDy(&xN(l6~r@%KgNmp@5L z%=y*>4u3-aMc86sgkj5;6Xu0~H6Di5ur!owzfCNWzv}TX)w>{M_2TO*Oz-RKB8BVM z?yu^B-Rce(eD~#tvw0*2uKUaT`)t5z%XPkT6WDfcgro*SaS9m1H6|8d*TCbAP?R7= zfZsp;n@=lwYdabaBy9JXWApb#r`8X>E=JogXAefRGW#I8not~oBZ`pM5RNv$jHtCM oqF(Dy3fo&HcH?*H!n&_lSH9H0`fGvPqRBjMv-U^!CFXns0IBhCRsaA1 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_123_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_123_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..74e280a02b1d450fbbc6ba04fe662b36e306b2c2 GIT binary patch literal 878 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)LFO;?i_CSylPGXq5{kQ#Q#?-uryI z`?0{fg)^17j|yHDNiRz+D$dN$W8A_>jPgZ^sf|k#vt6?FjV%)k7!ph17Jb@cJnan= z$DDi%`IjQxj7#s@rTl3PJhA2c`VSKGWR#~Smcf;7f5&#VuxQ0I9roXc3m@7D9^ZUS zE-m^`+sS3?nkK$9V@}M0D_vBvi`V(VNvFFCqKaQ^A{!#ge8RQl?qq}s-+ooTr$RUd zhUktyC7us;_E9+@9XO# zh3nVuuj+x_>JArt_vMGPc_ap|`^)?LY`|&Db-r>F*miD&qy|E93K+sQCKh1Vz~hZj zlpsZb-#`7EPb+zAI~oooZ1x`yjcRP#l0Gijdb3jyAxI rsI@DiUh7W^+gl}e<9F%8y02GPzSO_^Yk}LM$vkbd_DA+5=6nMHyDxBC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_124_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_124_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..decc94b8948f2cb0c111a771d3903eaf6e848296 GIT binary patch literal 811 zcmZOtT9jIppI=hkcta~fm4UHPNFj#xzFJInQ-haDtIV~JGFuK5zckNE+*+rYU1;_4 z{OO$ZvecsD%=|pY6p-q$6p>ZAvD_|ml#}aw-k%JSmSYTXiCeXub=_m$;$+Q;MTx16 zOA@nPvh__Y6AKs;OTHzR!L3q1By^HrK6JZV#>7kOrd&2-o%b?n=|m$t?|BD{m$A*x zP0abWg%M;6AvYmxF^1Rzx8la;E65g*ME?hC!;(S z$u-;Gv7Id}TJcPW{rBO*hc<%8Hy@Kri~iGga@o43i7(BV6La9EK8z0y^XcV$%pCXo zl#NM^G1tBMvZ8A1;}f@vIzQ-lF$D)rf?~!ypSe7LEFRe8ZfMR^EJ-T=-_yBwt-&Iz zgSq+3uOb|6Vt^4ejk}I%h}CFut?E6w`p~`k!vEf@vNSIJ(q0sQUvz%?lcdC)Z(vIn zz1}kC?m^R+lK-df&zEuL5Xy~E?5M1&;yYC}t2YH?aV_ z93J|F(i~Ep`u)?t`LvR^wxi)d!gh~2Hh*7qYW>jbVzm8o_FyzCvk#K12}KtGreaqC literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_124_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_124_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..f7ba773a588f65a9042b780c575fc76510f8a96f GIT binary patch literal 814 zcmZN$U}Cgdlv74Yk)S}|d{5-}Kkm|4$kyW{|+%9vJlk0olpA3h^-U}j3m6hhz9p8ytx`WEbdp~_bh}%|#7pa@TsC8!_cCeeL?b)zc?XM^ zvCYm+%=xy35o8M?Hz8~>hS&nP;?ox6X>XV~=Hy$*zZBtSTzc0oX{@l1#P_u;~aHiE}DACpUq{?m4H*}A5QFU^<}bKs^vj1LX->E(RP z9QXT_jY*9$*S-0&qH62o6Ss;wKj?Qc1qV%nV#Yh4xjcU?9@yk=XwFkCNh<%})46x8 z!6K`Jx%tblA{=dEfDtr}yN+py)o5|8>OHyo(7pM>|K6*zG%o$pUKD>{bbk4hq{N(W zU`rOg-ZJOzLDQF#|EKQHmvQD0%8iTdJtfCH^ZP*D--lqI)R$|V#U{LS_M##I15>p$HLWhu>AaP14W)Lnn zu>iXq9{PmR98#S6{nNksw34^Bqv1fpc8@tWe_wQJ{m|=TwEc4SU^FYU50a}1MHc|G C7FPuT literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_124_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_124_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fada6f57f6d83e02d5bd358ca63d2cb25e9ea32 GIT binary patch literal 817 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}MhV{N$OmaY}%Rk^X;E_0NV>wDgx43U;&3~-5CwVid{W8UIq z&4@*bsf|k#vt6?FO)L`&7!pgqC6>XhQa>bgl3zY_yIaP@OY5dwHe;RlGHK~VBRlVT z2aA`n&CX5C`L=}-WD6lTA#5>**aElW(-z}tZlS_;K({^&%x~7RQ&6pE&;HEx|4-NC_ z<$TN>_xqHMNsTerz4@}DYU|?@w~9JH=yx#%2Tg)v#yg+6Jbx@6*yL_#&QmN&D*xZp zxp%F>BCCVB`OB{&9BpEN5j2gvj%kS1XmPFTJ-PbOz4^lb-m9`SF8$J86n|fIe)*H6 z#GG$nOBTJ}GUx6=)0dL}r|!>}apn-pjf?F)CC5DT`$9e5Oz}j7B?cxKmh4p96tMmb zQ|Gn+=@YvD?>?hjth!*zo%xGztdp1Cru=MHV$Qc`h?OPQk?qz)4%z&lDD>_;XuN6k2yAfUvz5y(CcEf{c`qTG%K?YlB)?t F7XZ(@R}KIG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_124_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_124_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1d8c4391fdddd7a87421e6a51db40d4113369b35 GIT binary patch literal 820 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H$$^}bq6c2k3wNvq7Yk1|^h6u&gj zO59qfm|bY~^8D$X^s>~V;>`R!#uSk1uoRJ1xv|_XbCi?od)}W6k(Of&aEV*Bops$~ z-r{7!w^bW1aUhY3W2G zJMVc1iOerim}jm=km0rap`h z4fE;ce9Rp8`;?7IjWO4~`Ld#F>*Eu*iaI~&cQFMAO@d;^JD<5ce=Hu@yBCX^7Qmajoh-x%$w(`NIF+tFkmM{nB0(e_wQd z`IDr?oNr)D7QNmw=k7t%my-Xd?$4KT<`Bw_i|sun$2{}{Qzn zu>K5F=e7Uo6T1KJKBHT#x?swk`HOF?lb7D6{A^ZY&bMGt@B>E3yNeQ28<0YWkeeWJ zN+@O!E;q3NyBr?+gwh;RocjIKzxlM1x3;6teM1a`s>}E3*%h Is|iIH0N>YF6951J literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_125_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_125_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b009bc512eb86a2f4a5986af3954308342d01ff7 GIT binary patch literal 866 zcmZOtT9jIppI=hkcta~fm4UHPNFl<{h12O=_Nqe+2fr2AeS98!*-v5m+5G8Bmpa^D zvg+%lm!%dJXXfWI&SC^9H=E?$TUeX;VN%kZO%pt7#avVjQ+AouROE$!`e2@N`Te5A z)TSkg*)G}o1_p@*42dP*63gIrtz8lIT7Od5-YT&hze^X^eZ9K!rT*1l3)~h>=4qR? zKeBI0Vz#46VgWO%uAOR|0@j~l>b&+peM0yD-Dh-*RToUTGk@`ob@I~Nl%LH?%=wlA za#~o5$g12}ZkIXA$@M+&Plia#F$TEAt=i7I?lEt1vS!4h#MDNJ(@ZQeoTh$A=p?^< z=ytb^iI>(*xopNd?`6``iAHwb^9~j-W1F3unDcE5H~x|M x7(&SbDY*Uq>EC=>$y?jea3Ep3#~ho#FFLh;=yfsLemQ$Enw8lH$<>5H5&%w?cZ&c3 literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_125_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_125_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..15edced1bc8511698b8c6c75deffd5d2847e4f0e GIT binary patch literal 869 zcmZN$U}Cgdlv(t*PhtAm{OL-U zI^15e>g%PKr4|)u=I1faVgxBSo8;YFSey7^Qqr7F6Fh3gTvQBGcA3;vi6!3>%iwmcT@m$Ke^S`qDzO{COBdFCy}I(H{?%U#+!jsd zX`8h_vTsRZwxda60W+$uoobr`)}LYOy!JnRLihjOXLO5I7fiV`fANiV^3vOspUq0l z`IZ85T3Cw6s@zy^mpRJG^*!%ThDggX2Drqn+RnP}F>i6QX2hbz)JBNYOe`^+rhZ81 zB)@#Q^_IGS&3yW4f(_#O8xbUHk;PK7J z+Gv>q`xT#Mv{5OO*$a2R2R$ee+!C|Y?Khv4-e~90x{#QH7q(|^G zIA{_SGv4{k<@sarz$SM?bDm;JQu+U$&b@057Fiw4&0l^M;b;@gSZmyMOhc?ji)&Ty z$<>GM%@_XnUX`VB>6iAR`1_*s%bz4A=6nkVg+E|~T(T%JwE@ZDgi;bDxCsRslFKc? zkqQqOLdgLsxc&a=-+WrhTielaAYr@59Gkx{I<0I`zLktJM71(`z9(&nOVfxwp z=}MP6++MQk>!p{a78Pga=P}M=1SvP0_y65zbcxWuj6&bsa~Z*j6_#G=I1Mu^i)EHRv> zen{vfzkKL+w~UFG)=jx=#yan1($a}WcHZ+27B6F)otv2RZ3{R62!$8I7GsDlaNmF0 zVm$2)6UUr<3;CBK+>A@_+NJzy4Lq^s{Q3_P^JJ8#A_dg;cWh@1i&i|-VgG%&@S%<1 z@y*BN(xU&gom{rAY2r&W=ENMhsZTQeH-tCHa>oBwUNB+7VXM+V)0yvoh~KFGS3An2 zNANQ^Xc81N-ucYs`D5|GCU-+~o?=N-`Tw5Iy=x5?Ssl#HUw#$gXcNp>Yut5AL##%N zYgO;b)raoQ7ykENm8Eg%m-eFg`=ay9pCl#bd3J(}U$pI<2{r>6Sd|Js{+tF|!VY|m1o4+qQwSMSzG1`7PdoY@n*$2thghCPk Ddb)R* literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_125_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_125_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..acbad088002c071e2fd1d382cc0b51c3caab5473 GIT binary patch literal 875 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H%d&xOG0tKHDL0$s-CJ0j_+e7goJ|uvYQUO zUklt8P3CEvwLh|NNn*C6Nn!yrs;-@Cn*!FKVd}j0KYc>?|J`SFi&Ym)xif$9jdk+U z+mxTpO3e9|0&-edipZ+mSZg%`pWV~8zq z-+$U-Jnan=$DDi%`IjQxj7#s@rTl3PJhA2c`VSKGWR#~O1=RL;Y-bCLRy@;T|9!ad zp^f12&Bx@@qW`p=T(+)h;!88;#2mP(Pcr;Bgg3}?#{X7cFk!)AtI|KyneTsy->Cjq zJIbU-@H04Q5)?Du`OM|{WAVTycSCcYVo6f@|DMjhYYi4z9n8&Neih+p6UD@j5+t|@ z1sameEx?fq4;Vtp0V%ls{^{R*TFG16(QqJPyT=@xzb`tqe&}^E+I~5EFq)Ow2g%ih GLJ|Or>35v~ literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_126_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_126_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b38f12763fe7151f649d851a227971106f50e713 GIT binary patch literal 869 zcmZOtT9jIppI=hkcta~fm4UHPNMYu))w?PZ3x&^KVYk}%fbEagzuMFNHOr+KZuYDD zW=)h#FH0>d&dkqaOaZA5OA%R>8_Vr7M>)B^=l#hLX*tFKm$+5iS=T-0El$>qSd^IB zxFj*#C0pObGO>UmvE*A~8Qd!MLqaF{va`mBm^M(JtS7m8j`lY=n{=Vq^@+V1&Ip4N0g1kb=;|N=fAzp#|XV~ z=Hy$*zZBtSTzc0oX{@l1#P_u;~aHiE}DACpUq z{?m4H*}A5QFU^<}bKs_4`SpK}S`B}mv)bJDsnQB-6%{`y#9q5Ht9{*HZk`WJY2ct) z^m@yjy9Z5QO8%d^KVQa~Lnt>cw)d1A^UUuH^>{PI6A_L!Fu@3#oobr`)}LYOy!JnR zLihjOXLO5I7fiV`fANiV^3vOspUq0l`PKst8bVG%vc(8&3)~Zc5po|=&}=zjUieqz zVOR}IL%H_b#1i?d9{*Ck3qn>ezP`frzP>Izq6h^y!ZjuqsIDQDT9I7i_fP-k(@Ngj jj)nsX+dbyk{C&}>^+T_V(e}&PgVC(aK1dNoD0u<^S1NQ< literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_126_1.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_126_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..264f12b06aa3ad3dbc77b888e61e140eb03bbead GIT binary patch literal 872 zcmZN$U}Cgdlv){mBq%ImQ5&xK-O(*FEMfPS%WA zl$hGMBr)41Ti?Vov4A15 zlS_;K({^&%x~7RQ&6pE&;HF;r^?#094S$}q+T8Z3(h6%86+bA%Ub`}@ecfMfo)1iE z;GkLbddr-<2Tfl}{-3%(U&fh3C^s&)_mmv-%_y65zbc(}r#&lNz literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_126_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_126_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..1a0ae1aebd75ad5681e24adf2d68b911e0de0273 GIT binary patch literal 875 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0~1=CjqiDiRBY&t74-+V_C%kJi81)BQEe zr5JAZtNUh6luR#6Eh^5;&tpshsSZmKS(O{h?J`F>xxVN9$q;Ed#sHVNRohwDJ?1S= z){Iz`nA*4`G210u-^4PpfFZHuTVfg9D)mD`C;8<=x4UIbytHo0Wi!@!FO!x|G_v!a zcd&RF+w9!LoNr)D5)?Du`OM|{WAVTycSCcYVo6f@|DMjhYYi4z9n8&Neig|Q0}M+V zcOBCZtI^_G)q8UFp?mX%|GigbX^==}00Nr^e%wlIRcLdfF?TZ|!If&1gr z7UOAem^kL-Tgbl@;bvTV*DmExYv743=huIbm?xt=70Jun-?5!7EL!nQhyC~A!iP43 z$2T97ON;)~c5>Oerim}jm=km0re68=e~wxWf1b12-1e!`3TqV=KPbdryE3bN-Cu5= z4@_y`pjq^K%bdFhOpSnL^#+gGXH!imKlpOQS?+f*KGsP1Tjy5pC2%4R0n*!FK zVd}j0KYc>?|J`SFi&Ym)xif$9jdk+U+mxTpO3eAz0}dKOPC>H82y6@76MzwNA5ze4 zIbmM-SL0z=4NF70_S?h~`KuoPQoRd8RxiH3!t}nrEvQ5(|aTUSYS|_kit>*1y`* z{WZ&_7;g5f`({m)OfO37QGDE_|a{PHJBi8a;E65g*ME?hC!;(S$;;c{v7Id}TJcPW{rBO* zhc<%8Hy@Kri~iGga@o43i7(BV6La9EUitNZj#>?Wp0nEA_NmeeYZVngD8yd7GOK;v zUv8ccOljbtS@e3#oVy22UrPR;x<6mWnL{WyF1GiS9P`ZY3-x$2#S;;ZHZZ{mnw@H! z0@j~l>b&+peM0yD-Dh-*RToUTGk@`ob@I~Nl%LH?%=y*>4jMvEL9)dNYzy2IfDv*Z zQqXKUVP5!G<6&40OGCN#+r$$2s~-PSy$eECFTTFQ^uE3>Jfa8%H^Mb07O1Wvlv{v+Kz?;3EMs9*!+Fbsr5szi_!MW*@Mxn%sxmFMJRa!0F<+IWdHyG literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_127_0.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_127_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5bb2a45425b1589263e356b7803b2207cf1c0964 GIT binary patch literal 1010 zcmZOtT9jIppI=hkcta~fm4UHPNFn@U`PYvgCgN!^CFOfE{|8)u8WZ#RcGN?y)Sm7; z8V5I|m!%dJXXfWIrhrt3rHHJ`jpcTkqnupd^ZsOrv>aoAOWdmMtm_{07AI>)EJ{pm zT#}gWlC5uInOMM(Sn@5g3~rVBA)%A}@}b+^GA3SHH|4S!>%5mqOD7uHdCxmoyo_yj zZeq^2EsP*r2)PMii!sC&xD}ta7*Bh{#4#t|LjI))H{;T~b}4^a15a!@zy5>7JQ?Mw zNUqubj_qt=(TZm}?7t5eKC}@$zWJD3TJ)c`lgrjMO?+v_oR|YQb#GJ&_tqm9uN{*7zez8?N6a7}wbK!*NZy=@!8L6e}E@y=&1&mW5iHn|&`^At;x%K!It?pMY<6?VH$uZCTzEF=hQ#=u2iGc}*B|FtN1*|{A)OqcH z`h@QPyU*wrt1g&wXa3?F>*S@kDLRYzsW32)Pd_{I{GiFZ`?VFsz29 zp9Akh>+^X%Y>mKtKCu>G5 zN=$8Bl9=t1t#4wPSiq22@-49pZk75Wp_Babq1)XuCSF=M<+2&;yq8H!CmPv#&pTMW zjBR#qV$QcMj38SGxd~y5F~kvDKw{;!m``9{wtDO?yE=hW=f>Z5zQslc1RK&Sx&qABzVzxf`1E6ibrI|Mzt6 zU2Cw&>R@jE@~a3(n;2jOP2;X(8e%nCT&sFdu0C{czVN^Isw|C5zqA*{-xr-<{v;_e z=Ns6PMX$HaxqHy`rR4vq`}1X-IfQcKVtY@?G0*(IP>(lLJP~1ufeD5sJJmJ?tUtrl zdF_Atgzo>l&*&DbE|_v>{^A?!EWeiTqWMf2rODA*&Z(UtxM*Ul%F-zjl9B5A0TVxZt}lKb*}YF>u{q-rr{f zPFt??m7Bn}b0Z|x5Q=-i5Uw_{Ky@{tRE^|nzkm8SpH}kLb~GGF*zPgM=I@J6tsi<_ zjJ99S9*kyX_Cazrp#%YrP(ofqINAU+)vR3+^;&;Y*xo9!8^22z)_uLY@}>UOUklt8 PP3CEvwLh{iG3Ofq<+8p) literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_127_2.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_127_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..29815eb6e175f94936260d96e558dfbde238f458 GIT binary patch literal 1016 zcmZN!Vq#=qX0}?CT9lt(Qrvh$D?*ilu~0}M{9^gnj~*uCX)z_`douqATz?u9^Z9nv zL#@=F?mHR>H>8)P78Pga=P{;$REMRAtjdk$cA2A`T;KElWQepJV}MKCs_m@n9`hC_ zYeprw-EwK!4mHHu}ll=0b+ubrIURpQhvKi~Vmq|+}8rgZz zJ6ODoZFX*A&bKX$AX^Bz31N#d#1^;}pSBoJd&9&rC*MN;r3g3U(z|vke_8`iY&pOF zgTy=;<*7)n+5V30Y+=!gXFBY^4;MbP5j?*6m|R-)pSF|B)-_FhX~vwG12=VVR0;Ri zBNwk7lwY&y*7@t=Pqe-s{wi=ydqF^k{$0Io8^J-7pqTN_XD-hliw8Ej8=CVJOOnd} z_jK-EYp}@bU~c~Ms|ZJ%7+?fVGVl`S^t9nnaK6G!s@W1z}ER9RQv=_zS7oA`J zBq=fH8`zRXueZ#(d(iZyr^ ztMM?bhNYog`)y*0{8f*Cson)4s~2BiVR~O*7b*O|c7Ih5>{fTU;JYtBoXsOKaNS?t z-)93(Tdwn!o4~enBP7)jihIBit~Rkibv2<>jpS;-fBH9{R`S+%G#p6S?lH&a?~6{Y zA9`JkwqMR3jAmu_L2@;r1ObjvLS92S+5j`vtX&cHT7Od5-YT&hze^X^eZ9K!rT*1l S3)~h>=4qR?Ke8_|=NkYCWxh)Q literal 0 HcmV?d00001 diff --git a/hubble-commit/fuzz/seeds/invert/exhaustive_127_3.bin b/hubble-commit/fuzz/seeds/invert/exhaustive_127_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..cb7100b9364df7456c151e5aa6b58d09b2aee524 GIT binary patch literal 1019 zcmZN&WMN`pWn^Mtuv(N_l%HQx+;~GPLY0BBP)H&CV)@sP9wy>xF(u`DGXDo$e;O0> z`F7Mpt<;|GI~oT!q?e@@6=&w>F{Xf2hoy+D%8liAnWLOs-}C-th_oDIfJ@w}?X2q_ z^A;y-Ml4E9ZCsL=?UJo;VwqULkXZ69u?%jN`XQl{{PLmO-7+R#S~umg8SA{4NlPah z*?G@9SiFpFc5Y(Mw=IkyTL`%cVT&=u7Pu9kwir))!^ANs-$MSS2sh)>yLKsmS_4mP zIlumc#5@`0sYtHb{*LWzVbO|bI_$p>7e2HRJihsuTw3&>wv)@&HBEeJ#+;Y~H+64R z3HR0`7q1HqzJhWDg3vb zFfaV8@i450rJ-E=ZDNW1RgZtE-UT767hhjtdS71`Dg3{7e^n3cR(H7IyDvYS%_A{z z-Cy3{X9G@KuJe_fz_xQEB-Id#d%zH`HnBi;HKA0EgRU(OzkW@Yw4ay6j@0gg~YUPCzA05jFBT@m$Ke^S`qDzO{COBdFCy}I(H V{?%U#+!jsdX`8h_vM({`8vq?-zEA)F literal 0 HcmV?d00001 diff --git a/hubble-commit/readme.md b/hubble-commit/readme.md index 3a702d6..2d570e6 100644 --- a/hubble-commit/readme.md +++ b/hubble-commit/readme.md @@ -41,6 +41,11 @@ cargo test -p hubble-commit --test mst_diff_suite -- --ignored ``` `scripts/select-mst-cases.py` regenerates the vendored subset from a checkout. +the captured commits come from [`corpus/`](corpus/readme.md), which also benches +against a larger capture. + +fuzzing lives in [`fuzz/`](fuzz/readme.md): CARv1 framing and inversion, both +seeded from the vendored trees. ## vendored code diff --git a/hubble-commit/src/blocks.rs b/hubble-commit/src/blocks.rs index 5431e49..9bb0ecd 100644 --- a/hubble-commit/src/blocks.rs +++ b/hubble-commit/src/blocks.rs @@ -5,15 +5,9 @@ use std::hash::BuildHasher; use crate::cid::Cid; -/// A source of MST node blocks. +/// A (small) store of MST blocks from a partial CAR /// -/// A firehose commit carries only a covering proof, so a `Blocks` is expected -/// to be missing most of a repository. Returning `None` is normal; whether it -/// is *acceptable* depends on whether the tree needs that node, which the -/// caller finds out as [`InvertError::ProofIncomplete`](crate::InvertError). -/// -/// Implement this over repository storage to let inversion fall back to blocks -/// the commit did not carry. +/// (small because we're talking about firehose commits.) pub trait Blocks { fn get(&self, cid: &Cid) -> Option<&[u8]>; } diff --git a/hubble-commit/src/car.rs b/hubble-commit/src/car.rs index 6a3295a..cde4739 100644 --- a/hubble-commit/src/car.rs +++ b/hubble-commit/src/car.rs @@ -1,4 +1,4 @@ -//! Just enough CARv1 to get a commit's blocks out of a byte slice. +//! minimal CARv1 parser for atproto firehose commits //! //! Blocks are yielded as slices borrowed from the input, so nothing is copied. //! This is not a general CAR implementation, it only needs to work with CARs diff --git a/hubble-commit/src/cid.rs b/hubble-commit/src/cid.rs index a7d209b..5cda90b 100644 --- a/hubble-commit/src/cid.rs +++ b/hubble-commit/src/cid.rs @@ -1,4 +1,4 @@ -//! CIDs (Content IDs) are identifiers used for addressing resources by their contents, essentially a hash with limited metadata. +//! CIDs (Content IDs) are identifiers used for addressing resources by their contents //! //! [Spec](https://dasl.ing/cid.html) //! @@ -158,7 +158,9 @@ impl Cid { /// Tries to decode a `CID` from its raw binary components. pub fn from_bytes_raw(bytes: &[u8]) -> Result { - const MIN_LEN: usize = 3; + // DIVERGES FROM UPSTREAM dasl 0.2.0 to avoid a panic on input len 3 + // https://github.com/n0-computer/dasl/issues/12 + const MIN_LEN: usize = PREFIX_LEN; if bytes.len() < MIN_LEN { return Err(CidParseError::TooShort); @@ -408,6 +410,21 @@ mod tests { assert_eq!(cid_str_back, cid_str); } + /// A 3-byte body used to index past the end of the slice. + #[test] + fn short_bodies_are_rejected_not_panics() { + for len in 0..PREFIX_LEN { + let bytes = vec![CID_VERSION, Codec::Drisl as u8, HASH_CODE_SHA2_256, 0][..len].to_vec(); + assert!( + matches!(Cid::from_bytes_raw(&bytes), Err(CidParseError::TooShort)), + "{len}-byte body" + ); + } + // and the shortest body that is actually well-formed still parses + let empty_hash = [CID_VERSION, Codec::Drisl as u8, HASH_CODE_SHA2_256, 0]; + assert!(Cid::from_bytes_raw(&empty_hash).is_ok()); + } + #[test] fn test_digest_sha2_256() { let cid_str = "bafkreibme22gw2h7y2h7tg2fhqotaqjucnbc24deqo72b6mkl2egezxhvy"; diff --git a/hubble-commit/src/key.rs b/hubble-commit/src/key.rs index 79db938..c662fd4 100644 --- a/hubble-commit/src/key.rs +++ b/hubble-commit/src/key.rs @@ -7,8 +7,10 @@ use sha2::{Digest, Sha256}; /// Deepest layer any key can reach. /// /// A key's layer is half its sha2-256 leading zero bits, and sha2-256 produces -/// 256 of them, so nothing can hash deeper than this. Used as the bound on how -/// far tree traversals are allowed to recurse. +/// 256 of them, so nothing can hash deeper than this. +/// +/// the layer is basically a proof-of-work with a practical limit somewhere less +/// than 80. pub const MAX_LAYER: u8 = 128; /// Longest record key (the part after the slash), per @@ -55,9 +57,8 @@ impl Key { /// Validate `key` as a record path. /// /// Checks the shape, charsets and lengths the repository spec states for - /// paths. It does not fully validate the collection as an NSID — segment - /// counts and the leading-digit rule are the caller's business, and - /// hubble-sync has NSID types that do it properly. + /// paths. It does not fully validate the collection as an NSID. Segment + /// counts, leading-digit rule, etc not checked. pub fn new(key: &str) -> Result { if key.is_empty() { return Err(KeyError::Empty); diff --git a/hubble-commit/src/lib.rs b/hubble-commit/src/lib.rs index af5ab35..e2237c5 100644 --- a/hubble-commit/src/lib.rs +++ b/hubble-commit/src/lib.rs @@ -43,37 +43,38 @@ pub use key::{ pub use op::Op; pub use tree::Tree; -/// How to order operations when undoing more than one. +/// How to order operations when inverting more than one. /// -/// The recovered root is the same either way — an MST is determined by its -/// key/value set. What differs is which blocks the tree has to contain to get -/// there, and therefore which producers we accept. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +/// In general, just use `AsGiven` (pass `Default::default()` to not even think +/// about it). +#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)] pub enum OpOrder { - /// Undo in the order given, reordering nothing. + /// Invert in the order given, reordering nothing (default) /// - /// Needs whatever blocks that order needs, which in general includes the - /// nodes for keys adjacent to mutated ones — the ones [sync §4.1.2][spec] - /// obliges producers to send. A producer that omits them fails here rather - /// than passing quietly. + /// Makes no attempt to optimize ops inversion order, can fail if a producer + /// emits a technically-provable but spec-non-compliant minimal block set. + /// + /// It's good to reject stuff that's not spec compliant. /// /// [spec]: https://www.ietf.org/archive/id/draft-holmgren-at-synchronization-00.html + #[default] AsGiven, - /// Undo highest key first, which needs the fewest blocks of any order. + /// Invert highest key first: fewest blocks to prove. /// /// Tolerates a producer that sends only the blocks inversion strictly - /// needs rather than the ones the spec requires. Across mst-test-suite's - /// 16 384 exhaustive cases this order never asks for a block outside - /// `inductive_proof_nodes`, where [`AsGiven`](Self::AsGiven) asks for one - /// in 447 of them — every one of those a node the spec requires anyway. + /// needs rather than the ones the spec requires. Out of mst-test-suite's + /// 16,384 exhaustive cases this, ordering affects 447. + /// + /// If there is some PDS emitting commits that don't meet the spec's + /// adjacent keys requirement but are technically provable, this order + /// should succeed at proving them. /// - /// Neither order *checks* §4.1.2; they only differ in whether they happen - /// to notice. Enforcing it is a separate job. + /// (but please ask the pds implementor to emit spec compliant commits) HighestKeyFirst, } -/// Undo `ops` against the tree at `root`, returning the root it had before. +/// Invert `ops` against the tree at `root`, returning the root it had before. pub fn invert_ops( blocks: &impl Blocks, root: Cid, diff --git a/hubble-commit/src/node.rs b/hubble-commit/src/node.rs index 20ea2a8..474fa58 100644 --- a/hubble-commit/src/node.rs +++ b/hubble-commit/src/node.rs @@ -14,10 +14,7 @@ //! } //! ``` //! -//! `l` and `t` are nullable, not optional: they are always present in the -//! encoded map, as CBOR null when there is no subtree. Omitting them would -//! change the node's bytes and therefore its CID, so decoding is strict about -//! it — a producer that omits them is not speaking the same format. +//! note: `l` and `t` are nullable, not optional. //! //! Prefix compression resets per node: the first entry has `p = 0` and carries //! its whole key. @@ -27,7 +24,8 @@ use serde::{Deserialize, Serialize}; use crate::cid::{Cid, Codec}; /// Fields are declared in canonical DAG-CBOR map order (`k`, `p`, `t`, `v`), -/// so the encoding is canonical whether or not the codec sorts for us. +/// so the encoding is canonical whether or not the codec sorts for us (but... +/// to even be DAG-CBOR it has to sort??) #[derive(Debug, Serialize, Deserialize)] pub(crate) struct EntryData { #[serde(rename = "k", with = "serde_bytes")] diff --git a/hubble-commit/src/tree.rs b/hubble-commit/src/tree.rs index 186ee4e..1770c8b 100644 --- a/hubble-commit/src/tree.rs +++ b/hubble-commit/src/tree.rs @@ -132,13 +132,13 @@ impl Tree { Ok(Self { root: node }) } - /// Undo one operation. + /// Invert one operation. /// /// Fails with [`InvertError::OpMismatch`] if the tree does not hold what /// the operation says it should, which means the commit is not internally /// consistent. /// - /// Undoing several operations is order-sensitive in what blocks it needs, + /// Inverting several operations is order-sensitive in what blocks it needs, /// though not in what root it produces — see [`crate::invert_ops`], which /// orders them for you. pub fn invert(&mut self, op: &Op) -> Result<(), InvertError> { diff --git a/hubble-commit/tests/firehose_corpus.rs b/hubble-commit/tests/firehose_corpus.rs new file mode 100644 index 0000000..ce38f07 --- /dev/null +++ b/hubble-commit/tests/firehose_corpus.rs @@ -0,0 +1,91 @@ +//! Real commits, captured off a relay. +//! +//! Covers the shapes producers actually emit. Every case here was verified to +//! invert when it was captured. +//! +//! The fixture holds MST nodes, operations, and the two roots. Regenerate with +//! `firehose-corpus capture` then `firehose-corpus sample`. + +use std::collections::HashMap; + +use data_encoding::BASE64; +use hubble_commit::cid::Codec; +use hubble_commit::{Cid, Key, Op, OpOrder, invert_ops}; +use serde::Deserialize; + +#[derive(Deserialize)] +struct Record { + root: String, + prev: String, + ops: Vec, + blocks: Vec, +} + +#[derive(Deserialize)] +struct OpRecord { + action: String, + path: String, + cid: Option, + prev: Option, +} + +fn cid(s: &str) -> Cid { + s.parse().unwrap_or_else(|e| panic!("bad cid {s:?}: {e:?}")) +} + +impl Record { + fn ops(&self) -> Vec { + self.ops + .iter() + .map(|op| { + let key = Key::new(&op.path).expect("fixture path is a valid key"); + let new = op.cid.as_deref().map(cid); + let old = op.prev.as_deref().map(cid); + match (op.action.as_str(), new, old) { + ("create", Some(cid), None) => Op::Create { key, cid }, + ("update", Some(cid), Some(prev)) => Op::Update { key, cid, prev }, + ("delete", None, Some(prev)) => Op::Delete { key, prev }, + other => panic!("malformed fixture op: {other:?}"), + } + }) + .collect() + } + + fn blocks(&self) -> HashMap> { + self.blocks + .iter() + .map(|b| { + let bytes = BASE64.decode(b.as_bytes()).expect("fixture block is base64"); + (Cid::digest_sha2(Codec::Drisl, &bytes), bytes) + }) + .collect() + } +} + +#[test] +fn captured_commits_invert() { + let jsonl = include_str!("fixtures/firehose/commits.jsonl"); + let records: Vec = jsonl + .lines() + .filter(|line| !line.trim().is_empty()) + .map(|line| serde_json::from_str(line).expect("fixture line parses")) + .collect(); + assert!(records.len() >= 100, "fixture shrank: {}", records.len()); + + let mut ops_seen = 0; + for (i, record) in records.iter().enumerate() { + let (root, prev) = (cid(&record.root), cid(&record.prev)); + let ops = record.ops(); + let blocks = record.blocks(); + ops_seen += ops.len(); + + // these carry the producer's own blocks, so both orders should work + for order in [OpOrder::AsGiven, OpOrder::HighestKeyFirst] { + match invert_ops(&blocks, root, &ops, order) { + Ok(got) => assert_eq!(got, prev, "commit {i} under {order:?}"), + Err(e) => panic!("commit {i} under {order:?}: {e}"), + } + } + } + assert!(ops_seen >= 200, "fixture lost operations: {ops_seen}"); +} diff --git a/hubble-commit/tests/fixtures/firehose/commits.jsonl b/hubble-commit/tests/fixtures/firehose/commits.jsonl new file mode 100644 index 0000000..6e3c3e9 --- /dev/null +++ b/hubble-commit/tests/fixtures/firehose/commits.jsonl @@ -0,0 +1,100 @@ +{"root":"bafyreibe5b7422qpeh6nrfnnzctg57t3jjgt6u4o2a7nwnkucyhxxjl7zy","prev":"bafyreih3ugx3bi4k24ry3t6s2jp3knsm2ei3vouhjp4dfw33jqukpnyeei","ops":[{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaa2w","cid":"bafyreibhbijqbly5wf2dpjexhhmou2fk3asglihgftv3jdkv4accorcr7q"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaab2w","cid":"bafyreihi7bgtcvokuifuhxim7upixxvssvw7qqrnmrdadulbgibh5wox4a"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaac2w","cid":"bafyreib7qzikbz3z5bvgumy4qngmpyo4iunkisdbtflj2ow3sl44tvmdwq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaad2w","cid":"bafyreicicpzx3zshy5mll4iubliuxnx2cd5mipednr6rui7ngaleaycali"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaae2w","cid":"bafyreibmgeph54gn3dmu2cnawea6vvvwgsaeywyluwa2f2kmald2egr6wq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaf2w","cid":"bafyreifuss4c5e7xcrvyuxrasj2qb3kfcmmqde3hamtlrlaeszhvsv4l2y"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaag2w","cid":"bafyreibc6ila2arvhrhxllufnrs6ycj43nbvyjbvw7tkyq5eyqmx5rlc74"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaah2w","cid":"bafyreih3vvzbfufmqv2eemyxtqgkkq4f2dsr3umjxgt4dgizzx76o5cml4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaai2w","cid":"bafyreid4mgd7vevwuhlgpn2kuiejmtsrogxo535uqcymr6sx7bvjqblzr4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaj2w","cid":"bafyreiblsxupj67w44b2nxd634pjxq7tztueo4bjqpbsqkpw2i3aif2spi"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaak2w","cid":"bafyreie2xvdrd7nsbqffdy6kyf33aio7xyyx6xbvxagepava36ktk7rkk4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaal2w","cid":"bafyreiefrv45rxm3yvjl72ncbp6ukibilammh752gcikj7clq23fk5qjmq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaam2w","cid":"bafyreift6pudnnmx4zt6fxo66rod6u7uuyby46d46qzeyq7fo4sqaq3yh4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaan2w","cid":"bafyreicava72zwotld7bx2j374r6rxm74i7arf2h33crpfyuz23rryduse"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaao2w","cid":"bafyreigucq2n3gz5wttsvg7mnwsfdweibm2gvlwe5r5btrsovil6yunwf4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaap2w","cid":"bafyreia5ezqatr2btw73ybedd4iytaqrf3jwfetw3ogiez7ezs6azqzagu"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaq2w","cid":"bafyreibub2eh3b5u6bn3nv4aganxlqamjw5v2vgyrosonnb637zs7azaeq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaar2w","cid":"bafyreiciausa5jp52lgw5gxz7f52i7b5gdc3i6flsuuemocknratebgsye"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaas2w","cid":"bafyreiafphuchlyhdrutljc2h6v6tmcswcoxq7uo6z6rnmkeos3rhbrmsi"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaat2w","cid":"bafyreib5vabz7f2w3uy3edqhh4awolnbqbok7dkynlwgtcycoli3roklgu"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaau2w","cid":"bafyreibruycexhd3jhdgyikeq4dlxzulsjiwkx737xm22lwrxshzcxdd6q"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaav2w","cid":"bafyreicpw7apfdjonkvneq76hasua7komxx3g2ompyxxmlg54dchr57cxq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaw2w","cid":"bafyreifdjs4zkssmvescac6mlzk2kwtebhoj6elnost7ndpmna6e3vsz3i"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaax2w","cid":"bafyreih5ketmvn3sgtithymjcfjl7kmddtbngj2etdrx3rwskw5hnngtjy"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaay2w","cid":"bafyreifxiia3bp47a6b33i4h2og6jehrinuwqllrzaa5qmomzll2pbbrz4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysaaz2w","cid":"bafyreih6yq7e7clkk64x2e4vrukqvj7b6mmocp2s23ec2jney6jw3k6jfu"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdysab22w","cid":"bafyreigkw7ezxnrciidnvipeygoympdsqmyvotwujqqc3stzych4fdhfye"}],"blocks":["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"]} +{"root":"bafyreih3ugx3bi4k24ry3t6s2jp3knsm2ei3vouhjp4dfw33jqukpnyeei","prev":"bafyreibe6g2xg2g6574zdsl2llmt7retygj7jb7k7sua7xzlxelulpq5ue","ops":[{"action":"create","path":"app.bsky.graph.follow/3mtkkdxife32w","cid":"bafyreihkn265ozzb67eeqrx6lg4x34sdoe23mdhfrfxbirusbs7yqva3pa"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxife42w","cid":"bafyreicak646avtocpnuerxataa463rrwfyal6362fhiuykqtgcunqrsgi"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxife52w","cid":"bafyreidawmzyew2hgjna2fk7g3i53bvc65y7yilv2fsue7qc7mxjifrqsa"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxife62w","cid":"bafyreiekkngzvr7wptihf4o2bnhvkcaeqifdo6uyzqdgtul5sqnak7z4em"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxife72w","cid":"bafyreiciojvgm437vrox2dqkthld6ojaufx2skjaxuv5edupz2zaaz2qzq"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifea2w","cid":"bafyreif5zt32nolut6woys6iq7ewgicrfmxqqhxly7qnfui4vwxyxdpkxi"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifeb2w","cid":"bafyreibnnykni6yoxx6w2bjxk5txhokayykfeakuoe6jfc3naq775yyn7m"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifec2w","cid":"bafyreidioynh6d6qjggoydthidw4yrgkkbz75x62znjselr34eloxxoblu"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifed2w","cid":"bafyreidnu2xd7rd6lgzzdbkqpedvugkp5bembclqopcpgs36y3sg6ruhea"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifee2w","cid":"bafyreiab5hxzsehvh7riy3okudebp6yxadyzmlugcnshs3ojh3qmiqixim"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifef2w","cid":"bafyreie3egsut7i3jttnkuhtiyh3het6c3igkedv2k65usspfjqggehrr4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifeg2w","cid":"bafyreico34xr7ihxfyxmbjuv4vade3dahepiqk2r4vf43uud3b7gjsaxx4"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifeh2w","cid":"bafyreiawvhjpsplh44ake5ax64gyvj3aszqozgg62ohxpc76d7ip4f2xly"},{"action":"create","path":"app.bsky.graph.follow/3mtkkdxifei2w","cid":"bafyreiebnlvl3ni2daxsxsydkgth7ppdumcjtvc5tiondcdluv477wkrta"}],"blocks":["omFlgaRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmVhMndhcABhdNgqWCUAAXESIIHlUlVV50mD0pGNtwwheyxvssueEi1LrWYZ6om9tMNEYXbYKlglAAFxEiC9zPemuXSfrOxLyIfJYyBRKy8IHuvH4NLRHK2vi43qumFs2CpYJQABcRIgrNrH2MhB9iAM9BFCjHrfnNNgjhlqzLPi9ptzr3qV5Vc=","omFlg6Rha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmViMndhcABhdNgqWCUAAXESIHVEYlm5xJbgnPx/BMmY+A5hbmIS/9S9yKLGmOoTcXfRYXbYKlglAAFxEiAtbhTUew69/W0FN1dnc7lAxhRSAVRxPJKLbQQ//uMN+6Rha0NkMndhcBggYXTYKlglAAFxEiDtf3CXWDEhPMgLO5ZhAuH83LWP83OWy7YlDuGskFDys2F22CpYJQABcRIgbaauP8R+WbORhVB5B1oZT+hIwIlwc8TzS37G5G9GhyCkYWtDZzJ3YXAYIGF02CpYJQABcRIg67Q0W2pZLko6+a7qroc8FFgVVc+AmdT8HSv3hbXbdcBhdtgqWCUAAXESIE7fLx+g9y4uwKaV5UAybGA5HogrUeVLzdKD2H5kyBe/YWz2","omFlgqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmVoMndhcABhdPZhdtgqWCUAAXESIBap0vk9Z+cAonQX9w2Kp2CWYOyY3tOPd4v+H9D+F1depGFrQ2kyd2FwGCBhdPZhdtgqWCUAAXESIIFq6r21GhgvK8sDUaZ/veOjBJnUXZoc0YhrpXn/2VGYYWz2","omFlgqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmVlMndhcABhdPZhdtgqWCUAAXESIAHp75kQ9T/ijG3KoMgX+xcA8ZYuhhNkeW3JPuDEQRdDpGFrQ2Yyd2FwGCBhdPZhdtgqWCUAAXESIJshpUn9G0zm1VDzRg+zkn4W0GUQddK92kpPKmBjEPGPYWz2","omFlgaRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmVjMndhcABhdPZhdtgqWCUAAXESIGh2Gn8P0EmM7A5nQO3MRMpQc/7f2stTIi474Rbr3cFdYWz2","omFlgqRha1gbYXBwLmJza3kuYWN0b3IucHJvZmlsZS9zZWxmYXAAYXTYKlglAAFxEiADpZo3wpBIFbPGwF7inK6Dq/QwHdWkFEP1RwS4vf2mS2F22CpYJQABcRIggXjodqvcDYdzQzD7ClDTCfwcRZLsOQlvM22LbS/vUo+kYWtYGmdyYXBoLmZvbGxvdy8zbXRra2R4aWZlNzJ3YXAJYXT2YXbYKlglAAFxEiBIcmpmc3+sXX0OCpnWPzkgoW+pKSC9K9IOj86yAGdQzGFs9g==","omFlhKRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrZHhpZmUzMndhcABhdPZhdtgqWCUAAXESIOpuvddnIffISEb+Wbl98kNxNbYM5YluFEaSDL+IVBt4pGFrQzQyd2FwGCBhdPZhdtgqWCUAAXESIEBXueBWbhPbQkbgmAHPbjGxcAX7ftFOimFQmYVGwjIypGFrQzUyd2FwGCBhdPZhdtgqWCUAAXESIGCzM4JbRzJaDRVfNtHdhqL3cfwhddFlQn4C+y6UFjCQpGFrQzYyd2FwGCBhdPZhdtgqWCUAAXESIIpTTZrH9nzQcvHaC09VCASCCjd6mMwGadF9lBoFfzwjYWz2"]} +{"root":"bafyreie2btehsozezauy2k2rkbni5vxnmdm2fk4p63dn2wn5heetrjzn6q","prev":"bafyreigec2hjsupl7tagor3trhckmjxiqzvkl55vnfzpxrkdwb46axexha","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdqpkus2b","cid":"bafyreig3sxrdzoxj67rgnjemsxqyd6kmese6nfxer222qgqjcs6ofuultm"},{"action":"create","path":"app.bsky.feed.post/3mtkkdrnsnk2b","cid":"bafyreidb43ttp2mcya3sppaawwvizzm7bdkxwdzjup7f2wpds2rdhkn22a"},{"action":"create","path":"app.bsky.feed.post/3mtkkdrnum22b","cid":"bafyreibd26kelrgjlipxivy3ga7fs2im5mcqo6cytz7j326jpvxvtosiam"},{"action":"create","path":"app.bsky.feed.post/3mtkkdrnyj22b","cid":"bafyreidtnoucm6xcxdjt3zvcxto7wzonsfjya5pzcej5erhtovyjlmnz5q"},{"action":"create","path":"app.bsky.feed.post/3mtkkdro3gs2b","cid":"bafyreibzfjyb4we5atpfhoxgholvv7x3a7qkdpg2z2zjqksj47m5s2m62y"},{"action":"create","path":"app.bsky.feed.post/3mtkkdro4g22b","cid":"bafyreiehau5ghjdla54mv4a7t75jy3xd24e4y6pohp77claxhcgadfdwg4"},{"action":"create","path":"app.bsky.feed.post/3mtkkdro4g32b","cid":"bafyreidwbliprrga36bftra6sx35pnhijrhceoyeckj6lskz35yj7tejpm"}],"blocks":["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"]} +{"root":"bafyreictx2oazipmiszwc6cqxpapzrk3n74yxuhzmw6mnfquhikost3odi","prev":"bafyreicdgagda7zdp6cvyt2cwoltcd6fd75dxtjos7tzhqizl3eeu52che","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdp2hns27","cid":"bafyreic2znptennegwq7skugunejzwj34fk3oehcnog7sllcofosrn5j3y"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdp2hns27","cid":"bafyreicpfw3xm4u2ihxllnjixhxipscujnows2yu3nthk2dp44cdtfyvwm"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdp2hns27","cid":"bafyreicr3tqp5goa3gwrvfqxi2xkifj2btn4qs4mdxsuascg45k72oc6gi"}],"blocks":["omFlgaRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNseXpydGhxcXZrMnJhcABhdNgqWCUAAXESIIKzCVCvXh59KF3z46pIeyJ+PdNfRle7fufJpxMrBMukYXbYKlglAAFxEiD4Ivet3aoRH7bmDwMsCg8pVCrt7GgdWKWX0sP51K+NtGFs2CpYJQABcRIgNG5tXZumRGUFqyoZMhiPfOxRByLWZobFIS3tkwW9baY=","omFlgaRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNtdDIycHdld2kyMmNhcABhdNgqWCUAAXESIBs3G8Hlyzyf7S/c/Eqo8vRC7ACkrsWEaJ8kzWslJ39wYXbYKlglAAFxEiDGo/ZV0t6AWiOcKpnusZM0IKRCa+WtrycBzQwwNJAwhGFs2CpYJQABcRIg5b4pe3Y0Y3+ippWMbIMcxv+lLRaQcuTIn4nIll1noIw=","omFlgGFs2CpYJQABcRIgo0xJVKvMXltOAega9rpVXKxTLBpCjDwkXievcV0/ghc=","omFlgaRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNtdDZ0b3BvbWdrMjVhcABhdNgqWCUAAXESINCNqEmWbC4W8srDv+PGP9UMeGp+8mifkEUL0dSpYcicYXbYKlglAAFxEiDBrIYb7rDXLBG2UP8KEdNV+I1+302A2iTbuJzRaRzXN2Fs2CpYJQABcRIgWi73J+P5IIYwCgcgxbMQRahslxQP/78rNvWmRuFZpzg=","omFlgqRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNtdGZxcDJrZWIyMmhhcABhdNgqWCUAAXESIOqyuxMZaLBVQAGKNs+wqWUjjIJrNxSUgBxKpyJ6NWCbYXbYKlglAAFxEiCXQv94mM4AaMYOwFHADqJBkcdf9FED3lwyMJ6Mtdn056Rha1gZZ3JhcGguYmxvY2svM210ZGJxbTdkbWgyNGFwCWF02CpYJQABcRIg1YnhaKsX4Ms/xkeGu+nR6wC8uXVSKEWr+XckGRGCksthdtgqWCUAAXESIExwaWDnYWupAu1VwNLMK4TKnp6LK0gc9rbzOO2/1yiOYWzYKlglAAFxEiDyj1EgLj/I5XUC0xSPYzigWqXtg9kf2/3ECJGio5P5gg==","omFlhqRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNtdGdoNmRzenNrMmhhcABhdNgqWCUAAXESIEon6iunnHKjZBQQaF8p3HSbJ5i4lw4HbGU7VsNqw4ikYXbYKlglAAFxEiBScALc5RXPPfi6aSYo8RIvq41XjNsEsk88MPXXuC89naRha0pqazN5bDJrazI3YXAYHGF02CpYJQABcRIgoCjsY3JCEOTJ7vSwoIs0qq0ViGZTMjnpLcKQtEnEtqVhdtgqWCUAAXESIAy2bam2IRzmOw0Z7pGu2Lria2b7TRk3wbG14KZnKPcopGFrWBlncmFwaC5ibG9jay8zbGV2Mnc3eXhuYTJpYXAJYXTYKlglAAFxEiA96l+VTz6jLqAHgBFhcv22AJFHCvFxO38rXp2M89AZAWF22CpYJQABcRIgyFinsUfh9pwiNvm0dZ6ex/+UoMDNHCo0dx8ySvLoBx2kYWtLc201YXJhZ2RiMmZhcBdhdNgqWCUAAXESIJUOEvi44sUhAJYvD6XEW3FHvzlTuYX9mYG7o1ekBCwcYXbYKlglAAFxEiBbu/QqUj9D5ljhGSJavG6Pq5hCMdhTTNuBLI6s6dnlQKRha0xtbmhiaW8yYnBuMmVhcBZhdPZhdtgqWCUAAXESIMPqEHA8/EWRg28897Qw/NLGVVIlOtdjoG3lYJhuY+nwpGFrSm94MmhvYmd1MnRhcBgYYXTYKlglAAFxEiAXKlFHvS4vnLX1zchknCRgRXWESKXUigxL3kHCHmlv4WF22CpYJQABcRIggLdg1+UoK4efeF66tQtr6N0mN2mMVYpoazcx6omL3bdhbNgqWCUAAXESICdalLQCqAsS97Wpvpezo9PVXBbIJD6TbXeZpvmUnDmV","omFlhaRha1giYXBwLmJza3kuZ3JhcGguYmxvY2svM2t2ZGF0Y3Z3M2MyamFwAGF02CpYJQABcRIgX8WwBwPk9788LbMy84DrFOCZfUVm6GKwZFGagHtAw/NhdtgqWCUAAXESIEFg0OfHkPXfpqGIxzzQ7fSXiKOW7lXCk2hH3pMUdtpEpGFrS3k0YWN0ZTVzNTJtYXAXYXTYKlglAAFxEiDcGYC9RDMHa2o92izWtTG7z3cqFxjRRNeD5viS6P5Ef2F22CpYJQABcRIgxHoSy8t8C2cSSpGB4B3nr8kW2+QJpIXglS8mBr+QSRKkYWtLemRzc3N6YnJrMmZhcBdhdNgqWCUAAXESIDp3TwlQ+RiztbIpjXX0SvNrAwBIwMzjHnfSiINBEQEoYXbYKlglAAFxEiBin8RxZKKK55TWlgy2onDcojt+unrh5QbhknNgK9LWu6Rha0pxeG5jc3FocTJtYXAYGGF02CpYJQABcRIgRPKajw2s/xw732Rh5LBpquiM/wBIlqiAp64ApbxqAqNhdtgqWCUAAXESIJx26CusSeTn/fbPuGWYewmHPTw6phjr6MPt/+mYJ1qgpGFrTGw0aWllYnhhdDcyeGFwFmF02CpYJQABcRIgXbcQP19vVlqKQK9eYFXDAbjgJXn/GticxQq6sMBphKZhdtgqWCUAAXESIKjCrZGc3fNsF0z8O5g/GWGDM7rTra6IjbpUuwERUFZbYWzYKlglAAFxEiBPXuw6Cevyb7rc9rscQYqzmYEBWGAVeZf2cNArkLh/Xg==","omFliaRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNtdGprNGd2ejNjMjdhcABhdPZhdtgqWCUAAXESIJKZTMf9j7R3KzKFtlfMpOfRFSKnn8GYB90JEvYvV9eIpGFrSW1udG1iM2sydGFwGB1hdPZhdtgqWCUAAXESIAcGnWAGUbJg8ByedQjsBsR5cyCMylBDLq9gTOUjZ1popGFrSmtrYWp3cHBrMjdhcBgcYXT2YXbYKlglAAFxEiDzSFE3IjCvnGFMx70dtKiv9rsrDmk9IRJtzipY7BlYvaRha0hjcXZsb2syN2FwGB5hdPZhdtgqWCUAAXESIPnrQDJkP4ptHSkPCAEwf3J6Q3xVBOnHlSpgoo+dHPUhpGFrSGRwMmhuczI3YXAYHmF09mF22CpYJQABcRIgTy23dnKaQe61tSi57ofIVEtdaWsU22Z1aG/nBDmXFbOkYWtYGWdyYXBoLmJsb2NrLzNrdWk0bGt0cXQyMmFhcAlhdPZhdtgqWCUAAXESIGPyJtCX0yuv3gG96ijV9M4GRGBeHSufrY4y8U8chhn5pGFrSXlqbTdyc2MyZmFwGBlhdPZhdtgqWCUAAXESINd8cmzrMSS2QoJHnd6y4ajPlAE9cmnXNXbLHcYjFWJkpGFrSnBrZjZieHVxMnFhcBgYYXT2YXbYKlglAAFxEiBN+2At5aTwm98oqF8eZxJ3LvDhvsooytCN9RmCev5PoqRha0t2YWdscXRhb3QyMmFwF2F09mF22CpYJQABcRIgpEYbOTSENjvr/30LaASAiSo7xzR0G/3UbJTFs966JwxhbPY=","omFljqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNsenZlejZydXpzMmhhcABhdNgqWCUAAXESIGU5wJd1uwxykm3ONra5TXLDMxCTSl0lNmMKrp/D/5JKYXbYKlglAAFxEiB7acT2t1m+0D0wGuJAbc65kN1Vi7R9SqHdz6u4d2u5jaRha0xtMmludWV6dTdjMnZhcBRhdNgqWCUAAXESIHrLONTfAcWriLqhykzhsfGth8z1sj4i06XexplE3W03YXbYKlglAAFxEiAV7sEF3O+PWB4jbZiTlecY31DlTulnCbLYUjZOBTKHYqRha0thcHh1MmFhNmMyamFwFWF02CpYJQABcRIgWJtc5Z/PIa/2kqD+vDK8v0qo2oFgjUB7tKu5V0DqTYBhdtgqWCUAAXESILP2Fa1VMRE5ds7gCJ7N8I0VLujPTzT+1v/f319KAigDpGFrS2V2aXB0ZWF2YzJxYXAVYXTYKlglAAFxEiDCTkONd4GI+pGzmVPsRPTztVPi7fScENyDOYjYjkr3DGF22CpYJQABcRIgcTR4jQeoVEdammM5M4bvZpcoTfkN7WHbPnu4/e/kww6kYWtLc3BhbTN0dndjMmRhcBVhdNgqWCUAAXESILZPt/Tz8m2LhcqdZhTDz6LblhNqOM2QT16EsJxuF7JCYXbYKlglAAFxEiBMnovrBHjHENitjt29v+2ADCSzXRHLG4PzxZlUtvocH6Rha1JnYXRlLzNsYzRsN2hmYnpzMnphcBJhdNgqWCUAAXESIEXNJSFbn/+WjemTygTewL4p03IFL4zLlfDwji6312g5YXbYKlglAAFxEiBULQPRSuuQ02Wy79OJY6BkjUyR5sWEZJnr09oWrn/p0aRha0xtajR4M2pjcWcyMnphcBgYYXTYKlglAAFxEiCHJ4VfcxVv8U+m2Adq6RAuRDr7WajzXelajpVMOaycfGF22CpYJQABcRIgIyMdRzWaIBE8NoExpUlO9GzQGnx0I7zr7giWB6/g11akYWtKbnZzdGNqYnMyZmFwGBphdNgqWCUAAXESIPI1GY/TdOpHqVsRuC2QTM4lUVlwcF2Tdi9tgqvXt50CYXbYKlglAAFxEiCn83R7jhMMxQbL8+lDX3Vh8lXNTQG4ilrdvhCcPvE7KKRha1gYdGhyZWFkZ2F0ZS8zbWFyY2NlazU1azJsYXAOYXTYKlglAAFxEiBE41NLf4tsafBhf+7xFMhk+qAajGR+QXr9IcHvecI44WF22CpYJQABcRIgGNfb0fmdZjRDl+0ULmNEF9+Uf9e1tbe463qE8D1LLP2kYWtLZWlkb25nZnprMnJhcBgbYXTYKlglAAFxEiDeu8i/kq21Sin2rvWqkF1ma+7InwMdAb7iZV3hmJcBumF22CpYJQABcRIg1gQH6Tve0i1PuoBJ9BX0Vr678BliiSA83wPBdTLFn8WkYWtLajR2Nm9kdDJrMjNhcBgbYXTYKlglAAFxEiC3EGe87jT2NpMlbTQfX5J9GeC+/jXeVQfCbPA3KAjQ1GF22CpYJQABcRIgyjP0lfPUXmJROlmpDTzFkaNWssv4z27pxn9DBvzLvwykYWtLa2VjZHJicHBzMmNhcBgbYXTYKlglAAFxEiBxerje1KBQwn+bkcl/puixUy+/AotJklK/zPpjQq+48WF22CpYJQABcRIg7VSBlDe6HZx/wWp+mS9KQUrBnF+1KXXxlQSICuVG72CkYWtLbm81YmNqdDRjMmRhcBgbYXTYKlglAAFxEiDJmbDpISY4bvmC10BAjCiV5nB26V1SJtxwnnGdDZZ5cWF22CpYJQABcRIg0e0hmKnwubr+1GJtsoGdPx0sWhbdP1Vk4+Z1AqFpbhqkYWtLc2tkMmd0NmNjMndhcBgbYXTYKlglAAFxEiD0K0TZ0l8HLMPxsMI2vlRICI2EB1fEzWxP54xAbIiNW2F22CpYJQABcRIgdOlHOLlqIxlQG8Bq0jP4W1T+qrjMgEHQGh6A4DDfamBhbNgqWCUAAXESIGDn8+io2K18W1zMT+3jiYMMoXN4zaggNcNv0Jsoi3ux","omFliKRha1gkYXBwLmJza3kuZmVlZC5wb3N0Z2F0ZS8zbWpyNGdyd2pmMjJrYXAAYXTYKlglAAFxEiBWrrKbKRpnrglE4BFod2nPPx6uBpvLwpiAXkvkQX3kBmF22CpYJQABcRIg9zjyCkBhbKjEHuoPy4L19rsNfic6LtOihGlL9qm/uH6kYWtLbGZveWszNHBrMnFhcBgZYXTYKlglAAFxEiAd8/JRGzChFwRlH7RJc4nl84ZmtaW/NjG2YFVMg4RG6mF22CpYJQABcRIgD4zUnBvLQbl8D0JkBLqk07fvEi/pYF5EyhBzE6ECKPWkYWtKd3FlZW10Y2syemFwGBphdNgqWCUAAXESIOS8jSmhwutaZf8etlDNMcAp00/Uq+UyXTKbFziA/jw2YXbYKlglAAFxEiAfhLdSI3Z44bHi9UC9YVIPxUsdd0lIcArUGvBIMKiuXKRha0ttZWprNDJmNDIyeGFwGBlhdNgqWCUAAXESIOFxdZwsZRZAwRsjY7cx5hwPOrvKsTfNU51Mf8jyhfkCYXbYKlglAAFxEiAB3/lhrhhnGICbh3tGwPJpMUs69jq7/hkxoasyt5ekMKRha0p5Z2R3N2tjYzJzYXAYGmF02CpYJQABcRIgeyKtWimC9bRUKuWndsJU4rz08hQcHuXVJOzdYjye65hhdtgqWCUAAXESINofWKtfY8w6SzeTyRrIHM0GSBlyMidE2BBTKBVWLZQtpGFrS25iZGk2dTNlMjJmYXAYGWF02CpYJQABcRIgtoHlDDRlNqi9GNAHrob//tYXbem9GCYIVsw7TUSdTtVhdtgqWCUAAXESIEJH1hJv7bad1S1mVG4SCk5SSe3/eh6WtFQZdIbn26a9pGFrS3RnaDVpcnZhYzJoYXAYGWF02CpYJQABcRIgFT53ENUq2odgcEe2CTJs8cTmstwlNcX424sC0UuS1MhhdtgqWCUAAXESIG+PWe3kvqU8mTuGFiqkRP4y/tHKbn4Rhui2vhp/Gl85pGFrWBh0aHJlYWRnYXRlLzNtN2R5emc0ZWdzMm1hcA5hdNgqWCUAAXESIKUIiiCc5scFVd9PG5NqGescMNsJ9InyFaxdzO/lcPP3YXbYKlglAAFxEiCgpU4pnyLd5TvDWXNcVXqdnBXrB6JT1UUhGjlNZZ6ZQmFs2CpYJQABcRIgTSy2188RHVuELfgqXO8tC6gDGgXVKeoPTtC7nnLULqw=","omFlgqRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNsNjVoZzRja2NvMjRhcABhdNgqWCUAAXESIC3t89WIVrmMEpFS4QjSw4xEyx0fO75oOXXoQVdcI8VIYXbYKlglAAFxEiBuyL4vSYOzdr5w1RD+ykt7uQsHqjDX0QdVvhZi112Su6Rha0p1czR0b3diaDIzYXAYHGF02CpYJQABcRIg8t1aUpMDUoBNaUBpq1vSTHO9Gbn5a6qY1DjQilGkWAVhdtgqWCUAAXESIJOu1kLOJWQRbKLe/iWuK83E1CM9IvuwL3NvCgWQV3YSYWzYKlglAAFxEiDmuW9sPM0aL/Nv2FGI0l76yJomfJqEeucgnHg7ZyqIRg==","omFlgaRha1gmYXBwLmJza3kuZmVlZC50aHJlYWRnYXRlLzNsNGFkbHBpZjJpMnlhcABhdNgqWCUAAXESILa0KF6X3Na6zCXpdUlZn6wJUKELAq1cmkZjcJW+IFnJYXbYKlglAAFxEiBKftvKpSIpu21j5rEG/dnnAIE0ya7xO6OpbC+vJAJ0EGFs2CpYJQABcRIgTJ/rEN1gIY7rqWQup6FW4/iUaYz07JEb5c5TZRoncQI=","omFlk6Rha1gkYXBwLmJza3kuZmVlZC5wb3N0Z2F0ZS8zbXRnbGh5ZG5kczJ1YXAAYXTYKlglAAFxEiD7ZKqae3c01fCfZKCA5SLjK8qUtQoz5/x/bHcXBkpnwmF22CpYJQABcRIgUC16Hq3YAaqTUYSMvkO9rbhR7tndH0vu5v3GdfsKFW2kYWtIa29wYXZjMnVhcBgcYXTYKlglAAFxEiAWFuN+HinO4LIdq3oSQ1mQrO1t3KFHntTYjWG2RFn7wmF22CpYJQABcRIgheq6RpnzFBSNph95Vth7eOrTGzQRVmRQvfhHFg38UYikYWtKamp6aXV1NGMyN2FwGBphdNgqWCUAAXESID4M9dvFpxbCjAmszj7pmn6O37ZcZibsym41il1J8Gi+YXbYKlglAAFxEiAbAeYxFrmXfIlXSx+nomE3fhOMY0a7bvphhS1p4Z+XWaRha1gYdGhyZWFkZ2F0ZS8za3VpeWp6Zmt1bDJyYXAOYXTYKlglAAFxEiDzN/aBDCTg70N1oQ+K6NsBnYMRFfRx7zAsi3vcT/0+tGF22CpYJQABcRIgBJ3XoC5/hrbV948vsLBRKvNFiHrSD4UjiNkelv7UBGikYWtKazNmNmEyazMyYmFwGBxhdNgqWCUAAXESIJZXPMhW/HSwCe+19aUGpIg2ZBpn4311WQQKhe1PCKF1YXbYKlglAAFxEiBZXIyVB9VEeiYzEkH3PYhMJ4ETs6hA5iRz6JjyViEz7KRha0lvMzNnaXkyMmFhcBgdYXTYKlglAAFxEiB9th82bqQUUNoIZ5k5WWV5AAOGWa2uYbcDl3BBMu52nGF22CpYJQABcRIgUphgPQxtZ36jDaweGRco8JvnMd+BZkbpj1JCGtFs2hCkYWtJdjM0a2VvMjJhYXAYHWF02CpYJQABcRIgDw2INDLvlqsmY1qZJYtJdLI4GrZ49LhnAATIDk4z1sxhdtgqWCUAAXESIEyaG40VJFtd2/vNsfcaIuW9uQvy94zYmLwKueo+hWWRpGFrSnBoMnljbG5qMmFhcBgcYXTYKlglAAFxEiCoBugCBiCoLgort7kfFA3A+wlEpPwu3ytJhL+FdlaDJ2F22CpYJQABcRIgLLV6FYV3pLvhj7UaaKau8qX1vF0T9VWTVVlhDkubC9GkYWtKc2Z5aWpuMmQyb2FwGBxhdNgqWCUAAXESIClSixewF2wsqnPboMC+BGhPpxUZ42W41zPi4EaDXhoaYXbYKlglAAFxEiDXOlWlKELVbaietffELlUYqeMkQlMMaTif4ZsDidn3PaRha0p1aXEyYnNlYzIzYXAYHGF02CpYJQABcRIg49BSqLemf7cYMSfne5aSRenrwT8lnNotgf/tIFmXTmZhdtgqWCUAAXESIHwJ0U5KAq7gR/4FLzAWVNrwz0GVDvxOoD6p7QlUmqUopGFrSndyNXh3NjMyMmRhcBgcYXT2YXbYKlglAAFxEiCRE+a1ebGKtHZ/DHew4AsFbM6fG68awGAIUkZji9eo1aRha0hqazZhcWsybWFwGB5hdNgqWCUAAXESIMez5cTlsduZGWxz5K68tn4CM6te0v//RTwYa7TGD6ViYXbYKlglAAFxEiDHkOcsDhFscDyXOyblSZIuYDScmhU9RrM1qeuQabYmPKRha0t2YW5wZTR3YXoyeWFwGBthdNgqWCUAAXESIKmDXPVUSEeYYdF8FgO7ovY0LzVJIxrVBSGe0sBuo+bwYXbYKlglAAFxEiDNHWf8+PnKQFsHRh/sPWtgbPengrwSvK43cgZf5jj9IqRha0l1dXhrYTVzMnphcBgdYXTYKlglAAFxEiDreAO8N8dgMb9iKuEj1xKhwh80wLNCS4S+yLy5I+wNu2F22CpYJQABcRIg6D49Yl/1+DRHOqiiZpqvhT413kISV4A0Bsd7RmDCVECkYWtKcHF2aWtibmEyc2FwGBxhdPZhdtgqWCUAAXESIKvgKqi4mTREbAvw3MmdzyDSz/Z48Zi7mTFhYpuWldXcpGFrS3c0anJsZ3luZzJ1YXAYG2F09mF22CpYJQABcRIgOL1d1ZQMWfUMEQHCC9zzW3UfWTHR6rz/WsvJFZjadsekYWtIc3F4NXpjMmNhcBgeYXT2YXbYKlglAAFxEiB0Ail+S3nL44aG3qZxwHSfsjSjX+F5Is/+3atvjh7uxKRha0h3cW9zbTYydWFwGB5hdNgqWCUAAXESIKIhXLAOxtKf1iiXGPfKydP7YCncrqPX6EWsmn5I5HyMYXbYKlglAAFxEiDchlmbTOmdsY6tUwp5AZ+G3KlHt51Ie5pGBz7ewZL/kKRha0t6bGFldG5lZWMyZGFwGBthdNgqWCUAAXESIPmym2+O83zZv4fIzxcvbBN8Wrjn6qFmufKxhrWqQY3YYXbYKlglAAFxEiA7A6F2a+hqnAjYNTuU/yJJ93Kvi0u6NGOYJjXTCcNqtWFs2CpYJQABcRIgAHIqi5T+wrAwzHyiey8Bk0ivWnaG2r2yxIKPMeaQ1eg=","omFliKRha1gkYXBwLmJza3kuZmVlZC5wb3N0Z2F0ZS8zbXRqazJiN2g1azI3YXAAYXT2YXbYKlglAAFxEiCrRKlD/O3fJirlDXVaH9f+zwKwWV/Opzh+LYOlZ6oMhqRha0gzeWwya2syN2FwGBxhdPZhdtgqWCUAAXESIHOyXSX10YPRcoCSb2UJmXjduJjN344VqtpmYkKgTBZ/pGFrSDRndnozYzI3YXAYHGF09mF22CpYJQABcRIgxL6o2+YMkqwgRC5f7+/lgH5iPQn466K+le7FtYwSp7SkYWtJbW50bWIzazJ0YXAYG2F09mF22CpYJQABcRIgaNx12+f4JHet3u9478XpkJ4+YQaj2qsrdi8Gk32XaLqkYWtKa2thandwcGsyN2FwGBphdPZhdtgqWCUAAXESIFpL1Xyp0PzbjntKajxDZ0m5oB7ufD191ipCTlVSDoHRpGFrSGNxdmxvazI3YXAYHGF09mF22CpYJQABcRIgdT7p7dp2lcZYGlcWZC5ut0Le9m6owOMHauWRh7ZjAQKkYWtIZHAyaG5zMjdhcBgcYXT2YXbYKlglAAFxEiBR3OD+mcDZrRqWF0aupBU6DNvIS4wd5UBIRudV/TheMqRha1gYdGhyZWFkZ2F0ZS8za3VpeGc0cXE0azI0YXAOYXT2YXbYKlglAAFxEiBndpXW0qpc2VImDjwN3i00np+/0x553KsQDpTH6k1O32Fs9g==","omFlgGFs2CpYJQABcRIgZ91QhIHsPJMvQEyT8XekROFYM+3VR4fdlFQhR47D7fQ=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtdDZzd2Zkem9zMjVhcABhdNgqWCUAAXESIJ1tkXinKEuM1TpLR3DRNeWYZ1gUNM/bRxwJIw5f9yTtYXbYKlglAAFxEiCX+t3c6p5UC3Mz+CHdARofwqBfChn6Zj6D2TIHLn/ZcaRha1JnYXRlLzNsN25kMjRueWc2MnZhcBJhdNgqWCUAAXESIAwvsIgY7TowHKDkWRyPhj1uleoNLykFmpXokKgWjVIpYXbYKlglAAFxEiCtlhVANHpbSZAD74HtJaawDmGHMhQ38yoG8e+KJ49Cx2Fs2CpYJQABcRIgBmNrv1wCbuKrLzrhD16T4KES/jx3J6RxcGYn03z8a5Q=","omFlhqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtdGVhZGRteXJzMmthcABhdNgqWCUAAXESIGbk1z0J475TcorcTUAjQoQdn+iBl4V8bgxN2IswUQV5YXbYKlglAAFxEiAeG7c55kJ7epWAX0v5RbWnMF7aU9j7xuPhre2Pa16c+aRha1JnYXRlLzNsNWd5NHByczViMnZhcBJhdNgqWCUAAXESIOaa64qZUwEXQhGU9jgOXp1ShdoQRQRI6fVKngksBqE+YXbYKlglAAFxEiAoUne0gr7y2pmflJ8Nh0SfysnLKscZ02Cln8Gyh85aa6Rha0pzbnozaXJqbDJ3YXAYGmF02CpYJQABcRIg3D2x7tsmP84VPPNvFe3OhI43+q7rtU+uAcKjzTTAPFBhdtgqWCUAAXESIGIObp0rEli54c9B6TYxKbEJ4FOJbP7nVjVcdXDr1ZF9pGFrSzY3dTJvYXJjYjJkYXAYGWF02CpYJQABcRIgMRtLWQsOxIg37U1R5ZNXHwe2NNOHsVMqAovOzWH17NNhdtgqWCUAAXESIFM75fbkbu9ox6uak387GdZHRR+4poABKinfScS9bYodpGFrSmlob3M3a2U0Mm9hcBgaYXTYKlglAAFxEiBk5055SdyHeWB3TEP3I0LYW85qAovnasZ8KVZkzV0SKmF22CpYJQABcRIgnAvDqVUjgFPlBCIx2KDcWaCI9fyAeDFGIcfEqNEZH2akYWtLN2lhMjJnZ3pjMmdhcBgZYXTYKlglAAFxEiCa20oAHxbce5z/eC7hMA8aBiIYv2pongR5n+n3sQ1nJWF22CpYJQABcRIgJu3uKYxeiCsVcJmkxwd7NzWdAcNsZdjvm/8Kc+tXkS9hbNgqWCUAAXESILcsxDbMSKNBIxsb3pE3VmGGqfMPLO46hr4zw3RTh9+6","omFlh6Rha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtdGZxNml0c2MyMmhhcABhdNgqWCUAAXESIHYHcL1xq1QUJK0G7JiaOTpRu51UzImby6IWm9qXlsJ0YXbYKlglAAFxEiC5nAYnkyu81E4LUcNqrq+3gSt61phWJxZdolFhbVfrd6Rha0pnbGdybHlmazJ1YXAWYXT2YXbYKlglAAFxEiAZ0W7AVCNDwo3sA3rFA0G/UHBvGCmXh7PKyVbVMCi6IKRha0hoeWRuZHMydWFwGBhhdNgqWCUAAXESIEuVsZ+E+qHBXpGR2fjaev7jn7SHIvNeg/5o88eJdlj+YXbYKlglAAFxEiAp5oyhiNjG222HlpgBEP1PfZ4HF0eZPHur5SOx66akyaRha0pqanh5cWwyYzI3YXAWYXTYKlglAAFxEiDlFJLprsq9zNy0wLNCWykTRvU5Vtaqb2thktVlsLBGkGF22CpYJQABcRIgT0fhFQ9UtIGlWClQSTJ1Z52T4pOtn75xFtWZrOGSrgekYWtSZ2F0ZS8zbDR0bDVtc2QydjJ2YXASYXTYKlglAAFxEiCd+EiNSVaVkkfSVG6GTxPRmAmFvafRWiDVfjKNFY93k2F22CpYJQABcRIgLFnwNCAx/fidMjujcnxVpQ53FhS+Lp6tPrahh8I8q9ykYWtKdWhhM2VzcmUyN2FwGBphdNgqWCUAAXESIA1gqLqVvUwu095KZCYwwdiIsU8JJJmDqP7q+RxNIR9hYXbYKlglAAFxEiAsZ94d8pTVa0VyhhR01Wu4hah4IyvC4KkqhgBNSCrPlKRha0s1Z3hub3Z4c2MyeGFwGBlhdNgqWCUAAXESIAeCsag1/Kb/OJLAlCAFJoDyBTElfbLr0PKU2s3r4dZtYXbYKlglAAFxEiCwjTFQQ2R59Fn2sbzWghkAGONvnWjGAYwMALaYaC0ns2Fs2CpYJQABcRIgopTixZvSJLRrBpZs9VCI50rKBhZX/KwQBWdAfgoExs4=","omFliaRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtdGpqeml1dTRjMjdhcABhdPZhdtgqWCUAAXESIPEbWrjRgcDgOU1o6RD8GPuq3mmCBqAkO13y8ynh4MU5pGFrSWsyYjdoNWsyN2FwF2F09mF22CpYJQABcRIg32PziPcE5wFiPQlurm8mdPLiQ6Wft9O1jI2XA63zUxGkYWtIM3lsMmtrMjdhcBgYYXT2YXbYKlglAAFxEiA8g9jXdMxGFhMj/HviaBiN61bnzY6qsXcHn23qCl4eFqRha0g0Z3Z6M2MyN2FwGBhhdPZhdtgqWCUAAXESIJ6CJ0eDaJ9R1Lki8NWDhSAJ7ahxcTbKJM+Za5UhhjElpGFrSW1udG1iM2sydGFwF2F09mF22CpYJQABcRIgaXa0R2jhWPdDb194jU86OwPF08sG32bYHAkpA8Tx2ZykYWtKa2thandwcGsyN2FwFmF09mF22CpYJQABcRIgQS5V74YfnAbdnMZSoqaNGC2faj2R2p7cshYz60F5TYekYWtIY3F2bG9rMjdhcBgYYXT2YXbYKlglAAFxEiCqBjh0g/a99KFSG6jv65nkyteaFma80NmmYyBrUiiRSqRha0hkcDJobnMyN2FwGBhhdPZhdtgqWCUAAXESIFrLXzI1pDWh+SqGo0ic2TvhVbcQ4muN+S1icV0ot6nepGFrUmdhdGUvM2wzNHR1aTR6a28yYmFwEmF09mF22CpYJQABcRIg2yOqe2WAObTjb/s0DjE5HvpviBfat7djYaBDeZs+rjJhbPY="]} +{"root":"bafyreienjbbinizndjs4s5rpkihax2uvdjs63fu4fccife3asawxfcvge4","prev":"bafyreibowigjxtrdrvxrfbqwgvqjdrxxt4ycny4fttccds3yiexhvn7jme","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdjx2622v","cid":"bafyreidguznqo5ftemdgsbckbqh7n4sqyti7xbjqzsy643dzjpkxcdpil4"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdjx2622v","cid":"bafyreibgrtqk4amq5oxtm6ggvxamdwjplygs2oihgywsrn2vjrj3xh2qnu"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdjx2622v","cid":"bafyreia7snh5tr5rfcttbf6xzn63teiouki5aifhyx7stalknkho66tawa"}],"blocks":["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"]} +{"root":"bafyreid5r3vqk7jxov2ofp3ymtjoa5kblsjnp5zqqixcsbc4cixrjfqrjy","prev":"bafyreietfpchnuhpczzzuw7vfuahkewptrlyqh5zdiowq2nalokjh6vwfy","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdqkftk2r","cid":"bafyreigx53yhq7hi6b7gio5amqh3i2po4rmzxzkaiuzdz2kfjebiqj6twu"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdqkftk2r","cid":"bafyreihs3llhoibeb3lprq2xyedlitgdljxdbryzwsqdwjjfbr7zhuevme"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdqkftk2r","cid":"bafyreifupcnadrwgc4b447r7lf77f5fh2xkkegnqnb3x3eo6pgacs7jeyi"}],"blocks":["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"]} +{"root":"bafyreigp7ygwrogy2h26yzkfqp6nh3fjcadbj5kx3dxjmls6cvivzlzmwy","prev":"bafyreidklvae6smse3pudo3yziqqeccmvczqtpdwkjtlm4rmqrbp7jgmzq","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdsxfpc2v","cid":"bafyreibw36jkuxew6he5afkcctiricdwis25zfm2sne7i2l73fbdqys7wq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdsxfpc2v","cid":"bafyreie4igzdrx6weubovtpgwsca2v3j6qb275gsobevjgrz4pafcath54"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdsxfpc2v","cid":"bafyreichjdkox53jfm4tupuyl2rr34krece3jvgepp3cru7beyfwnmnz2e"}],"blocks":["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"]} +{"root":"bafyreihofyaoelbkchiiap2ag6y6lntbihygzdigbbadmdkjkuf7abicde","prev":"bafyreidir7ijpd2cgixx34um7kvw3xskkchhyovuajv3ochekdgep767du","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdsbqds24","cid":"bafyreicqq6qhuh2r5xtera4czhxh6otvjsasfa2ipshxrjxmhvwlpvfdv4"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdsbqds24","cid":"bafyreig4wmw2kuw4i22eiewgvpe5dgfzowosvvy6hplkzyl23aa6gpt7li"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdsbqds24","cid":"bafyreicwikvt3fs7ql2ggjv3s6d4gxf7z6m32l7q4p2jbox6w5bu3qvq5a"}],"blocks":["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"]} +{"root":"bafyreicbuywdiydxkudr4v7x2euy3chthyzl4avsnkaxuifvw5wax45sc4","prev":"bafyreieig4nxxooge5acr3ot4iauanhyftxywwaxkeni3xvyyn2zl42zba","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdtihm22h","cid":"bafyreig7aigeyygikyymvte77xo5lm4ykdvgy2mhmgogbka7qoil6hq47i"},{"action":"create","path":"app.bsky.feed.post/3mtkkdtj53k2h","cid":"bafyreihr4s7t2n3f5uh2j2q4vcu3hqxquj74dzy5fumaeib2qudpq73zzy"},{"action":"create","path":"app.bsky.feed.post/3mtkkdtj62s2h","cid":"bafyreihpcnzjjcm2kmarlgxjh42aindycdgurme22hjr2kwo63apxjejaa"}],"blocks":["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"]} +{"root":"bafyreifthlphoviiiqmzykmwxvzcezrcblxza36kac7ctspk5dncpspgse","prev":"bafyreihl6jzfal27e2xcm2rt5veni2kz2ohml54jt3bhwji4nnurrzrzcq","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdtf37c22","cid":"bafyreigk6mitqraswlwu5xsm3l4t6bpox4euevzqh3vahvdavcetvqnhki"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdtf37c22","cid":"bafyreigkag6ivzzqfxkhtutbttzkvbk2atfpmhzezndklcpjqgodhjvpka"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdtf37c22","cid":"bafyreihqbzrbxvrk3idkfhzmm7vjrieqb42i6ux3tcrn2ijjugivyv5fle"}],"blocks":["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"]} +{"root":"bafyreicthrfqc5nf6uqgthx4xzyc7s3njoknz557h33znca55smyd63h2u","prev":"bafyreidqyn6ztjqjoqpwrslyu5x2ns4owvbbjcinrq7x3ypbeia4qks4p4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdtjkr22c","cid":"bafyreicoywca6jjztz3cj5nue2vvhneax7njy6aigy5sirx4hv3ooa2xsi"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdtjkr22c","cid":"bafyreia3pqrj2sdcqpbgjfni73xcyxt6hlvdhdfmbdyeizqnmn4sq37cke"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdtjkr22c","cid":"bafyreidxdke4a6k5dygenjn23mgqxzo5trp7eygkrh2vi74a4obqobf7ge"}],"blocks":["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","omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM2s3cXYza3c3NXIyaGFwAGF09mF22CpYJQABcRIgUUB+iY4T1wSJdAy30vIiEkoqF07nNsN7nXe4xqQQ4BBhbPY=","omFlgaRha1gkYXBwLmJza3kuZmVlZC5wb3N0Z2F0ZS8zbXRra2JkdGo3MjJjYXAAYXT2YXbYKlglAAFxEiCHSti2gBTqt0i4jUAIjqiuWTk4Akndjy9lQyQS5nFfg2Fs9g==","omFlgGFs2CpYJQABcRIga8Tm/Fskfmg0hkVF4UChrndGg4FSQqqAzpPGJmFstjM=","omFlgGFs2CpYJQABcRIgROurpQ0ScCC8noQP44PVJltO8y9GvU4SMINH5+Au0vQ=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNsbmVsNWdubXM0MnZhcABhdNgqWCUAAXESICh3DKPaJUImpW9lEfzxn/Q/j7k/7tF8INyYznEI6POcYXbYKlglAAFxEiDnHVFmOEEuaTTzXUFRrMSe2cSbi3+k1DqjQoFTGWyKVaRha1Jwb3N0LzNtbXByNWo1cnkyMnFhcA5hdNgqWCUAAXESICg9gSJEoiO/Ly/EB1Wnro3zjCh3d55/Ty5zXoE5NYIWYXbYKlglAAFxEiB8oOMd8U0akKrBDVyyTCSQk+uySi76hLiZpk5F+RRwUGFs2CpYJQABcRIgHA2s1Dz7zg7dYVnSUVpmYruKlK9JQnBhr1NBY2wtFSU=","omFlgGFs2CpYJQABcRIgMpKqWzRLcm8QkM3NTFVKb+4gkAyXduh0Ue+LTKbRJm8=","omFlg6Rha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtc2t6M3MzZTRrMnRhcABhdNgqWCUAAXESIKjMtfjUCS75Z5L+GkcJDuuhiukai4BC6bI/RRq07x7uYXbYKlglAAFxEiCCw7ggdsmGwvek4pYusvvJJfsArEqVk6GLc171V/si+aRha1JnYXRlLzNtZ3F2dnVvcmEyMjRhcBJhdNgqWCUAAXESILLp/UDpmGIwyFdf6Coe5eFUlowfD6NcZoQUaP8ShmK/YXbYKlglAAFxEiC1KBXjoxl5zuCihB7VEEUqPQR98xMTRIOpvu8E80/2VKRha0p1aTc2a3hrczJxYXAYGmF02CpYJQABcRIgjWGIDqFTBHDiaadGbUjL0EfMHTMwCY8HsN7hKhoyAKlhdtgqWCUAAXESIM1iB6wViFKZMwX0mrbFRJVcDeRt3UEw2XYLPKfKwtzyYWzYKlglAAFxEiB2osJmREibFi2ntw9gHhbsNERxxlHVfkX4FcuvU+ErzQ==","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"]} +{"root":"bafyreig54ou53w4ixcu6br4tu52kqmd2kqqdo6ietvqainbze6gnhg5bce","prev":"bafyreiewnllje37ytaifdz2mq7mnsktblay5ygmn5p6jbpgwbqqzrpzp2e","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvn5ts2d","cid":"bafyreiaah7to3s57jk3w74rwfbvx6seuyrqkyisbtiufdoxnzr7gyadwhq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdvn5ts2d","cid":"bafyreih5rjoffomyfut5cst4yxqsttsn3wx3ick5bopasu2rqxmecmwnxm"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdvn5ts2d","cid":"bafyreiflepkrxf3l44msgibcfi2orkur5mab4tbnvjios3iy3lw4vrz3mi"}],"blocks":["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"]} +{"root":"bafyreide7jko5oxk2m2imyjjmwlkjughfhozcggoqoagtl6cgggzu6rese","prev":"bafyreibjjdolcxgwajjtc5ibl7ebx47syscwpvyjpi6lrtst4exwxypuhu","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvgxm22j","cid":"bafyreigdorxffw4v7szonwycgalfy2lj7heoszkpkd3vouhg6oayams5yq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdvgxm22j","cid":"bafyreic7h6mnsb3tcfsrvwgqz4p5zwufcvquro2a74figpcktyscikkcyy"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdvgxm22j","cid":"bafyreigqeuogrkz3fegnal7eopedmwczg45bbbboikmwgs7rs5r6m6ohbe"}],"blocks":["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"]} +{"root":"bafyreigfhlrswrjxpxz3rjwzxqe57mxns6uwhjm6ae27llaiu3hpuygreu","prev":"bafyreignax6kmdobb65iiy276jx5fmms3wncopi3oks23jrsk43dckwol4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdxlot22e","cid":"bafyreib5kjagi6nhaxr6gvatj54gjo4a23iwrxgpoan7f5oqtowg4szxqu"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdxlot22e","cid":"bafyreihzzhfkqiymm4zxo7ymef7pykhenjxoccala556j3ibb35xnj6exa"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdxlot22e","cid":"bafyreiej72ktzx5txirnaqfmthn73pgncsakcngtrasur7rrpr2vurzdru"}],"blocks":["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"]} +{"root":"bafyreicjk5fptbbaudaigeovh6osjp42cy33l4n3zbmrn2xbkttflzskky","prev":"bafyreifchcd3pik6fv3pvkvoscbxdxcg74bett43c2nazxmyjcpzrdtdmy","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdzptic24","cid":"bafyreihirnoxzxiuxxubufota7cs7zk3tdjtcletuhj5vawjbwflux43rq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdzptic24","cid":"bafyreidztmdv3q6dlfembsnm7blgk3zcmpgoq6a3l6kne6od7zduihaaje"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdzptic24","cid":"bafyreidtio4bwt27ivtw2w7imjlheelclirjnrkhvback4mikbdwohrdey"}],"blocks":["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"]} +{"root":"bafyreiepivmyai56hroepgtgi3khew5bqongmgvvxmulvyoke5hyduellm","prev":"bafyreie7ll4wr32jvxta6z4apuvawsgwhxzedy2ur6clanw2pv3soxslnq","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke2v4ts26","cid":"bafyreic5rkrgjdng6mnkovifbjjt7eequy74eof7ymm6gic6wzsyc6kypq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke2v4ts26","cid":"bafyreic2gwejghjbctn5mlzuxlpaextym7ttwy45incdej4sb7ske2grny"},{"action":"create","path":"app.bsky.feed.postgate/3mtkke2v4ts26","cid":"bafyreiaazygizzzlfru2cwt4xpxk5z7a5utkcwrkwscwhnb2gkuv7lvlqq"}],"blocks":["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"]} +{"root":"bafyreidiqh2sj3rmr4vesztayownkllqnylkvdc6lnx5py445mciqv2sha","prev":"bafyreicehdislmtwgliltnyk4ihsuenn5zgnqiti3leh7uthrcx3v36q3q","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke3aoxk2x","cid":"bafyreidczankboggxoyx33y7tc3v6pentfrtecen5vdmf2svm5moq6zsxe"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke3aoxk2x","cid":"bafyreif56ecqfyo72pjcn3im3n6bin4fd2s77pztnigmrtoezlo53yvpau"},{"action":"create","path":"app.bsky.feed.postgate/3mtkke3aoxk2x","cid":"bafyreihpjzuqfhgbywzrnfobrkue5h5hyzauri6ew6aby4klhbe4wn5hxu"}],"blocks":["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"]} +{"root":"bafyreifnsjijcomzwdn7o6xol7cvodlxx56shdsqh3zenkr3aqs4ee4oqe","prev":"bafyreib7o4kktyqcowak25urc4xohcvvu7mh27zw4s5rjch63qjvgdib5u","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke5uljs2p","cid":"bafyreigm3cfhdm3xycmj7wqokz2obiaaicwxgk3ozo72mljtwzxjgk6uvu"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke5uljs2p","cid":"bafyreih2e242w672lhl4mxf2d6sgg63haolornrdyvmzg3of3bzobivk54"},{"action":"create","path":"app.bsky.feed.postgate/3mtkke5uljs2p","cid":"bafyreiazykutym7waauxt7aigzv7c3bolzyqmefxukcktyny5itibsz3me"}],"blocks":["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"]} +{"root":"bafyreictczonxbkiocmwrprn3v7lgugq4xp7zn4rphux5c6vefla52hmby","prev":"bafyreiekq57a7kvvvgwncrzr3vv4lm4fvfvm2i6xbgdde55s236ri6qabm","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke4h3i22e","cid":"bafyreihfpuxdakf533l47iha54g7u47x3iw2lo4u4dxid34mh5snm5v2lu"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke4h3i22e","cid":"bafyreicv6q7czc3n2tdt53qye5ldqs3eufxl4opsjonhxmsj5h74rmigdi"},{"action":"create","path":"app.bsky.feed.postgate/3mtkke4h3i22e","cid":"bafyreic4dhwzafzeusjs3co5k3pv2vyazl5f3esqbkkqdeyignnifkg7ue"}],"blocks":["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"]} +{"root":"bafyreibbh44fv46dh6ohguenoelegsxoxmkmrwvaokw3dhhw5utedtxz5a","prev":"bafyreidww7y7a3a35okf7567qve27u7q7p6rody3op7m7x6wbpit4ndhqe","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdodge22y","cid":"bafyreigrszqo5zin5w4h5drrcdkjs4xsq222sc3nh3wx4imnjbvcxurdwy"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdodge22y","cid":"bafyreig5ysyhxsnc3fxrni3ie6dctya2llokwkyrhdkcknxzdnirgup57a"}],"blocks":["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"]} +{"root":"bafyreiejkmkhges4bmpi7tatverg5i5g6dbd6zvuabjrxyusk6s6k7mxoy","prev":"bafyreidzauxc6hzkmnkll7fpyovunuicmu7gvilmbqyado265sz4mbts2q","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdpnvq22m","cid":"bafyreif2o6u5od67z72yxgs23ivbyma2uc5b7p55ifbkhuadg5sa5ppmhe"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdpnvq22m","cid":"bafyreibg3ap7nr3w6cscol5zeywmnsxc4slqkd66ezcbkglmapedyw5peq"}],"blocks":["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"]} +{"root":"bafyreicur7rd27dokl6dlbjs3jrfizk7th4ef7pnrtbpgte3ujbmnmc5ma","prev":"bafyreickbotnyxavo6flk2g2bow73elwqvtrysdaflvwpn3hwmufv46lce","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdqjz5c2e","cid":"bafyreihrmdaz2ozqpjqs72itgkkeaiujnupyjrybqtgb2ull6pmgkblddy"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdqjz5c2e","cid":"bafyreib7atrx7oaj5hbscwrefpbkwvf4phu4jlpk7ha6akbxpn3dvyejwu"}],"blocks":["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"]} +{"root":"bafyreihfz3di5mzferdecerti4xigkbpn7ms5fkkjwwziftu7ckh44beri","prev":"bafyreiclj5nk2j4kdxgwy25ydjipds4qeqirkm55fo5b3scvfwtoifjame","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdqxbx22g","cid":"bafyreidm2ps2iuhinvvmzuzi25go23666bi252y3csd55mkaocdaz4hx5i"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdqxbx22g","cid":"bafyreiefi4p3lt2ldaf62zft4bqodsruyi2v46b2le32dcnetwzj5do4ei"}],"blocks":["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"]} +{"root":"bafyreievg5x6pkximmubzkhmp3okohzk5o76ympcg6ptxwgakjhwl7ih7a","prev":"bafyreiatoh3xyaqrnbnxo7f647xgfk6abxbauoqckjiszf4gfzb7u7rvl4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdanqik2d","cid":"bafyreicpvg4bogwgd3kk5a5gzyy2aibsrnzuji2ozpqikyv6g4qsp4uqsm"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdanqik2d","cid":"bafyreibtr6qwtnl5uli6u5atrwfyxscvnunhcyy2reenz2lu4c36wr5mmi"}],"blocks":["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"]} +{"root":"bafyreiga2k7rzhke22ht66b5h2iizwkcba6tuo6mtwnjyyu7iodkj3oosm","prev":"bafyreial44nsdvjya5wsqciyz63fnmf5bptotig3whvr3sxixpi653vahm","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdr26ps2q","cid":"bafyreicrpblxzetopxj4dochl6pwqvhfgxducf4jh6x2uwy6iwyvi4sk2a"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdr26ps2q","cid":"bafyreia2m2l5rx2qabjz6chhpxg4jg5xazk7oiz3onm6uo7rt3nl7wxepm"}],"blocks":["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"]} +{"root":"bafyreigouqbwjceqarb2lq7ychmyr5s6oourhsnq7xoenhffowaftrqeie","prev":"bafyreifzz4brcfladycgzrch7a34l5i25bco3cklqdprgweyoaniurbgda","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdr74wc2i","cid":"bafyreifev2ylpwzxdoxtp3ez7vnenqvzcgran3kpzzsmcjzlpbnbvmpaha"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdr74wc2i","cid":"bafyreicmjawn3im3ycow57amwt6vffuktc5qztcoivlten3ikgdamn5evi"}],"blocks":["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"]} +{"root":"bafyreift44cq7pedqkwn3aedlg4pjdsq36hafxsyvbjsziskyv2ltgscwa","prev":"bafyreicigns5ecla2uc2j5emknvubnki6lusjaopwzouonhgfxgsr7rfke","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkecks6c2m","cid":"bafyreidll5bj4fbqf6lof72xwufuh6qroaiwcamdpfa47som4q4dhus6tq"},{"action":"create","path":"app.bsky.feed.post/3mtkkecve2s2m","cid":"bafyreihdohytyxykbonlezgqmvmkojiab7e242jzb3b6ax54d2gwaf7idu"}],"blocks":["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"]} +{"root":"bafyreiflkwxwn5d42h3hipyjapuncejgpyq72lrd3caaettbemwwoayy2a","prev":"bafyreihwfutahkpa7u7t7uhqzo2rqiukb6elhba2i6esrhdxjoumlgfgk4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdrs7bk2q","cid":"bafyreiga2nalgn7vd2vo4jgiztmqy2eirrtoerrsvsvdpggyqihh56gsci"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdrs7bk2q","cid":"bafyreia3fmxemzj3qby4a3nx3fnga6cqtmlmvvrpssqrkxnn2ifkaepeea"}],"blocks":["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"]} +{"root":"bafyreiegsevys4ybicsmkgrhinkueiyh4kgkq2sirfmj6esjvp3hsgwtgm","prev":"bafyreif2am3m54oiswxz364anftrz3bv3kpvyaq3uktkhp27npklyx2vry","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdticps2e","cid":"bafyreieotbxxseoel3fstyx5u5hp2yemgxvbnjvz6impirxioaq2atcw2q"},{"action":"create","path":"app.bsky.feed.post/3mtkkdtr4x22e","cid":"bafyreihji3eoo7e4abnv3l2sgltxepjxedysarirl5iogkxnn6qs4lqm5q"}],"blocks":["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"]} +{"root":"bafyreigfj6ly4nhvcvces4e3kvh7cww3bc736w54oh7d7fdshwht3wh3pu","prev":"bafyreiabefptvuwdkgnm4zwjdrlui5kl7pdkyzleemgo4dvimc43y6h4oi","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdszlzc2c","cid":"bafyreibrhc42dkvyuegffse6rex2sgx3n2lcs5qv7garupbmilnb5dht3u"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdszlzc2c","cid":"bafyreifjd5nopbdxryzzt7rfscmiffnxshev2kojzt26cwz5mrlgxi727y"}],"blocks":["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"]} +{"root":"bafyreigq6tpevryr3xjxrzgapuuhofwmxghdrzkdkbghbi4to467vcqpki","prev":"bafyreibtqki7rs3noxoagajpxkxjs2bwtpj2gx3zc236ypvrpflmlbtenu","ops":[{"action":"delete","path":"app.bsky.feed.like/3mtkkdvo5ms2o","prev":"bafyreidjxmtzavkzq5x7j4rctvq4dv23wsru44ecinn254l2zr6cxaqvn4"},{"action":"create","path":"app.bsky.feed.like/3mtkkdvr7ad2y","cid":"bafyreic5py632mf4jhskmkf7m4bvzhnxktngoa6fd7rljpyfvjbicfzacu"}],"blocks":["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"]} +{"root":"bafyreignaltqvfxn2a4pmnhrzsebd45h7ure3ndkmcjw4nzsxdn4hdcp2y","prev":"bafyreihdm3mz2ucnywjlsyn46u7pfzxx4mqfesemgdiy62qkfzvtr3lyge","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvlmzc2u","cid":"bafyreidbqiqefpjdhawbhbp34z2eyaaeltkymbdfxajledxe4k4gvfy2au"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdvlmzc2u","cid":"bafyreiabr3zznp3yk5qswpd6bkxbflgrygaalx5orw56bcb6mqlpjctdai"}],"blocks":["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"]} +{"root":"bafyreig6l2vbgv6ehwhpmv6nrhxfmnyao7tcuaavbsdwvwkkp6iaaghh6q","prev":"bafyreicb7asslpo3pcrtspwrukxymkvrh7vezigno3rbodnlepnxcpacwa","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvicl22t","cid":"bafyreia72ejv7hix3luu6fxmen24lqqgwe75z3hqoztbwediwys7nmzfvu"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdvicl22t","cid":"bafyreib7ctny27ajqhlmgvalyeytn4xygkp5an7smubk7xjtp7pg5zu4hi"}],"blocks":["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"]} +{"root":"bafyreigr3hk7iwdpm62fjup5mmcqfcf3klsatqpskmp2iwjtrodaapasmu","prev":"bafyreicfxdmro4seyextlf6wb777lqvaiaanprcm46nwwlsvqzetejffjq","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvnres26","cid":"bafyreigesvja3wivseqp2acxxjnkiw7iz7opafhathy55ygyqkawmkbwna"},{"action":"create","path":"app.bsky.feed.post/3mtkkdvtkwc26","cid":"bafyreiecwxk7tc4vns6n3k3bxvltuenio327s3xlksvjoivvm7g6g7oqca"}],"blocks":["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"]} +{"root":"bafyreibuvzcwfplwdizcgvdchhasie7llzzqpt6jjq5pvn6ja4degqmunq","prev":"bafyreicylmkmze2n6txemwmlyfdbooli6b665fbqz6nqgp2kua7gvuxope","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvb7z22b","cid":"bafyreiftcdgx6wc7vkcholvjxxhlb5krnilv5q7jlzameisikswpvazmly"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdvb7z22b","cid":"bafyreidctu35jw7i2hwlfscjc4j4wylbjehq6bkri5h7zqmbtopwtqnuiq"}],"blocks":["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"]} +{"root":"bafyreighhwistrrzvaoniwo7az4kct5yvs6rucmezeajvrsbvb5zsnjsnu","prev":"bafyreifa54xonttdncshxxfd665c6bfwyzwk5opxqdryurooi3fmbqor2m","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdvvgik2y","cid":"bafyreieg64ubjmn3nugcbpj65hxed35l225ztms7ullzd6k66nl4qlwmr4"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdvvgik2y","cid":"bafyreifu55f77lii2rmwhzgsvpndcpwp3nnmxwdis5pw3tpbozdlktqnhm"}],"blocks":["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"]} +{"root":"bafyreieaezm3pvasewm4ih77qyuda2gxxtgcvhgxowtvx4zhgtvr5daqsm","prev":"bafyreicsesu2id3iw27s32mfyohyeczx4eepxcmenpppqqcj567e7xepqu","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkebuuys25","cid":"bafyreidll4yzbhrdlxdn7fqnzyaxrdz45a2f7jpawafojvvfjvdgd5zvkq"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkebuuys25","cid":"bafyreihsqhvunviblr2cdpuzlmfwle2rhgaxv4k6lomoc3ttxm4ytoud6e"}],"blocks":["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"]} +{"root":"bafyreicbnqlgleozlccbv3lu32mhaxann77fyvvufdbdfbyhiimxjm34yi","prev":"bafyreiaotcgi7atcpnxpnklhsrxqwhptoe4ceu6ithk4si2rark4ppvfxa","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdwnups23","cid":"bafyreif7mkrgxk7jnyexpnwf5ptl2q4whcythgl3uq4r32rkipqo5wrn64"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdwnups23","cid":"bafyreid7mu37wzsom5kuj4pnq54lfkzljoqkfzcmmazzmjyfgx4ifxehuy"}],"blocks":["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"]} +{"root":"bafyreiflitugcr5m7hasckpkzytocz6kt4iknvhlrdronnec5gvlxydezy","prev":"bafyreiewzh723w2mf34tekwwe22c4hqljexds5tc7hilqzds6uqfxoei7m","ops":[{"action":"delete","path":"app.bsky.feed.like/3mtkkdmezoa2n","prev":"bafyreieb32vndhizqgj6mt3dnkkxejrfindopiv6aidd7n5prunpq4vftm"},{"action":"create","path":"app.bsky.feed.like/3mtkkdxjiz22m","cid":"bafyreidk4yb7zeaesqoqi4bbwwrmgbbdggpphlraxfb4ab5tygq3aolwe4"}],"blocks":["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"]} +{"root":"bafyreicjsfstnkqnd5lhnxg5y7wlxwiths2nc2pcmxuqhodu7hghmwegm4","prev":"bafyreibhanly2izmh4fgol2fh3q3s42vaovsooby3er3lucljvcxcq3ium","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdxndkk2v","cid":"bafyreieyty4xjurfgxb7j2oh7f5xuwyoivgcmrxtytsbokkjuk6ahi3i3a"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdxndkk2v","cid":"bafyreidnrm36jqfnljwz5xu6u7lqprfk4h623pv7doisws2i3w6hikri5a"}],"blocks":["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"]} +{"root":"bafyreifb4ltvhviyzga7kgix7ceyswi6qyk7tha26qx5rbjaef6kjmtrsm","prev":"bafyreiabifh54r2o4aaaxumit6yw2i2p5enbilskzj77thxql3vsysb3sy","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdtekm22c","cid":"bafyreifvyzmqulukt4e76n3llvcbe2ap4s6jxzv6vek4zadm2eacy4b3cm"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdtekm22c","cid":"bafyreibrqufasbmvhlcgh2q4zhmnkpbditfunefsw22zxmbguta7kviyuu"}],"blocks":["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"]} +{"root":"bafyreic5sbxli4skhs7atmwr2fqwwv6yklge3n5hijpius6ubdagalde7y","prev":"bafyreienwrw27r3qdwqun6xr4bqkl2o7mu2cfvknti4ddtcbbwvcuvfxz4","ops":[{"action":"update","path":"app.bsky.feed.post/3mi4e5kxg4lx2","cid":"bafyreibham7zk2cpdkgh54ra73yvblhrajk7mbdsevpbfui2qnipqbunni","prev":"bafyreidshnv6kw4i2j3nck53ije3elobyjcfqcj6xr7qybo6oz62yxg2ca"},{"action":"update","path":"site.standard.document/3mi4e5kxg5ex2","cid":"bafyreidsys25lvijy7f72idccsq5lfibrhe5feft7ujdp47xjy4czdim74","prev":"bafyreib7msl6mqrzlcz5zqyhzx4dkernoznmfbrdzvw52yfu5dcvnpsihy"}],"blocks":["omFliKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtZ2llZWQyZ2Y3NzJhcABhdNgqWCUAAXESIF3F0Jv2rE54tZf4bY/V0doZXrrWdAoSa2sWkh/zNDtQYXbYKlglAAFxEiBHuYeK9gi8lc04aSJilRC1ISWZQH3BKXvScZjtc6UMRaRha0p2amN2YXp2emsyYXAWYXTYKlglAAFxEiAxD11CoShFumrbvgTE2z9k8QKSwAt2kfy/kENhPsdQQWF22CpYJQABcRIgNMiXpVSoP/vhlSZPT44fTJTR/U6VWObdMtZlEgF6td2kYWtKd2JvdHhpaWw1MmFwFmF02CpYJQABcRIgYn2v3w7MI+UQ7XSGkLizPdj/T5lMn0SI41b/muO+eIthdtgqWCUAAXESIC0eRyksoAk5QMp5/41HT3v886yg3OpXL7bFYx+Fi9VQpGFrSW5iamxibmJpMmFwF2F02CpYJQABcRIgVN43v3f0Wi4C8hEpR/rHOsE9xd1YhVcWdMl8zWTNQzlhdtgqWCUAAXESIGIZhnhAbxeTLjNtXiRxZRWpzIDvhVCCTkFsV8MowFn6pGFrWCRzaXRlLnN0YW5kYXJkLmRvY3VtZW50LzNtaTNzcnQzeGNuaDJhcABhdNgqWCUAAXESICFMmBeWtNFchpWj4aPRgOzTYJuH6L7Wbtrc+eIR+injYXbYKlglAAFxEiDjDKHoERsRLe7orfPLp7vBhm+bu4uJ5F0+MF8IBnzumKRha0o0YW13cTNsZXcyYXAYGmF02CpYJQABcRIg7jgpiieCr5bprbiA0sv7gyhy9VLu0hKVQ+plEKhMABJhdtgqWCUAAXESIOa1LsywIo2QZbLuSTr753XcBaH/eEGJvauyjo3ahpHqpGFrSmxsb2ZnNW1oYzJhcBgaYXTYKlglAAFxEiCuU1c55pCMseiyzI+qdPyAR1XbVTWFHxKIFhBCDX+I/2F22CpYJQABcRIg/eaVngy9DDn1v5eo+6a/Hl+41tti1YObrkN4hJED3cCkYWtLbDRraG1jdjc1ZjJhcBgZYXTYKlglAAFxEiBzKr+I2jALQE8FsoxdB2aZQXy3ukLD1j51p2ql6zhVv2F22CpYJQABcRIgUeJJw300Y5RvBelkjt4VFZxWSvNXjElkV4wvggcPJCJhbNgqWCUAAXESINBmqN2cTWyCvcPIrxENnfe3feYSzY0AysXLeue5Mjoq","omFlgGFs2CpYJQABcRIg1Ku2+MwwwpIOx+Wrz8L567ilFzEypZmgwjY0c8K6dd0=","omFlgGFs2CpYJQABcRIgk6XiH2FaQgB3Ijkrm7qEMbdS35pDzG6D5+K1vKpcByM=","omFlgaRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk1d2Rrc3d2am8yYXAAYXTYKlglAAFxEiB2RvZel/5zNccOq2H8UC2maisu5MqXMaocuwhMdluP52F22CpYJQABcRIg2WoJfLWhlYbtFcizybhtaU5Rc+Emm46M9BpHWAYC1kNhbNgqWCUAAXESIK1HG5hKqCrYrCNkl6HPXxIjUvqbgRsoAWAc37qO5/w+","omFlhaRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWlmaGFpd3M1cWYyYXAAYXTYKlglAAFxEiBI7OarAJpx7iAK3T3Vl/DCPIHUGflDPgTqg66AADFD4GF22CpYJQABcRIg9to8X8DCbgcohLeLsITlZSMHjPlo37Pz/+gdrvaQeAGkYWtKanpoYzJxa2tkMmFwGBphdNgqWCUAAXESIDOCfcCIRYG1Uo6+zQ4uRtMkQAKTbwwTUqliHccA1IUJYXbYKlglAAFxEiBD3Boobw1fKcNXSSndTbI7UCeuq8/+jfGVi1Kv2YBkTqRha0prY3EyNTVjMmQyYXAYGmF02CpYJQABcRIgMv0K8qfZl55ePIM+ZgaNeq19Z7kYEz6ob+6hj/+zMyJhdtgqWCUAAXESIP/2QQUHLR2gRKz2yaPvGnL2iH599UJHYtT4Ulika5dxpGFrSWVjZXlnb3hhMmFwGBthdNgqWCUAAXESIBWgm8JCIfgBO90njT8r2PTFwCAGSI53QFTSCCGBPbkqYXbYKlglAAFxEiDdE7IfurHBh1W/vPbVyiyibctiSdXWM7BPr8XzdS34baRha0psY2x1b3F1ZXcyYXAYGmF02CpYJQABcRIgPUbyzMuXfBY0D2qAkU3xFDJhFP4b8UpT64PAcyldWPNhdtgqWCUAAXESIH2Ie3FLke/LNt8VL6jGPEHfH4DWTRtE01JfbbP6d/AUYWzYKlglAAFxEiAw5ngBvYAAyBNrRluJ69ZyjvPMzIp6qko7MNiIQHCQ8Q==","omFlgaRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0aWpqZ25lM3QyYXAAYXTYKlglAAFxEiCoAJN8HTwMPI/mTgHa8PY8mlMX/TQFBEsTFPgt4R0g3GF22CpYJQABcRIgnsWhk6c8TlQ6DOI42DwXRjMyYrVtC1J8lB+b7KynmIVhbNgqWCUAAXESIPQEP1jrxXC7PDFZhafa85G/dWT5LgAHeVqNOCOyicJE","omFlg6Rha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0aXgzbHloamkyYXAAYXTYKlglAAFxEiCoAFQRa7OR4h7zcMSk1jv9+UTROcIDcwkbcAJgBDO0jWF22CpYJQABcRIgXIHj8bOOFmDdqxhsX+yOt09VHUDFBun3IJj1vvNtJ/KkYWtKNW83dnhyZnFvMmFwGBphdNgqWCUAAXESIEzww5l8ynO6jsTJjT2tf/IH1J5Hk24/oaUfrShizJ0CYXbYKlglAAFxEiDzDfxP7e4G2eRxJj8nT58pitvWznk19fUi6xhsTnVzVqRha0l2aWZxcm96ZDJhcBgbYXTYKlglAAFxEiBJZd+a/NhHInF1mvnKW/FdIHW55a/Wi78y0MbDTg/+42F22CpYJQABcRIgxrVFYpi3ttTbghis+UFfrJYPyheGtadS8zSeBQWUwNNhbNgqWCUAAXESIPeE5ly+ypmqB5Cjk6cx9J1s5bIhbvVduUo6mHcc/Zuq","omFljqRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0Ym0zY3FkMnYyYXAAYXTYKlglAAFxEiDiDlksEju2rrNfsOVprlnVSQNa2uKkLvBDORWeq95crWF22CpYJQABcRIgnCZJKieylwwTKKO2uU8NC6jBrNBsSdnkiANlM5Q/Ng+kYWtJY2VibGhvNXQyYXAYG2F02CpYJQABcRIgrDCk6meaq96zRs1URQN1E1I2tZv7oMg3EGSFc7mcR2lhdtgqWCUAAXESIPZlAZyrKCD9ugndrh0kqY1OhC8bD4It9OjFbMJHWm1mpGFrSHNqYTJndHYyYXAYHGF02CpYJQABcRIg1QRM4Q4Ll/GuTP8eNjc+5pEIPTrjPBB1ij2aqbcln55hdtgqWCUAAXESIA1TVVL9UH6emo40sHu+MqEwzHGQ1r5pWX1fxODDYLlapGFrSWRwaHA2Z25pMmFwGBthdNgqWCUAAXESIB3QQiEvxLm++qsr+W8LKbRG5uSM4+5Mk4aKOyMXpmQUYXbYKlglAAFxEiBBy1RL4GczTz4KcKPBRSkwohQWKZjI+FnHsQsP2j9+S6Rha0llNmdnc2VvYTJhcBgbYXTYKlglAAFxEiD40o4POfGbIZkDF4vnMXYUGQE9zwXitK5TjKrCVIOeMGF22CpYJQABcRIgTNz638l6407ZUK5dtUN6KhWO4fL0a7CSopJsgdnuBwSkYWtIZDRzb3hqYTJhcBgcYXTYKlglAAFxEiB4+OyAyQBP5U4xnVqR/R2wirrrd8brvOGOXRADVu3w8GF22CpYJQABcRIgWTPkQbIihd2onRHNaiNJ1zYGKhnDtFXnmpee4bsg5IekYWtIazcycXhhdjJhcBgcYXTYKlglAAFxEiADKDaE9H0nMI+GjxaPvIwg6ILqAPoGD18OpS7qsclXJGF22CpYJQABcRIgNcBrTW781YPzayJi/lEZJOBomubioWaWgqbiAOO4RgukYWtIdzd4ZHZ2dDJhcBgcYXTYKlglAAFxEiAjpxYuBJ4rabdej3Tc2N6jomD7EWZJCjZIkzOyeC9re2F22CpYJQABcRIgJescS8VoEDZN7pHjaxzMEt39IIki3ahSrNshD275F0ukYWtJZnQ0bmtzamkyYXAYG2F02CpYJQABcRIgJo+V9nwU4L/ZaXf8ivWOgN5dCOiViYhBJvgBaOQPaHlhdtgqWCUAAXESIC04ZgeoyrzfoQNZc51TPZkV3Xnf+1Svm2QezC0t+jbwpGFrSWdpdnJ6eXpoMmFwGBthdNgqWCUAAXESIPw/9CnojUjT+mGiZq6GRJZ3Q9tyOsBZ3fwSDlodxKm1YXbYKlglAAFxEiCfUmMlTdZ/EkPd7Sg0lpK7kex2/4OmncDZdtX4MIU5I6Rha0h3a29mbW13MmFwGBxhdNgqWCUAAXESIEmU64TfJHi2w7KRW2NdiJxhmzvnjQK+4LuBe75iIYqgYXbYKlglAAFxEiDkqCrXbz5JS/HPkEIP807EP6LcAqlC/rsfL1RRqz31n6Rha0h5M2lkdW9oMmFwGBxhdNgqWCUAAXESIK1ptZ3Gvj5HfVjaDKfurul1RV9TaFWEHG9OGmZYiSHhYXbYKlglAAFxEiDyYdIxcpv2gbMZpScf8Eb/hjvKpr2/lQIiiWHkJTmdhKRha0lobWJ3YmNzdDJhcBgbYXTYKlglAAFxEiAEH6i1JjaaXHIR+Ztk2+U64mhXlA3pgr05k5WvYcqUs2F22CpYJQABcRIgdWpEvt6/oMgKBX05htOToF6bqIQcNAvumBbrTIFfinmkYWtIcHg0MzY3ZjJhcBgcYXTYKlglAAFxEiAW4RCqopGpdqBuF8qMQgWdIRwi8xb+GsSuxfeTW8uVHmF22CpYJQABcRIgP3nICVSNwUTBIE9iTPe0Wjro7gDKfxM6l/ElZDqRandhbNgqWCUAAXESIDHuLdvqLRYdEct5ATiylaFK/zayDr/uZilDH7spjF7D","omFlgGFs2CpYJQABcRIgCUlC6H98fI/5lkNr1MHAby5EFaIxjw7LB1BIyrWHSXM=","omFlgaRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0ZHg2M2lzZXgyYXAAYXTYKlglAAFxEiCv+2UseQ6CqH5bFp3UkcRU+2p753J0hfo/JxjqR8R+L2F22CpYJQABcRIgWFyCWKV2H1+geRpQfFrJJYsftxl/VrEyuCT7sFQC5qdhbNgqWCUAAXESIHLvAAMz+912pGbB7pzssCztER9GEpPQc1U47OCp7kon","omFlhKRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0ZHh1M3F6c3gyYXAAYXTYKlglAAFxEiBA2EFAPMQGjkDoeBC+n/0gAolUjfRu9k0kNDe/u0fChWF22CpYJQABcRIgVg70uz6D013vFRj4GF/6xtyzZfUBfTNMSk2JNJCjC0ikYWtIenp3aWhrdDJhcBgcYXTYKlglAAFxEiBzI3OIMhpqGwBW2ee8LXgxzDnyxD/5mmGt81uEHGVZ92F22CpYJQABcRIgpSwA21TU0HD/HNwps7/wvSP7o/nVaiMRIqVsbpBRoImkYWtJZTNsM2k2dmkyYXAYG2F02CpYJQABcRIgeTBu2KziQwaMk2akQd9DODUA4Xg9z6j02kbXjo+N6/1hdtgqWCUAAXESIAe8KfPTbyNdS0kn6CIWnndlstcjMr0NcfQ2YGyMatnipGFrSDR1em14ZnQyYXAYHGF02CpYJQABcRIgvtnQly6RqnnwOOhDoUhP3ohDV8Y506zgAJ4s/5+/uuBhdtgqWCUAAXESIFN++06pOjANRBrj+14zyp40l0vwiNriyu5uzW6OzOR3YWzYKlglAAFxEiAYXbl1zdgOYGCyHNqvdWWhcamCoSKE1BoWDPHtkjF7RA==","omFlhqRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWk0ZTU1M3N4eXUyYXAAYXT2YXbYKlglAAFxEiC+gJdipTnUvVDG2TyA/kVTaCl5/UwhpHAQ32IYCDaGBKRha0dkNDRpM3cyYXAYHWF09mF22CpYJQABcRIgcgTOgD/w0esSP+35f52K36S/mjQOWYQTiBm5OdsXNQ2kYWtHa3hnNWV4MmFwGB1hdPZhdtgqWCUAAXESIHLEtdXVCcfL/SBiFKHVlQGJydKQs/0SN/P3TjgsjQz/pGFrR3J1ZjdwdDJhcBgdYXT2YXbYKlglAAFxEiDYmvi6YdtWlcNm8vuGDMN+NQ9tFTY7/ZV3lhZImGM686Rha0g2NGEycmI1MmFwGBxhdPZhdtgqWCUAAXESIOoYgn0BaD7zBgQAXWGZSGPIxfkCGdWymI/fGXWm4LrDpGFrR2FpYnVqdTJhcBgdYXT2YXbYKlglAAFxEiDUqhNNUGJTvzIhkB4EiikpH2402ZZmQuSoJVEO9Y0LTmFs9g==","omFlgaRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWkzdm5maTZxcWkyYXAAYXTYKlglAAFxEiAxAyCNIEzFdL+x/rbKGAYUn3JNzeMxmMlcebFdQPDEIGF22CpYJQABcRIgaOlV6tFmZ5iVwYY28e3VkWU5E96sIYna1Auf3peH36JhbNgqWCUAAXESIPaPUBz25/FkfZlj2FUNOMvGbEFPsCa6zYarOLrby6ma","omFljKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtZ3gyeWo3eHZkcjJhcABhdNgqWCUAAXESIPvgMUMoP3//eegoAMEsarrtbfixyyZQlrquhVBinJr3YXbYKlglAAFxEiB/DcxSpZEYoL668fsnleHBwO6qlqXdr0fIIlJuvlx3XaRha0kzbWtpMnltajJhcBdhdNgqWCUAAXESIATffuDT90RiopNbxGDknRjP+cP/acCKbp/KBxUULfODYXbYKlglAAFxEiB2hh4A+IVrCWl4RCkgfdsluB3OQVIYi7Z1nrGCkMeMLKRha0p5YWphamdvbm4yYXAWYXTYKlglAAFxEiCDgGKGjnCZwfYgYZrEWLyCY03OhgxHuabpdWNj1fvXnGF22CpYJQABcRIglzzoyEIl/WiH6zhbNwmUNICAoW+nH6vPvXmT60UIhm+kYWtLaHRqM3NyaXNxejJhcBVhdNgqWCUAAXESIFHni4swrlOyXNyLWHTdo1e8yZFeocUKJlFo7bMBLEkdYXbYKlglAAFxEiA9wVHldYMYlWErXz0XWSs0+G9uxN2BfMjVlm7ApOqg3aRha0p4cXljZHh2Z2YyYXAWYXTYKlglAAFxEiBtD0ceh4xDJMUGk1kqfuWSpR2gmdAgaF4vufft2gGuuGF22CpYJQABcRIgm74NJlNynfOxbVzPtBzU4cTOZDDZWm1ypPlNh076uAakYWtLbmZwc2hiYmM2bDJhcBVhdNgqWCUAAXESIGoqbZpc58IQoiluq0eHYMzhY0XppPCp3L/vn8EApBQkYXbYKlglAAFxEiDf+uaXPJBeDGxSsP2a5uu16Ekp1KnZGsKi+yJBgTF3ZqRha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWdpeWpqeWE3bHQyYXAAYXTYKlglAAFxEiA2kblMYD2+bL6dSh8dykUfdorfoMsLvmrn+w9D/MWu9WF22CpYJQABcRIgOasY2qz30jxFY9qHIPqnmOHQ2JhCq2yVikBUQtE2rCmkYWtIbGt1eGU0YjJhcBgcYXTYKlglAAFxEiBLvTD2f93j2iJntrQ3QsXvddrDaQBpXjiHhkLXHkmLF2F22CpYJQABcRIgEy1+9/pzCIFrKMrbjsFSNP/ozhONhPAKq7wfFLKW6JekYWtKd3l1cGNxaWFyMmFwGBphdNgqWCUAAXESIBlroxEA+tvTTmUlF2RbmRA1zY89YxueFal0Fp5pfgA7YXbYKlglAAFxEiC5E1km7D770g45HoXWfzr01CMljQ6MOLuXGIdTu/z8wKRha0p4cG0yc2hpbnYyYXAYGmF02CpYJQABcRIg0SAxibNzaullWCQJqGju34OghFfNHS1vnNhvPz5XkJ5hdtgqWCUAAXESIFcZSIoCr0zI6X/p+vssdb4DRXdgiGg+M+Ueh/MlcFI8pGFrSnk2NDVheXZ3MjJhcBgaYXTYKlglAAFxEiBXjgXwWyLZ88FA+Dxc1vS/kmCOgcZV7xHLqaoR/lFh7mF22CpYJQABcRIgC7dE7Uh3G0qWmwUndRMurZvZXvHA5CgrM8khhwEOxwKkYWtLaHl4NnV2cXl0bDJhcBgZYXTYKlglAAFxEiA6AMFLBPPkQjrUdqpknRZ54NrEiZ2QMG1m1xxiapn6/mF22CpYJQABcRIgcuzZUd1Cy38sEXpUDH8cg5nD/jqKQoRvI6xYGKAmKjVhbNgqWCUAAXESIDc9E+vD9+QbgzlMeq8aqUaeuZY37bOHl6p575gIxwhA","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtb2d1YWh6NDQ2cDJhcABhdNgqWCUAAXESIDFsnK4Ze5WYoz84B3ieaTfovd39FmhDY781inQCN1RdYXbYKlglAAFxEiC1HUxg7KtUQyyiCfA58ZZquJ0Y4YmWIx1TAaRlpgL2B6Rha1gkc2l0ZS5zdGFuZGFyZC5kb2N1bWVudC8zbWdodXloaHdocnUyYXAAYXTYKlglAAFxEiAgU+urrtCrYyS1kiPzCz7U5+tvZe+/kmaeWeKBP3Ac2GF22CpYJQABcRIgYvNWHwzeXMm6UGELpdqC+4t/mtEKENTVD4nkYdAUNllhbNgqWCUAAXESIMbtVAJnb8cTGY/n2EJjfYFqPY88smZ+yeiPy0myI6HH","omFljqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaHhzZXpheTV0MjJhcABhdNgqWCUAAXESIDvBo9Q5zv+fpRFbiGDRTgbNWqgI3VeJMUdQ+nG/q6FcYXbYKlglAAFxEiD2EeoBxsoeejwVUsWOmX+RCGCNiIG0hqKwvIr3bBtNH6Rha0p5d2xhY2JmNmQyYXAWYXTYKlglAAFxEiB5pUVGYgvI3dWXyel6mc6F8Cy9pHHVRyRrFBN6Mf8TrmF22CpYJQABcRIgcQy5T4Z86WvpRVbjJrPfTQR8gkGlkE+hzB2dm0fxbyukYWtIcmk3d25oMjJhcBgYYXTYKlglAAFxEiBGCTGNv4BrjSZHsosFHOmn8Sb8yFbh1fSwM3ch7lGob2F22CpYJQABcRIgrg0Z8KxhxWlrPJAKKGR92wPB6lXkHFTnbQgBC6ylkTykYWtKenByeWhlaGNnMmFwFmF02CpYJQABcRIgpSnAY+fjEjVjhgzLT5n4I1VITlmRlgWxtdqYtmL4bLthdtgqWCUAAXESIOBjY4NTvjvqqw+jIQUt1mFjp9Xa04VtSvkVByc9L5lspGFrS2kyemUzNGVvdG0yYXAVYXTYKlglAAFxEiAbN1x6bTU8i8S+DguzQJzpbWzMLCBHUBrYDg97+96LXWF22CpYJQABcRIgUfoi2qIxOeYeis34vdPNwbWRSaX1WsDQnkObJrpejOikYWtKM2NsbjVha2hyMmFwFmF02CpYJQABcRIggZsXqAeXDAeeGBmvnVAW3WXhxqVHsLXuQgSM4Iqi+JthdtgqWCUAAXESIDHoNshAp+iejJVfYXua63v0O+OuKYRM4V7SbbSRPNbxpGFrSXQydWhvaGliMmFwF2F02CpYJQABcRIgIDtRUdEqFnsLMJn1w9QMMxdmxTKOLCvXnslV1ytDA0xhdtgqWCUAAXESIJ/MCsL9NydfK2+Qnr3Xh6nJTJe/H5lfu/gfhfLolppWpGFrSjQ2YjQzczVldjJhcBZhdNgqWCUAAXESIE+1SY7ARtzOhZAdTLtjFv6ud7WOouMj2qzchaxjHuzBYXbYKlglAAFxEiDlyImOiNuH+4uuW/m+aJHo0H1DqlRiwNNATXiqyqW7aKRha0prYXdobTUyNmkyYXAWYXTYKlglAAFxEiCh/ephyt8ZrxIg+CdmrRwcS3AvWb4KWLvrIRpk2slQ+mF22CpYJQABcRIgKKEjfIlRdT6wIqwpYJEFBHbyIMilCFq1cqm9RS7smUWkYWtKbDZjYm4ybHRrMmFwFmF02CpYJQABcRIgElCZYc0ZbC0ZeWhbXg/xhiz9MAVvbw/zATxIHBqlaHRhdtgqWCUAAXESIDkYe0CWMZys4o7vC8BdK8gZNhIr+bYg8tHiFRXy4UtjpGFrSnVrMjZlMzRibTJhcBZhdNgqWCUAAXESIGTtfbwlD/lVb3ftmY1ZqTFaFlqZX/AevC+3CMu6yozNYXbYKlglAAFxEiDjlc60rqjR+W5iLjOixr2Qa15ngx7TFoVMbmF/tqxGiaRha0trN2tydmlwcXp3MmFwFWF02CpYJQABcRIgMotCFDBEzBCz++rsd9IU4yxGpCBUBLb5zv5oLscukj1hdtgqWCUAAXESIBDkmh5NbYfnsRJtQ4Yh1jS7HJPTleLZNXjeCcK3tK9BpGFrS2xnMmtkYTJ5MnIyYXAVYXTYKlglAAFxEiDg4xdAIMDFumN0w2B5C32VCAPz+JWF2E9hG9WIWI7RUGF22CpYJQABcRIgX84HZ/rw9YVbuS9xdkuPWZRrcWVyWfE4peS+xg3Wu0WkYWtLbXR2NjNvZmh6ZTJhcBVhdNgqWCUAAXESIHfrUCnBIiZLm7wUeKDu+tESdpWYRRdNTpc5JmUmwfS+YXbYKlglAAFxEiAPCht9Dv+y5KmzbPivuW3tbbCs+n0J3Btn6od0D4HiA2Fs2CpYJQABcRIg6ZpUQWxgSzcwayFRpto38S9Ayl27lkjNkXD5XMDugbU=","omFlgGFs2CpYJQABcRIgAJqiK/OpW5v3TxsbWPZdNWqSMsKtruXn3XEBmyX8Ulw=","omFlhKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRhcG1lcGh1NTJhcABhdNgqWCUAAXESIFBT5GSwKCD1w8g4JTtKDvxuchw6TK3kDEIhIlG6vk0kYXbYKlglAAFxEiBR2Q4OklNNxobxSsAX5ZiXF2524zthK41rOdSbf+f/zKRha0ljdmRzbnJsdDJhcBdhdNgqWCUAAXESILMWiYQR6XxVSBLw+65TWDRWtDB+wI26X7hu4yaltvmXYXbYKlglAAFxEiDuKBfoleO57H8d5UAyjOp0/ULtBjla41Pd45e8K4r9BaRha0llcDNmYmQ1dDJhcBdhdNgqWCUAAXESIHanjKEBcUzgyJGrI2o5e4Y3wohVKdn3ssUQ89eUtligYXbYKlglAAFxEiDWfwVMuIaBb6NHRiXbTSGZhnIEmj4aWCLDQnZ4oamTIaRha0lmbW9ndWt2eDJhcBdhdNgqWCUAAXESICtymWC2ykvT2sYkw2zTYukyWGhz7U2XZDx8WUKF1drpYXbYKlglAAFxEiC/NFWA0YTee4fEEjXa5+mlVeQfx2FajbzDaromRDeGSWFs2CpYJQABcRIg7LFfdBCJnvNzOVuyIHK1S3msS2lY+tuQ80v+wFwYYHI=","omFlgGFs2CpYJQABcRIgMOsF6HYtb4vkuLAigHnsmsi9I0Qrdmj9dO/npHMJUJg=","omFlhKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRkNWJrYzN2eDJhcABhdNgqWCUAAXESICZoaMql4krsQuv0tjRO0IJHfKIyqr8bJukT0bfC9fwrYXbYKlglAAFxEiCA/5sNFMtmVTQykzz0o1W9FKUjEbzk2b7x0NzoedsLoaRha0htNHBodnZhMmFwGBhhdNgqWCUAAXESIJkwCwftRSDfy5SU0ay9hX00yIxgKhhOIvgDJE4I82pHYXbYKlglAAFxEiA+8nkuM0pjgpB6zTpZj8U7CWu/Wiaqe+tJjdcHiEzMd6Rha0hueXF0ZWlhMmFwGBhhdNgqWCUAAXESIEGU+sjRQF6Sars0Rxjr9ektqWT2IegOPdpG8YRU5oIFYXbYKlglAAFxEiCYqi3ISFtv8lIP0kqckT0qWoC8VnkYPesjpofgyfJJhaRha0llbnhqeHlldzJhcBdhdNgqWCUAAXESIGne3zEZq0xmGyuV8lX11VptXyMJ/adxxuNz8bPqh/a4YXbYKlglAAFxEiCwWKBXJEyrC3Tci/YFITO3t7nVJYZKTh0YPV0EYbwxQ2Fs2CpYJQABcRIg72UJOA4ghaCGbs3Rwpx2kN7yvCUyN2WFf+5AnFbLKrY=","omFlgaRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRlb3RveXB5YjJhcABhdPZhdtgqWCUAAXESIFu4CnCS1++DZzGd9twAMR2tt8CoIaknXdB1sQ0mqA1gYWzYKlglAAFxEiC9d3XDw/t3HKRneqx2iH+Oau6Eiq4AXyJUfl6vYro2Jg==","omFlg6Rha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRlaWc1aXJoYTJhcABhdNgqWCUAAXESIFXkKgipedRdx/knkmbKAcw0HxK4HOBk/b4AW5z+BXiAYXbYKlglAAFxEiC4EZ82FtPHnKhhDp1h1e2ww9VfMoiIF6r/IPx9+69EpqRha0htZ29qMzNiMmFwGBhhdNgqWCUAAXESIEhcWtCu1Smgcyss263JtbMJHhdvOmu26CdDOSkUurVLYXbYKlglAAFxEiAPE4hDH74j7y3KpSaX4pWdWD+EpTY1naM+mdSW+ujD6aRha0d0bmlvNHcyYXAYGWF02CpYJQABcRIgL/UXnARr4rWmLwV01Fs8xe8CB93dY/0EjlL0dVc1rGRhdtgqWCUAAXESIBgCWWvfRCXC1BXA5FO2Q5tEFZQXmDwm4T6UGh2z/mEXYWzYKlglAAFxEiBaTd+j506Sui9piIes2E+aKA6y/Y1E+wbJTnEHrYsFXQ==","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRlazcycXdkdjJhcABhdNgqWCUAAXESIF/O/PenVxcAMhR1yby+lfDVPFJ3a0GiPzQTSM02/0JNYXbYKlglAAFxEiBKzHhW6e3cPkgrAqisOSwJf7qYSF8Zcmh3gzkFs2/D+qRha0htNnE3dG12MmFwGBhhdPZhdtgqWCUAAXESIMmEEg88EcpheeeLDo5nPVorleUHuXFRKY2N9jEEdT2lYWzYKlglAAFxEiDi3cGEYlOT0T64073cVRs01SEpGUDvr/i/OJWtyl+4Qg==","omFllKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRkbzRraXh3NTJhcABhdNgqWCUAAXESIA8to68hjDcovKK+kqnzLPhLg5VNTQzBz+BJgzlSjanKYXbYKlglAAFxEiBJDD1/zDX+/K1pZpxR8u4buOyaVa0JkCT97zy+T46eyqRha0hxbDJkbzVhMmFwGBhhdNgqWCUAAXESIIyBpVOL1S1GJaoabEIr8aFKzpjkIWE68iufcUBONPO4YXbYKlglAAFxEiDaGqkWeEdwKXq5oTEZslq0qiNpWbsVbl0dABx3PbLwD6Rha0h0bDNkZW50MmFwGBhhdNgqWCUAAXESIOzYbL8IYZH9D6ck1hNBmtT63Ert5balvpfTssHfZ0i7YXbYKlglAAFxEiBeMvysw3kCa4233GMiE9jCEZm2ZjHMp7gQjmzqAUX2fqRha0d5d3BxaHgyYXAYGWF02CpYJQABcRIgQ22QK+eI2CPTKVlBs8AdfnlX6t3wcP5IpniU++RqITRhdtgqWCUAAXESIFpPAu9HWT/gFgljEfQH/+2gD1QI2NJU17nzkt4JAUK+pGFrSHZ3d3htZXgyYXAYGGF09mF22CpYJQABcRIgIOrSSu7QQozDi24vcc3AFUmUMK+BClLv/jrQo04JW/CkYWtIdzJ5anBveDJhcBgYYXTYKlglAAFxEiBYotYal0beov1NgMDe+gLd3JMNwvzwhn+RKHNTH2+CqWF22CpYJQABcRIg+oIE1dEbwZbTNxPbXueU/s4D1IbFQK7pzZTd1dBBuGqkYWtIeWdpdndhNTJhcBgYYXTYKlglAAFxEiDap/0w4R/Db59WrmJQi56EZ+/WWfm6iASWMxC8hyIr3WF22CpYJQABcRIgeRWZ0nup9zmHngf/VSVPRN0m0ebyxNUSGpm7czdOuMikYWtIejY0bGJxYTJhcBgYYXTYKlglAAFxEiD/ninHrfBBmUonY6uJB3ctIoBIOG5Zo6F3b+tM68WBOGF22CpYJQABcRIggyY99z10YocZK95gUzPtCtii42nA7qAnwoQAmrytP8+kYWtHdDQzYnd2MmFwGBlhdNgqWCUAAXESIAIieCiu8Cs0G6U0TZWjyBqA+Gjh3BFFTXKxifw7CRhAYXbYKlglAAFxEiCgffkcZ8aaQiuit6IHv62IEtLht1saSYkkoPOXgPOSvqRha0llMzQ1NHBueDJhcBdhdPZhdtgqWCUAAXESIOJCGt71aa6VpKslviWo/QNB01NHwnVAV/CdxwUWVXfYpGFrR2UyeGU1NTJhcBgZYXTYKlglAAFxEiCl23Mwrg1MRI6YSksQyTwm3TOn2zX4+4U9cFv05TgKBmF22CpYJQABcRIgtA96fbpwwIiknr22D24bdPYWLMDNN1Zlhj1Ty1aaPnKkYWtINmFpYnR1dTJhcBgYYXTYKlglAAFxEiBIegq/W2v31N6JiMcIINPhjN+4vfyTgwz6W45/St95iGF22CpYJQABcRIgl3L0OySbfvESTVlaolw1u3haA/F79iqLbguNuBonEUykYWtHd21lZnlpMmFwGBlhdPZhdtgqWCUAAXESIG8tQvzTQwtFV+yCx0P+s7YZVn+OpaWhHfXd1VwqcM/MpGFrSDdhbnhvNTUyYXAYGGF09mF22CpYJQABcRIgRSvZwEO7/diHAXt8WXVeI4wtRtoL85il15alXqv3k9ikYWtHY3V3bnliMmFwGBlhdNgqWCUAAXESIKytIULnl8RDCtx/wTd9Y23qqf8BLUMlRwnvMKvZ8Kr2YXbYKlglAAFxEiBrQj8ah3fkPKvAPvCkI8nvuSjRztBsrjr3hlIS1ctXuqRha0hhN2lwdGx3MmFwGBhhdNgqWCUAAXESIKdsaJRK9SHrFwrBJZ9VQ84kZ1gDCruRt3PDCFM3hDO5YXbYKlglAAFxEiBqTq2C/0xjDbZeBySVzE1YUOk3b5qDJXFAeJdwg2M5rKRha0hieHNkbDN1MmFwGBhhdPZhdtgqWCUAAXESIH9foEDxA880RKo4GnpwZS3Jx2ghG9ggcR/7EO8a5b7KpGFrSGM2ejR0M2IyYXAYGGF02CpYJQABcRIgMvLSomG/2m6zsh/Fc8WBgnI9WxU/nKF6oU/w64lxV/dhdtgqWCUAAXESILrMvIEYBRlLS7c4QBvLCzNGp/jeKjVoh1FtePYrbbabpGFrSGYzNWt3Y2kyYXAYGGF02CpYJQABcRIg2Afs2JxQfebyXOEY0+337R8VJLpW1DYgK7DoV71RR6xhdtgqWCUAAXESIPzNJbBziuvPSR20Wrw1rdHCKDLZmercnyfv7t0iI9kUpGFrSGhrMnl2ZmkyYXAYGGF02CpYJQABcRIgABZgqLZqdmffiakbBVPOyBEKLnuYt+GNvLE+U1i+F0hhdtgqWCUAAXESIOTEDt2qNzZybvLn+dqjzOStMseJ7ynjiKKdsdJ+tte/YWz2","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRlNmdnc2RxYTJhcABhdPZhdtgqWCUAAXESIHyYCldJ8Ym7n2pTwJrOxdsKGXa4tqo6VBQT/k4onnfXpGFrR3B5eHl1YTJhcBgZYXT2YXbYKlglAAFxEiDJfJp82/6gVs/BsajWh+ptPk5rp9IqP5FjVEkbD8z+k2Fs9g==","omFljKRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNtaTRlM2wzaTV1aTJhcABhdPZhdtgqWCUAAXESIBl0jPNn2hz1tJhsQJRCW3bu7r/ZFPAyZWCiORGgJW3fpGFrR3NibDc1dTJhcBgZYXT2YXbYKlglAAFxEiD3E+BKF/pt4uk5I3IpnECdr0GRlfRR7iKBwKZl5fXIdqRha0d6bzY2ZGEyYXAYGWF09mF22CpYJQABcRIghIOdl9a7zrP6/b82oyeKXKmFRKDHm41Zx3jBnxEyFbmkYWtINGJydnByYTJhcBgYYXT2YXbYKlglAAFxEiAWB+g7NhHdlgHg/lrWoy+aqVx1Jo3wMjs4LyXLw7wc8qRha0dnZjZwNnUyYXAYGWF09mF22CpYJQABcRIgxsM3cPw+Y4L5JQfTBDPIjVknQtg7tv9OYhCg5pNyBsakYWtHc3hwaWE1MmFwGBlhdPZhdtgqWCUAAXESIJ1WnA3om4M0NmZPF+fWUbZ9I+PUxOp+b10FSbfu7zubpGFrR3V6bXdjdDJhcBgZYXT2YXbYKlglAAFxEiAZLbVoPBjK/hsjkLrofzgfTPdHXFIr7z0nih1hB0ShE6Rha0g1NTNzeGF1MmFwGBhhdPZhdtgqWCUAAXESIHuJQO944nNgpcyWClAyMRlFwhGUq12TD2AXdMfi9e0WpGFrR2Q0NGg0dzJhcBgZYXT2YXbYKlglAAFxEiDEWHkKP2izCy+qH/A7e9EdK1bbMvk/KZ8SEDnnj3bwFaRha0dreGc0bHgyYXAYGWF09mF22CpYJQABcRIgJwM/lWhPGox+8iD+8VCs8QJV9gRyJV4S0RqDUPgGjWqkYWtHcnVmNnF0MmFwGBlhdPZhdtgqWCUAAXESIPPlowa77/hQIgQXQ4SdBWRNkXE9Zx8C/z5tj2BXHTI1pGFrSDY0YTJxZzUyYXAYGGF09mF22CpYJQABcRIggJ2qKQi53BHoDoO5v6jhPHIAayjTeWPZU/GzZKpVWxZhbPY="]} +{"root":"bafyreih6mxdy32uvrourdtis7gxd4aimxuojrnypmsafjp3czh6eds7dry","prev":"bafyreiakvygrwj5gdiomxqmyjl3ji7lplc2p4cptxvmv4wnyeft4u6ziea","ops":[{"action":"update","path":"app.bsky.feed.post/3mmqtske3vvh2","cid":"bafyreichg7325a2jlef4k26ce4hwhfuq6w6tmuvuzh5gu3vqmiv7qofx5e","prev":"bafyreih2fcw4oatpk6bhzay6ozo7ujkoapnwf2u5ydmygxom5wntx7zsju"},{"action":"update","path":"site.standard.document/3mmqtske3yih2","cid":"bafyreiazg5gzzcw7e2llcrwerbrtxgyjp5ktdo3ktstskjx6emnejm36lm","prev":"bafyreiakbqwvsbytd3tlwi5n4mw5lg6q4utdgcivyzjm2g3pfeor74q5xm"}],"blocks":["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"]} +{"root":"bafyreicdiduvja576mpghw4dbkbyrpcousyrlawmwgggkcqd2vimc66iua","prev":"bafyreihpb3voag4p63h2sl6ld6rrnqhyjamjgoc5p7ah6b4ohpaochp724","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdzej6k2w","cid":"bafyreie57wbxc3xdq4l5y5mvt56bioggoxuzr3aobplx6zk3qfrqta4bia"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkkdzej6k2w","cid":"bafyreihnyxfg34kkshqplwhf2omzc6yt2gpb6nkinxcg6xkivwzsfi7x5e"}],"blocks":["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"]} +{"root":"bafyreieiued7jhjkljerc4ru7fxjdvbizkzi3rp6tqdejbr3iucemtpnbm","prev":"bafyreidukakm5fnglvfbm7msqxeudp4363tgyzpta4qdzdczmln5kehmdq","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdz66zs2l","cid":"bafyreic3fyl5folynbhs3harfp5qbrslcb2zkmfnhjo5orb277urm6aw64"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdz66zs2l","cid":"bafyreiavcj75kvtm7jjcgdxj4alzmyvzxwhd7dpsckib74vo2eow4kutie"}],"blocks":["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"]} +{"root":"bafyreihktshqdu2t55qcyiqs3w7vapob6wxnh36wglfenm4kyvddttur7a","prev":"bafyreidqsxcqeqmiu55jpk72u23p57wcepzcovfaxogff226ttwdj7xb5y","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke25lw22o","cid":"bafyreif5zwu4k3rfnnz7lyyi2fb642t2wavybaadoroil3qzotj3kgfjna"},{"action":"create","path":"app.bsky.feed.post/3mtkke26agc2o","cid":"bafyreia3sduzmcuafdvbcqvxfvzggtbhzt2rnjj7sjuvlsbv3ivgzgxele"}],"blocks":["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"]} +{"root":"bafyreigbwrvqzfiwi2p4t5xvlqxpc3lpofxlqnpfbn4qwhdvyn3bqfehga","prev":"bafyreidgb5o7ecpwhrthttudq2wm4emfue6kmg6x55v4u4o7pih2l7n35e","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdykj5k2o","cid":"bafyreidik23iurkpuenxrwgxfqkkj3hwyt47apvj2bf7mr2wyy4kemhm6i"},{"action":"create","path":"app.bsky.feed.postgate/3mtkkdykj5k2o","cid":"bafyreieb4wzejddaw25gndxuctv3axmdifsb4qzvtuka2hj2pfem7ie5ye"}],"blocks":["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"]} +{"root":"bafyreihu4wlnedbpk5auh65top2atbjpipnatxljenmswvw4svsc6issxi","prev":"bafyreifjardh7gbmmz7lixwviujg7othqwbx4pc5rfalfpk3zrlqf5f3ba","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke3jj6s2z","cid":"bafyreifoeqfcmog7qpbi545rtynusjrggcp7bdfnitiiqkh2ubmrcfw5na"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke3jj6s2z","cid":"bafyreidl6wam4iggpzozazu5qwejncog43vhddcfdy5hm4umpzcxgk3uxa"}],"blocks":["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"]} +{"root":"bafyreigk4x6qeu2wqzpf6ulwtbnar6g7dydvtthdvl4xxmwqj2dahi2rjq","prev":"bafyreibbfvpukvsaalymku4folk5vrhfpibrqpn6vcwaffw4brryyqn2a4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke33spm2g","cid":"bafyreibxkhn3hgxs7cwqgdlsgag7oh2tqyqc25pmlbyeqdqycjklrtixke"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke33spm2g","cid":"bafyreicaaymuuofppyekgiafaydi7sclfw3klbrtk3vvixjcqsrbf3pzoy"}],"blocks":["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"]} +{"root":"bafyreifquzn3psh3cvieoa6xoktox5dom3vlpy2h3mvqaegyhxqtdhz4ri","prev":"bafyreiftcgtlmabfcmcnruz4r5ppabpd64tet4b3qnkzvgonmljyd6jkvy","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke3p4us2w","cid":"bafyreieoqrgmma5pzw4oymvxc24agmndmwluygkakp4dynqdhmyv54ybti"},{"action":"create","path":"app.bsky.feed.threadgate/3mtkke3p4us2w","cid":"bafyreiazwolkxmne3dbryvo6jrqpyj65626a6vbpc6bt4cozhfx2yik2se"}],"blocks":["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"]} +{"root":"bafyreihiuv3nd27vptdbm5fkfnqfsybrx442dgmf7wrun3kpqp5oghkuj4","prev":"bafyreie5737gdxlw5i64vzichcalba3z2v5n6icifvx5xytvske7mr3hpm","ops":[{"action":"create","path":"app.bsky.actor.profile/self","cid":"bafyreiag6ftthzoh2ri6d56j3qhm7x3od32r6kvlwnia67pmy6csqyk4wa"}],"blocks":["omFlgaRha1gbYXBwLmJza3kuYWN0b3IucHJvZmlsZS9zZWxmYXAAYXT2YXbYKlglAAFxEiAG8Wcz5cfUUeH3ydwOz99uHvUfKquzUA997MeFKGFcsGFs9g=="]} +{"root":"bafyreibyqdriyj6gghozwzzl7c3hlwca7wfkniqc5vumm3noi7h4f64vsm","prev":"bafyreicswmqjejoqhp45xwbpoy4uo2ujrlmfcj6ghjgl6aqvepuwwr3f7a","ops":[{"action":"create","path":"app.bsky.graph.follow/3mtkkdvv6zr2t","cid":"bafyreicfpum6cgcbce2vszx2m4dmtqfngejxvo52ja62qm4sl2jz4azvfe"}],"blocks":["omFlgqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGp4aWZuNHl3MnhhcABhdNgqWCUAAXESILZynyr3LYHYuKpyKrHBJwyT9K95kCb3kRg2iKhqTI01YXbYKlglAAFxEiBE4ILB4IRdAtfzQRmyoYaxNMsW77y3QHFi0SgdoVqDJaRha0pra2J2amNheDJ4YXAYGWF02CpYJQABcRIgxkePctlur5CQnwa3fH2LJukYMKceKi0bt8O1/RHnClxhdtgqWCUAAXESIDLWQbekCpB1QrPK4ENmsE+Y/EkqNW41I2hmjKwk76xMYWzYKlglAAFxEiBFcjNy+5b94Z/50dVKtqfnF5zWafydf5P5kwNBUFLX8w==","omFlgqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrY2VpcGs3MnZhcABhdPZhdtgqWCUAAXESIDKEcUObnLVOx2M4V9WHw8D92m/fo1bXjZguyg1WLhtOpGFrR2hjNmljMmJhcBgcYXTYKlglAAFxEiB9QGN12lVQ7I+Anr4/5sZdhAuhP1M6TdL3+3c7/ZNbe2F22CpYJQABcRIgcxjiXe/Ha5c+RV0RK2j2T8LRvs8wNNaTMw1F9Kw+OT9hbNgqWCUAAXESILnn1hHtMr2KOPk2TCswMbBC4Mjb7TwzAAehBIIAUzfK","omFlgGFs2CpYJQABcRIguUCDMbpPSyfGU8TYj7uZhHA9bxpHSfqEYfoyHQoQbLk=","omFliqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNtdGtrY2t3cHR4MnhhcABhdPZhdtgqWCUAAXESIHPDuvGOV13lFPKSKNAkaUAAd7VpBRgdeVHWSDcJ2GaqpGFrR3I0NGV4MndhcBgcYXT2YXbYKlglAAFxEiD9zVmnoqulyaEkkv9b5uOrP5pZGGeQ4YNYZtzuChN8sqRha0d2Zmc2cTI1YXAYHGF09mF22CpYJQABcRIgBnpGz6LlTdpQzA7JLnGA9pgfUXlg2eOTewCf/YLExE6kYWtHeWd1NjQyc2FwGBxhdPZhdtgqWCUAAXESIGul54cIhUOheDqepGR/VK+LObuodd1Yl5nxawFYfZ2fpGFrSGQ2aWRqMjJiYXAYG2F09mF22CpYJQABcRIgolUbj0gD9bJtwKvSZSN2sGnVywe3fCPAUUxtZEUTKOqkYWtHYXgydngyeGFwGBxhdPZhdtgqWCUAAXESIJgbRslwOHP1ld0rerzSXCqa0em/acHqa0EYk6Q0W2mYpGFrR2dzbXVoMnhhcBgcYXT2YXbYKlglAAFxEiBCZ8Ez776Nw/TQN32S44pwSJ1z2fFO6nEg5Rvf0dusIaRha0dtNjZoaDJqYXAYHGF09mF22CpYJQABcRIgSfJiuwQypc2e9N6doNjSjm+I1T31R/50woMJ6VO6uJWkYWtHcmlhbXgyd2FwGBxhdPZhdtgqWCUAAXESIBv2CCcWeMdbuqZmfgvAltI4StgtBfahL9T94HR7cMaIpGFrR3Z2NnpyMnRhcBgcYXT2YXbYKlglAAFxEiBFfRnhGEERNVlm+mcGycCtMRN6u7pIPagzkl6TngM1KWFs9g=="]} +{"root":"bafyreifkmnozjookpmmlcwmylg5x677un556p5nqb2wvrjvgrwazcrkemm","prev":"bafyreibi22famcfzqcub4v6txkoetj4kidegeazougngoynjliqkufvs7a","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdudswj2p","cid":"bafyreifwcycggs74j2ojc6hwv2ryqziwd2z25jz2hzocfacav3maqxxd5e"}],"blocks":["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"]} +{"root":"bafyreiabiqol7lygu6igxl7ey4hxywh4pyd22nfv6cpqsovayhrfkpo2u4","prev":"bafyreib77bxzvjoikrcwcn57jhezl3odtf5kltplpuwknnai5bfemjk2ki","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke3akbk2p","cid":"bafyreidiecahih7p7enfcacoi2vzfxsc25zi332xnvtetf2dwe65lapxue"}],"blocks":["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"]} +{"root":"bafyreigezf6keploc6stvgikwzye54ir3lvywwutkgyxkip6vqezy2ediy","prev":"bafyreiasaswzbw5yqkkepdzbmg4qghvzynytyack2qixb5gpdhezxkpctm","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkds3rxf2u","cid":"bafyreiaisjzxqaw27i56xevkrp2ag65mvdrq23dgmwqbtru7bri7bozatu"}],"blocks":["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"]} +{"root":"bafyreigjid4rmvxldugpggb46qyldq2aru6tpiptqyufboj6e323eeommi","prev":"bafyreido733oc4e4himud7k2sgvlcht3tscsh4btotnofi5g7kl2jxyllq","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdwalqh2s","cid":"bafyreieb4ho7rd7bizznbt4vlg6qxxtxvdiazze5yhhraxotayuxyocv7e"}],"blocks":["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"]} +{"root":"bafyreicc4c4cgurz6ujafbsxfo3mkxy37knubyre3a5y2ftrq3tnjelieu","prev":"bafyreidbcllvjnrchzdpu5hu7qutg3rxhwujrfsxy4arwztho55pq6br4i","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdza5lb2k","cid":"bafyreialdopzoqsyd5h5r5hl72l5xo6septrznxedh6x6lqxhkz22upj4q"}],"blocks":["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"]} +{"root":"bafyreigjydyztbocseqfqvilj2bblbkyrkzm7zmaugq63cfgcbvh6glmii","prev":"bafyreih6ngrquopcwntezoii7f2w6ttq5hgrktk52asvqwzktb6uq2xhde","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdpttux2l","cid":"bafyreidiwb6czypb7vlui5nndvmmqon66jkwqgsnovlspeptb7xozhkfim"}],"blocks":["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"]} +{"root":"bafyreiatvetzahecogwfsufynehksc23jereyczoqg5gluwqsteoxaofny","prev":"bafyreidyaw4wwswaw5xwhlfr3kyvyhp4zls7npgkdgjjvsqzzjhnm5ncc4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdre62k2n","cid":"bafyreidn32lahs2c5wzf5wdsaclj5zji6oxbq4ktbybthdhvruw5zclpbe"}],"blocks":["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"]} +{"root":"bafyreiaqh36c26wpdtgfgcilv3kuxfkgddxylygy5hptw7f6hwylur75di","prev":"bafyreidcy3qsu432s4al2zqjdspz6bcyqmyhs7copa32ljpecejjdfqk3i","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdsrp5226","cid":"bafyreidhsu2dzf5qwx2ipzilt2asedqjiywu3wik62fi4cfkvheuske4zi"}],"blocks":["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"]} +{"root":"bafyreicwv7foqetdb3ntwokjhil67itroocqk2fnvboj7a3se56g3prdfa","prev":"bafyreifbl4mz7t5cjd2cmny35fnlhjqlkzlwziaab46wizwb5ovciuuln4","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdujdm62u","cid":"bafyreiarcqxi7jw3mvo7s44ygrcjyab45fut3i53vhp6bx5x4hpfl62h4a"}],"blocks":["omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNseXEyaHZ1d2l2MmNhcABhdNgqWCUAAXESIDykNycKi2vp4onRw9Hh0zR519WGNcCntc9x+aa2n1OaYXbYKlglAAFxEiCxwLAXqT491hiweynm3SPplQSbxN8h9HCB6E5GNGu7SGFs2CpYJQABcRIgQBKKzjxdIuM1Ebx0l0VVZXl5U6p6ADVPaa0SSnxG/t4=","omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtMzZ5eDc2dHVjMm1hcABhdNgqWCUAAXESID8j1lUL85GTsyGtY+GPmJ91yczjewaAs+uBDMJFaXoJYXbYKlglAAFxEiBA2EtdKPiXcwsV3L2cdVV4GAudJqq3rLaJUO5FF5bThmFs2CpYJQABcRIgg9HygNiAFEbOl4uET3nswoblEb7K8lzunULc0jXItdI=","omFliaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtNXpoaWs2a2ZnMm9hcABhdNgqWCUAAXESIAc4LQa4ij5fYWEo1gZR6LSJNqn/pt+LeeLi9a97zSDjYXbYKlglAAFxEiBhzEVFwn/9RGC10E3+9cjldw14dqVfYhR/Nt+LqcwtoaRha0tjdTdvYXl1c2oyd2FwFWF02CpYJQABcRIgiuKJadij+9CIHFA3/Fq9uSQN8aCyOKuptLZzoxlP4dVhdtgqWCUAAXESINc1eHgtTe7RVYTjjzsOwt2nmOmQjDm657ciaaIIEFTipGFrS2c2dHJrNzVlaTJoYXAVYXTYKlglAAFxEiDtVx9VGJW7PkM9u+S14tOc2mSqf28WonDeKTO4jS348mF22CpYJQABcRIgx0Tzs1D54Q71GTOAkReIn92gcEOKWJQgO3TJFwq3Yh+kYWtLbWE1c3IyeTZyMmFhcBVhdNgqWCUAAXESIDsT4M4NAhr4ISTdaQQtqjFATJAgWC9mVdlpO5gQzTpZYXbYKlglAAFxEiDBn/ZiIi1sNIiYIqYzjvg2mbDEnAWyDCLqjLZbCRvyZaRha0p6bmt3Z2R4YzI2YXAWYXTYKlglAAFxEiAAkkDkweyM2xccPviZxiJDVEIaXhBUfWxNz6lDWg/YOGF22CpYJQABcRIgxjaEStVDQsdEnO8FhWm/jz9hlOGLl8UiYN3tgUSR9QmkYWtLb25hNGVqaHJlMm1hcBVhdNgqWCUAAXESIHPrdNlrl2mAjulpj8TTuBpbv/IQU2LLEaHV1jJVoF+TYXbYKlglAAFxEiAaaWF6vN6RdanZhXXHCJIwOVk4JqImVkaz9q3EiKbR9qRha0twZmRkczdhbW4yemFwFWF02CpYJQABcRIgmTVKTfSq67WuhTDRmTOzwLUcAaa6aDWbBJDC6b8OXy1hdtgqWCUAAXESINv04rDr5MMCZLYPDcfl4ll4kkaNNYNzJQ8e0t58xyL5pGFrS3IyN3h6bmloMjJsYXAVYXTYKlglAAFxEiAeCYvtLWO6K6AaclpQk1YzsgxdvFLIpVuzcDMDi/guO2F22CpYJQABcRIghemcTquxgK3hPnDgZ43RyGQsjP7yXNrd49BNJrpKLEekYWtLc2Z3dGpuY3Z1MmphcBVhdNgqWCUAAXESIKJEXnbO+2nqB2DM+4oQyfYiph0EwsvcmqCE0ABvT+m+YXbYKlglAAFxEiDFIGCU+Sn2FI33x+fFMxeM8z4JL2p/pw+BsEmxNYPpZGFs2CpYJQABcRIgpxrlt1wzNaCUU8YvHzZzxgddHlThz4/s6u6/7+WcSbQ=","omFlh6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtc2hkY3Rhd3hnMmJhcABhdNgqWCUAAXESIBV40ftJdQhHBNIbXXEOfuWwj0mki9e78Iu52EKS4XPrYXbYKlglAAFxEiAlesb5ajVRvQRlLFNtlRUX+53DeI2uamVo67SW+vHdPKRha0pubHFrZjN4bzJsYXAWYXTYKlglAAFxEiB6GwhxyUjS/HoklZ/9aaRjAAiX8DRCCLbbHSECEpG9TmF22CpYJQABcRIgQLtGvx6zJBYOG5g/7rC73pSl54JxAjEW/XYyuoz3E+ikYWtKeXdldDNseGwyd2FwFmF02CpYJQABcRIgCuh7ihBS3MvzFQZSOOM25/NsSdhntuIrhT5T35GP7UJhdtgqWCUAAXESIHhangYZ9dIbyKjEXkFZTKjHgf+fpliLdAFeqaztC4OCpGFrS3RmY25nNXVoMzJsYXAVYXTYKlglAAFxEiAVQhGq8kMyeR72vxbsv54eA7d1jrjkE0MrjCS2IhqrUWF22CpYJQABcRIgdBPs7KikKAvWGGqEWswZQfCTp2uqXT3qrZGcKRGSrMWkYWtYGmdyYXBoLmZvbGxvdy8zbGN1dGRtajMzcjJyYXAJYXTYKlglAAFxEiBiFMUV3ESbvSp27ThUnzELcAzzvLAxtWEnTcxTvgeG72F22CpYJQABcRIgXtVLS+11+5cKmSxZBMp8s0MMuQWxekMWbGswhOusqCWkYWtLaGdtdGo0Z2ZwMnFhcBgYYXTYKlglAAFxEiCDyA/yBcIptn5d2e60czsFBmUCerrvabN4e5I+BT4XA2F22CpYJQABcRIgBr3TZkHDGbvzm2pn3/IplG44s/Oc3ez6TYmucLqDLrakYWtLcm5keDYzbm5yMjdhcBgYYXTYKlglAAFxEiDtH0kSES+Hw7vdSJsREIWgbjedpdpkV080CTpeIvRzcGF22CpYJQABcRIgvQeJrfAj3gjMrp89q/UdefCriVvmgr0K1OHYlX/WHIthbNgqWCUAAXESIH+VMH8oonm9qEUOrYC11jlQUP+0DN6zXZAQdEVLAaOy","omFlgGFs2CpYJQABcRIgEYifS7ssJgL/cBu02pKxQouTtj+OsnfPhP65Uwhp+rM=","omFliKRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGh4anJlZnY3MjNhcABhdNgqWCUAAXESIAcxZ3DGtNpZvrC0T1WkwjlTgTGE3Seugjp8De2O9WReYXbYKlglAAFxEiAQlcdB1evyBfXD7DGuz1bPjasXbMmFx46QcAr0bdKPkaRha0pqNHhxcXBsbDJpYXAWYXTYKlglAAFxEiCKxiWMnAEvmxVjbmWLmg/2B0h97FjM57EbrzaSK1EQeWF22CpYJQABcRIgsvaV5izPiUoMA04gJ9+MEIoj8V+0z6ZchyMFPcoPrxikYWtJNTJnZG4zczJrYXAXYXTYKlglAAFxEiBIoAaHJic/ozsz+xyXAUDgPygXJ38V4ECCUdTpmtKdHGF22CpYJQABcRIg4Cz8mCFVTMJNXkgO6oXTbj+oEWSW5LTJV/dxFNELqUOkYWtKa2tkNjV1NWwybmFwFmF09mF22CpYJQABcRIg7miULXAqwGsmEi59YiWTZz+Ypz0rEJrOa0gzUymLRQWkYWtHbzVlZDIyM2FwGBlhdNgqWCUAAXESIF3OfrBk9fO2phcmXGWzQmteE71SzjEFZy2AbJZO7A5CYXbYKlglAAFxEiAUSDuu2ht0Z5X2xmYJeNQCz39cZCx8hxS0nCo9qWRb66Rha1gaZ3JhcGguZm9sbG93LzNsY3VzbDQyb3EzMm1hcAlhdNgqWCUAAXESINP7dVz0co4mm7J8VRJ0kfIiVZK7gtwsEXXJwb5fzrRIYXbYKlglAAFxEiD41VyK9KGJeEEWCqfgsh+d7oC26N7NdWG68YLdE+bYeKRha0l0NHl0MnEzMjdhcBgaYXTYKlglAAFxEiB/yxCiYi5H4/Q72wUFqxfal3TVmAHijbr6SROPXhoWbGF22CpYJQABcRIga4qlCz25fMRX1lRINZ4osVbKY8/fut3laTAY343orA+kYWtIYzdsNHhpMjZhcBgbYXTYKlglAAFxEiCjq7IEchWuiBHODUKT2Vc2jtqwvdy/B+W5j1qU7eokz2F22CpYJQABcRIgqXNUbSJWaPFlPg4ZDm3V8Lsj8c+8RgkjV5gVlrZrhGBhbNgqWCUAAXESIOlgj200mL9fD46UwCYiHcq8XzX/ZjLCt2jgP9XWB+a6","omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtrZHVqZG02MnVhcABhdPZhdtgqWCUAAXESIBEULo+m22Vd+XOYNEScADzpaT2ju6nf4N+34d5V+0fgYWz2"]} +{"root":"bafyreibzfwcyxxy4kbjwvyyexdqyqbj6r4unoi3qz77t7qijiivtfuweka","prev":"bafyreiblgesjnettlfhvsfyxg7v27ipq4cx6ycfgid2trlufwyxxzfmtd4","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdwdokc2f","cid":"bafyreied22ltd5zmp4qfwz63rz3tvotfpydb5fuiuaf3kzmiey6geq3nnq"}],"blocks":["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"]} +{"root":"bafyreicgofkwnkapiffoudk6qmeq5zytlarmadujmxjhspppnayhl74e7e","prev":"bafyreih236so3adw4cp7otvqi255wdbq5hilf2fej577mkyx5crbd5ct34","ops":[{"action":"delete","path":"app.bsky.feed.like/3mtkkdxqv772z","prev":"bafyreiab4fc6uwy72xjhkgkn63rkr5rus7akanobpqgjhc4ocf4ai6wyki"}],"blocks":["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"]} +{"root":"bafyreieil2jy23et43kyog47h52lbzvuusxyhje5djhhepsix6snecnaeq","prev":"bafyreig6els3qbno3nqwbpmcri7k7stynbuahlexw26cbidxefboxyhfpu","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdztdls2l","cid":"bafyreia5xuruoloark3yejwgokeuwvh2w7eem7abmyt2aoofp3cuhvyp5y"}],"blocks":["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"]} +{"root":"bafyreicyn5h4ol3dxxnsm4hzd43fi64tmjzupoijesx2rkgfcpzsrc5zdi","prev":"bafyreieliasf7xflsoksxxpwekyzrayy7gv4dmqsuudmk4fy6hyqa3fbru","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkke32rj22q","cid":"bafyreidcq62mjpazmdorc3xfimrzimbqra5gm7sod7m2zu2lmj4bqg2ehu"}],"blocks":["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"]} +{"root":"bafyreiacsjx4ammw77zb6jkywsynoppdv4kutjvhbx2yuqns4x2uqjgpya","prev":"bafyreidbznj4ztmmghnx27jr6bjz2fmimzyr3yaecm6w5hmixtreplwkci","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdpuh7h2q","cid":"bafyreibxw3neglxe5pw72f5t4v5rp5ewpfgstf2gxhjbgcffqhrt3eag3a"}],"blocks":["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"]} +{"root":"bafyreih7ciwf7nkpinqnpmnyff5yqpo4q7y54guiev6v3ivr4hd2inpldu","prev":"bafyreidwv25obceo7y5jmajynjacu537rfvb626ktlczlj4l63gew2gybq","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdqtcsb2f","cid":"bafyreienwsqz4t72agoqoifsd34stulrzp2fbrp64mdy6lxeikjfcy4gny"}],"blocks":["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"]} +{"root":"bafyreiapjb6x3sors7umdk5xusesrpi37l2c55dwpysofi6kgobrkhvtvu","prev":"bafyreigms6nhpi5gy5almvwqig6gjxpnxwkdjweg5e4iwyywgvhf2aidiu","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdrtq5g2q","cid":"bafyreifrwyczvlwvjld2phpptl6e7fl4gjiwinkix4pwvi3zls5t2m5bha"}],"blocks":["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"]} +{"root":"bafyreiabu7eaxjq2bjpfv23ydxikr7hrgts7elvrofsfzbyoo3bw36zgqm","prev":"bafyreigfodncss377x44zfugvgztkuenggfhewavnh3tyfxv3je523yhcq","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdt4arg2c","cid":"bafyreigpms4luhl3p3myajp7arbmcun76sxp2dzjozlsir7qmfw43dnzhi"}],"blocks":["omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtMmVqbXdva2hyMmVhcABhdNgqWCUAAXESIMRFBu0q2WYBlt/CYVtV2dgrz2hzPxNMQrEVF22oHaN6YXbYKlglAAFxEiCdxQWc6Bm+DpLcIjj2dqMQZkXdSQlzVK3kxZLiO7AA02Fs2CpYJQABcRIg+p/s4UbyWz1x2ERX6774VrVf+jIPQO3sHa9PissTN/o=","omFlgGFs2CpYJQABcRIgpGRNwXnLkAYKkeUC69D+Y54wvW3k5Dei47uX98/YWIo=","omFli6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtN3h1eXljZnJ3MmFhcABhdNgqWCUAAXESIJAkRrkFWENo+yFLJFyp68s0PB9BX/qDI2O2WxmRyWkcYXbYKlglAAFxEiCSSu9C1QM1eajZCnvgiDNSra2Q7vOPOUgt+19htDCpM6Rha0tmNmRxYmZ6MmgyYmFwFWF02CpYJQABcRIgH9oD4Zt35B14nijxuYNihjifMdhuTw+Y5Ux+mDz8AolhdtgqWCUAAXESIKtj3txdVjwYr5mN9qcaZhWdAneZ1ERmiOJU02L1VsqVpGFrS2pjbnE1bnk2dTJuYXAVYXTYKlglAAFxEiAsbjO8nZchKVeNWVzvTcNRral4MUb2+9nXanwHYYTMFmF22CpYJQABcRIgMRE6g4xuJZfTfC/1wHF0aNnexbRanxiZp6IZs81z/LOkYWtLcGRiYXc0bWd2MnFhcBVhdNgqWCUAAXESIDeMUF23q8ikEUxLewYlruE+SEI0YAeA2NPCb3nclR45YXbYKlglAAFxEiB2Iw9gTKUtkQorLfMyeCvP9EDjmo/twnnOTuSQ6mYRxqRha0plN3I1N2V4YzJ2YXAWYXTYKlglAAFxEiBzk/cZ4GWY6/ydaXd2b1ibqLU/Cj4MPqngVJRwjQ0ykmF22CpYJQABcRIguRGAlIyzjkjriP5rY/uRgAjohGaEJdkDOPtBZuP0HTWkYWtLcXd3YWNjY210MnVhcBVhdNgqWCUAAXESIOSdRrbI1+6iGJpdRq21C3C4oye8sWckxDJQBg6GSA4oYXbYKlglAAFxEiBqEFm7wCyVt3uIy17sT3Q49N9H3n5rRnvrtr8LAw9sIqRha0tyM3p6YTJtM3IyZGFwFWF02CpYJQABcRIg5NY82wbnWzz9p51ckbAvlsa4u9+pZI88mnIk7CWsNI9hdtgqWCUAAXESIEYb/VoxkrjtyHUdS1NY/QeQuexFe5bHnDl0nL67F81ZpGFrWBpncmFwaC5mb2xsb3cvM2xyZXZhajZxc3gybGFwCWF02CpYJQABcRIgusTb+Cd1/KZhFvI1r/eCGIxoKaYIyW8Fs3u8Zu+qXCdhdtgqWCUAAXESIKcUhjW0P/feYa1ZTnYpzKnbhPWYkERhgBSW7fQ2wZOSpGFrS3RqeTRsaTVybzJ5YXAYGGF02CpYJQABcRIgwXk2/XsKv7cX9A+GBzaD3JTxhuVQZ/u2mlVeHESaFBRhdtgqWCUAAXESIE8g41xO+XugZUUt45lgOD3TlTym07yB4106tyJNGpI4pGFrSnBxN29xdXJ3MnlhcBgZYXTYKlglAAFxEiBNtZPyjhwrkMmSwPKPwVT3ZEiiqzmKyxmebpI9Uzeh+WF22CpYJQABcRIgIdlv2ZTrMwT+JaIKxufvhwZz8eUlUPGazr8p1uFdFRGkYWtMbW9semY1c2RqZTJnYXAXYXTYKlglAAFxEiAZYuTNJqUZ9Kyzm2dGTkK5UPzhu+/kwrLyWvUASq2LymF22CpYJQABcRIg+8Ne/6Fp+W1PP0bqLo23gCkV5iVRmIUb3ITUtpYFI5BhbNgqWCUAAXESIMuNTcRB94ots1WypIK0+yNpSzLDed3SEZ3j0lUyWq34","omFlhaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtcnprNm9iNWczMmthcABhdNgqWCUAAXESIJgEifpHzB9xWzGkBAECqaWlw9QtuUPmSoRLSpca44F5YXbYKlglAAFxEiA2dw2Xx9NB1fqbFPMUr6RlPAR11UQV/LwqSUPcZckFiKRha0tzN3lzNGg1Z2MyeWFwFWF02CpYJQABcRIgnNmeCAiZX5pWG1Ahzmzn3p0Ik7ela33iZG/GQ8CahvhhdtgqWCUAAXESIIgtwu/ax5V/UA5bX4Jq1fQafXUpXjkL67WT+zZFZB9upGFrSmhuNzZwYTRjMmJhcBZhdNgqWCUAAXESIMYzPCc9yGq9T3nQoXvExQjr2GiuDDTa62Tev1feNxKOYXbYKlglAAFxEiBvwq+iJ1FH++EAhM0lXZLalTkTuSyQws7musZusFfHAqRha0t0NHh1cnN3Y2UybmFwFWF02CpYJQABcRIgZt1VTV/gkoCjpmayrJfL8kP90GkWjf4L+aMmROrLjphhdtgqWCUAAXESIFXsWmaKhCDqsmD35BXj6AqJ+n1vwF2vCQYGa+a+/5OfpGFrUnBvc3QvM2x1Z3FxZnFjbWMydGFwDmF02CpYJQABcRIg0TUusqv5JjdbAaet64eHxvmOZmtDFZ93zSqGBqcAtEJhdtgqWCUAAXESILJKfaEGP1bxNmvccTipfOYzHkogCmhmJpd2N+RxqyQTYWzYKlglAAFxEiADcvaOOGE+7XW4L2VeLzxy+DgbR/5gXxlqpbHBffuvVg==","omFlhKRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGZtZGRzM3MzMmZhcABhdNgqWCUAAXESIC9+E906MyMw96e9a7SUJshAIkHeBE/vo+7M/Lr1NEf0YXbYKlglAAFxEiDF0qYn9fk9r6Gq7+LcGKBFzTY5quAFM2F2yMfNdISJ6KRha0poemp3YTRxajJ3YXAWYXTYKlglAAFxEiCvtaD+uUIhbMMzhhpMUdhZuuUjHFFat9kUTJF/Z7IkBmF22CpYJQABcRIgq5LvC+P4a8aFLrot9cDe4wRQH1kKn+lN6I4p3Zxz8uKkYWtKamNqbGlxN3EybWFwFmF02CpYJQABcRIghCOZ+ilt8PGANf8gIkhTnkezO0l/imZR7oRGLRww2eZhdtgqWCUAAXESIDblIMN6ShbiT3jN7sJ+QqzOx/3ruZlHiAPVkHxNCFIppGFrSmtjbnNxMzN1MmdhcBZhdNgqWCUAAXESIC/irLEF7hWluUPwWMcpcIOgIQn2tZoAAeCgS3q39XR3YXbYKlglAAFxEiCOKk0G7mvIobm6FIxC9wJ1i/lKV+Kv+9a2xHijiuaLj2Fs2CpYJQABcRIgF02cuKhtJ83u3eDMicdblD8LPtlThSZY800CiEYM+6E=","omFlgGFs2CpYJQABcRIgkcG5o0lNAizZnFQWTzQcuytsU/YCDi2tfmlwUXBkSZ4=","omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtrYmZxYmJ6Mm5hcABhdNgqWCUAAXESIHHHhpSKKfOJ2Gg77HSzHnQR3KGuBfOo3ELQeCgIqvTrYXbYKlglAAFxEiCAbCyng1AqvffaLNUeC8brQAEJ0m2KbrQ99j4Bp0suh2Fs2CpYJQABcRIgRhOyQjDycIm53XEoYzw1LFQubhaJdKNyurI6NzueD+M=","omFlhqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtrY3RjaDdrMndhcABhdPZhdtgqWCUAAXESIA0DFS2G2fehZvQ7X+Amc0ErPFdNHeNClqDAOTaTu1/XpGFrSGQyZWxpaDJxYXAYGGF09mF22CpYJQABcRIgUdjEbMuqUzXZ/HJPGb8nmoP0ufuzLro8L3KMVurF+CykYWtHdDRhcmcyY2FwGBlhdPZhdtgqWCUAAXESIM9kuLode37ZgCX/BELBUb/0rv0PKXZXJEfwYW3Njbk6pGFrUnBvc3QvM2xxbGdqcXl3NnMyemFwDmF09mF22CpYJQABcRIg3ZlkwcgdHrPQdls0qHSisQDw6iQJRL168wEqH0j65LakYWtLc243YmczYm5rMnBhcBVhdPZhdtgqWCUAAXESICzFff2h8roUt5qANdpufwO7Famc4LkpGlQ2/QrG9F95pGFrSWE1bTNzb3MyZ2FwF2F09mF22CpYJQABcRIg9A0wEoBt+jQZwrxjpRfI0PPrVVmpSH+i4J5ShPJbGZZhbPY="]} +{"root":"bafyreiaehqp23dzwniq4hpvd32qctgrdxime7arkbarypayeykurqx6xwa","prev":"bafyreic6l2w4ngfj4w6r5bx3klcbswjptimco74zrqq4z7nxmkl3tsmy54","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkduitvq2m","cid":"bafyreihsvtfnkxtxyfrpnh2j2qjyamwq6xonjijzgg6enkkstk4aegakoq"}],"blocks":["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"]} +{"root":"bafyreifkkd6yc7m7nac4xt5grwievzwbcuaiylkxv6iu23jw5xhgthtgeq","prev":"bafyreiabdblijx76cvlkwsljkttfydbxz5hfrd3c57lqzfhwwdu3py7ybe","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdveccw2x","cid":"bafyreidect4yzlyjttppf2h5xzz7dhx2nfya5lp5g5oc3kkcsubuyhbzjy"}],"blocks":["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"]} +{"root":"bafyreihzkkik6milzh5pnq7d36evyrjkk27rsk5oh43crrukfp6tynf2pa","prev":"bafyreiefar4yddia74j6agedgzagjtt6ag5krbo4ptkpicxechzr6rdupm","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdwhmqp2r","cid":"bafyreigl73jzsojcjlgtiwyihiihf23uc7bx4tiwmertocda57xt3gxmny"}],"blocks":["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"]} +{"root":"bafyreihu4yplfj6ho6sgaul6slldybhzxc6wgfuuyzgpgtep4fab5nws2e","prev":"bafyreib66nqrfjpotpn4yfneuolv5zfyc3naime6ww7hec4ufwa6xl5tke","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdxbgzz2n","cid":"bafyreih6nb75ftkh64zqttlolj3h43l7siraqcq6s3z7ijp6ei5braf5ie"}],"blocks":["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"]} +{"root":"bafyreiae3u2hvqkfqsfo4jji7iq2lv3uxuibws4h7n7j45ldezugihp6ge","prev":"bafyreibnyewyeciguwoiz3y3mo5gxc52poxcoatvzuy2h5acuct6oc6eiu","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdymu3225","cid":"bafyreifgg6aeetqy7bscjvb5pja5g2b5umfqaxsexbssqns6gy33sqydae"}],"blocks":["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"]} +{"root":"bafyreihh3edy7qhmjxdl3iyjv5poolr2rkdw6xgjbcgvknidd535uv4bpe","prev":"bafyreiffl4m4lmkljor4dr66znobvwtpmn57t7guprfl34ohh4apmpclyy","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdzscmi2x","cid":"bafyreidolakgotxpggtcgzaxinm4mulyiyzt2oqx2k5lz3zjwei27aqq2e"}],"blocks":["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"]} +{"root":"bafyreidekdi4yxhgylgoo7gwqaruhqrayhumtahq45tb2p7hdexedwyhdy","prev":"bafyreicy6wwlxgetha53g3njkgc3vp2zj4lp5w6p7rfjivzl4nuca7nqwq","ops":[{"action":"delete","path":"app.bsky.graph.follow/3lix4h73pj62l","prev":"bafyreidcwebwpfadtk5k3wx3oncfqjxthq3qsx3rg5xkakiqt2wvqxd5tq"}],"blocks":["omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM2xqdWQ3azZqNncydGFwAGF02CpYJQABcRIgQZNwNGtOZtoNlHW35b7wxjSz/fw+7whuI6+/hlVc5yJhdtgqWCUAAXESIDtHwfT3Fv0NWzcRZxY8rMfHkaKfK6YGXrYc2gdyhAIkYWzYKlglAAFxEiCD+VzNLkiRnPkOKa5jmTaw9hplPWJulKsOk37yfZOoSQ==","omFlgGFs2CpYJQABcRIga0qHVFuGYO/Z94yZPcRo+PdqyYOlk/+e5Tu8eVB/ByQ=","omFlhKRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21jaW50ZmthcHAydWFwAGF02CpYJQABcRIgTt4hvWy0JfE294BRH04NylYuTvkKZc4v1OKr7Wy5iqJhdtgqWCUAAXESIJDI+inQ1b4l3+SkhIpfCdhMwYxPSyleWH5yZq4ItlSnpGFrWBpncmFwaC5mb2xsb3cvM2xrbHdqa21uYXQyc2FwCWF02CpYJQABcRIg2vxbv39I6Ce8UXvN3LINV+rIChCcAaoDG2t0pUvR/K5hdtgqWCUAAXESIFVaVzZ7P39p1I/sMRebtEpJ4g7qjLct1sOJCO2A0oy0pGFrS3psdWJpaDZ2dzJ3YXAYGGF02CpYJQABcRIgiFtzGrWOxtDto6q22ihe/PlEfl71sDf9Js0XFK8UsE9hdtgqWCUAAXESINiKxKW4DDtyuuLeO4Dq6TSjml8MZiE9t+h2pjfvTOB8pGFrTG0zaWdpemp4bHIyd2FwF2F02CpYJQABcRIg8YdHD9smPmYwJh9bBlZy9oeNIrflaj8E6j3nFFCqdPRhdtgqWCUAAXESIIHIynkZgroMtIbcdh/isv5TsieiciwSNKFEFz9jfal4YWzYKlglAAFxEiAl2Ii+9j4zg0DTrRyTwDEmEmC13O5smi/BNsus7cWTfw==","omFlhqRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21tbjdhNWo3NGcyc2FwAGF02CpYJQABcRIgURgGqy+3BP89r8AXJolk4oIaVUGA5lUiJJ04cf//ndNhdtgqWCUAAXESIIwQ6fgb2CZOw4H7c3uh2GWZKREQL+kZyWJ2qPbBW9uPpGFrS294c202eWhqbzJ4YXAXYXTYKlglAAFxEiAYCvxpztuOb7YEgvIcPXPKxeNRGBk0eNhIaxkohVrB2GF22CpYJQABcRIgcPppLidVdypq6XENtiyqmp0rCymaNI5dwOPXfX3UsgikYWtLcmV5b2UzY2V6MjRhcBdhdNgqWCUAAXESIJspfw/4qlTsOPwYhS5g9aSufZfp122D9TmjWDidlwOyYXbYKlglAAFxEiAW60XhhPnTIekXXiQwclwD4yh06OeuzmQKWULzKDLRF6Rha0pmeXZ3cGNsNzI0YXAYGGF02CpYJQABcRIgzXPknEA/9xcYHYWv1FL7/x+zfOC0BpLJbBKiAHe/XklhdtgqWCUAAXESIBeZ7YoBf/W5sDh0lnLw9lR5Dj5S1ui09c8FHOXn6fzgpGFrWBlncmFwaC5ibG9jay8zbHZwcW9hbXRwMjJuYXAJYXTYKlglAAFxEiDYZhIDFTgSsulN5vjbvtjVvIqbW9rS2XsafAvp/oCHsWF22CpYJQABcRIgSyuvtwazotzxSkXAHDC2/YId4XMb5PsAuiVUYdZUEnSkYWtMbWJvaWdiYWN0NjJ4YXAWYXTYKlglAAFxEiBv8IyVFIYLK0RsDouKu2sFSLHd7mFchNOpiPFmyxdRy2F22CpYJQABcRIg60nFQAyzz9HfskbUKNKVQk6OQv+4EASrp73n8aO5BZxhbNgqWCUAAXESIMRPPO6V92ufSm2pdQO1S5SO7wUobQ9umNz9D4KsDCsa","omFlhqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNsZTdkamVhNjNpMndhcABhdNgqWCUAAXESIO8hnFl0vYJiWs34Lx8puDFTngNXUxGXma1CmPYf6VMmYXbYKlglAAFxEiD7+39/Hls8rw2jf7lAtcnauLnuXBShbnLVIG56PFlk2qRha0pic254cTVwMjI0YXAYGWF02CpYJQABcRIgwks33VDVjMA336BJvZGdyvA5eLpLX1hrUM2YS6UOlONhdtgqWCUAAXESII6xB6GkemkeqoDft30cvzr9+NiBBmksEIdZ9midHhN6pGFrSnpxdWp0aXVxMmhhcBgZYXTYKlglAAFxEiAH5K4g4rdfEejvjjGW56Yq0eviPRQ9lpp+e7VvTKFSCmF22CpYJQABcRIg0Ea5KfJ9gyB9FpaX+lRW9T5jAFr7rezZ9D9qmsuCpxWkYWtLaG93NHNrM3V4MmZhcBgYYXTYKlglAAFxEiDOPBxxOO9ImHjOS2oRCO5j0B+96tOKWKLDzgpmARjTP2F22CpYJQABcRIgjveNkdRdGyBMnXNcZJP8PiJnYjEI1KAoxrs51hsxeb2kYWtLaXM0dDNhcDdvMmxhcBgYYXTYKlglAAFxEiDlU+YG9IjPsLMKh3EENs/oRTA4qw5+qjS31t8R8FJxiGF22CpYJQABcRIgnIicr/OSG4dBNq5vHjEg+DsAbjUzcIvA+3N2l7SHlMGkYWtIdW1uem1mMnFhcBgbYXTYKlglAAFxEiCBlLf/rjdjwMVrYmv//OQ9gAbVi8p5VvNzxpCLdJCl82F22CpYJQABcRIg3jVfYG1yNNm/zeWeVnTZJm7cdq8KAfflYAFFY8TibgRhbNgqWCUAAXESIGka2n+qpVbDWjhrnJ/kcDOpjxTVjerk417CiaphBLZG","omFlhqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNsaXdsNG1zZnc3MjNhcABhdNgqWCUAAXESIDLbcOw58EbuvXiN7vYCiob/4scYFwL1HR7a1PN6QoiSYXbYKlglAAFxEiCLOSrTTEuVhimaWK8hK9fH5Yc6LtLOaC0Pzz5gFzopgaRha0p4ZnFla3NjdTJ6YXAYGWF02CpYJQABcRIgqlq+Cl+qkrxM2zH4VtZBIQOFnpdXtBvXRwDbGuBE70hhdtgqWCUAAXESIBoghhdBNp5SZGef29H65sMBKZ+jT8h8ktInk51sBWrZpGFrS2phYmZudXBmajJhYXAYGGF02CpYJQABcRIg3OriDfJWRg9tq/ugTt1SxiYIjZ454pEtw0O7D89xjvFhdtgqWCUAAXESIGjkA5BoET7WkwRk6tOA6OkgzK6ZYhyt0FHoxQp28YoQpGFrSmcyZzNvdGQzMmZhcBgZYXTYKlglAAFxEiAHZlDz2v5w+U6ooYnt9dOXDmJHhkBHu6DMIjyvPmstYWF22CpYJQABcRIgelS4NhEu2ujHrzmurRhhHO+t1BYELElmWxFtLWfAtBCkYWtLa2V0bTZvMm9jMnJhcBgYYXTYKlglAAFxEiDWmQDDFrrT8JfUO3oHDYEK4UTtx7W0Z69wC1LZlAw/fWF22CpYJQABcRIguo/DcL8mSAFfDelEl+YPpDHSBTekcW2oD4GVmesK3H6kYWtKaGQya3l2dG0ydGFwGBlhdNgqWCUAAXESIPiFEiMgMcF2dxUho7qRrqgOxEr+3OO/85li4+EMqW8SYXbYKlglAAFxEiD8RE3DUNQkTGJbjSsEwNOkKRCSGj1i1mxKiYIB9I97qWFs2CpYJQABcRIgnkZhfw7fvmYOgzE3HvGayMiQst6ATxx1S/ygpapgBlk=","omFlgGFs2CpYJQABcRIgAvVjYyuc9MSn7NO3np+xMddALooCsXEM4B0rldnCvKQ=","omFlhaRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNsaXdsNHl5aHo2MmVhcABhdPZhdtgqWCUAAXESIEjk01ynZHuRpX83YUW1+9Pc/Q5wTxpCTMj+Ash8A7fgpGFrSW1kNXJoZ3kyM2FwGBphdPZhdtgqWCUAAXESILa6IBxKqEi+bw+o4XJeugixQC8v7T+R4pGLd/CGYIbbpGFrSW9ieWZsMzUyaGFwGBphdPZhdtgqWCUAAXESIIdLu1HOosO2iqIo8QD6oC696MS6UDWZn4wN3fhU9afWpGFrSGM3bXJlaTJsYXAYG2F09mF22CpYJQABcRIgBeAq4W77LSO/mdk1uyeXIPktcp87rk4mQpGaH/MH7hqkYWtKeGZxNDUzemYyc2FwGBlhdPZhdtgqWCUAAXESIK9TXtxgLkURQ768KNxBlxDmZo7iONgFwd3cN+CKVt59YWz2"]} +{"root":"bafyreiaz2u72rjyhhcbbgnj66vc64zwe5wgvr4huj3ju32wcy7z7dhmjny","prev":"bafyreihh4madfoczeavgp5sfc3yuo4iwtbhfznvgyfkd7te6n7vil6jjk4","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke3xkg22e","cid":"bafyreicdbiespxad6m7owtbqlrajs6fdiuvpxxhq3kb4ivgrltx7iofsye"}],"blocks":["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"]} +{"root":"bafyreicofjx2gmjuobax32dyf7m6yknfn2o2exffp4j2ztrzbqn2nujojy","prev":"bafyreia2qwhjlne6qmlziifptpfw3fh4lkcwezeovmfqq3yw4oo3w3fgka","ops":[{"action":"create","path":"app.bsky.feed.repost/3mtkke577xm27","cid":"bafyreia2boqoy7x4wbq42en7pjtkuk4hd3ocyb2jui7jchs4uf77evvqdu"}],"blocks":["omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21jYXllYW1zaGIyYmFwAGF02CpYJQABcRIgp+4PQp3cnGa7TnaF3diI0g2xtakSd5TN2QsuScyVNYFhdtgqWCUAAXESIEgsYCcxtLIokBKFsISkXAtHA/4Q1NWnxWEBszLgxJiuYWzYKlglAAFxEiAbQJhzhPw9zWuU2quvTbdZ+SVay9LIXuEk4ModcI1mjg==","omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21nc2g3dzRoemsyZWFwAGF02CpYJQABcRIgIunObNkGkU+pXPZUFxfMeRQuHX7HI07mNe5m22lXnIBhdtgqWCUAAXESIOeNxvzucHDJBOC6MG5nyhy4SuN1+pKijm35qOK42UBWYWzYKlglAAFxEiBNCuYDZsbAVnuphBMeWWuSAE3mb5cBBcupscdAdcinrg==","omFlhaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21pczNzNXA1cXYybGFwAGF02CpYJQABcRIgL/KJZPXSBX3Ye2Hd6hq2RpioHL1og/5td8qtGWmM7dFhdtgqWCUAAXESIK3IlpWABTD9KgNjeZXzadBKs+dKIzewIc5ONDOvJEk8pGFrS25ubnl5bnBzaTJmYXAXYXTYKlglAAFxEiBVmXOkq0JfwOlbTc531hn5Nmzpfbm7Igx76QZLdzDI8WF22CpYJQABcRIgRRcqlpG6HZBZOaWHhFuRlrf5FLPE9lxb/1xXkUZDip6kYWtLc3ZvdnNvY3lvMmlhcBdhdNgqWCUAAXESIEMSAyX+Qm1eMbYdMnXotZXwLcmiytbT4g60BVfY6XWEYXbYKlglAAFxEiDTypMuxqkE2y2lsqK0agcTCGQq3afA21B+gOuo3f4hdKRha0t0YW9ycDVqNTUyaGFwF2F02CpYJQABcRIgIkMlXTVvXi9CCcZGRfpNO/zJ1JcsF8hazZEmMam515NhdtgqWCUAAXESIP9eEOkDh18lXywinVtwvSu3goQflc6W/0iPXBJqeP5ipGFrWBpncmFwaC5mb2xsb3cvM21rM3Z1eGxqZDUyZmFwCWF02CpYJQABcRIguQzWmLIdEkmTmNOgNeClqC3xJT6WWQAvtg+quC3VbLJhdtgqWCUAAXESIP8k6Iw6sAt+Jaj8ba3pzyQHOv0p99o9t/BSGPzlSXumYWzYKlglAAFxEiBDn3Sr19H5WhitYbF2b/0on5dQJaMVpUpxc8enOzoOHw==","omFlgGFs2CpYJQABcRIgl4VAZfMUgKti77+kcHqZgidzFQSJgPtp6VUT/0aJ2VE=","omFlhaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210a2tkaTczNm4yZWFwAGF02CpYJQABcRIg9vRZ21ctW7zVQfVVe3cv8ZPZoATsPthSzqcvZ165C+RhdtgqWCUAAXESIGLNLqzV9aWNZzjKT3v0kxIifuaID8skmC5AqCZ1xbeLpGFrWBpncmFwaC5mb2xsb3cvM2tkZm0zN3l0ZmkyZ2FwCWF02CpYJQABcRIgXLcP7bDUZQ5rj5d5d1AIDrjMcwrv4T7L86bZBkPa5zlhdtgqWCUAAXESIAOi7Gd732M/YZ8vLc0N4T7s3eh3Ko1cLgg3cJXt18EXpGFrTGxqcjJkM2p4M3cydWFwF2F02CpYJQABcRIgZW9YMWZHH6CkwmJGdxX+f6RNSC07l8MZnTDD/kgiTzxhdtgqWCUAAXESIAHPNbVc1bfJ4TMiAe2ak0C9uiraNnX2FMRLyxpXbz8qpGFrTG02aWdvcW43YXQyZ2FwF2F02CpYJQABcRIgAv+7PH6fBrrQU7G4F+zuPLx4NUxDS/OUZNr4Zbv+UathdtgqWCUAAXESIEQ7JGdOT26zD7uOxnDlSP5eo1r2nleX2rsPDxWY8KSdpGFrS2FhYmh1NWFocjJ0YXAYGGF02CpYJQABcRIgP1onf7EmAd8cZEeo2lJdJ0VI8ssFxOLNFBGKfMWCpf5hdtgqWCUAAXESIL6DpgiX5+4ubXZCLM/NG4vYRJHaZNH0EFaSHboe8WJiYWzYKlglAAFxEiDHseEsPcqPsf08eZcGKhhZ5LGUYeWSMhIvdDKytDztEA==","omFlgaRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNrYWJmdHEzaGM1MmVhcABhdNgqWCUAAXESIP3vxIl3q5oOKqUtlp7H2yL4aBPtPEux8JpwjuaDe8vDYXbYKlglAAFxEiB+XL8b9WVwjhSe+yuu3bdLS6RtfQiStBBtVYrrzGWTDWFs2CpYJQABcRIgGgDsgGzDovZcZkD7fh5RNZ5rBD4F4bgx86yGblNOFFY=","omFlgqRha1gjYXBwLmJza3kuZ3JhcGguZm9sbG93LzNrYWJkdHMyZ29uMmNhcABhdNgqWCUAAXESILd/PWHz3umdl0l/ahPsyn4V8X0s0I9dYjNm29oFdh+LYXbYKlglAAFxEiBxVV/VKqPUg8zKHpoht2ufYWm0X7Ek+yZWoTG2zseyKqRha0lmamNueGhzMnBhcBgaYXTYKlglAAFxEiDBDh8YsKb9yNviKWVLnGUXiFuiX+l3eu3zU/iOxYE0z2F22CpYJQABcRIg4HSeHVNpE/aS5+mYbGyzPCjzk2YSyy0IWgsnI79koFJhbNgqWCUAAXESIPiT3HuXelSHyQkhNPwqGTqx/KfbAVdJfqoXRx335bF5","omFlhqRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210a2tkcmwzcnoyY2FwAGF09mF22CpYJQABcRIgVgAmWkobOKpggArejvnaci+G5Xoh8X3eiTC8g4sJuuykYWtHeG1yMjcyc2FwGBthdPZhdtgqWCUAAXESIExmHG1vkDo9mjQvNRnz5fuXcpJSC1ggQhvxtS6c1fPNpGFrR3ozbTJ2MmdhcBgbYXT2YXbYKlglAAFxEiDVT7K+b83SELAl/9BzohRH7G6YJVIr2T3T76yCP973k6Rha0hlNTc3eG0yN2FwGBphdPZhdtgqWCUAAXESIBoLoOx+/LBhzRG/emaqK4ce3CwHSaI+kR5coX/yVrAdpGFrWBpncmFwaC5mb2xsb3cvM2thYmRvcHV6YmEya2FwCWF09mF22CpYJQABcRIguEZRwOVIH7hFj96FX7Vq+ZxMBsOQsnRFIAnLNX3BtO+kYWtIdGhzaWdnMjdhcBgbYXT2YXbYKlglAAFxEiCa4q2T2OswHMSekEHRGG61n8f6ooEvwgKY+GdyONz90mFs9g=="]} +{"root":"bafyreiczruen3ecbxbhz4m2wsrpbnaxltat6mvsa4lwfgmqqtc5gcmtuxy","prev":"bafyreig5q24qrqcnvsdtyl7sheujobenyghjyaqu2a36o5viiqpavc32qa","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdqrzn22o","cid":"bafyreib6vu6ly6kqcqh6pbozbk5rtgf6bufq6cn73k53vexqzyyssnzsmq"}],"blocks":["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"]} +{"root":"bafyreiafytt3stu2sx6sgltjzrvfwr2abfc2qxsaqceya3zzjrt222m4ba","prev":"bafyreifjsga6pzhuxwmwuful76iwawnyvdarqmfwt4vrewm2hcu6mz3cty","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkds3j4t2h","cid":"bafyreifyog7sdaguei522nbqs6izgvlznnx7kklaivk6h65p4u3l7h6d6m"}],"blocks":["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"]} +{"root":"bafyreihvcjxhzh2jlh45qcg3msxv6vgtxgo4u4briljlu7uscjzaorlf6m","prev":"bafyreih6pow4kng3qygip6zxld3qfskaxbd7aj2x3azfimnboi5c2eham4","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdtjd622l","cid":"bafyreihpvcegrwylwsphudvwaczu4hmwvgyxtehh5hk73swlmbu2dmra7y"}],"blocks":["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"]} +{"root":"bafyreicq6odbedejz4fwfcyqlrrll56w7rz5v7p7lgyisccwi6vwfn64ba","prev":"bafyreicxiyd4rdfwnjoxet264r7gyshcutv3kbc5mdd65twumes5haukhi","ops":[{"action":"create","path":"app.bsky.feed.repost/3mtkkdubk4v2n","cid":"bafyreibvxm3jrzblthmjyepqctnfimlumchcm3jnl5amngsek6egnsehkm"}],"blocks":["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"]} +{"root":"bafyreiemeqalydbronmehydmyjsf6g7chqoix5h7xhgq6ldmsbpmudzjlu","prev":"bafyreigd7y5jfa66xr5txtdc5wcrkwgayyxomlqvmviesuiainmzfj3yoy","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdw5bir2l","cid":"bafyreidfbaz37uoztsgrt7d36opgjd6m2fss7rxok7jl7hhcydqujtp7vi"}],"blocks":["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"]} +{"root":"bafyreiachxqidkerbboe3ggbwvri76xjiy3gqw6l7lj64ujliewltufsly","prev":"bafyreidcwbndk7qtszhcvyfag425pvnew4dneo3rd4r6nk2p2fo53esfha","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdxeif62i","cid":"bafyreiesysqhtwngtsv6ut7lance573x2npvvirhsgaju664jzf5rqz7oy"}],"blocks":["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"]} +{"root":"bafyreiglldedbi3y5li6lvlrpe7wsbzovcq34trvlexxbluzyimq4cdq5m","prev":"bafyreifmrl5y3sjkccgkkykassz77psurgfjnlwi6o4oop6zyjb2e2uozi","ops":[{"action":"create","path":"app.bsky.graph.follow/3mtkkdy5sm627","cid":"bafyreihp7gwy4pqy5gxzubrz556tijhdgxjd5f36p5kagjo47zi4ptfboi"}],"blocks":["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"]} +{"root":"bafyreicpu3t5bfel6c2cogqoiosgq6euupyj5qrpsy6lmeb5c7bl47bbaq","prev":"bafyreifsldubz335sfbnc35vod6izzi3celrlspyylrj3omrddo3rzdbqe","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdzlfvt2c","cid":"bafyreih7ghzm22hqgq4wrxhvn643e7qjaq54zg2zzi2wge4voa2e5oiplm"}],"blocks":["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"]} +{"root":"bafyreiajgr272adzgxtriowi6falgrbahp3klhf4ushk666kfxqt26dymy","prev":"bafyreierzaydlk77yezbp6ikvvxzxolh3olj3gm7uhfwhwo22ewmuwye6i","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke2sppo2l","cid":"bafyreibkm7uslewmtxp5vv5sm5ch2ps3zqeskeb6lo7b2sm3mx7nmzbgaa"}],"blocks":["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"]} +{"root":"bafyreifw7w6ptw7og6fd5t4fnrlcb2252lewbm2d6njwfuzf7c63lrgfh4","prev":"bafyreid6vzcxjxfbs7m7enfvmrozzr3jr7oeckrr636rosgiflybto3fdu","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke3xgmw25","cid":"bafyreia27djirilwe55m4yie5izbvpberkywbcfzyfcoyq3ve3s25nporu"}],"blocks":["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"]} +{"root":"bafyreiagxnuufr6l2ehojpmcx4wb5v5zl2takeotplb4idzr2o55oexxca","prev":"bafyreicnx7evxtabdr64afplrvpai3j4nl5ao7rydyz4ogevat7fq6tlam","ops":[{"action":"delete","path":"app.bsky.graph.follow/3mt6b2jupoc7l","prev":"bafyreif7vp27uvk7b7wxnayk4au4yaxg2bagmpuu2fdxhb2fm5fzgpnxf4"}],"blocks":["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"]} +{"root":"bafyreifcrgukee5pt5dcei732ghg4lftnaewbb46jlc5kqdqd46rwqqdlm","prev":"bafyreihakvk7at2ahqwzjuflwzotrkysmektsjvfnligswcewwavm6cwme","ops":[{"action":"create","path":"app.bsky.feed.repost/3mtkkdrts4d2k","cid":"bafyreiczi2rndbsfibvtivbtw6cssg33giwwcjxkoemy4venlz6szdlmii"}],"blocks":["omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM2xzYzJoNmNsazQyeWFwAGF02CpYJQABcRIg59zJLhzeIRSSJFfzoi5+b6t/iyAIqFYc/2XWqUvprIJhdtgqWCUAAXESIEZHsIsZUVStbnXGtDQEneAlGttA3sF0AioL2z2cVGM8YWzYKlglAAFxEiCNtc0Vu/zrWVWTVjVE92GQLgwtxlICGZLkOdlpLGgkTg==","omFlgGFs2CpYJQABcRIg6JDKudZeR9+7hhMjhvjFPOLwZjygj71piQXouNQdi+0=","omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21ndDZranlybmYyM2FwAGF02CpYJQABcRIgBN4rEpotcU1pN87FGZB+MZH0T/7c/aL9Tmgp4RHReOphdtgqWCUAAXESIM/J8n+4dnec4wwFBTe48jVMihvfxajzN6l9LA2CUYGnYWzYKlglAAFxEiDwgtAb2nk8TzdrDQ+NyohBdnMvZ5UcLsI0TCuh431Crg==","omFlgqRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21uZHFnc21hZ2wyaWFwAGF02CpYJQABcRIg+gtsVwT+jLSZRtOb3XqgeVT46QoDfWauyRouYbE8t/1hdtgqWCUAAXESIPNfo/oQuDVyJ7o3Gk0nod8JpcAvf+kQ3VSUQGGcoWQepGFrS3MzaWNtaGY1cDIzYXAXYXTYKlglAAFxEiCuQn12dk+i8FKbR8MggyTVrYiNoFBaMunsHhMfLT5S2GF22CpYJQABcRIgYzDep0ca+XYeMRL0BmZaTGZauHrGlW5yLOHLoGTRFnphbNgqWCUAAXESIKMq4+LPO+aZ1ldgKkfL6hVLTgGLvNKsJxwXps5gPYBh","omFlhKRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21zZTVrdnFrMmEybGFwAGF02CpYJQABcRIg9LyoAb6J9NEsWsSR4qu729mmqIchbiD30d9aTGP9EZphdtgqWCUAAXESINWDWhq1eOyaqJ9/V6nh0FxgDz6lUF7Z3qXELF4dTDm8pGFrSnk3NzQ2aHllMnBhcBgYYXTYKlglAAFxEiBf4zxmqjACG0uq41KRHrSZN15QClrgEiWg2PKPZpNEk2F22CpYJQABcRIgw/jSv/MQf0jJmwMqiQCp4Wy8hkFwpLHnxOMEYGyboBikYWtYGmdyYXBoLmZvbGxvdy8zbHdkemxnZG5mMjI1YXAJYXTYKlglAAFxEiDHDpsenrnYgPiLsyNtga6Cv4DEHFGjiaT54B9fEentFmF22CpYJQABcRIg8VLmK+hVuPyTIV0rvswOIw59lm8T+BO2L6QehXh6e2OkYWtMbTV3amFzeXZ6YzI1YXAXYXTYKlglAAFxEiCQd/3wNBBfHaiWNGs3fm3P5U3S0I7HNBz54IzZ/cOtpGF22CpYJQABcRIgdpQ7qbSvlYjn0NgzZNg899Cd2dtGzWtJPKZqTAyoRSlhbNgqWCUAAXESIDw2+FgEZRujStZyHH0DfU2qMs0KAmj1SQf11s21A4VU","omFlhKRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210Z3dveW90a24yZGFwAGF02CpYJQABcRIglYlPbnKFqS/kk8Kxe1hiBLq0Z5ntY98Xg5DATC79f/5hdtgqWCUAAXESIFmaLVGJf6VeLQXkg95+Mr/1eHmiBMBYv0g1fG0/hRxxpGFrWBlncmFwaC5ibG9jay8zbGNpemNkcXgzazJyYXAJYXTYKlglAAFxEiBNYpK0FLAkVP10CeTzRyzplXuk/WVIOrpjag1qvbmh/GF22CpYJQABcRIgdhRJzMP7vXyEABzf+ABuaAPiNJ0HqkrVQt0UpieIB/GkYWtUZm9sbG93LzNsNnIzYjJ6ZzRwMmZhcA9hdNgqWCUAAXESID7efy9qjLKafF2XmEsjboA1e9eM1gqlS3JTA8htjKYxYXbYKlglAAFxEiCZ8T+8361YC4RWbBi4/J6D49ZzPpERQJ5910i9J4jOTqRha0thM3F2NDRtZTUybWFwGBhhdNgqWCUAAXESINNbQ77NM1BH37JiL485kPuFxeDXi7LLgu1F2MixFUE8YXbYKlglAAFxEiD7hRUWBRJFtrKbYvaLaNFzgpRzaB9WsTET8HyXCx0u9mFs2CpYJQABcRIgS4Au7STkHOgZoe8JPUhM9EZeeF+ZqJuLNyr5KI3PzyE=","omFlgqRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210aDN3b3YyeXMya2FwAGF02CpYJQABcRIgwblu1hSB1AKWmjMwvRzuBiA8Z9NkZ+ZkUOBjQaIGF+BhdtgqWCUAAXESIPopQpJ7M3fQPJT48Zkmxu1/dQbpLpbuHyl3gs5CMh+zpGFrWBlncmFwaC5ibG9jay8zbDZpdHpwa2FrYzJvYXAJYXTYKlglAAFxEiDPleIAiqeoCnZYLVXwIL6OaK8kq11Kdckmy5isu8RCyGF22CpYJQABcRIgQj8ajjg7FhdZYBJKBxS22c6cpn0iiPF9W6NPVRelmwRhbNgqWCUAAXESIOpua3Nn/4Re8UhJjOuyDd/O7ZRTDTkyBQqAti74+WoH","omFlhKRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210aDQ2dmJuNTMyM2FwAGF02CpYJQABcRIgrHBpdgPhWRjJ1SKjjlFC/rM1k3RC87CpnqlXpcDd3yZhdtgqWCUAAXESICmHXCFyrs6QAYPDMlkAWsGxsAyCgmC6DsEnmVkzpkpppGFrSTdqb2ljamsyeGFwGBlhdNgqWCUAAXESIMg98H0oJXVl4kj7OrCHj8pqmvvWQ/UfWsRitB2LZkwOYXbYKlglAAFxEiCGpty94qV1uYu1XhdEfLs2FxeoOQ50BNIVo8p77o7nS6Rha0lmNWVlaGZtMm1hcBgZYXTYKlglAAFxEiCF9uSVF5honft8WQBwJiKRE78cAG7Ho0arAox5bR8y+2F22CpYJQABcRIghQBCNXKba+LFStvRYxOpvN6U93r4G6aGDZfpJcozxDekYWtJcmQ3aDV2ajJtYXAYGWF02CpYJQABcRIgv9NMgWoEqUDGtFm0hEr2a3FrSJK+U4Rp8EmyYNJwsfdhdtgqWCUAAXESIKZ7t+BstPsrO5k0k+mBd58R/gxyMt62cuCsuVCBPSG6YWzYKlglAAFxEiAgZBzqG/Z6wYPLXgzhWoxPE0HDxsuvKztijqvGcA1Bog==","omFliqRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210aHJtdnpkdXcydGFwAGF02CpYJQABcRIgR7uKTiFduOuP17xHotuzbYnwzVva8D6QCwwr5K+nrGNhdtgqWCUAAXESIP7ZZw/oInpTUunFkJ9wKoyVkoYg5X7JGu2A9HRXwo+cpGFrSXpyc2R3M3gybWFwGBlhdNgqWCUAAXESIGc7/2PsvZS/G9E+eEtcHBd+Y1sEFH9+NSvOLYTR/s1sYXbYKlglAAFxEiAADMsVheETh18C2XOsjNK/PT9OD5d9fN/UaREXaf1ICqRha0h4em54ZHAyd2FwGBphdPZhdtgqWCUAAXESIKl3nEMe9KaUjIZpWzN7EtZJOsE5wC1IXyqr2/iL1cOhpGFrSmkyMjVjZGozMnhhcBgYYXTYKlglAAFxEiCD012VK/jF2ezgFM1SYxRdrkpIyIGIFS7gtXZA/6jIV2F22CpYJQABcRIgbvnojvZLmBR2BISaVRMH5DI28w5ggAAln75JN6jzxYCkYWtJZ3B6Nnh4ZTI0YXAYGWF02CpYJQABcRIgKljOKRgwCwcRhe708EYpkFwwoJZDYadX+Bo+vrwn94lhdtgqWCUAAXESIAnKN1aNn8LD/SD6wighVwi7rutfuFMTeyIBFrwVe9YrpGFrWBh0aHJlYWRnYXRlLzNsYWJ5ZXlzdmk3MmxhcA5hdNgqWCUAAXESIFLEk+t8zLztAYXnCMoZzkpmuugE/N7XfZQ4kpkY8jzEYXbYKlglAAFxEiAHwHfWsC1o4E0OlDpolh+EB6VvXtJ7s3WLJrzmsk0z7KRha1gZZ3JhcGguYmxvY2svM2tldDdhYnozbzMydWFwCWF02CpYJQABcRIgvaAd69gyS0mpCQVZYThFB2YY/obz9qRKOZ284mKGDmFhdtgqWCUAAXESIMnGtaJqYL8RgUmx4fEj/CnNW+opdaBkF42m7y7gqnd8pGFrS3JyZG5jM2VrMjJuYXAXYXT2YXbYKlglAAFxEiDLWPUv75sAkwW/6qDOCeKT17gNVEtscw+desleUc7OnaRha0xsNmZwZmYzeWczMnFhcBZhdPZhdtgqWCUAAXESID3SjYIJSXlhlp5s0BBtiq3r9w5bMQkLGcnR/MbhiOUzpGFrSmlsdGtuMzVmMnNhcBgYYXT2YXbYKlglAAFxEiAHisnVe0UmPpDc1wBk7ezuAZXpN1iB1dyUsi7tVlMl4WFs9g==","omFlh6Rha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM210aWdzcTZkYWEycGFwAGF09mF22CpYJQABcRIg/kyGpT9vhD/hzDostOT96B21jdb4nwy8DCFRAzb1kDykYWtIdGhxcDczMm1hcBgaYXT2YXbYKlglAAFxEiCCXzWpwg7EScvVUsqvyxEbfiz0eTeR4OIokyAH6FP65KRha0pqb2ZwN2xzdjJuYXAYGGF09mF22CpYJQABcRIgrL2fskKcNrYe6REkD6FUyth4KnoT/xCZsbVUEsZGVFekYWtKa2tkMmFnN3oyeGFwGBhhdPZhdtgqWCUAAXESIItXVz13whrSz7Jp1Ty/UdFrfuj59v2/bYRZOOd6Dx6IpGFrR3J0czRkMmthcBgbYXT2YXbYKlglAAFxEiBZRqLRhkVAazRUM7eFKRt7Mi1hJupxGY5UjV59LI1sQqRha1gYdGhyZWFkZ2F0ZS8za2t4NndlazNxbzJ1YXAOYXT2YXbYKlglAAFxEiCtXmBCo7mNmHmYjCgFqJl0JtAsvG6afjnjA0ftby067qRha0tteGZuYXpyaWsyc2FwGBthdPZhdtgqWCUAAXESII12cT7SFx+DBgLV+9TpxH+Gv1zDfyRwoGOBr28QQBT4YWz2"]} +{"root":"bafyreigx4ahfn5d6336og4cvvo5vhj6sxltyaf5uattqsufu7nae7huhuy","prev":"bafyreigjqdmomimicfozlxobf2n3i4xe4fxcwsgdish5n2xfo54fpb57cu","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdu6but2l","cid":"bafyreieblmzrt5bpuyg6rilfwlj5pc5edw4wtuh72ug4m4j5read4levim"}],"blocks":["omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNsYm5xbWJoMzVuMmFhcABhdNgqWCUAAXESICWIV5mDmgf5yeXO9ytF0clqHDvn6IGtjQC7zM0QWIixYXbYKlglAAFxEiBvDn0CaIaZV2pe1ZbOp63lA67Uh0BoMllmuQqQo6u3wWFs2CpYJQABcRIgdar1ODMWaNo9eCWnI1/274aZjlh92aEQwnWbnxf7ivQ=","omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNsampnYndxa3J6MnhhcABhdNgqWCUAAXESIIJ9YsxA4w/pjH0/J2fqROmoG3YfK7tE4A3PFDf0nRfxYXbYKlglAAFxEiBo2Lq8d3UKQXcQuu84jqhFjMQb3C0R3r3Ldb10WLeDL2Fs2CpYJQABcRIgR7NVkNHLHmKrlzT9HJcqpp3CdIGDClBBf5mUZCW+OcM=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNseTdkemszdmh0MjdhcABhdNgqWCUAAXESIBchGW/gnEzmgopkcp1oY3Rjn6geJEMXFTrXAVPLOzFJYXbYKlglAAFxEiCYspFtWQnY3v329uoJ53hTgNal5GKi4cxT6jZcKD1JSqRha1Jwb3N0LzNsdGR0NmFsdzJjMndhcA5hdNgqWCUAAXESIE8qj+1ZpfPeiRlfPh6VaBzPy6rtuvCWZpkU/NbyTJqcYXbYKlglAAFxEiAhkJq7LOwtmM04M1WpfY+0RrFllo6j+w3PdUAeYkkex2Fs2CpYJQABcRIgCJ9KiaOC7TbCH4yaKRJEw9gcU7/DhN8OrmSGtQ4m8AY=","omFlg6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtZzdjY3BtdXYyMmphcABhdNgqWCUAAXESIJtJWCA/IMrO2ffHnCQEziOWoHfv2bS7A8VL/4d2OPRFYXbYKlglAAFxEiDUrfTTimijZIX80mtm5t06/H5yx7VAWqdjsQHAluCu3qRha0toeXg3c3Zjcm0yNmFwFWF02CpYJQABcRIgtK3PaLRtFJCyTRzsIOeMIfowGLzxkKgC3f/cmPynxpZhdtgqWCUAAXESIHEjOz9BM+dXizHZtlag2VYFySNQbAsmGnQw+Kz/IrbipGFrUnBvc3QvM2tyNXl5cnZjY28yeGFwDmF02CpYJQABcRIgZc+zH/7ojg5b91uBx+H5VAngXIZTsIp15gcapKm+uzhhdtgqWCUAAXESIL0HadwmaCuC0PCTHiJ6P/pUBZ+Xh+v8HHKX7CQ4Y+cbYWzYKlglAAFxEiDXrSxJu2ZudO+sVQee+QOaoVwzpOAEzawCsS1inGxIEQ==","omFlhaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtbHBnaW83M3psMm1hcABhdNgqWCUAAXESIGpi66H1Jwl6AmaPACDXXOTxoDHOlh2eXUyKoJRQnVyFYXbYKlglAAFxEiBN/Bwn+UxOuM+AyQKS28F60HzxGgrkSIBWlrTujr0ePqRha0twcGs1bm12bGoya2FwFWF02CpYJQABcRIg1EdqdUZTDoeFlqeU6Uva6gqI82833GG+RLgU0HxWdr9hdtgqWCUAAXESIJRHfVH6+7gaJekdTtRvTopNOgPRerUC3EOjm8DqG/QBpGFrS3JjZ2xnbXo1ZTJuYXAVYXTYKlglAAFxEiD+TRiNh5pqrtPzusypZCkDqGLM9g2dTLQhedQx9UEx22F22CpYJQABcRIgAp3+xgeJG35pL+FVDc1rc1fL6LdTlJuyR9cu6PvBWN6kYWtLc2ZldHdvbWZnMjJhcBVhdNgqWCUAAXESIAuV3gKoiWghcrsw2wi+Z7fAktvs8Yn2mxhAdC3ad3t6YXbYKlglAAFxEiAr3WJrRNNeJ9dqvKv3mXyBsYKEYbb7LwKInNmFVEewtaRha0p0cGRhc3UyczI3YXAWYXTYKlglAAFxEiB3AnpHXzzulPEqFMIcFVta85rv6g3TOi4ocIuYxqJ+c2F22CpYJQABcRIg9/Ab9Vlk+OkVMYUCzUaCv3md7PEI/OiD9tKzN+UXIUdhbNgqWCUAAXESIL34WzVzJ/15Mp9niq85Ro/Gm27A7dNU2J8yFSCiu8ht","omFlh6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdDV4YnB5enNxMnRhcABhdNgqWCUAAXESICGTijrPmdHs3OqDFlqgmfWQlM1t1xOjT84pP2WOaHqxYXbYKlglAAFxEiADwkvMECVVvzXx+OERQUCtVxwagHDQsiOHijcZcQc4x6Rha1Jwb3N0LzNrZHJubWwyZTV3MnZhcA5hdNgqWCUAAXESID/SndsW6lWgWe5rd9uBb4xpfpn2vAak8Dvtk7Z1IkdNYXbYKlglAAFxEiAH/QUEX/GqnqBSz7iRGrrmTpvjGaeQItiQfvQyA/Ec6qRha0tmdWlncTVhNjIyZGFwFWF02CpYJQABcRIga87KObolQAQSmTUyeleIZQd3vKZURqJEHB5Wqm0t6z5hdtgqWCUAAXESIAUKAl8KL70pMrIg5A/Dy8javXjgFwn2MCnWmCDw46qspGFrSndkaWtsaTZ0MnNhcBZhdNgqWCUAAXESIFnhcDO78zU9mrXEGyp62IcTxhhLQUmpaTticWoMOyIdYXbYKlglAAFxEiDXngKH8erDvD50OYsTb9KkDmk0yum/LAunkLg18ArcFqRha0tnbmxrYWthYWoyM2FwFWF02CpYJQABcRIgi23z+yo7jg7pwtqXaN6j3DrVyhk5p13Juchmj4v8TB1hdtgqWCUAAXESINzH4Ogch32WLITX3nkNrhV0ejBITr05tRcR00KcGeLFpGFrS2xvN2o2NHloazJxYXAVYXTYKlglAAFxEiDuQ5lGsA2ymWNkCzMTqkw00lgWjp7nz/Fqr3kFMA8cxWF22CpYJQABcRIg8J7y9ZhhD8AvIfERFqYCKwAIB11VAiEP8EpTA6wfdYukYWtLcXQ1cHFmNzJjMmVhcBVhdNgqWCUAAXESIPEuGwgMt5NoftU+rSXCjJmf5OM+wb/lUy27FfEekhtzYXbYKlglAAFxEiBvOQBufDFw7IbW7+1KuzOsV2u1anSER/OtBrtIZTbPUWFs2CpYJQABcRIg4VogRRcbvKm8Tk4Osf9VyUU3lRYZLAoKAPfcXobIW0s=","omFlg6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGhpNTcyb2gyMmJhcABhdNgqWCUAAXESIAVdyKTjqvWPic71m6Zc/61iEmg7F+Zgh9P1gqkNXbGXYXbYKlglAAFxEiD1aBnFuGJNmxI1zhoFajt306Q9lVEHrlB5kfhugNR3kaRha0l0YWZ6Y3pqMmRhcBdhdNgqWCUAAXESIITmTNoM7aEeeiBri7bZy8x7WmYWKmUf4WeZpaUzUwU6YXbYKlglAAFxEiBFEfM6uilbqzLTvhYsXZHMhDPBZwT8gwglddwMq9ViyKRha1Jwb3N0LzNrZGhybGxjZjZ6MnlhcA5hdNgqWCUAAXESINEEooU/k5YU/OaSyw6enygq24KmRj2yDdwrI9vPwoYZYXbYKlglAAFxEiD/3aok0N2z6xaWMSn5MHumkd7AnPQssRCRPDAyyIsi9mFs2CpYJQABcRIgraNUuFfe01nOygZngyfe/YXghVhn0GzVi0yPwE0wdiA=","omFlhqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGljanFzcTJqMjJhcABhdNgqWCUAAXESIJkqgfrH+onE6IQqHluR8+8Kwm66JwPwDwmkQCPlFhEBYXbYKlglAAFxEiClutBVmtSwd4b7nOr4ax7p4TW4ORd0ZDufD9LH+sNDu6Rha0prYzRoNnNlcDJiYXAWYXTYKlglAAFxEiAmBqPLTXq7vsWCKT1HMiTURfd3SmuOvDUMcYk9RDFBtWF22CpYJQABcRIg/+Md/1e3fdPQzK5xhgtPVGh+G+b/3DZAb9yMDev2JMakYWtScG9zdC8za2NuaGliYTR3cTIzYXAOYXTYKlglAAFxEiBnpv+QBlwXnNPUV4JmMfxomN9gXCmlL4gf/oIB6YPrY2F22CpYJQABcRIgav/kCSedluLJili6wDCIbXweVFDhWsrHkhxuO4BXfYykYWtKcjNnaTZwYmcyN2FwFmF02CpYJQABcRIgKBLF0Je5dRjNkIuR41kk+YrvS3SJc6wKiCZHKxaORkVhdtgqWCUAAXESIKmR0JX3c/jguspCAF0mNri4Yz5PJAmNFizd1G6f7B69pGFrS2Rmb211emF2dDIyYXAVYXTYKlglAAFxEiACQAs5VB823rjRWJvI9ku/GBwHWBm9zbiywnpvyEDBt2F22CpYJQABcRIg+aLQfvO+4vyrRNFzQw9A6RrFEC1REUeBjkauokcx54+kYWtKaG43c3RpaHAyZ2FwFmF02CpYJQABcRIgaqbt2senwOwekHAcnmeoivaIMNL+0Y9eMeCZW9CV3ahhdtgqWCUAAXESIG+C6XgdB25lvK6O07M8IwOmuuz0aR2+aL7OpZE9VstKYWzYKlglAAFxEiBDO1J6MGJ8mNdxZsHTomxdJo41QwOUUHWQzxGdWVad6A==","omFlhKRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtqZW5lcmNyMnJhcABhdNgqWCUAAXESIGq+AWOT9o52FKfDjaW4ZcSGQMG/ef60ZtD+E8OQvYxBYXbYKlglAAFxEiCG/2Hfw0ef/b+u7lWzDKcpb06mNzEfBdGVg1WWcWmqcaRha1Jwb3N0LzNrY2lmbGZlYWR0MmhhcA5hdNgqWCUAAXESIGvGR6gAlEVAJt6XoCcQ65pKOlUVcCpP61GoT1DEjCdaYXbYKlglAAFxEiB4FkgZJ3d4rFROuuFUvu469AWHlTuFCS7cB7hCJUUp0qRha0lnb3Q0aGVpMnNhcBdhdNgqWCUAAXESIA0q1qLnYRo8Jiq8DN/QDtuRBPnZWnofwb1dnIhtEd0wYXbYKlglAAFxEiA2nUaVLQ/xALDJdwAJGzDZNVpUmS++FMSqTcQ/pFlakaRha0puaGM2bTY1bDJuYXAWYXT2YXbYKlglAAFxEiBhx1Cj9mrz0ZWalBA9SmDTvrLlA0kMAWM1laqLaxdUWmFs2CpYJQABcRIgpydX6PGOyuc0QTrGi0BowOia0qHkXkNx3ZMlSQ15wXY=","omFli6Rha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtqcnZhbmJhMnphcABhdPZhdtgqWCUAAXESIF13U60bxiRPqOpiqewKltQrGZDiIGECYbZQgYl4B2PKpGFrSHNqa2JlczJ6YXAYGGF09mF22CpYJQABcRIgOgb79xqIfgGYma2XVe39QCCaDqpj1raQgQLzrtzWN5GkYWtHcnVzcWsydGFwGBlhdPZhdtgqWCUAAXESIL/SHiYsDXDcrHFV+1/fEhthMnY6XqK3npTIWsMJAO4KpGFrSHV2YTVlbjJsYXAYGGF09mF22CpYJQABcRIgBMrDex75huR7dNlwZzg5LVb4KQXXao2NWaxmBjBk4tikYWtIeWcyZm9oMjdhcBgYYXT2YXbYKlglAAFxEiAlla6Au9efkYW2SFKmHLqKLS5gHAUdFs6W9/JNQCKsRKRha0lrMmJjbGZzMmthcBdhdPZhdtgqWCUAAXESIOavR0GSmaVOa2PlHHfW/ahjn3swuhM5fv0BrKTtya4vpGFrSDQyeXhmNTJhYXAYGGF09mF22CpYJQABcRIgyKKSTim91AZRQITG1g4903dPiBAtUZ3A2assykupA0CkYWtIZHU2YnV0MmxhcBgYYXT2YXbYKlglAAFxEiCBWzMZ9C+mDeihZbLT14ukHblp0P/VDcZxPYkAPiyVQ6Rha1Jwb3N0LzNrY2lkcWRwc2llMmthcA5hdPZhdtgqWCUAAXESIDiPuzOGHYLU/K/Gbd5cHWonEvQA4yz9uWmVZJZOOX+CpGFrSWVhdWdheXIyMmFwF2F09mF22CpYJQABcRIgPG3OL/eRoZteHxBcH0fS4aYcKV/MsUAigbjIlnJpsCykYWtIZXpweHB1MmVhcBgYYXT2YXbYKlglAAFxEiBf0GE3drLPVndjWzMnvwjIsHjUepscnINjkgIASxeYsGFs9g=="]} +{"root":"bafyreigdc2l3yhlj5hxot5mngsjnppk4sll6bywq4gawaqc2tvzkv5b3vi","prev":"bafyreif3wkpqrm4u47mjbfxowozxiqa5e5hh77k4sjf7eszwd47wj2jyyu","ops":[{"action":"create","path":"app.bsky.feed.post/3mtkkdurcak2a","cid":"bafyreia2cafl7ztxte5vqe7bqjr5jawdvafoc6iwj6buuducmfoucc5s5m"}],"blocks":["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"]} +{"root":"bafyreigehn6krjw6utu76fjumeizf26dufzt4ar72evldbjcep7imj2boa","prev":"bafyreiailhv3pwbjb5g7ah6sb4hy7xlmkukiqlbolzwo26rr6ukk6vsrvy","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdxcjme2l","cid":"bafyreielqjn2pjvjc625cfqmxp24jdafpkch2o2zfmewnunhopg43rljrq"}],"blocks":["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"]} +{"root":"bafyreiak6lmnhp4uuj6roiowvoxjmuahnflnfdxpfhaat5l3lghdaevx3m","prev":"bafyreiaq4cgl6x2hnjk7q6hulmoaytxuzroiow7ugregov7dzd2ql7jdka","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdzzdod22","cid":"bafyreigznjimosnd3axs7syhmlhpkzenjed5vizawuf2nrq4f4ne4uuhp4"}],"blocks":["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"]} +{"root":"bafyreigwugs7m4dj4psnrybicamtpo34enn6apw2752wkecydk6odz3wni","prev":"bafyreiekp35zczznn5rzhiguhzyrsgjt7vvoqofkvkj4slesfctt5p4g5y","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke3miwj2h","cid":"bafyreihuotatmuajduiprepwxwp2cc3fjwozj3yb7suhxt6u5hyd5zjnym"}],"blocks":["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"]} +{"root":"bafyreicmzkdgrk4qch4wtjjoj5fvy64qgiewey3kk2powowsgmhg2u5eey","prev":"bafyreigustbpxl6qpm57sg5ngczv4nw7be44hm4lxvwtsiaycafyvnmpz4","ops":[{"action":"create","path":"app.bsky.feed.repost/3mtkke56ey42a","cid":"bafyreieotfmqhxgf7zza4amxnbyrzilkhalq6wo75chccu7sg4dunrurla"}],"blocks":["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"]} +{"root":"bafyreie6qzn4nipq2f6sekgkmlzltem4k4uvoqoh5dkhcbtdawvwhh4uv4","prev":"bafyreia4rl3kb24q5qpowmwgapqslzgwlcclzp5adaoc66a2na56sxeekq","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdta7xu23","cid":"bafyreiepx5ehhhsfnjowo4t3mib6rtoxl5r5wgrg5lhbh2236c5zrx3q34"}],"blocks":["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"]} +{"root":"bafyreih4unj4esy5dllhkgm4bzgczns4gwelzrk25cm6esv4ilk46n2afm","prev":"bafyreigsxvvd4nzp6oplv3jzcu7b32dwjd35ouudjlrltyp4r5nkgl7fre","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdx4ofg2l","cid":"bafyreie6ktuv45rx6jv5u7gxsjne73llsgavmbe64gdnfhu44uoloqzigu"}],"blocks":["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"]} +{"root":"bafyreihddzwj43tukk5peyz7tsg622lkjvxknunfc5y5fjkhwk4kuaalbe","prev":"bafyreid4b376hclezt2jwran5bgbv2h6x3kr3kahudc3phdgfnebbg3auy","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkke2ybxe2r","cid":"bafyreidcpt4ksfquziwxmwbe3deqauurh3gvcf4krp6djrsq3s6mfj7bn4"}],"blocks":["omFlgaRha1giYXBwLmJza3kuZmVlZC5yZXBvc3QvM21xNG9mM25ycXYya2FwAGF02CpYJQABcRIgqXVXeWeAw0v4D/tBLvLqH/nu8hGvuE/5B2qGZP0g2BBhdtgqWCUAAXESINwDvEd5ZlItXwSHsLh/PwvDPnu59Qk4mbM14u+oDpcTYWzYKlglAAFxEiAoyHjK9NFt/ftO7IvXVScy99znEzASpy1Hsyh7EfOWIg==","omFlgaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNsemU3cXFrN2JoMjZhcABhdNgqWCUAAXESIKUzbZS0mivqW9qyb68ERudoCItN2mlH0qbSNYegbW0OYXbYKlglAAFxEiCf9lStA1J9WhghKvLMsMLPoUDKHdxFEKP5XWxkDsCjEmFs2CpYJQABcRIg0tH3odkmcc/xJxhOeQGujtudJkVK09kQ6kmhnx7XdT0=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtNnhzbG5jbmlxMnlhcABhdNgqWCUAAXESIAQeA75AS+yMxUc6pVb/uCUEUXObwZUzGrgA4hty62AIYXbYKlglAAFxEiDcA0jbmbLpqSTJiUxTb8hmiwkXZZaxanlYJen1XA6kMaRha1RyZXBvc3QvM21lYWtmcHIydmgybWFwDmF02CpYJQABcRIguW2ecwz5apLaoxtzIJFjfZAxgqP92dqpXKLL9lpPhKlhdtgqWCUAAXESIKl7pS1SRybzunAEN5vHY8MJ+twPFKgfBPaYBTbvtFfGYWzYKlglAAFxEiCILzNdlN97XnasRp9KGdJPB/xkB6SkaZP/tI9My751iQ==","omFlhaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNta3pyNGx4bHY0MmJhcABhdNgqWCUAAXESIDkrAtMnNXH0jm10wYEwJl/VHunzyrJPtsVdUnCaZP6rYXbYKlglAAFxEiCOWnkxCVYA7bh5LsFtcrqk4RAo16NMy7bDkTkO0fkdT6Rha0tzbm1ramUzZHcybGFwFWF02CpYJQABcRIg+iZ6RsB09FoSr0xmLHlpMoKHfKYJRCVVPAd+v4lmi6JhdtgqWCUAAXESIFDzKP7udLdtuv3yAfa40zhqLoSOO1nG+V9rVFfuVuxwpGFrUnBvc3QvM2xvdTVmazdlbmsyNWFwDmF02CpYJQABcRIgulv2CS5sVwSDmOkwEAsSxnov8vfu6ERsy2s6XFuE8ERhdtgqWCUAAXESIDCKHlvxJd0KgVblM3cvDQ2SgKwvHEYYm8NZQbgciFKwpGFrVHJlcG9zdC8zbHNvbDVwZzQ0bzJwYXAOYXTYKlglAAFxEiBRcT09NpzwnoLxPuNnqx0wJBzUrzdK7FyhbpvJMXouH2F22CpYJQABcRIgKR7T9HdFw23c3QuUlgXFonQZa/KNW3fW1sgfsFzUTIakYWtLd3dtMjZuMnJrMnVhcBdhdNgqWCUAAXESIK5D4SfRKR9TBkO+WiKphTyn6WhnCiAk5ppaZB9TFT6aYXbYKlglAAFxEiAM/igWa5bHhmdKguv0hYCkgJg9tMg40CyEId9xPTVjRWFs2CpYJQABcRIg6cRR/UBpk7oXpc4f1fA3X6sJ4khIdPGjgUd57qANyx0=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNsZGpycDczN3hjMjdhcABhdNgqWCUAAXESIHBTKmrk+nGueWFeni9A/p7VCjYnr4OjI0KX+9hK+X9OYXbYKlglAAFxEiDqLnQ7L4cu93JmHrgeg4ehTHohJJX/d+AjV7Ju7j+XoaRha0tmMm90emZ4aDIyYWFwFWF02CpYJQABcRIgMoX8zzorlBtHOtSuRUMkbvzulifSh/Do1Tltgcf64+BhdtgqWCUAAXESIAJry7mpJFRj8mZax4YxLLdkcO7NeVpNxCFFnt8gQFl3YWzYKlglAAFxEiCj5nZCr8sZZBaf6MvMCVApgana2eVdi1EYPELvy1cHAQ==","omFlgGFs2CpYJQABcRIgyLr3ETy9xmd3TNr4yrVEe1VPlgr3xa1cB96Xu2jaPGY=","omFljaRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtc3F5cmxxNWY3MmhhcABhdNgqWCUAAXESIARWh+VbPQwaTqCJ0HlAC+TOKVsEuOKRYOjmsNEw13rWYXbYKlglAAFxEiDIkHgX5zbFZCrWS6eoM3fG6lW4x9KPYEj+uTVYO+vfzaRha0p2NmZ4dHl4ejJsYXAWYXTYKlglAAFxEiDalyJAZaxS/fga02BlVnyjSC2evc5PlXLhIQB128qdV2F22CpYJQABcRIgAX2eiYQWlM75Jg3ubTNdARwKE3h+qItR3rd0gj9TRHOkYWtJN3lqdG4zYzIyYXAXYXTYKlglAAFxEiCYqZtHCr2mtueR39XX2Z7/xDAnAzpeWv6Wn1iHVQbNYGF22CpYJQABcRIgkg+GzzBMK+wvlYsUt7KEX/qY+IkbmO/7enAETcUeuKKkYWtLdGhzZWVsbWJzMmFhcBVhdNgqWCUAAXESIKmwS7mUnP9qMjlqfSUt9wkXLd8z+/HfynB6QZ7q8jrHYXbYKlglAAFxEiCo6QsmD9wxGLV/TJbNM+Vtj/bZEAucy6veFnaAHchEK6Rha1Jwb3N0LzNsYXNxeGhrdHFjMmZhcA5hdNgqWCUAAXESIOU+MwbBgVeM0+7d4j/BIJd2nhOssvlcZb3rgq5Dn7+OYXbYKlglAAFxEiCRpunIQ3mN2XIH0GmBbfEHf1AC+cGgjNipMOmSG0iHwqRha0tiM2d0b2xqdGMycGFwFWF02CpYJQABcRIgeLZSMOe53xFLXy1a7bf4T5uSickApveKcBg1j0nEXhVhdtgqWCUAAXESIDJmx0vmNLLpuwxc7ykVO9Ai6fEy75pvXGb/cdRKZWddpGFrSW1xYTUzZHMyNmFwF2F02CpYJQABcRIgilXcUBYCqHE8vzpDOLtE6YbdSKnJ2xfyMcpF4O4zW0lhdtgqWCUAAXESIDgJ/xIOmqmepgi+WSS3QlloZuuTXY1CZqtBSpgrlwL+pGFrSjVsd3E0b3djMnFhcBZhdNgqWCUAAXESIAIoR1hsr3gOf2JohujB5ki8lJK8Ccf1VpUa2pjdqbsIYXbYKlglAAFxEiAP4WIG+uzHv8B2VjLfYEGw8LLv0ZaBs4tYDR8VsdbjA6Rha0tjNG90b2txcDIydGFwFWF02CpYJQABcRIgt2Rz7FFBN4qHMpFiWvP87x1scrNrdgzDY7I7Yz2h8RlhdtgqWCUAAXESIBeVM1gMd+eweJEJ97DAUelGusgiMlQr7Cc2UnMdRAvIpGFrSjdwcGJsZmljMnJhcBZhdNgqWCUAAXESIHF4O6bq+faJXYNkQeiwHm+wUSLZyZv9c7A+xhE6gFAnYXbYKlglAAFxEiCmKZNkaBOyr+Ryw6qN4pWn+3HvaFpBb/8utCRbstg6rqRha0pvdnVtcTJ3czJ2YXAWYXTYKlglAAFxEiDWREEG4dIagCfz7xO6qblrpPU3Eng6Lv1P1vBLNBcwr2F22CpYJQABcRIgrDHB8t2HGJD011C7vP3Zp9PYG4jKYyIay1B7Dh0PMsWkYWtLZDQ2eHM3bW1rMjRhcBVhdNgqWCUAAXESIBX40w8u1r+Id+BHb8cWDmRjNH6nAg5obkahDIxLkcgnYXbYKlglAAFxEiAoWKwWsHTxtMjV03fHBdl+8JWXPoyjC54bwvGJrpjWHqRha0pjaGtlbDN1YzJ0YXAWYXTYKlglAAFxEiArcLoLiJqTTTxOSAl8H/Yo9PfVQfGewflHVHy0ntOtw2F22CpYJQABcRIguTLOfq0+hMfUheu4gnw0VFYDX7hnWcO2M9t8rJCZwqhhbNgqWCUAAXESIAZcBUwifdeG0ZKAG6EFXqKUnqmikp+ECAYtCfoDefU3","omFlhKRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGp3b2x1M3duMm1hcABhdNgqWCUAAXESIJoNNJfI4hqk9fBRpIhPR/fzMcwwIljIQz+qy1UNEfRdYXbYKlglAAFxEiB/iybiKVrweDBs/MSCQ0gBh4s2PSHTaAUQAzgLW8wAXqRha0prZndka3U1NTIyYXAWYXTYKlglAAFxEiDPD12owRVL0WrFykkTtO5wbDlBqvQ9jOtQQ3froMX972F22CpYJQABcRIg8PFiD17I+/0VnQ9C5vP54UrlsYLbVLA7/54B3bnUh4qkYWtJZzI1a3RwNDI1YXAXYXTYKlglAAFxEiB9pSKf8cixjHMSitOKHKVtpp5bhABb9Oy6nHM+BEXrqmF22CpYJQABcRIgvLC9h+v5Pmby01hlCRj4byna0cnAN7rejZ48dEmR3qWkYWtINDMydXM2MmphcBgYYXTYKlglAAFxEiAM5jAwnDD1HqMQjfFESz8A6jlH8jlmJ17tLZ/d7TheSmF22CpYJQABcRIgmxdYsLrj6hMQ3BRez+bGZtEjssmridy07WCAee98ouFhbNgqWCUAAXESID3wM5E9E8v7XPqh1aPZ2JqMA83QeLPNWY03uRazqo5z","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNsYXJhdnp6dzdjMjdhcABhdNgqWCUAAXESIFpzM9KnquIdn6o0O3mPxQqCnmmDU2aZ0z96s94YRiwJYXbYKlglAAFxEiBPYWViXpVKuCboUsW2E3PSzAg083MiCCWOFmqoFgnj8KRha0l1YWxnMzQyMnNhcBdhdNgqWCUAAXESIKkb1RhwlXok54r2PhglBq4D5gzC9Ir+uMzN1r/OC1A/YXbYKlglAAFxEiDxQx1/tICtInKezTOMuWrKQBXBZ1QiRtfO9wLSs/8Ix2Fs2CpYJQABcRIgAlDtK94vKbRuY8qW/7SIqJ9fQ7zwKRfgwKPRLCargvc=","omFlhqRha1ggYXBwLmJza3kuZmVlZC5saWtlLzNtdGtnNHhzcW9zMm1hcABhdNgqWCUAAXESIP2RTbViliY/CspWsx3Q2cEL7hS+xSdKpNtcZtfZ/XfYYXbYKlglAAFxEiC5nKFnB/Vb2hIV4tSX2XX+Gcs7O6+wv+k3bhMhYZZYqaRha0lrZGh0Z3QyMmFhcBdhdPZhdtgqWCUAAXESIPQoBTveLf3rVqb2fqd0inH75Dn+LNIex77yU9CdJTPYpGFrSGUyeWJ4ZTJyYXAYGGF02CpYJQABcRIgS53H7qk6ExDAjSOSsdSE2XLdNXxUO6UbKUTOf/lEdOVhdtgqWCUAAXESIGJ8+KkWFMotdlgk2MkAUpE+zVEXiov8NMZQ3LzCp+FvpGFrUnBvc3QvM2xhcjZxeWZ6dWMyM2FwDmF09mF22CpYJQABcRIgM533mOQAg4Ht/yRaaeVHcPyjhTcdUxf18eCh6RSvP/KkYWtIc3F5amZzMjNhcBgYYXTYKlglAAFxEiBRHz2NoCVdyoao2ySxqwYq0Z3NC1OyXMUgPOqboAMDwmF22CpYJQABcRIgJwCO8LjvYlsBR1ffZjoThZtoq3aP2qVZu3vtQ0cGGdekYWtJNzRhNmljYzIzYXAXYXTYKlglAAFxEiAgletANvCXWHYc6+LeFcCiXs+cz4pWQabk575IkTmCymF22CpYJQABcRIgfZxdkBGw6H18vLUwngg8qkPB5uhSgBraa3+xvqc+ENRhbPY=","omFlgqRha1ggYXBwLmJza3kuZmVlZC5wb3N0LzNsYXI0cGNsNm50MmVhcABhdPZhdtgqWCUAAXESIFRfVH7tyYbK2dlqZNqu7duGwTzFWxFzkRcx/4O7MLgdpGFrSTZvc215dGMyM2FwF2F09mF22CpYJQABcRIgnd1J1y8CXZZ0zC2uDkMCXh1SU0YLQfJjH7E/eQ6cYfVhbPY="]} +{"root":"bafyreihpo2xz6h6herol3op5efsznnc6oyvrtznbn2le56vsds36radsdu","prev":"bafyreiggpq62un7iqeu5iuzlwfvvgnyiqa6bdrgkwcjis4o26c6ct5cv4y","ops":[{"action":"create","path":"app.bsky.feed.like/3mtkkdx4hke2p","cid":"bafyreiht5ncjlusfnpy3dlv2e5trvrjc5vogfofty2kqi4fn33on4buwg4"}],"blocks":["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"]} -- knotmirror 0.0.1 From 4414acd9a79f4f265d0074a02eed293a3d025eef Mon Sep 17 00:00:00 2001 From: phil Date: Fri, 21 Aug 2026 00:02:23 -0400 Subject: [PATCH 4/4] inline op invert: lazy decode, tokio coop budget --- Cargo.lock | 31 +- Cargo.toml | 1 - hubble-commit/corpus/Cargo.toml | 1 + hubble-commit/corpus/src/bench.rs | 43 +- hubble-commit/corpus/src/capture.rs | 15 +- hubble-commit/corpus/src/check.rs | 155 +++++ hubble-commit/corpus/src/limits.rs | 63 ++ hubble-commit/corpus/src/main.rs | 26 +- hubble-commit/src/block.rs | 28 + hubble-commit/src/cid.rs | 13 +- hubble-commit/src/error.rs | 16 +- hubble-commit/src/lib.rs | 6 +- hubble-commit/src/tree.rs | 671 ++++++++++++------- hubble-commit/tests/firehose_corpus.rs | 4 +- hubble-commit/tests/mst_diff_suite.rs | 13 +- hubble-sync/Cargo.toml | 1 - hubble-sync/src/commit/commit_object.rs | 25 - hubble-sync/src/firehose/event_validation.rs | 296 ++++---- hubble-sync/src/lib.rs | 5 +- 19 files changed, 949 insertions(+), 464 deletions(-) create mode 100644 hubble-commit/corpus/src/check.rs create mode 100644 hubble-commit/corpus/src/limits.rs create mode 100644 hubble-commit/src/block.rs diff --git a/Cargo.lock b/Cargo.lock index 8297cfc..01c2e7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2193,6 +2193,7 @@ dependencies = [ "data-encoding", "futures-util", "hubble-commit", + "hubble-sync", "jacquard-api", "jacquard-common", "serde", @@ -2257,7 +2258,6 @@ dependencies = [ "jacquard-api", "jacquard-common", "jacquard-identity", - "jacquard-repo", "k256", "metrics", "multibase", @@ -2731,7 +2731,6 @@ dependencies = [ "ciborium", "ciborium-io", "cid", - "ed25519-dalek", "fluent-uri 0.4.1", "futures", "getrandom 0.2.17", @@ -2869,34 +2868,6 @@ dependencies = [ "trait-variant", ] -[[package]] -name = "jacquard-repo" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98986367bb78dadaa0f2f07196bab357786c0e3670d8311b350585b91f84d6eb" -dependencies = [ - "bytes", - "cid", - "ed25519-dalek", - "iroh-car", - "jacquard-api", - "jacquard-common", - "jacquard-derive", - "k256", - "miette", - "multihash", - "n0-future", - "p256", - "serde", - "serde_bytes", - "serde_ipld_dagcbor", - "sha2 0.10.9", - "smol_str", - "thiserror 2.0.20", - "tokio", - "trait-variant", -] - [[package]] name = "jobserver" version = "0.1.34" diff --git a/Cargo.toml b/Cargo.toml index 4b7dd5a..b998f87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,6 @@ jacquard-common = "0.12.1" jacquard-derive = "0.12.1" jacquard-identity = "0.12.1" jacquard-lexicon = "0.12.1" -jacquard-repo = "0.12.1" k256 = { version = "0.13.4", features = ["ecdsa"] } metrics = "0.24" miette = "7.6" # for lexicons codegenned by jacquard-lexicon diff --git a/hubble-commit/corpus/Cargo.toml b/hubble-commit/corpus/Cargo.toml index 575485c..31340d5 100644 --- a/hubble-commit/corpus/Cargo.toml +++ b/hubble-commit/corpus/Cargo.toml @@ -12,6 +12,7 @@ dasl = { workspace = true } data-encoding = "2.11.0" futures-util = { workspace = true } hubble-commit = { workspace = true } +hubble-sync = { workspace = true } jacquard-api = { workspace = true, features = ["streaming"] } jacquard-common = { workspace = true, features = ["streaming"] } serde = { workspace = true } diff --git a/hubble-commit/corpus/src/bench.rs b/hubble-commit/corpus/src/bench.rs index 4dea33b..8334d48 100644 --- a/hubble-commit/corpus/src/bench.rs +++ b/hubble-commit/corpus/src/bench.rs @@ -73,7 +73,10 @@ pub fn run(path: &Path, rounds: usize) -> Result<(), String> { .collect(); println!("{} commits from {}", cases.len(), path.display()); - histogram("ops/commit", &cases.iter().map(|c| c.ops.len()).collect::>()); + histogram( + "ops/commit", + &cases.iter().map(|c| c.ops.len()).collect::>(), + ); histogram( "mst blocks", &cases.iter().map(|c| c.blocks.len()).collect::>(), @@ -96,6 +99,44 @@ pub fn run(path: &Path, rounds: usize) -> Result<(), String> { } } + // how does it scale? bucket by operation count and by tree size, so the + // slope is visible rather than inferred from one aggregate number + let mut by_ops: std::collections::BTreeMap<&str, Vec> = Default::default(); + let mut by_blocks: std::collections::BTreeMap<&str, Vec> = Default::default(); + for _ in 0..rounds { + for p in &prepared { + let start = Instant::now(); + let _ = invert_ops(&p.blocks, p.case.root, &p.case.ops, OpOrder::AsGiven); + let took = start.elapsed(); + let ops = p.case.ops.len(); + by_ops + .entry(match ops { + 1 => "ops 1", + 2..=3 => "ops 2-3", + 4..=7 => "ops 4-7", + _ => "ops 8+", + }) + .or_default() + .push(took); + let blocks = p.case.blocks.len(); + by_blocks + .entry(match blocks { + 0..=5 => "blocks 1-5", + 6..=9 => "blocks 6-9", + 10..=14 => "blocks 10-14", + _ => "blocks 15+", + }) + .or_default() + .push(took); + } + } + println!("\n scaling:"); + for (label, samples) in by_ops.into_iter().chain(by_blocks) { + let n = samples.len() / rounds.max(1); + describe(&format!("{label} (n={n})"), samples); + } + + println!(); for order in [OpOrder::AsGiven, OpOrder::HighestKeyFirst] { let mut samples = Vec::with_capacity(prepared.len() * rounds); for _ in 0..rounds { diff --git a/hubble-commit/corpus/src/capture.rs b/hubble-commit/corpus/src/capture.rs index 061099a..01710c8 100644 --- a/hubble-commit/corpus/src/capture.rs +++ b/hubble-commit/corpus/src/capture.rs @@ -199,7 +199,13 @@ fn case_of(commit: &Commit, counts: &mut Counts) -> Option { } } -pub async fn run(host: &str, want: usize, out: &Path) -> Result { +/// Subscribe to a relay's firehose from the live head. +pub async fn connect( + host: &str, +) -> Result< + impl futures_util::Stream>, + String, +> { let uri = FluentUri::parse(format!("wss://{host}")) .map_err(|e| format!("bad host {host:?}: {e:?}"))?; let stream = TungsteniteClient::new() @@ -207,10 +213,15 @@ pub async fn run(host: &str, want: usize, out: &Path) -> Result .subscribe(&SubscribeRepos { cursor: None }) .await .map_err(|e| format!("subscribe: {e:?}"))?; + let (_sink, messages) = stream.into_stream(); + Ok(messages) +} +pub async fn run(host: &str, want: usize, out: &Path) -> Result { let mut writer = Writer::create(out).map_err(|e| format!("opening {}: {e}", out.display()))?; let mut counts = Counts::default(); - let (_sink, mut messages) = stream.into_stream(); + let messages = connect(host).await?; + futures_util::pin_mut!(messages); while counts.kept < want { let next = tokio::select! { diff --git a/hubble-commit/corpus/src/check.rs b/hubble-commit/corpus/src/check.rs new file mode 100644 index 0000000..cc9a692 --- /dev/null +++ b/hubble-commit/corpus/src/check.rs @@ -0,0 +1,155 @@ +//! Run live firehose events through hubble-sync's prevalidation. +//! +//! The unit tests and the captured corpus exercise inversion directly; this +//! exercises the whole of `FirehoseCommit::prevalidate` — CAR parsing, block +//! CID verification, the commit object, the bonus checks and the inversion — +//! against whatever the network is actually sending right now. It is how we +//! tell that wiring hubble-commit in did not change any verdicts. + +use std::collections::BTreeMap; +use std::time::{Duration, Instant}; + +use futures_util::StreamExt; +use hubble_commit::{CarReader, Cid, verify_block}; +use hubble_sync::{FirehoseCommit, FirehoseSync, FirehoseValidationError}; +use jacquard_api::com_atproto::sync::subscribe_repos::SubscribeReposMessage; +use tracing::{info, warn}; + +use crate::capture; + +/// Which error a rejection was, without the payload-specific detail, so the +/// counts stay legible. +fn reason(e: &FirehoseValidationError) -> &'static str { + use FirehoseValidationError as E; + match e { + E::CarTooBig { .. } => "car_too_big", + E::RecordTooBig { .. } => "record_too_big", + E::MissingOpField { .. } => "missing_op_field", + E::BadOpPath { .. } => "bad_op_path", + E::MissingRecordBlock { .. } => "missing_record_block", + E::PrevDataMismatch { .. } => "prev_data_mismatch", + E::DidMismatch { .. } => "did_mismatch", + E::TidMismatch { .. } => "tid_mismatch", + E::RootNotCommit { .. } => "root_not_commit", + E::Car(_) => "car", + E::Block(_) => "block", + E::Invert(_) => "invert", + E::CommitConvert(_) => "commit_convert", + E::MissingCommitBlock(_) => "missing_commit_block", + E::BadCommitBlock(_) => "bad_commit_block", + E::MissingPrevData => "missing_prev_data", + E::BadCid(_) => "bad_cid", + E::BadTid(_) => "bad_tid", + } +} + +fn percentile(sorted: &[Duration], q: f64) -> f64 { + let idx = ((sorted.len() as f64 * q) as usize).min(sorted.len().saturating_sub(1)); + sorted[idx].as_secs_f64() * 1e6 +} + +pub async fn run(host: &str, want: usize) -> Result<(), String> { + let messages = capture::connect(host).await?; + futures_util::pin_mut!(messages); + + let mut accepted = 0usize; + let mut rejected: BTreeMap<&'static str, usize> = BTreeMap::new(); + let mut samples: Vec = Vec::with_capacity(want); + // the same CAR work prevalidation does, timed on its own, so the split + // between reading the commit and inverting it is visible + let mut car_samples: Vec = Vec::with_capacity(want); + let mut car_bytes: Vec = Vec::with_capacity(want); + let mut syncs = 0usize; + + while samples.len() < want { + let next = tokio::select! { + biased; + _ = tokio::signal::ctrl_c() => break, + next = messages.next() => next, + }; + let Some(message) = next else { + warn!("stream ended early"); + break; + }; + let message = match message { + Ok(m) => m, + Err(e) => { + warn!(error = %e, "stream error, skipping"); + continue; + } + }; + match message { + SubscribeReposMessage::Commit(commit) => { + car_bytes.push(commit.blocks.len()); + let start = Instant::now(); + if let Ok(reader) = CarReader::new(&commit.blocks) { + let mut blocks: std::collections::HashMap = + std::collections::HashMap::new(); + for block in reader { + let Ok((cid, bytes)) = block else { break }; + if verify_block(&cid, bytes).is_err() { + break; + } + blocks.insert(cid, bytes); + } + std::hint::black_box(&blocks); + } + car_samples.push(start.elapsed()); + + let start = Instant::now(); + let verdict = FirehoseCommit::prevalidate(*commit).await; + samples.push(start.elapsed()); + match verdict { + Ok(_) => accepted += 1, + Err(e) => { + *rejected.entry(reason(&e)).or_default() += 1; + warn!(error = %e, "rejected"); + } + } + } + SubscribeReposMessage::Sync(sync) => { + syncs += 1; + if let Err(e) = FirehoseSync::prevalidate(*sync).await { + *rejected.entry(reason(&e)).or_default() += 1; + warn!(error = %e, "rejected #sync"); + } + } + _ => {} + } + } + + samples.sort_unstable(); + info!( + commits = samples.len(), + accepted, + syncs, + ?rejected, + "prevalidation" + ); + if samples.is_empty() { + return Err("no commits seen".into()); + } + car_samples.sort_unstable(); + car_bytes.sort_unstable(); + println!( + "car size: p50 {} bytes p90 {} max {}", + car_bytes[car_bytes.len() / 2], + car_bytes[car_bytes.len() * 9 / 10], + car_bytes[car_bytes.len() - 1], + ); + println!( + "car+verify: p50 {:.1}µs p90 {:.1}µs p99 {:.1}µs max {:.1}µs", + percentile(&car_samples, 0.50), + percentile(&car_samples, 0.90), + percentile(&car_samples, 0.99), + percentile(&car_samples, 1.0), + ); + println!( + "prevalidate: p50 {:.1}µs p90 {:.1}µs p99 {:.1}µs max {:.1}µs", + percentile(&samples, 0.50), + percentile(&samples, 0.90), + percentile(&samples, 0.99), + percentile(&samples, 1.0), + ); + Ok(()) +} diff --git a/hubble-commit/corpus/src/limits.rs b/hubble-commit/corpus/src/limits.rs new file mode 100644 index 0000000..2f6febd --- /dev/null +++ b/hubble-commit/corpus/src/limits.rs @@ -0,0 +1,63 @@ +//! What the spec's size limits cost us. +//! +//! A commit CAR may be 2 MB and a record block 1 MB. Real traffic is nowhere +//! near that, but a hostile PDS picks its own inputs, so the question is what +//! one commit can make the intake task spend before it yields. + +use std::time::Instant; + +use hubble_commit::cid::Codec; +use hubble_commit::{Cid, verify_block}; + +const CAR_LIMIT: usize = 2 * 1024 * 1024; +const RECORD_LIMIT: usize = 1024 * 1024; + +fn time_verify(size: usize, iters: usize) -> f64 { + let block = vec![0x5au8; size]; + let cid = Cid::digest_sha2(Codec::Drisl, &block); + // warm up so the first allocation and cache fill are not in the sample + for _ in 0..3 { + std::hint::black_box(verify_block(&cid, &block).is_ok()); + } + let start = Instant::now(); + for _ in 0..iters { + std::hint::black_box(verify_block(&cid, std::hint::black_box(&block)).is_ok()); + } + start.elapsed().as_secs_f64() * 1e6 / iters as f64 +} + +pub fn run() { + println!("block cid verification"); + let mut per_mb = 0.0; + for (size, iters) in [ + (512, 20_000), + (4096, 10_000), + (65_536, 2_000), + (RECORD_LIMIT, 200), + ] { + let us = time_verify(size, iters); + let mb_s = size as f64 / (us * 1e-6) / 1e6; + if size == RECORD_LIMIT { + per_mb = us; + } + println!(" {size:>9} bytes {us:>9.2}µs {mb_s:>7.0} MB/s"); + } + + println!("\nwhat the spec's limits imply"); + println!( + " one {}-byte record block, hashed: {:>9.0}µs", + RECORD_LIMIT, per_mb + ); + println!( + " a full {}-byte CAR, hashed: {:>9.0}µs", + CAR_LIMIT, + per_mb * (CAR_LIMIT as f64 / RECORD_LIMIT as f64), + ); + // real commits run about 500 bytes per MST node + let nodes = CAR_LIMIT / 506; + println!(" a {}-byte CAR of MST nodes ({nodes} of them),", CAR_LIMIT); + println!( + " inverted at the measured ~2.9µs/node: {:>9.0}µs", + nodes as f64 * 2.9 + ); +} diff --git a/hubble-commit/corpus/src/main.rs b/hubble-commit/corpus/src/main.rs index 1badcb4..1a42d44 100644 --- a/hubble-commit/corpus/src/main.rs +++ b/hubble-commit/corpus/src/main.rs @@ -5,7 +5,9 @@ mod bench; mod capture; +mod check; mod corpus; +mod limits; use std::path::PathBuf; @@ -31,6 +33,16 @@ enum Command { #[arg(long, default_value = "bsky.network")] host: String, }, + /// Run live firehose events through hubble-sync's full prevalidation. + Check { + /// Stop after this many commits. + #[arg(long, default_value_t = 2000)] + commits: usize, + #[arg(long, default_value = "bsky.network")] + host: String, + }, + /// Price the worst case the spec's size limits allow. + Limits, /// Cut a small, diverse subset out of a captured corpus. /// /// Real commits are overwhelmingly one operation over eight or so blocks, @@ -55,22 +67,22 @@ enum Command { async fn main() -> Result<(), String> { tracing_subscriber::fmt() .with_env_filter( - tracing_subscriber::EnvFilter::try_from_default_env() - .unwrap_or_else(|_| "info".into()), + tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()), ) .init(); match Args::parse().command { - Command::Capture { - out, - commits, - host, - } => { + Command::Capture { out, commits, host } => { let counts = capture::run(&host, commits, &out).await?; counts.report(); println!("wrote {} commits to {}", counts.kept, out.display()); Ok(()) } + Command::Limits => { + limits::run(); + Ok(()) + } + Command::Check { commits, host } => check::run(&host, commits).await, Command::Sample { corpus, out, diff --git a/hubble-commit/src/block.rs b/hubble-commit/src/block.rs new file mode 100644 index 0000000..71ad486 --- /dev/null +++ b/hubble-commit/src/block.rs @@ -0,0 +1,28 @@ +//! Checking a block against the CID that claims to address it. + +use crate::cid::{Cid, Multihash}; + +#[derive(Debug, thiserror::Error)] +pub enum BlockError { + #[error("block hashes to {computed}, not the {claimed} it is filed under")] + CidMismatch { claimed: Cid, computed: Cid }, + #[error("block is addressed by {found:?}, but atproto only uses sha2-256")] + UnsupportedMultihash { found: Multihash }, +} + +/// Check that `block`'s contents really are for its cid. +pub fn verify_block(claimed: &Cid, block: &[u8]) -> Result<(), BlockError> { + let found = claimed.multihash_type(); + if !matches!(found, Multihash::Sha2256) { + return Err(BlockError::UnsupportedMultihash { found }); + } + let computed = Cid::digest_sha2(claimed.codec(), block); + if computed == *claimed { + Ok(()) + } else { + Err(BlockError::CidMismatch { + claimed: *claimed, + computed, + }) + } +} diff --git a/hubble-commit/src/cid.rs b/hubble-commit/src/cid.rs index 5cda90b..a38d9e6 100644 --- a/hubble-commit/src/cid.rs +++ b/hubble-commit/src/cid.rs @@ -26,7 +26,7 @@ const DATA_LEN: usize = PREFIX_LEN + HASH_LEN as usize; const HASH_CODE_SHA2_256: u8 = 0x12; const HASH_CODE_BLAKE3: u8 = 0x1e; -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Hash)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Hash)] pub struct Cid { // - 1 byte CID version // - 1 byte Codec @@ -108,6 +108,14 @@ impl From for CidParseError { } } +// DIVERGES FROM UPSTREAM dasl 0.2.0, which derives Debug and so prints a CID +// as 36 raw bytes. this is nicer. +impl std::fmt::Debug for Cid { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{self}") + } +} + impl FromStr for Cid { type Err = CidParseError; @@ -414,7 +422,8 @@ mod tests { #[test] fn short_bodies_are_rejected_not_panics() { for len in 0..PREFIX_LEN { - let bytes = vec![CID_VERSION, Codec::Drisl as u8, HASH_CODE_SHA2_256, 0][..len].to_vec(); + let bytes = + vec![CID_VERSION, Codec::Drisl as u8, HASH_CODE_SHA2_256, 0][..len].to_vec(); assert!( matches!(Cid::from_bytes_raw(&bytes), Err(CidParseError::TooShort)), "{len}-byte body" diff --git a/hubble-commit/src/error.rs b/hubble-commit/src/error.rs index b250d78..256c251 100644 --- a/hubble-commit/src/error.rs +++ b/hubble-commit/src/error.rs @@ -31,6 +31,12 @@ pub enum NodeFault { KeyTooLong { len: usize }, #[error("node has no entries")] Empty, + #[error("node has subtree pointers but no leaves, so it has no layer")] + NoLeaves, + #[error("subtree at layer {child} hangs off a node at layer {parent}")] + SubtreeNotBelow { parent: u8, child: u8 }, + #[error("node at the leaf layer has a subtree pointer")] + SubtreeAtLeafLayer, } /// Errors from [`crate::invert_ops`] and [`crate::Tree`]. @@ -62,10 +68,7 @@ pub enum InvertError { /// A node decoded, but is not a well-formed MST node. `cid` is absent for /// a node we built mid-inversion and have not encoded yet. #[error("malformed node {cid:?}: {detail}")] - MalformedNode { - cid: Option, - detail: NodeFault, - }, + MalformedNode { cid: Option, detail: NodeFault }, /// A node did not decode as DAG-CBOR in the MST node schema. #[error("could not decode node {cid}: {detail}")] @@ -75,11 +78,6 @@ pub enum InvertError { #[error("could not encode node: {detail}")] Encode { detail: String }, - /// The tree is deeper than sha2-256 can place a key, so it is not a tree - /// any honest producer built. Bounds recursion on hostile input. - #[error("tree nests deeper than the {limit} layers sha2-256 allows")] - TooDeep { limit: u8 }, - /// An operation names a key that is not a legal MST key. #[error("invalid key: {0}")] InvalidKey(#[from] KeyError), diff --git a/hubble-commit/src/lib.rs b/hubble-commit/src/lib.rs index e2237c5..2039fae 100644 --- a/hubble-commit/src/lib.rs +++ b/hubble-commit/src/lib.rs @@ -20,6 +20,7 @@ //! //! (in the future maybe we'll add commit coalescing too) +mod block; mod blocks; pub mod car; mod error; @@ -32,6 +33,7 @@ mod tree; // blocks by CID. Re-exported by hubble-sync as `DaslCid`. pub mod cid; +pub use block::{BlockError, verify_block}; pub use blocks::Blocks; pub use car::{CarError, CarReader}; pub use cid::{Cid, CidParseError}; @@ -76,12 +78,12 @@ pub enum OpOrder { /// Invert `ops` against the tree at `root`, returning the root it had before. pub fn invert_ops( - blocks: &impl Blocks, + blocks: &(impl Blocks + Sync), root: Cid, ops: &[Op], order: OpOrder, ) -> Result { - let mut tree = Tree::load(blocks, root)?; + let mut tree = Tree::new(blocks, root); let mut ordered: Vec<&Op> = ops.iter().collect(); if order == OpOrder::HighestKeyFirst { ordered.sort_unstable_by(|a, b| b.key().cmp(a.key())); diff --git a/hubble-commit/src/tree.rs b/hubble-commit/src/tree.rs index 1770c8b..8ec1ed4 100644 --- a/hubble-commit/src/tree.rs +++ b/hubble-commit/src/tree.rs @@ -3,6 +3,10 @@ //! synchronous and single-threaded, since only 200 ops are allowed, and the //! CAR (including records) can only be up to 2MB, so it should be fast enough //! to call from an async context. +//! +//! Nodes are decoded when traversal first reaches them. A proof usually +//! contains exactly the nodes the operations touch, so in the normal case it's +//! the same thing. use std::cmp::Ordering; use std::mem; @@ -10,26 +14,29 @@ use std::mem; use crate::blocks::Blocks; use crate::cid::Cid; use crate::error::{InvertError, NodeFault}; -use crate::key::{MAX_KEY_LEN, MAX_LAYER, layer_of, shared_prefix_len}; +use crate::key::Key; +use crate::key::{MAX_KEY_LEN, layer_of, shared_prefix_len}; use crate::node::{EntryData, NodeData, cid_for}; use crate::op::Op; -use crate::key::Key; -/// A node decoded from a block with no leaf to derive its layer from — only -/// reachable for an empty tree, or a node no honest producer would emit. -/// Resolved from the parent's layer during load. -const UNKNOWN_LAYER: i16 = -1; - -/// Passed to `insert`/`remove` to mean "work the layer out from the key". -/// Distinguished from a real layer so the root can tell it is the root. -const FROM_KEY: i16 = -1; +/// Where blocks come from. +/// +/// `Sync` so a [`Tree`] held across an await point keeps the future `Send`; +/// every real block source is a plain lookup table anyway. +type Source<'a> = &'a (dyn Blocks + Sync); /// One slot in a node: either a record, or a pointer to the subtree covering /// the keys between this slot's neighbours. #[derive(Debug)] enum Entry { - Leaf { key: Box<[u8]>, value: Cid }, - Child { cid: Option, node: Option }, + Leaf { + key: Box<[u8]>, + value: Cid, + }, + Child { + cid: Option, + node: Option, + }, } impl Entry { @@ -37,99 +44,96 @@ impl Entry { matches!(self, Entry::Child { .. }) } - fn child(&self) -> Result<&Node, InvertError> { - match self { - Entry::Child { - node: Some(node), .. - } => Ok(node), - Entry::Child { node: None, cid } => Err(missing(*cid)), - Entry::Leaf { .. } => Err(InvertError::Encode { - detail: "expected a subtree pointer, found a leaf".into(), - }), - } - } - - fn child_mut(&mut self) -> Result<&mut Node, InvertError> { - match self { - Entry::Child { - node: Some(node), .. - } => Ok(node), - Entry::Child { node: None, cid } => Err(missing(*cid)), - Entry::Leaf { .. } => Err(InvertError::Encode { + /// The subtree here, decoding its block if this is the first time anyone + /// has looked, and checking it really does sit below `parent`. + /// + /// Recursion is bounded because an adversarial MST can't be arbitrarily + /// tall, because mining higher-layer keys gets exponentially more expensive + /// (height=80 is ~infeasible) + fn child_mut(&mut self, blocks: Source<'_>, parent: u8) -> Result<&mut Node, InvertError> { + let Entry::Child { cid, node } = self else { + return Err(InvertError::Encode { detail: "expected a subtree pointer, found a leaf".into(), - }), + }); + }; + if node.is_none() { + let expected = parent.checked_sub(1).ok_or(InvertError::MalformedNode { + cid: *cid, + detail: NodeFault::SubtreeAtLeafLayer, + })?; + *node = Some(Node::decode_at(blocks, own_cid(*cid)?, expected)?); } + let child = node.as_mut().ok_or_else(|| InvertError::Encode { + detail: "subtree vanished after decoding".into(), + })?; + child.check_below(parent)?; + Ok(child) } - fn into_child(self) -> Result { - match self { + fn into_child(self, blocks: Source<'_>, parent: u8) -> Result { + let child = match self { Entry::Child { node: Some(node), .. - } => Ok(node), - Entry::Child { node: None, cid } => Err(missing(cid)), - Entry::Leaf { .. } => Err(InvertError::Encode { - detail: "expected a subtree pointer, found a leaf".into(), - }), - } + } => node, + Entry::Child { cid, node: None } => { + let expected = parent.checked_sub(1).ok_or(InvertError::MalformedNode { + cid, + detail: NodeFault::SubtreeAtLeafLayer, + })?; + Node::decode_at(blocks, own_cid(cid)?, expected)? + } + Entry::Leaf { .. } => { + return Err(InvertError::Encode { + detail: "expected a subtree pointer, found a leaf".into(), + }); + } + }; + child.check_below(parent)?; + Ok(child) } } -/// A block we needed and did not have. Upgraded to -/// [`InvertError::ProofIncomplete`] with the offending key at the API edge, -/// where the key is known. -fn missing(cid: Option) -> InvertError { - match cid { - Some(missing) => InvertError::MissingBlock { missing }, - // a pointer with neither a CID nor a node is one we built ourselves - // and have not re-encoded yet, which `root()` always does first - None => InvertError::Encode { - detail: "subtree pointer with neither a CID nor a node".into(), - }, - } +/// A pointer with neither a CID nor a node is one we built ourselves and have +/// not re-encoded yet, which `root()` always does first. +fn own_cid(cid: Option) -> Result { + cid.ok_or_else(|| InvertError::Encode { + detail: "subtree pointer with neither a CID nor a node".into(), + }) } #[derive(Debug, Default)] struct Node { /// Slots in key order, alternating between subtrees and leaves. entries: Vec, - /// Layer this node sits at, counting up from the leaves. - layer: i16, + /// Layer this node sits at, counting up from the leaves. Meaningless while + /// `stub` is set, since the block that would say has not been read. + layer: u8, /// Entries changed since this node was decoded, so `cid` is stale. dirty: bool, cid: Option, - /// We know this node's CID but never had its block. Fine to carry, an - /// error to look inside. + /// We know this node's CID but have not decoded its block. Fine to carry, + /// and fine to answer `root()` with — it is only an error if an operation + /// needs to look inside and the block turns out to be absent. stub: bool, } /// The tree a commit's proof describes, ready to have its operations inverted. -#[derive(Debug)] -pub struct Tree { +pub struct Tree<'a> { root: Node, + blocks: Source<'a>, } -impl Tree { - /// Decode the tree reachable from `root`. - /// - /// Blocks that are absent become stubs rather than errors: a commit only - /// carries a covering proof, so most of a repository is legitimately - /// missing. Touching a stub is what fails, and only if an operation needs - /// it. - pub fn load(blocks: &impl Blocks, root: Cid) -> Result { - // even the root may be absent: a commit that changed nothing needs to - // send nothing, and its previous root is the one it already claims - let Some(mut node) = Node::load(blocks, root, 0)? else { - return Ok(Self { - root: Node { - layer: UNKNOWN_LAYER, - cid: Some(root), - stub: true, - ..Default::default() - }, - }); - }; - node.resolve_layers(); - Ok(Self { root: node }) +impl<'a> Tree<'a> { + /// The tree from `root`, to be decoded as operations reach into it. + pub fn new(blocks: &'a (impl Blocks + Sync), root: Cid) -> Self { + Self { + root: Node { + cid: Some(root), + stub: true, + ..Default::default() + }, + blocks, + } } /// Invert one operation. @@ -137,16 +141,12 @@ impl Tree { /// Fails with [`InvertError::OpMismatch`] if the tree does not hold what /// the operation says it should, which means the commit is not internally /// consistent. - /// - /// Inverting several operations is order-sensitive in what blocks it needs, - /// though not in what root it produces — see [`crate::invert_ops`], which - /// orders them for you. pub fn invert(&mut self, op: &Op) -> Result<(), InvertError> { let key = op.key(); let found = match op { - Op::Create { key, .. } => self.root.remove(key.as_bytes(), FROM_KEY), + Op::Create { key, .. } => self.root.remove_root(self.blocks, key.as_bytes()), Op::Update { key, prev, .. } | Op::Delete { key, prev } => { - self.root.insert(key.as_bytes(), *prev, FROM_KEY) + self.root.insert_root(self.blocks, key.as_bytes(), *prev) } } .map_err(|err| with_key(err, key))?; @@ -187,6 +187,12 @@ impl Tree { } } +impl std::fmt::Debug for Tree<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Tree").field("root", &self.root).finish() + } +} + fn with_key(err: InvertError, key: &Key) -> InvertError { match err { InvertError::MissingBlock { missing } => InvertError::ProofIncomplete { @@ -198,59 +204,86 @@ fn with_key(err: InvertError, key: &Key) -> InvertError { } impl Node { - fn load(blocks: &impl Blocks, cid: Cid, depth: u8) -> Result, InvertError> { - if depth > MAX_LAYER { - return Err(InvertError::TooDeep { limit: MAX_LAYER }); - } - let Some(block) = blocks.get(&cid) else { - return Ok(None); - }; - let data: NodeData = - dasl::drisl::from_slice(block).map_err(|e| InvertError::Decode { - cid, - detail: e.to_string(), - })?; - let mut node = decode(data, cid)?; + /// Decode a subtree, taking `expected` as its layer if it has no keys of + /// its own to say. A node covering a range whose keys all sit further down + /// is leafless and legitimate, and only its parent knows where it belongs. + fn decode_at(blocks: Source<'_>, cid: Cid, expected: u8) -> Result { + let (entries, layer) = read(blocks, cid)?; + Ok(Node { + entries, + layer: layer.unwrap_or(expected), + dirty: false, + cid: Some(cid), + stub: false, + }) + } - for entry in &mut node.entries { - let Entry::Child { - cid: Some(cid), - node: slot, - } = entry - else { - continue; - }; - if let Some(child) = Node::load(blocks, *cid, depth + 1)? { - if node.layer == UNKNOWN_LAYER && child.layer != UNKNOWN_LAYER { - node.layer = child.layer + 1; - } - *slot = Some(child); + /// Decode a root. + /// + /// A root has no parent to say what layer it is, and it does not need one: + /// the root's layer *is* the highest layer any key in the tree reaches, so + /// a non-empty tree's root always holds at least one of those keys. A + /// leafless root would be claiming a layer with nothing at it, which is + /// what `trim` exists to prevent. + fn decode_root(blocks: Source<'_>, cid: Cid) -> Result { + let (entries, layer) = read(blocks, cid)?; + let layer = match layer { + Some(layer) => layer, + None if entries.is_empty() => 0, // the empty tree, and only it + None => { + return Err(InvertError::MalformedNode { + cid: Some(cid), + detail: NodeFault::NoLeaves, + }); } - } - Ok(Some(node)) + }; + Ok(Node { + entries, + layer, + dirty: false, + cid: Some(cid), + stub: false, + }) } - /// Give a layer to any node that had no leaf to derive one from. - fn resolve_layers(&mut self) { - if self.layer <= 0 { - return; + /// Decode this node's own block, if it is still just a pointer. + /// + /// Only ever called on the root: every other node is decoded through its + /// parent, which knows what layer to expect. + fn wake(&mut self, blocks: Source<'_>) -> Result<(), InvertError> { + if !self.stub { + return Ok(()); } - for entry in &mut self.entries { - if let Entry::Child { - node: Some(child), .. - } = entry - { - if child.layer == UNKNOWN_LAYER { - child.layer = self.layer - 1; - } - child.resolve_layers(); - } + *self = Node::decode_root(blocks, own_cid(self.cid)?)?; + Ok(()) + } + + fn check_below(&self, parent: u8) -> Result<(), InvertError> { + // an unread pointer has nothing to check yet; whoever wakes it will + if self.stub || self.layer < parent { + return Ok(()); } + Err(InvertError::MalformedNode { + cid: self.cid, + detail: NodeFault::SubtreeNotBelow { + parent, + child: self.layer, + }, + }) + } + + /// The layer this node's subtrees sit at or below. + fn below(&self) -> Result { + self.layer.checked_sub(1).ok_or(InvertError::MalformedNode { + cid: self.cid, + detail: NodeFault::SubtreeAtLeafLayer, + }) } fn rehash(&mut self) -> Result { if self.stub { - return Err(missing(self.cid)); + // untouched, so its stored CID is still the answer + return own_cid(self.cid); } for entry in &mut self.entries { if let Entry::Child { @@ -268,22 +301,31 @@ impl Node { Ok(cid) } + /// Put `value` at `key` in the tree this node roots. + fn insert_root( + &mut self, + blocks: Source<'_>, + key: &[u8], + value: Cid, + ) -> Result, InvertError> { + self.insert(blocks, key, value, layer_of(key)) + } + /// Put `value` at `key`, returning whatever was there before. - fn insert(&mut self, key: &[u8], value: Cid, layer: i16) -> Result, InvertError> { - if self.stub { - return Err(missing(self.cid)); - } - let layer = if layer == FROM_KEY { - i16::from(layer_of(key)) - } else { - layer - }; + fn insert( + &mut self, + blocks: Source<'_>, + key: &[u8], + value: Cid, + layer: u8, + ) -> Result, InvertError> { + self.wake(blocks)?; if layer > self.layer { - return self.insert_above(key, value, layer); + return self.insert_above(blocks, key, value, layer); } if layer < self.layer { - return self.insert_below(key, value, layer); + return self.insert_below(blocks, key, value, layer); } if let Some(idx) = self.find_leaf(key) { @@ -300,7 +342,7 @@ impl Node { return Ok(Some(prev)); } - let (idx, splits) = self.find_slot(key)?; + let (idx, splits) = self.find_slot(blocks, key)?; self.dirty = true; let leaf = Entry::Leaf { key: key.into(), @@ -312,27 +354,22 @@ impl Node { } // the key lands inside the subtree at `idx`, which has to come apart - let Entry::Child { node, .. } = &mut self.entries[idx] else { - return Err(InvertError::Encode { - detail: "find_slot marked a leaf as splitting".into(), - }); - }; - let (left, right) = node.take().ok_or_else(|| missing(None))?.split(key)?; + let parent = self.layer; + let child = self.entries.remove(idx).into_child(blocks, parent)?; + let (left, right) = child.split(blocks, key)?; self.entries - .splice(idx..=idx, [child_of(left), leaf, child_of(right)]); + .splice(idx..idx, [child_of(left), leaf, child_of(right)]); Ok(None) } /// The key belongs at a higher layer than this node: grow upwards. fn insert_above( &mut self, + blocks: Source<'_>, key: &[u8], value: Cid, - layer: i16, + layer: u8, ) -> Result, InvertError> { - if layer > i16::from(MAX_LAYER) { - return Err(InvertError::TooDeep { limit: MAX_LAYER }); - } if self.entries.is_empty() { // nothing to carry up, so this node just *is* the new layer *self = Node { @@ -349,26 +386,28 @@ impl Node { mem::swap(self, &mut below); self.entries.push(child_of(below)); } - self.insert(key, value, layer) + self.insert(blocks, key, value, layer) } /// The key belongs at a lower layer: descend, making a child if needed. fn insert_below( &mut self, + blocks: Source<'_>, key: &[u8], value: Cid, - layer: i16, + layer: u8, ) -> Result, InvertError> { + let parent = self.layer; if let Some(idx) = self.find_covering_child(key) { - let child = self.entries[idx].child_mut()?; - let prev = child.insert(key, value, layer)?; + let child = self.entries[idx].child_mut(blocks, parent)?; + let prev = child.insert(blocks, key, value, layer)?; if prev != Some(value) { self.dirty = true; } return Ok(prev); } - let (idx, splits) = self.find_slot(key)?; + let (idx, splits) = self.find_slot(blocks, key)?; if splits { return Err(InvertError::Encode { detail: "a key below this layer cannot split a sibling subtree".into(), @@ -376,35 +415,40 @@ impl Node { } self.dirty = true; let mut child = Node { - layer: self.layer - 1, + layer: self.below()?, dirty: true, ..Default::default() }; - child.insert(key, value, layer)?; + child.insert(blocks, key, value, layer)?; self.entries.insert(idx, child_of(child)); Ok(None) } - /// Take `key` out, returning what it held. + /// Take `key` out of the tree this node roots, returning what it held. /// - /// `layer == FROM_KEY` marks the call as being at the root, which is the - /// only place allowed to reshape the top of the tree. - fn remove(&mut self, key: &[u8], layer: i16) -> Result, InvertError> { - if self.stub { - return Err(missing(self.cid)); + /// Only the root may reshape the top of the tree, which is why this is + /// separate from the recursive form. + fn remove_root(&mut self, blocks: Source<'_>, key: &[u8]) -> Result, InvertError> { + let removed = self.remove(blocks, key, layer_of(key))?; + if removed.is_some() { + self.trim(blocks)?; } - let at_root = layer == FROM_KEY; - let layer = if at_root { - i16::from(layer_of(key)) - } else { - layer - }; + Ok(removed) + } + + fn remove( + &mut self, + blocks: Source<'_>, + key: &[u8], + layer: u8, + ) -> Result, InvertError> { + self.wake(blocks)?; if layer > self.layer { return Ok(None); // the key would sit above this tree, so it is absent } if layer < self.layer { - return self.remove_below(key, layer); + return self.remove_below(blocks, key, layer); } let Some(idx) = self.find_leaf(key) else { @@ -419,6 +463,7 @@ impl Node { // a leaf sitting between two subtrees was the only thing separating // them, so they become one + let parent = self.layer; if idx > 0 && idx + 1 < self.entries.len() && self.entries[idx - 1].is_child() @@ -430,29 +475,32 @@ impl Node { detail: "drained fewer entries than the range covers".into(), })?; drop(drained); + let right = right.into_child(blocks, parent)?; self.entries[idx - 1] - .child_mut()? - .merge(right.into_child()?)?; + .child_mut(blocks, parent)? + .merge(blocks, right)?; } else { self.entries.remove(idx); } - - if at_root { - self.trim(); - } Ok(Some(prev)) } - fn remove_below(&mut self, key: &[u8], layer: i16) -> Result, InvertError> { + fn remove_below( + &mut self, + blocks: Source<'_>, + key: &[u8], + layer: u8, + ) -> Result, InvertError> { let Some(idx) = self.find_covering_child(key) else { return Ok(None); }; - let child = self.entries[idx].child_mut()?; - let Some(prev) = child.remove(key, layer)? else { + let parent = self.layer; + let child = self.entries[idx].child_mut(blocks, parent)?; + let Some(prev) = child.remove(blocks, key, layer)? else { return Ok(None); }; self.dirty = true; - if child.entries.is_empty() { + if child.entries.is_empty() && !child.stub { self.entries.remove(idx); } Ok(Some(prev)) @@ -465,31 +513,70 @@ impl Node { /// one it had, or the next insert will build beneath a layer that should /// not exist. Indigo and rsky-relay both leave that second case alone, and /// both compute the wrong root for it. - fn trim(&mut self) { + /// + /// The promoted pointer has to be decoded to know whether it needs + /// trimming in turn — a removal can collapse more than one layer. If its + /// block is absent we stop there and keep the pointer: nothing above it + /// survives to be re-encoded, so its stored CID is already the answer. + fn trim(&mut self, blocks: Source<'_>) -> Result<(), InvertError> { + // a node the loop is about to promote away may legitimately be + // leafless, so track the layer separately rather than parking a + // placeholder in the node itself + let mut layer = Some(self.layer); while self.entries.len() == 1 && self.entries[0].is_child() { let Entry::Child { cid, node } = self.entries.remove(0) else { - return; - }; - let layer = self.layer - 1; - *self = match node { - Some(child) => child, - // the proof stops here, but a bare pointer is a complete - // answer: we already know this subtree's CID - None => Node { - layer, - cid, - stub: true, - ..Default::default() - }, + return Err(InvertError::Encode { + detail: "entry claimed to be a subtree pointer and was not".into(), + }); }; + if let Some(child) = node { + layer = Some(child.layer); + *self = child; + continue; + } + let cid = own_cid(cid)?; + match read(blocks, cid) { + Ok((entries, found)) => { + layer = found; + *self = Node { + entries, + layer: found.unwrap_or_default(), + cid: Some(cid), + ..Default::default() + }; + } + Err(InvertError::MissingBlock { .. }) => { + *self = Node { + cid: Some(cid), + stub: true, + ..Default::default() + }; + return Ok(()); + } + Err(e) => return Err(e), + } } - if self.entries.is_empty() { + + match layer { + Some(layer) => self.layer = layer, + // the loop only stops on a node with a leaf, an empty one, or a + // malformed one with two subtrees side by side + None if self.entries.is_empty() => self.layer = 0, + None => { + return Err(InvertError::MalformedNode { + cid: self.cid, + detail: NodeFault::NoLeaves, + }); + } + } + if self.entries.is_empty() && !self.stub { self.layer = 0; } + Ok(()) } /// Absorb `other`, whose keys all sort after this node's. - fn merge(&mut self, other: Node) -> Result<(), InvertError> { + fn merge(&mut self, blocks: Source<'_>, other: Node) -> Result<(), InvertError> { let seam = self.entries.len(); self.dirty = true; self.cid = None; @@ -504,16 +591,17 @@ impl Node { && self.entries[seam - 1].is_child() && self.entries[seam].is_child() { - let right = self.entries.remove(seam); + let parent = self.layer; + let right = self.entries.remove(seam).into_child(blocks, parent)?; self.entries[seam - 1] - .child_mut()? - .merge(right.into_child()?)?; + .child_mut(blocks, parent)? + .merge(blocks, right)?; } Ok(()) } /// Break this node into the parts either side of `key`. - fn split(mut self, key: &[u8]) -> Result<(Node, Node), InvertError> { + fn split(mut self, blocks: Source<'_>, key: &[u8]) -> Result<(Node, Node), InvertError> { if self.entries.is_empty() { return Err(InvertError::MalformedNode { cid: self.cid, @@ -521,7 +609,7 @@ impl Node { }); } let layer = self.layer; - let (idx, splits) = self.find_slot(key)?; + let (idx, splits) = self.find_slot(blocks, key)?; if !splits { if idx == 0 || idx >= self.entries.len() { @@ -535,14 +623,10 @@ impl Node { // the key lands inside a subtree, so that has to split too let mut right = self.entries.split_off(idx); - let Entry::Child { node, .. } = &mut right[0] else { - return Err(InvertError::Encode { - detail: "find_slot marked a leaf as splitting".into(), - }); - }; - let (left_node, right_node) = node.take().ok_or_else(|| missing(None))?.split(key)?; + let child = right.remove(0).into_child(blocks, layer)?; + let (left_node, right_node) = child.split(blocks, key)?; self.entries.push(child_of(left_node)); - right[0] = child_of(right_node); + right.insert(0, child_of(right_node)); Ok((node_of(self.entries, layer), node_of(right, layer))) } @@ -579,12 +663,11 @@ impl Node { /// Where a new entry for `key` goes, and whether it lands inside the /// subtree already sitting there. - fn find_slot(&self, key: &[u8]) -> Result<(usize, bool), InvertError> { - if self.stub { - return Err(missing(self.cid)); - } - for (idx, entry) in self.entries.iter().enumerate() { - match entry { + fn find_slot(&mut self, blocks: Source<'_>, key: &[u8]) -> Result<(usize, bool), InvertError> { + self.wake(blocks)?; + let parent = self.layer; + for idx in 0..self.entries.len() { + match &self.entries[idx] { Entry::Leaf { key: leaf, .. } => { if key < leaf.as_ref() { return Ok((idx, false)); @@ -598,7 +681,10 @@ impl Node { { continue; } - match entry.child()?.covers(key)? { + let order = self.entries[idx] + .child_mut(blocks, parent)? + .covers(blocks, key)?; + match order { Ordering::Less => return Ok((idx, false)), Ordering::Equal => return Ok((idx, true)), Ordering::Greater => {} @@ -610,10 +696,9 @@ impl Node { } /// Whether `key` falls below, inside, or above this subtree's key range. - fn covers(&self, key: &[u8]) -> Result { - if self.stub { - return Err(missing(self.cid)); - } + fn covers(&mut self, blocks: Source<'_>, key: &[u8]) -> Result { + self.wake(blocks)?; + let parent = self.layer; let (Some(first), Some(last)) = (self.entries.first(), self.entries.last()) else { return Err(InvertError::MalformedNode { cid: self.cid, @@ -630,8 +715,8 @@ impl Node { { return Ok(Ordering::Greater); } - for (idx, entry) in self.entries.iter().enumerate() { - match entry { + for idx in 0..self.entries.len() { + match &self.entries[idx] { Entry::Leaf { key: leaf, .. } => { if key < leaf.as_ref() { return Ok(Ordering::Equal); @@ -644,7 +729,10 @@ impl Node { continue; } let last_slot = idx == self.entries.len() - 1; - return Ok(match entry.child()?.covers(key)? { + let order = self.entries[idx] + .child_mut(blocks, parent)? + .covers(blocks, key)?; + return Ok(match order { Ordering::Less if idx == 0 => Ordering::Less, Ordering::Greater if last_slot => Ordering::Greater, _ => Ordering::Equal, @@ -663,7 +751,7 @@ fn child_of(node: Node) -> Entry { } } -fn node_of(entries: Vec, layer: i16) -> Node { +fn node_of(entries: Vec, layer: u8) -> Node { Node { entries, layer, @@ -672,14 +760,29 @@ fn node_of(entries: Vec, layer: i16) -> Node { } } -/// Rebuild a node's entries from its wire form, expanding prefix compression. -fn decode(data: NodeData, cid: Cid) -> Result { +/// Rebuild a node's entries from its wire form, undoing prefix compression. +/// +/// A node's layer is the layer of its own keys, so it is not something a +/// producer gets to assert. A node with subtrees but no keys has no layer to +/// derive and is not something a canonical tree contains. +fn read(blocks: Source<'_>, cid: Cid) -> Result<(Vec, Option), InvertError> { + let block = blocks + .get(&cid) + .ok_or(InvertError::MissingBlock { missing: cid })?; + let data: NodeData = dasl::drisl::from_slice(block).map_err(|e| InvertError::Decode { + cid, + detail: e.to_string(), + })?; + decode(data, cid) +} + +fn decode(data: NodeData, cid: Cid) -> Result<(Vec, Option), InvertError> { let fault = |detail| InvertError::MalformedNode { cid: Some(cid), detail, }; - let mut layer = UNKNOWN_LAYER; + let mut layer = None; let mut entries = Vec::with_capacity(data.entries.len() * 2 + 1); if let Some(left) = data.left { entries.push(Entry::Child { @@ -708,9 +811,7 @@ fn decode(data: NodeData, cid: Cid) -> Result { let mut key = Vec::with_capacity(len); key.extend_from_slice(&prev[..entry.prefix_len]); key.extend_from_slice(&entry.key_suffix); - if layer == UNKNOWN_LAYER { - layer = i16::from(layer_of(&key)); - } + layer.get_or_insert_with(|| layer_of(&key)); prev.clear(); prev.extend_from_slice(&key); @@ -727,13 +828,7 @@ fn decode(data: NodeData, cid: Cid) -> Result { } } - Ok(Node { - entries, - layer, - dirty: false, - cid: Some(cid), - stub: false, - }) + Ok((entries, layer)) } /// Serialise a node back to canonical DAG-CBOR. @@ -774,11 +869,19 @@ fn encode(entries: &[Entry]) -> Result, InvertError> { }) } -/// Building trees forwards, which only the tests need: inversion is handed a -/// tree and takes it apart. Kept private so the crate's surface stays honest -/// about what it is for. +/// A tree built in memory needs no block source; nothing in it is ever a stub. +#[cfg(test)] +struct NoBlocks; + +#[cfg(test)] +impl Blocks for NoBlocks { + fn get(&self, _: &Cid) -> Option<&[u8]> { + None + } +} + #[cfg(test)] -impl Tree { +impl Tree<'static> { fn empty() -> Self { Self { root: Node { @@ -786,15 +889,16 @@ impl Tree { dirty: true, ..Default::default() }, + blocks: &NoBlocks, } } fn insert(&mut self, key: &str, value: Cid) -> Result, InvertError> { - self.root.insert(key.as_bytes(), value, FROM_KEY) + self.root.insert_root(self.blocks, key.as_bytes(), value) } fn remove(&mut self, key: &str) -> Result, InvertError> { - self.root.remove(key.as_bytes(), FROM_KEY) + self.root.remove_root(self.blocks, key.as_bytes()) } /// Every node in the tree, encoded, as inversion would need to read them. @@ -996,11 +1100,78 @@ mod tests { ); } + /// Counts how many blocks a traversal actually asks for. + struct Counting<'a> { + inner: &'a HashMap>, + reads: std::sync::atomic::AtomicUsize, + } + + impl Blocks for Counting<'_> { + fn get(&self, cid: &Cid) -> Option<&[u8]> { + self.reads + .fetch_add(1, std::sync::atomic::Ordering::Relaxed); + self.inner.get(cid).map(Vec::as_slice) + } + } + + /// A producer may send its whole tree instead of the minimal proof, and + /// extra blocks in a diff are legal. Decoding all of them to then walk + /// eight is work we must not be made to do: one operation should read a + /// path's worth of nodes, not a repo's worth. + #[test] + fn one_op_reads_a_paths_worth_of_nodes() { + let leaf = cid("leaf"); + let keys: Vec = (0..1000) + .map(|i| format!("app.bsky.feed.post/3l{i:013}")) + .collect(); + + let mut before = Tree::empty(); + for key in &keys { + before.insert(key, leaf).expect("insert"); + } + let root_before = before.root().expect("root"); + + let added = "app.bsky.feed.post/3lzzzzzzzzzzzzz"; + let mut after = Tree::empty(); + for key in &keys { + after.insert(key, leaf).expect("insert"); + } + after.insert(added, leaf).expect("insert"); + let root_after = after.root().expect("root"); + + // the whole tree, not the covering proof + let blocks = after.blocks().expect("blocks"); + assert!(blocks.len() > 200, "test tree too small: {}", blocks.len()); + + let counting = Counting { + inner: &blocks, + reads: std::sync::atomic::AtomicUsize::new(0), + }; + let ops = vec![Op::Create { + key: Key::new(added).expect("key"), + cid: leaf, + }]; + assert_eq!( + invert_ops(&counting, root_after, &ops, OpOrder::AsGiven).expect("invert"), + root_before + ); + + let reads = counting.reads.load(std::sync::atomic::Ordering::Relaxed); + assert!( + reads < 32, + "read {reads} blocks out of {} to invert one op", + blocks.len() + ); + } + #[test] fn a_commit_that_changed_nothing_needs_no_blocks() { let root = cid("some root"); let blocks: HashMap> = HashMap::new(); - assert_eq!(invert_ops(&blocks, root, &[], OpOrder::AsGiven).expect("invert"), root); + assert_eq!( + invert_ops(&blocks, root, &[], OpOrder::AsGiven).expect("invert"), + root + ); } #[test] @@ -1085,8 +1256,11 @@ mod tests { keys.dedup(); let value = |n: u64| cid(&format!("record {n}")); - let mut state: Vec<(String, Cid)> = - keys.iter().cloned().map(|k| (k, value(rng.next()))).collect(); + let mut state: Vec<(String, Cid)> = keys + .iter() + .cloned() + .map(|k| (k, value(rng.next()))) + .collect(); let mut before = Tree::empty(); for (key, cid) in &state { @@ -1101,7 +1275,8 @@ mod tests { let choice = if state.is_empty() { 0 } else { rng.below(3) }; match choice { 0 => { - let key = format!("app.bsky.feed.post/3l{:013}", rng.next() % 1_000_000_000); + let key = + format!("app.bsky.feed.post/3l{:013}", rng.next() % 1_000_000_000); if touched.contains(&key) || state.iter().any(|(k, _)| *k == key) { continue; } diff --git a/hubble-commit/tests/firehose_corpus.rs b/hubble-commit/tests/firehose_corpus.rs index ce38f07..3541f00 100644 --- a/hubble-commit/tests/firehose_corpus.rs +++ b/hubble-commit/tests/firehose_corpus.rs @@ -55,7 +55,9 @@ impl Record { self.blocks .iter() .map(|b| { - let bytes = BASE64.decode(b.as_bytes()).expect("fixture block is base64"); + let bytes = BASE64 + .decode(b.as_bytes()) + .expect("fixture block is base64"); (Cid::digest_sha2(Codec::Drisl, &bytes), bytes) }) .collect() diff --git a/hubble-commit/tests/mst_diff_suite.rs b/hubble-commit/tests/mst_diff_suite.rs index 6489a6b..b53ba4f 100644 --- a/hubble-commit/tests/mst_diff_suite.rs +++ b/hubble-commit/tests/mst_diff_suite.rs @@ -96,7 +96,12 @@ fn run_case(case_path: &Path, suite_root: &Path) -> Result<(), String> { let (root_a, blocks_a) = read_car(&resolve(suite_root, &case.inputs.mst_a))?; let (root_b, blocks_b) = read_car(&resolve(suite_root, &case.inputs.mst_b))?; - let ops: Result, String> = case.results.record_ops.iter().map(RecordOp::to_op).collect(); + let ops: Result, String> = case + .results + .record_ops + .iter() + .map(RecordOp::to_op) + .collect(); // deliberately left in the suite's own order let ops = ops?; @@ -105,7 +110,11 @@ fn run_case(case_path: &Path, suite_root: &Path) -> Result<(), String> { let mut all = blocks_b.clone(); all.extend(blocks_a); let got = invert_ops(&all, root_b, &ops, OpOrder::AsGiven).map_err(|e| { - format!("{}: inverting {} ops failed: {e}", case.description, ops.len()) + format!( + "{}: inverting {} ops failed: {e}", + case.description, + ops.len() + ) })?; if got != root_a { return Err(format!( diff --git a/hubble-sync/Cargo.toml b/hubble-sync/Cargo.toml index b08bd1b..c615bf9 100644 --- a/hubble-sync/Cargo.toml +++ b/hubble-sync/Cargo.toml @@ -15,7 +15,6 @@ hubble-commit = { workspace = true } jacquard-api = { workspace = true, features = ["streaming"] } jacquard-common = { workspace = true, features = ["streaming"] } jacquard-identity = { workspace = true } -jacquard-repo = { workspace = true } k256 = { workspace = true } metrics = { workspace = true } multibase = { workspace = true } diff --git a/hubble-sync/src/commit/commit_object.rs b/hubble-sync/src/commit/commit_object.rs index 2840444..73b1685 100644 --- a/hubble-sync/src/commit/commit_object.rs +++ b/hubble-sync/src/commit/commit_object.rs @@ -1,7 +1,5 @@ use dasl::drisl; -use jacquard_common::BosStr; use jacquard_common::types::cid::IpldCid; -use jacquard_repo::commit::Commit as JacqCommit; use repo_stream::Commit as RSCommit; use serde::Serialize; @@ -95,29 +93,6 @@ impl TryFrom<&RSCommit> for CommitObject { } } -impl TryFrom> for CommitObject { - type Error = CommitConvertError; - fn try_from(jac: JacqCommit) -> Result { - let did = Did::raw(jac.did.as_str()); - let data = DaslCid::from_bytes_raw(&jac.data.to_bytes()) - .map_err(|_| CommitConvertError::BadCid("data"))?; - let rev = jac.rev.into(); - let prev = jac - .prev - .map(|t| DaslCid::from_bytes_raw(&t.to_bytes())) - .transpose() - .map_err(|_| CommitConvertError::BadCid("prev"))?; - let sig = jac.sig.to_vec(); - Ok(Self { - did, - data, - rev, - prev, - sig, - }) - } -} - /// the commit representation that gets signed /// /// `sig` is absent, gets dag-cbor (drisl)-encoded diff --git a/hubble-sync/src/firehose/event_validation.rs b/hubble-sync/src/firehose/event_validation.rs index 3876121..1466d3c 100644 --- a/hubble-sync/src/firehose/event_validation.rs +++ b/hubble-sync/src/firehose/event_validation.rs @@ -4,17 +4,16 @@ use std::time::Instant; use bytes::Bytes; use dasl::drisl; +use hubble_commit::{ + BlockError, CarError, CarReader, InvertError, Key, Op as InvertOp, Tree, verify_block, +}; use jacquard_api::com_atproto::sync::subscribe_repos::{ - Commit as JacquardCommit, RepoOpAction, Sync as JacquardSync, + Commit as JacquardCommit, RepoOp, RepoOpAction, Sync as JacquardSync, }; -use jacquard_common::types::cid::IpldCid; -use jacquard_repo::RepoError; -use jacquard_repo::car::{parse_car_bytes, reader::ParsedCar}; -use jacquard_repo::commit::firehose::to_invertible_op; -use jacquard_repo::mst::{Mst, tree::VerifiedWriteOp}; -use jacquard_repo::storage::MemoryBlockStore; +use jacquard_common::types::cid::{CidLink, IpldCid}; use metrics::histogram; -use repo_stream::{CidMismatch, Commit as RSCommit, verify_block_cid}; +use repo_stream::Commit as RSCommit; +use tokio::task::coop::consume_budget; use crate::commit::{CommitConvertError, CommitObject, Op, OpKind}; use crate::metrics::COMMIT_PREVALIDATE_SECONDS; @@ -29,12 +28,16 @@ pub enum FirehoseValidationError { CarTooBig { limit: usize, got: usize }, #[error("Record too big for firehose limit of {limit}: {got}")] RecordTooBig { limit: usize, got: usize }, - #[error("Missing record link for op: {action} {path:?}")] - MissingRecordLink { action: RepoOpAction, path: String }, + #[error("op missing its {field} field: {action} {path:?}")] + MissingOpField { + action: RepoOpAction, + path: String, + field: &'static str, + }, + #[error("op has an invalid record path {path:?}: {detail}")] + BadOpPath { path: String, detail: String }, #[error("Missing record block for {action} op: {cid:?}")] MissingRecordBlock { action: RepoOpAction, cid: String }, - #[error("failed to invert an op: {action} {path:?}")] - FailedToInvert { action: RepoOpAction, path: String }, #[error("prevData mismatch after operation inversion")] PrevDataMismatch { claimed_prev_data: String, @@ -44,8 +47,14 @@ pub enum FirehoseValidationError { DidMismatch { claimed: String, in_commit: String }, #[error("Tid mismatch")] TidMismatch { claimed: String, in_commit: String }, - #[error("CID mismatch")] - CidMismatch(#[from] Box), + #[error("CAR root {root} is not the event's commit link {commit}")] + RootNotCommit { root: DaslCid, commit: DaslCid }, + #[error("CAR: {0}")] + Car(#[from] CarError), + #[error("block: {0}")] + Block(#[from] BlockError), + #[error("operation inversion: {0}")] + Invert(#[from] InvertError), #[error("commit convert: {0}")] CommitConvert(#[from] CommitConvertError), #[error("missing commit block at {0}")] @@ -54,8 +63,6 @@ pub enum FirehoseValidationError { BadCommitBlock(String), #[error("missing prevData field from firehose commit")] MissingPrevData, - #[error("jacquard repo error: {0}")] - RepoError(#[from] RepoError), #[error("invalid CID at {0}")] BadCid(&'static str), #[error("invalid Tid: {0}")] @@ -79,6 +86,108 @@ pub struct FirehoseCommit { pub blocks: HashMap, } +/// Parse a firehose CAR, checking every block against the CID it arrived under. +/// +/// Blocks are returned as `Bytes` views into `car` rather than copies, so this +/// is also the map the commit view hands to consumers: built once, shared. +async fn parse_car( + car: &Bytes, +) -> Result<(DaslCid, HashMap), FirehoseValidationError> { + let reader = CarReader::new(car)?; + let root = reader.root(); + let mut blocks = HashMap::new(); + for block in reader { + // hashing a block is O(its size), and the spec allows 1MB of it, so + // this is a chunk boundary. `consume_budget` returns immediately + // unless the task has actually used its allowance, so the small + // commits that make up essentially all traffic never yield here. + consume_budget().await; + let (cid, bytes) = block?; + // max record size over firehose is 1MB + if bytes.len() > RECORD_SIZE_LIMIT { + return Err(FirehoseValidationError::RecordTooBig { + limit: RECORD_SIZE_LIMIT, + got: bytes.len(), + }); + } + verify_block(&cid, bytes)?; + blocks.insert(cid, car.slice_ref(bytes)); + } + Ok((root, blocks)) +} + +fn link_cid(link: &CidLink, source: &'static str) -> Result { + let ipld = link + .to_ipld() + .map_err(|_| FirehoseValidationError::BadCid(source))?; + to_dasl_cid(ipld, source) +} + +/// One firehose op in both the shapes we need: what inversion consumes, and +/// what the commit view hands to consumers. +fn convert_op(op: &RepoOp) -> Result<(InvertOp, Op), FirehoseValidationError> { + let missing = |field| FirehoseValidationError::MissingOpField { + action: op.action.clone(), + path: op.path.to_string(), + field, + }; + let path: &str = op.path.as_ref(); + let key = Key::new(path).map_err(|e| FirehoseValidationError::BadOpPath { + path: path.to_string(), + detail: e.to_string(), + })?; + let view_path: Arc = path.into(); + + let cid = |field| -> Result { + link_cid(op.cid.as_ref().ok_or_else(|| missing(field))?, "ops[].cid") + }; + let prev = |field| -> Result { + link_cid( + op.prev.as_ref().ok_or_else(|| missing(field))?, + "ops[].prev", + ) + }; + + Ok(match op.action { + RepoOpAction::Create => { + let cid = cid("cid")?; + ( + InvertOp::Create { key, cid }, + Op { + path: view_path, + kind: OpKind::Create { cid }, + }, + ) + } + RepoOpAction::Update => { + let (cid, prev) = (cid("cid")?, prev("prev")?); + ( + InvertOp::Update { key, cid, prev }, + Op { + path: view_path, + kind: OpKind::Update { cid, prev }, + }, + ) + } + RepoOpAction::Delete => { + let prev = prev("prev")?; + ( + InvertOp::Delete { key, prev }, + Op { + path: view_path, + kind: OpKind::Delete { prev }, + }, + ) + } + RepoOpAction::Other(ref action) => { + return Err(FirehoseValidationError::BadOpPath { + path: path.to_string(), + detail: format!("unknown action {action}"), + }); + } + }) +} + impl FirehoseSync { /// Apply firehose sync event valiation, which isn't in the spec (yet?) /// @@ -96,9 +205,11 @@ impl FirehoseSync { }); } - let rs_commit = repo_stream::DriverBuilder::new() - .load_commit(&*s.blocks) - .await + let (root, blocks) = parse_car(&s.blocks).await?; + let commit_block = blocks + .get(&root) + .ok_or_else(|| FirehoseValidationError::MissingCommitBlock(root.to_string()))?; + let rs_commit = drisl::from_slice::(commit_block) .map_err(|e| FirehoseValidationError::BadCommitBlock(e.to_string()))?; let commit: CommitObject = (&rs_commit).try_into()?; @@ -158,55 +269,37 @@ impl FirehoseCommit { // (keep an eye on the time this takes bc all commits serialize through) let invert_start = Instant::now(); - // jacquard's parse only verifies the actual raw car structure - let ParsedCar { root, blocks } = parse_car_bytes(&c.blocks).await?; - - // aditional integrity checks: assert size, CIDs against block bytes - for (cid, block) in &blocks { - // max record size over firehose is 1MB - if block.len() > RECORD_SIZE_LIMIT { - return Err(FirehoseValidationError::RecordTooBig { - limit: RECORD_SIZE_LIMIT, - got: block.len(), - }); - } - // jacquard doesn't assert CIDs against actual block bytes (and - // iroh-car underneath does not either) - verify_block_cid(cid, block)?; - } + let (root, blocks) = parse_car(&c.blocks).await?; // parse the Commit object to ensure its structure is valid. // NOTE: we're not currently validating MST node structures. they should // surface in step 3. let commit_block = blocks .get(&root) - .ok_or(FirehoseValidationError::MissingCommitBlock( - root.to_string(), - ))?; + .ok_or_else(|| FirehoseValidationError::MissingCommitBlock(root.to_string()))?; // this is a bit silly -- we should derive Deserialize on our CommitObject let rs_commit = drisl::from_slice::(commit_block) .map_err(|e| FirehoseValidationError::BadCommitBlock(e.to_string()))?; let commit: CommitObject = (&rs_commit).try_into()?; + let mut invertible = Vec::with_capacity(c.ops.len()); + let mut view_ops = Vec::with_capacity(c.ops.len()); + for op in c.ops.iter() { + let (invert, view) = convert_op(op)?; + invertible.push(invert); + view_ops.push(view); + } + // make sure all record blocks for created/updated ops are present - for op in c - .ops - .iter() - .filter(|o| matches!(o.action, RepoOpAction::Create | RepoOpAction::Update)) - { - let link = op - .cid - .as_ref() - .ok_or(FirehoseValidationError::MissingRecordLink { - action: op.action.clone(), - path: op.path.to_string(), - })? - .to_ipld() - .map_err(|_| FirehoseValidationError::BadCid("#commit.ops[].cid"))?; - if !blocks.contains_key(&link) { + for (op, view) in c.ops.iter().zip(&view_ops) { + if matches!(view.kind, OpKind::Delete { .. }) { + continue; + } + let cid = view.cid(); + if !blocks.contains_key(&cid) { return Err(FirehoseValidationError::MissingRecordBlock { action: op.action.clone(), - cid: format!("{:?}", link), + cid: cid.to_string(), }); } } @@ -214,17 +307,12 @@ impl FirehoseCommit { // 2.5 bonus checks: // - avoid confusion between CAR root link and firehose-commit event's // `commit` link: they must be the same. - let commit_link = c - .commit - .to_ipld() - .map_err(|_| FirehoseValidationError::BadCid("#commit.commit"))?; + let commit_link = link_cid(&c.commit, "#commit.commit")?; if root != commit_link { - return Err(FirehoseValidationError::CidMismatch(Box::new( - CidMismatch { - claimed: commit_link, - computed: root, - }, - ))); + return Err(FirehoseValidationError::RootNotCommit { + root, + commit: commit_link, + }); } // - make sure the commit object's DID matches the event's if commit.did != (&c.repo).into() { @@ -243,47 +331,22 @@ impl FirehoseCommit { // 3. apply operation inversion, matching against claimed `prevData` - // claimed prevData setup - let claimed_prev_data = c + let prev_link = c .prev_data .as_ref() - .ok_or(FirehoseValidationError::MissingPrevData)? - .to_ipld() - .map_err(|_| FirehoseValidationError::BadCid("#commit.prevData"))?; - - // stash a hubble-sync style copy of the map for later - let view_blocks: HashMap = blocks - .iter() - .map(|(ipld, b)| Ok((to_dasl_cid(*ipld, "blocks")?, b.clone()))) - .collect::>()?; - - // for now we use jacquard's memory store impl (CAR is size-bounded) - let store = Arc::new(MemoryBlockStore::new_from_blocks(blocks)); - let mut mst = Mst::load(store, commit.data_ipld(), None); - - // stash for hubble-sync ops for the commit view later - let mut view_ops = Vec::with_capacity(c.ops.len()); - - for op in c.ops.iter() { - let invertible = to_invertible_op(op)?; + .ok_or(FirehoseValidationError::MissingPrevData)?; + let claimed_prev_data = link_cid(prev_link, "#commit.prevData")?; - // we convert from VerifiedWriteOps bc we can do that infallibly - let view_op = Op::try_from(&invertible)?; - - if !mst.invert_op(invertible).await? { - return Err(FirehoseValidationError::FailedToInvert { - action: op.action.clone(), - path: op.path.to_string(), - }); - } - - view_ops.push(view_op); + let mut tree = Tree::new(&blocks, commit.data); + for op in &invertible { + tree.invert(op)?; + consume_budget().await; } - let computed_prev_root = mst.get_pointer().await?; - if computed_prev_root != claimed_prev_data { + let computed = tree.root()?; + if computed != claimed_prev_data { return Err(FirehoseValidationError::PrevDataMismatch { - claimed_prev_data: format!("{:?}", claimed_prev_data), - computed: format!("{}", computed_prev_root), + claimed_prev_data: claimed_prev_data.to_string(), + computed: computed.to_string(), }); } @@ -294,16 +357,14 @@ impl FirehoseCommit { let data = commit.data; - let prev = to_dasl_cid(claimed_prev_data, "prevData")?; - Ok(Self { commit, data, - prev, + prev: claimed_prev_data, rev: c.rev.into(), ops: view_ops, since: c.since.map(Into::into), - blocks: view_blocks, + blocks, }) } } @@ -311,30 +372,3 @@ impl FirehoseCommit { fn to_dasl_cid(ipld: IpldCid, source: &'static str) -> Result { DaslCid::from_bytes_raw(&ipld.to_bytes()).map_err(|_| FirehoseValidationError::BadCid(source)) } - -impl TryFrom<&VerifiedWriteOp> for Op { - type Error = FirehoseValidationError; - fn try_from(r: &VerifiedWriteOp) -> Result { - Ok(match r { - VerifiedWriteOp::Create { key, cid } => Op { - path: key.as_str().into(), - kind: OpKind::Create { - cid: to_dasl_cid(*cid, "ops")?, - }, - }, - VerifiedWriteOp::Update { key, cid, prev } => Op { - path: key.as_str().into(), - kind: OpKind::Update { - cid: to_dasl_cid(*cid, "ops")?, - prev: to_dasl_cid(*prev, "ops")?, - }, - }, - VerifiedWriteOp::Delete { key, prev } => Op { - path: key.as_str().into(), - kind: OpKind::Delete { - prev: to_dasl_cid(*prev, "ops")?, - }, - }, - }) - } -} diff --git a/hubble-sync/src/lib.rs b/hubble-sync/src/lib.rs index 1b849b1..315bbb2 100644 --- a/hubble-sync/src/lib.rs +++ b/hubble-sync/src/lib.rs @@ -25,13 +25,14 @@ use host::Hostname; // public re-exports (TODO: needs cleaning up) -pub use hubble_commit::{Cid as DaslCid, CidParseError}; // vendored there until dasl releases pub use commit::{Commit, CommitObject, Op, OpKind}; pub use config::{DeepCrawl, SensitiveToken, SyncConfig, SyncScope, UpstreamConfig, UpstreamKind}; pub use firehose::{ - FirehoseAck, FirehoseConfig, FirehoseError, FirehoseEvent, FirehosePayload, FirehoseSubscriber, + FirehoseAck, FirehoseCommit, FirehoseConfig, FirehoseError, FirehoseEvent, FirehosePayload, + FirehoseSubscriber, FirehoseSync, FirehoseValidationError, }; pub use host::{Host, HostRegistry, HostRegistryConfig, HostRequestError, Sync11State}; +pub use hubble_commit::{Cid as DaslCid, CidParseError}; // vendored there until dasl releases pub use hubble_sync::{HubbleSync, HubbleSyncError}; pub use identity::{Did, DidMethod, HubbleSyncResolver, Resolve, SignatureError, SigningKey, did}; pub use metrics::{ -- knotmirror 0.0.1