]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Improve Huffman sorting algorithm 2732/head
authorsenhuang42 <senhuang96@fb.com>
Thu, 8 Jul 2021 19:48:57 +0000 (15:48 -0400)
committersenhuang42 <senhuang96@fb.com>
Wed, 4 Aug 2021 16:43:34 +0000 (12:43 -0400)
lib/common/huf.h
lib/compress/huf_compress.c
tests/regression/results.csv

index 2f2bf4b7f63ef14d5e247154ff1c444cf725a4c2..a3ae06e4d7abbe2af2a8159b2293c1dc9f796fce 100644 (file)
@@ -90,7 +90,7 @@ HUF_PUBLIC_API size_t HUF_compress2 (void* dst, size_t dstCapacity,
 /** HUF_compress4X_wksp() :
  *  Same as HUF_compress2(), but uses externally allocated `workSpace`.
  * `workspace` must be at least as large as HUF_WORKSPACE_SIZE */
-#define HUF_WORKSPACE_SIZE ((8 << 10) + 256)
+#define HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */)
 #define HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64))
 HUF_PUBLIC_API size_t HUF_compress4X_wksp (void* dst, size_t dstCapacity,
                                      const void* src, size_t srcSize,
index 8529a4b0bafe8aa06d72d5e92eab188bb7fb539d..67b7ef956fc208974cdaf6a1f41926268fa65680 100644 (file)
@@ -428,22 +428,122 @@ static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxNbBits)
 }
 
 typedef struct {
-    U32 base;
-    U32 curr;
+    U16 base;
+    U16 curr;
 } rankPos;
 
 typedef nodeElt huffNodeTable[HUF_CTABLE_WORKSPACE_SIZE_U32];
 
-#define RANK_POSITION_TABLE_SIZE 32
+/* Number of buckets available for HUF_sort() */
+#define RANK_POSITION_TABLE_SIZE 128
 
 typedef struct {
   huffNodeTable huffNodeTbl;
   rankPos rankPosition[RANK_POSITION_TABLE_SIZE];
 } HUF_buildCTable_wksp_tables;
 
+/* RANK_POSITION_DISTINCT_COUNT_CUTOFF == Cutoff point in HUF_sort() buckets for which we use log2 bucketing.
+ * Strategy is to use as many buckets as possible for representing distinct
+ * counts while using the remainder to represent all counts up to HUF_BLOCKSIZE_MAX
+ * using log2 bucketing.
+ * 
+ * To satisfy this requirement for 128 buckets, we can do the following:
+ * Let buckets 0-114 represent distinct counts of [0, 114]
+ * Let buckets 115 to 126 represent counts of [115, HUF_BLOCKSIZE_MAX]. (the final bucket 127 must remain empty)
+ * 
+ * Note that we don't actually need 17 buckets (assuming 2^17 maxcount) for log2 bucketing since
+ * the first few buckets in the log2 bucketing representation are already covered by the distinct count bucketing.
+ */
+#define RANK_POSITION_LOG_BUCKETS_BEGIN (RANK_POSITION_TABLE_SIZE - 1) - BIT_highbit32(HUF_BLOCKSIZE_MAX) - 1
+#define RANK_POSITION_DISTINCT_COUNT_CUTOFF RANK_POSITION_LOG_BUCKETS_BEGIN + BIT_highbit32(RANK_POSITION_LOG_BUCKETS_BEGIN)
+
+/* Return the appropriate bucket index for a given count. See definition of
+ * RANK_POSITION_DISTINCT_COUNT_CUTOFF for explanation of bucketing strategy.
+ */
+static U32 HUF_getIndex(U32 const count) {
+    return (count < RANK_POSITION_DISTINCT_COUNT_CUTOFF)
+        ? count
+        : BIT_highbit32(count) + RANK_POSITION_LOG_BUCKETS_BEGIN;
+}
+
+/* Helper swap function for HUF_quickSortPartition() */
+static void HUF_swapNodes(nodeElt* a, nodeElt* b) {
+       nodeElt tmp = *a;
+       *a = *b;
+       *b = tmp;
+}
+
+/* Returns 0 if the huffNode array is not sorted by descending count */
+UNUSED_ATTR
+static int HUF_isSorted(nodeElt huffNode[], U32 const maxSymbolValue1) {
+    U32 i;
+    for (i = 1; i < maxSymbolValue1; ++i) {
+        if (huffNode[i].count > huffNode[i-1].count) {
+            return 0;
+        }
+    }
+    return 1;
+}
+
+/* Insertion sort by descending order */
+HINT_INLINE void HUF_insertionSort(nodeElt huffNode[], int const low, int const high) {
+    int i;
+    int const size = high-low+1;
+    huffNode += low;
+    for (i = 1; i < size; ++i) {
+        nodeElt const key = huffNode[i];
+        int j = i - 1;
+        while (j >= 0 && huffNode[j].count < key.count) {
+            huffNode[j + 1] = huffNode[j];
+            j--;
+        }
+        huffNode[j + 1] = key;
+    }
+}
+
+/* Pivot helper function for quicksort. */
+static int HUF_quickSortPartition(nodeElt arr[], int const low, int const high) {
+    /* Simply select rightmost element as pivot. "Better" selectors like
+     * median-of-three don't experimentally appear to have any benefit.
+     */
+    U32 const pivot = arr[high].count;
+    int i = low - 1;
+    int j = low;
+    for ( ; j < high; j++) {
+        if (arr[j].count > pivot) {
+            i++;
+            HUF_swapNodes(&arr[i], &arr[j]);
+        }
+    }
+    HUF_swapNodes(&arr[i + 1], &arr[high]);
+    return i + 1;
+}
+
+/* Classic quicksort by descending with partially iterative calls
+ * to reduce worst case callstack size. 
+ */
+static void HUF_simpleQuickSort(nodeElt arr[], int low, int high) {
+    int const kInsertionSortThreshold = 8;
+    if (high - low < kInsertionSortThreshold) {
+        HUF_insertionSort(arr, low, high);
+        return;
+    }
+    while (low < high) {
+        int const idx = HUF_quickSortPartition(arr, low, high);
+        if (idx - low < high - idx) {
+            HUF_simpleQuickSort(arr, low, idx - 1);
+            low = idx + 1;
+        } else {
+            HUF_simpleQuickSort(arr, idx + 1, high);
+            high = idx - 1;
+        }
+    }
+}
+
 /**
  * HUF_sort():
  * Sorts the symbols [0, maxSymbolValue] by count[symbol] in decreasing order.
+ * This is a typical bucket sorting strategy that uses either quicksort or insertion sort to sort each bucket.
  *
  * @param[out] huffNode       Sorted symbols by decreasing count. Only members `.count` and `.byte` are filled.
  *                            Must have (maxSymbolValue + 1) entries.
@@ -451,44 +551,52 @@ typedef struct {
  * @param[in]  maxSymbolValue Maximum symbol value.
  * @param      rankPosition   This is a scratch workspace. Must have RANK_POSITION_TABLE_SIZE entries.
  */
-static void HUF_sort(nodeElt* huffNode, const unsigned* count, U32 maxSymbolValue, rankPos* rankPosition)
-{
-    int n;
-    int const maxSymbolValue1 = (int)maxSymbolValue + 1;
+static void HUF_sort(nodeElt huffNode[], const unsigned count[], U32 const maxSymbolValue, rankPos rankPosition[]) {
+    U32 n;
+    U32 const maxSymbolValue1 = maxSymbolValue+1;
 
     /* Compute base and set curr to base.
-     * For symbol s let lowerRank = BIT_highbit32(count[n]+1) and rank = lowerRank + 1.
-     * Then 2^lowerRank <= count[n]+1 <= 2^rank.
+     * For symbol s let lowerRank = HUF_getIndex(count[n]) and rank = lowerRank + 1.
+     * See HUF_getIndex to see bucketing strategy.
      * We attribute each symbol to lowerRank's base value, because we want to know where
      * each rank begins in the output, so for rank R we want to count ranks R+1 and above.
      */
     ZSTD_memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE);
     for (n = 0; n < maxSymbolValue1; ++n) {
-        U32 lowerRank = BIT_highbit32(count[n] + 1);
+        U32 lowerRank = HUF_getIndex(count[n]);
+        assert(lowerRank < RANK_POSITION_TABLE_SIZE - 1);
         rankPosition[lowerRank].base++;
     }
+
     assert(rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0);
+    /* Set up the rankPosition table */
     for (n = RANK_POSITION_TABLE_SIZE - 1; n > 0; --n) {
         rankPosition[n-1].base += rankPosition[n].base;
         rankPosition[n-1].curr = rankPosition[n-1].base;
     }
-    /* Sort */
+
+    /* Insert each symbol into their appropriate bucket, setting up rankPosition table. */
     for (n = 0; n < maxSymbolValue1; ++n) {
         U32 const c = count[n];
-        U32 const r = BIT_highbit32(c+1) + 1;
-        U32 pos = rankPosition[r].curr++;
-        /* Insert into the correct position in the rank.
-         * We have at most 256 symbols, so this insertion should be fine.
-         */
-        while ((pos > rankPosition[r].base) && (c > huffNode[pos-1].count)) {
-            huffNode[pos] = huffNode[pos-1];
-            pos--;
-        }
+        U32 const r = HUF_getIndex(c) + 1;
+        U32 const pos = rankPosition[r].curr++;
+        assert(pos < maxSymbolValue1);
         huffNode[pos].count = c;
         huffNode[pos].byte  = (BYTE)n;
     }
-}
 
+    /* Sort each bucket. */
+    for (n = RANK_POSITION_DISTINCT_COUNT_CUTOFF; n < RANK_POSITION_TABLE_SIZE - 1; ++n) {
+        U32 const bucketSize = rankPosition[n].curr-rankPosition[n].base;
+        U32 const bucketStartIdx = rankPosition[n].base;
+        if (bucketSize > 1) {
+            assert(bucketStartIdx < maxSymbolValue1);
+            HUF_simpleQuickSort(huffNode + bucketStartIdx, 0, bucketSize-1);
+        }
+    }
+
+    assert(HUF_isSorted(huffNode, maxSymbolValue1));
+}
 
 /** HUF_buildCTable_wksp() :
  *  Same as HUF_buildCTable(), but using externally allocated scratch buffer.
index 0734a539f8f57ac14f60daaa8986fe12110e50d5..855401acbd1dbae42ed3eea3fba46532ceb5b588 100644 (file)
@@ -2,19 +2,19 @@ Data,                               Config,                             Method,
 silesia.tar,                        level -5,                           compress simple,                    6738593
 silesia.tar,                        level -3,                           compress simple,                    6446372
 silesia.tar,                        level -1,                           compress simple,                    6186042
-silesia.tar,                        level 0,                            compress simple,                    4861425
+silesia.tar,                        level 0,                            compress simple,                    4861423
 silesia.tar,                        level 1,                            compress simple,                    5334885
-silesia.tar,                        level 3,                            compress simple,                    4861425
-silesia.tar,                        level 4,                            compress simple,                    4799630
+silesia.tar,                        level 3,                            compress simple,                    4861423
+silesia.tar,                        level 4,                            compress simple,                    4799632
 silesia.tar,                        level 5,                            compress simple,                    4719256
-silesia.tar,                        level 6,                            compress simple,                    4677721
-silesia.tar,                        level 7,                            compress simple,                    4613541
+silesia.tar,                        level 6,                            compress simple,                    4677724
+silesia.tar,                        level 7,                            compress simple,                    4613545
 silesia.tar,                        level 9,                            compress simple,                    4555426
-silesia.tar,                        level 13,                           compress simple,                    4491764
+silesia.tar,                        level 13,                           compress simple,                    4491768
 silesia.tar,                        level 16,                           compress simple,                    4356834
-silesia.tar,                        level 19,                           compress simple,                    4264392
-silesia.tar,                        uncompressed literals,              compress simple,                    4861425
-silesia.tar,                        uncompressed literals optimal,      compress simple,                    4264392
+silesia.tar,                        level 19,                           compress simple,                    4264388
+silesia.tar,                        uncompressed literals,              compress simple,                    4861423
+silesia.tar,                        uncompressed literals optimal,      compress simple,                    4264388
 silesia.tar,                        huffman literals,                   compress simple,                    6186042
 github.tar,                         level -5,                           compress simple,                    46856
 github.tar,                         level -3,                           compress simple,                    43754
@@ -36,28 +36,28 @@ github.tar,                         huffman literals,                   compress
 silesia,                            level -5,                           compress cctx,                      6737607
 silesia,                            level -3,                           compress cctx,                      6444677
 silesia,                            level -1,                           compress cctx,                      6178460
-silesia,                            level 0,                            compress cctx,                      4849552
-silesia,                            level 1,                            compress cctx,                      5313204
-silesia,                            level 3,                            compress cctx,                      4849552
-silesia,                            level 4,                            compress cctx,                      4786970
-silesia,                            level 5,                            compress cctx,                      4707794
+silesia,                            level 0,                            compress cctx,                      4849551
+silesia,                            level 1,                            compress cctx,                      5313202
+silesia,                            level 3,                            compress cctx,                      4849551
+silesia,                            level 4,                            compress cctx,                      4786969
+silesia,                            level 5,                            compress cctx,                      4707790
 silesia,                            level 6,                            compress cctx,                      4666383
 silesia,                            level 7,                            compress cctx,                      4603381
-silesia,                            level 9,                            compress cctx,                      4546001
-silesia,                            level 13,                           compress cctx,                      4482135
+silesia,                            level 9,                            compress cctx,                      4546005
+silesia,                            level 13,                           compress cctx,                      4482131
 silesia,                            level 16,                           compress cctx,                      4360251
-silesia,                            level 19,                           compress cctx,                      4283237
-silesia,                            long distance mode,                 compress cctx,                      4849552
-silesia,                            multithreaded,                      compress cctx,                      4849552
-silesia,                            multithreaded long distance mode,   compress cctx,                      4849552
+silesia,                            level 19,                           compress cctx,                      4283236
+silesia,                            long distance mode,                 compress cctx,                      4849551
+silesia,                            multithreaded,                      compress cctx,                      4849551
+silesia,                            multithreaded long distance mode,   compress cctx,                      4849551
 silesia,                            small window log,                   compress cctx,                      7084179
 silesia,                            small hash log,                     compress cctx,                      6526141
-silesia,                            small chain log,                    compress cctx,                      4912197
-silesia,                            explicit params,                    compress cctx,                      4794479
-silesia,                            uncompressed literals,              compress cctx,                      4849552
-silesia,                            uncompressed literals optimal,      compress cctx,                      4283237
+silesia,                            small chain log,                    compress cctx,                      4912199
+silesia,                            explicit params,                    compress cctx,                      4794480
+silesia,                            uncompressed literals,              compress cctx,                      4849551
+silesia,                            uncompressed literals optimal,      compress cctx,                      4283236
 silesia,                            huffman literals,                   compress cctx,                      6178460
-silesia,                            multithreaded with advanced params, compress cctx,                      4849552
+silesia,                            multithreaded with advanced params, compress cctx,                      4849551
 github,                             level -5,                           compress cctx,                      205285
 github,                             level -5 with dict,                 compress cctx,                      47294
 github,                             level -3,                           compress cctx,                      190643
@@ -100,50 +100,50 @@ github,                             multithreaded with advanced params, compress
 silesia,                            level -5,                           zstdcli,                            6737655
 silesia,                            level -3,                           zstdcli,                            6444725
 silesia,                            level -1,                           zstdcli,                            6178508
-silesia,                            level 0,                            zstdcli,                            4849600
-silesia,                            level 1,                            zstdcli,                            5313252
-silesia,                            level 3,                            zstdcli,                            4849600
-silesia,                            level 4,                            zstdcli,                            4787018
-silesia,                            level 5,                            zstdcli,                            4707842
+silesia,                            level 0,                            zstdcli,                            4849599
+silesia,                            level 1,                            zstdcli,                            5313250
+silesia,                            level 3,                            zstdcli,                            4849599
+silesia,                            level 4,                            zstdcli,                            4787017
+silesia,                            level 5,                            zstdcli,                            4707838
 silesia,                            level 6,                            zstdcli,                            4666431
 silesia,                            level 7,                            zstdcli,                            4603429
-silesia,                            level 9,                            zstdcli,                            4546049
-silesia,                            level 13,                           zstdcli,                            4482183
+silesia,                            level 9,                            zstdcli,                            4546053
+silesia,                            level 13,                           zstdcli,                            4482179
 silesia,                            level 16,                           zstdcli,                            4360299
-silesia,                            level 19,                           zstdcli,                            4283285
-silesia,                            long distance mode,                 zstdcli,                            4840806
-silesia,                            multithreaded,                      zstdcli,                            4849600
-silesia,                            multithreaded long distance mode,   zstdcli,                            4840806
+silesia,                            level 19,                           zstdcli,                            4283284
+silesia,                            long distance mode,                 zstdcli,                            4840807
+silesia,                            multithreaded,                      zstdcli,                            4849599
+silesia,                            multithreaded long distance mode,   zstdcli,                            4840807
 silesia,                            small window log,                   zstdcli,                            7095967
 silesia,                            small hash log,                     zstdcli,                            6526189
-silesia,                            small chain log,                    zstdcli,                            4912245
+silesia,                            small chain log,                    zstdcli,                            4912247
 silesia,                            explicit params,                    zstdcli,                            4795856
 silesia,                            uncompressed literals,              zstdcli,                            5128030
 silesia,                            uncompressed literals optimal,      zstdcli,                            4317944
-silesia,                            huffman literals,                   zstdcli,                            5326316
+silesia,                            huffman literals,                   zstdcli,                            5326317
 silesia,                            multithreaded with advanced params, zstdcli,                            5128030
 silesia.tar,                        level -5,                           zstdcli,                            6738934
 silesia.tar,                        level -3,                           zstdcli,                            6448419
 silesia.tar,                        level -1,                           zstdcli,                            6186912
-silesia.tar,                        level 0,                            zstdcli,                            4861512
+silesia.tar,                        level 0,                            zstdcli,                            4861511
 silesia.tar,                        level 1,                            zstdcli,                            5336318
-silesia.tar,                        level 3,                            zstdcli,                            4861512
+silesia.tar,                        level 3,                            zstdcli,                            4861511
 silesia.tar,                        level 4,                            zstdcli,                            4800529
 silesia.tar,                        level 5,                            zstdcli,                            4720121
-silesia.tar,                        level 6,                            zstdcli,                            4678661
-silesia.tar,                        level 7,                            zstdcli,                            4614424
+silesia.tar,                        level 6,                            zstdcli,                            4678663
+silesia.tar,                        level 7,                            zstdcli,                            4614426
 silesia.tar,                        level 9,                            zstdcli,                            4556062
-silesia.tar,                        level 13,                           zstdcli,                            4491768
+silesia.tar,                        level 13,                           zstdcli,                            4491772
 silesia.tar,                        level 16,                           zstdcli,                            4356838
-silesia.tar,                        level 19,                           zstdcli,                            4264396
-silesia.tar,                        no source size,                     zstdcli,                            4861508
-silesia.tar,                        long distance mode,                 zstdcli,                            4853226
-silesia.tar,                        multithreaded,                      zstdcli,                            4861512
-silesia.tar,                        multithreaded long distance mode,   zstdcli,                            4853226
+silesia.tar,                        level 19,                           zstdcli,                            4264392
+silesia.tar,                        no source size,                     zstdcli,                            4861507
+silesia.tar,                        long distance mode,                 zstdcli,                            4853225
+silesia.tar,                        multithreaded,                      zstdcli,                            4861511
+silesia.tar,                        multithreaded long distance mode,   zstdcli,                            4853225
 silesia.tar,                        small window log,                   zstdcli,                            7101576
-silesia.tar,                        small hash log,                     zstdcli,                            6529290
-silesia.tar,                        small chain log,                    zstdcli,                            4917022
-silesia.tar,                        explicit params,                    zstdcli,                            4821274
+silesia.tar,                        small hash log,                     zstdcli,                            6529286
+silesia.tar,                        small chain log,                    zstdcli,                            4917020
+silesia.tar,                        explicit params,                    zstdcli,                            4821277
 silesia.tar,                        uncompressed literals,              zstdcli,                            5129559
 silesia.tar,                        uncompressed literals optimal,      zstdcli,                            4307404
 silesia.tar,                        huffman literals,                   zstdcli,                            5347610
@@ -231,63 +231,63 @@ github.tar,                         multithreaded with advanced params, zstdcli,
 silesia,                            level -5,                           advanced one pass,                  6737607
 silesia,                            level -3,                           advanced one pass,                  6444677
 silesia,                            level -1,                           advanced one pass,                  6178460
-silesia,                            level 0,                            advanced one pass,                  4849552
-silesia,                            level 1,                            advanced one pass,                  5313204
-silesia,                            level 3,                            advanced one pass,                  4849552
-silesia,                            level 4,                            advanced one pass,                  4786970
-silesia,                            level 5 row 1,                      advanced one pass,                  4710236
-silesia,                            level 5 row 2,                      advanced one pass,                  4707794
-silesia,                            level 5,                            advanced one pass,                  4707794
+silesia,                            level 0,                            advanced one pass,                  4849551
+silesia,                            level 1,                            advanced one pass,                  5313202
+silesia,                            level 3,                            advanced one pass,                  4849551
+silesia,                            level 4,                            advanced one pass,                  4786969
+silesia,                            level 5 row 1,                      advanced one pass,                  4710233
+silesia,                            level 5 row 2,                      advanced one pass,                  4707790
+silesia,                            level 5,                            advanced one pass,                  4707790
 silesia,                            level 6,                            advanced one pass,                  4666383
-silesia,                            level 7 row 1,                      advanced one pass,                  4596296
+silesia,                            level 7 row 1,                      advanced one pass,                  4596297
 silesia,                            level 7 row 2,                      advanced one pass,                  4603381
 silesia,                            level 7,                            advanced one pass,                  4603381
-silesia,                            level 9,                            advanced one pass,                  4546001
+silesia,                            level 9,                            advanced one pass,                  4546005
 silesia,                            level 12 row 1,                     advanced one pass,                  4519288
-silesia,                            level 12 row 2,                     advanced one pass,                  4521397
-silesia,                            level 13,                           advanced one pass,                  4482135
+silesia,                            level 12 row 2,                     advanced one pass,                  4521406
+silesia,                            level 13,                           advanced one pass,                  4482131
 silesia,                            level 16,                           advanced one pass,                  4360251
-silesia,                            level 19,                           advanced one pass,                  4283237
-silesia,                            no source size,                     advanced one pass,                  4849552
+silesia,                            level 19,                           advanced one pass,                  4283236
+silesia,                            no source size,                     advanced one pass,                  4849551
 silesia,                            long distance mode,                 advanced one pass,                  4840738
-silesia,                            multithreaded,                      advanced one pass,                  4849552
-silesia,                            multithreaded long distance mode,   advanced one pass,                  4840758
+silesia,                            multithreaded,                      advanced one pass,                  4849551
+silesia,                            multithreaded long distance mode,   advanced one pass,                  4840759
 silesia,                            small window log,                   advanced one pass,                  7095919
 silesia,                            small hash log,                     advanced one pass,                  6526141
-silesia,                            small chain log,                    advanced one pass,                  4912197
+silesia,                            small chain log,                    advanced one pass,                  4912199
 silesia,                            explicit params,                    advanced one pass,                  4795856
 silesia,                            uncompressed literals,              advanced one pass,                  5127982
 silesia,                            uncompressed literals optimal,      advanced one pass,                  4317896
-silesia,                            huffman literals,                   advanced one pass,                  5326268
+silesia,                            huffman literals,                   advanced one pass,                  5326269
 silesia,                            multithreaded with advanced params, advanced one pass,                  5127982
 silesia.tar,                        level -5,                           advanced one pass,                  6738593
 silesia.tar,                        level -3,                           advanced one pass,                  6446372
 silesia.tar,                        level -1,                           advanced one pass,                  6186042
-silesia.tar,                        level 0,                            advanced one pass,                  4861425
+silesia.tar,                        level 0,                            advanced one pass,                  4861423
 silesia.tar,                        level 1,                            advanced one pass,                  5334885
-silesia.tar,                        level 3,                            advanced one pass,                  4861425
-silesia.tar,                        level 4,                            advanced one pass,                  4799630
+silesia.tar,                        level 3,                            advanced one pass,                  4861423
+silesia.tar,                        level 4,                            advanced one pass,                  4799632
 silesia.tar,                        level 5 row 1,                      advanced one pass,                  4722324
 silesia.tar,                        level 5 row 2,                      advanced one pass,                  4719256
 silesia.tar,                        level 5,                            advanced one pass,                  4719256
-silesia.tar,                        level 6,                            advanced one pass,                  4677721
-silesia.tar,                        level 7 row 1,                      advanced one pass,                  4606715
-silesia.tar,                        level 7 row 2,                      advanced one pass,                  4613541
-silesia.tar,                        level 7,                            advanced one pass,                  4613541
+silesia.tar,                        level 6,                            advanced one pass,                  4677724
+silesia.tar,                        level 7 row 1,                      advanced one pass,                  4606716
+silesia.tar,                        level 7 row 2,                      advanced one pass,                  4613545
+silesia.tar,                        level 7,                            advanced one pass,                  4613545
 silesia.tar,                        level 9,                            advanced one pass,                  4555426
-silesia.tar,                        level 12 row 1,                     advanced one pass,                  4529459
-silesia.tar,                        level 12 row 2,                     advanced one pass,                  4530256
-silesia.tar,                        level 13,                           advanced one pass,                  4491764
+silesia.tar,                        level 12 row 1,                     advanced one pass,                  4529458
+silesia.tar,                        level 12 row 2,                     advanced one pass,                  4530257
+silesia.tar,                        level 13,                           advanced one pass,                  4491768
 silesia.tar,                        level 16,                           advanced one pass,                  4356834
-silesia.tar,                        level 19,                           advanced one pass,                  4264392
-silesia.tar,                        no source size,                     advanced one pass,                  4861425
-silesia.tar,                        long distance mode,                 advanced one pass,                  4847754
-silesia.tar,                        multithreaded,                      advanced one pass,                  4861508
-silesia.tar,                        multithreaded long distance mode,   advanced one pass,                  4853222
+silesia.tar,                        level 19,                           advanced one pass,                  4264388
+silesia.tar,                        no source size,                     advanced one pass,                  4861423
+silesia.tar,                        long distance mode,                 advanced one pass,                  4847753
+silesia.tar,                        multithreaded,                      advanced one pass,                  4861507
+silesia.tar,                        multithreaded long distance mode,   advanced one pass,                  4853221
 silesia.tar,                        small window log,                   advanced one pass,                  7101530
-silesia.tar,                        small hash log,                     advanced one pass,                  6529232
-silesia.tar,                        small chain log,                    advanced one pass,                  4917041
-silesia.tar,                        explicit params,                    advanced one pass,                  4807380
+silesia.tar,                        small hash log,                     advanced one pass,                  6529228
+silesia.tar,                        small chain log,                    advanced one pass,                  4917039
+silesia.tar,                        explicit params,                    advanced one pass,                  4807383
 silesia.tar,                        uncompressed literals,              advanced one pass,                  5129458
 silesia.tar,                        uncompressed literals optimal,      advanced one pass,                  4307400
 silesia.tar,                        huffman literals,                   advanced one pass,                  5347335
@@ -525,63 +525,63 @@ github.tar,                         multithreaded with advanced params, advanced
 silesia,                            level -5,                           advanced one pass small out,        6737607
 silesia,                            level -3,                           advanced one pass small out,        6444677
 silesia,                            level -1,                           advanced one pass small out,        6178460
-silesia,                            level 0,                            advanced one pass small out,        4849552
-silesia,                            level 1,                            advanced one pass small out,        5313204
-silesia,                            level 3,                            advanced one pass small out,        4849552
-silesia,                            level 4,                            advanced one pass small out,        4786970
-silesia,                            level 5 row 1,                      advanced one pass small out,        4710236
-silesia,                            level 5 row 2,                      advanced one pass small out,        4707794
-silesia,                            level 5,                            advanced one pass small out,        4707794
+silesia,                            level 0,                            advanced one pass small out,        4849551
+silesia,                            level 1,                            advanced one pass small out,        5313202
+silesia,                            level 3,                            advanced one pass small out,        4849551
+silesia,                            level 4,                            advanced one pass small out,        4786969
+silesia,                            level 5 row 1,                      advanced one pass small out,        4710233
+silesia,                            level 5 row 2,                      advanced one pass small out,        4707790
+silesia,                            level 5,                            advanced one pass small out,        4707790
 silesia,                            level 6,                            advanced one pass small out,        4666383
-silesia,                            level 7 row 1,                      advanced one pass small out,        4596296
+silesia,                            level 7 row 1,                      advanced one pass small out,        4596297
 silesia,                            level 7 row 2,                      advanced one pass small out,        4603381
 silesia,                            level 7,                            advanced one pass small out,        4603381
-silesia,                            level 9,                            advanced one pass small out,        4546001
+silesia,                            level 9,                            advanced one pass small out,        4546005
 silesia,                            level 12 row 1,                     advanced one pass small out,        4519288
-silesia,                            level 12 row 2,                     advanced one pass small out,        4521397
-silesia,                            level 13,                           advanced one pass small out,        4482135
+silesia,                            level 12 row 2,                     advanced one pass small out,        4521406
+silesia,                            level 13,                           advanced one pass small out,        4482131
 silesia,                            level 16,                           advanced one pass small out,        4360251
-silesia,                            level 19,                           advanced one pass small out,        4283237
-silesia,                            no source size,                     advanced one pass small out,        4849552
+silesia,                            level 19,                           advanced one pass small out,        4283236
+silesia,                            no source size,                     advanced one pass small out,        4849551
 silesia,                            long distance mode,                 advanced one pass small out,        4840738
-silesia,                            multithreaded,                      advanced one pass small out,        4849552
-silesia,                            multithreaded long distance mode,   advanced one pass small out,        4840758
+silesia,                            multithreaded,                      advanced one pass small out,        4849551
+silesia,                            multithreaded long distance mode,   advanced one pass small out,        4840759
 silesia,                            small window log,                   advanced one pass small out,        7095919
 silesia,                            small hash log,                     advanced one pass small out,        6526141
-silesia,                            small chain log,                    advanced one pass small out,        4912197
+silesia,                            small chain log,                    advanced one pass small out,        4912199
 silesia,                            explicit params,                    advanced one pass small out,        4795856
 silesia,                            uncompressed literals,              advanced one pass small out,        5127982
 silesia,                            uncompressed literals optimal,      advanced one pass small out,        4317896
-silesia,                            huffman literals,                   advanced one pass small out,        5326268
+silesia,                            huffman literals,                   advanced one pass small out,        5326269
 silesia,                            multithreaded with advanced params, advanced one pass small out,        5127982
 silesia.tar,                        level -5,                           advanced one pass small out,        6738593
 silesia.tar,                        level -3,                           advanced one pass small out,        6446372
 silesia.tar,                        level -1,                           advanced one pass small out,        6186042
-silesia.tar,                        level 0,                            advanced one pass small out,        4861425
+silesia.tar,                        level 0,                            advanced one pass small out,        4861423
 silesia.tar,                        level 1,                            advanced one pass small out,        5334885
-silesia.tar,                        level 3,                            advanced one pass small out,        4861425
-silesia.tar,                        level 4,                            advanced one pass small out,        4799630
+silesia.tar,                        level 3,                            advanced one pass small out,        4861423
+silesia.tar,                        level 4,                            advanced one pass small out,        4799632
 silesia.tar,                        level 5 row 1,                      advanced one pass small out,        4722324
 silesia.tar,                        level 5 row 2,                      advanced one pass small out,        4719256
 silesia.tar,                        level 5,                            advanced one pass small out,        4719256
-silesia.tar,                        level 6,                            advanced one pass small out,        4677721
-silesia.tar,                        level 7 row 1,                      advanced one pass small out,        4606715
-silesia.tar,                        level 7 row 2,                      advanced one pass small out,        4613541
-silesia.tar,                        level 7,                            advanced one pass small out,        4613541
+silesia.tar,                        level 6,                            advanced one pass small out,        4677724
+silesia.tar,                        level 7 row 1,                      advanced one pass small out,        4606716
+silesia.tar,                        level 7 row 2,                      advanced one pass small out,        4613545
+silesia.tar,                        level 7,                            advanced one pass small out,        4613545
 silesia.tar,                        level 9,                            advanced one pass small out,        4555426
-silesia.tar,                        level 12 row 1,                     advanced one pass small out,        4529459
-silesia.tar,                        level 12 row 2,                     advanced one pass small out,        4530256
-silesia.tar,                        level 13,                           advanced one pass small out,        4491764
+silesia.tar,                        level 12 row 1,                     advanced one pass small out,        4529458
+silesia.tar,                        level 12 row 2,                     advanced one pass small out,        4530257
+silesia.tar,                        level 13,                           advanced one pass small out,        4491768
 silesia.tar,                        level 16,                           advanced one pass small out,        4356834
-silesia.tar,                        level 19,                           advanced one pass small out,        4264392
-silesia.tar,                        no source size,                     advanced one pass small out,        4861425
-silesia.tar,                        long distance mode,                 advanced one pass small out,        4847754
-silesia.tar,                        multithreaded,                      advanced one pass small out,        4861508
-silesia.tar,                        multithreaded long distance mode,   advanced one pass small out,        4853222
+silesia.tar,                        level 19,                           advanced one pass small out,        4264388
+silesia.tar,                        no source size,                     advanced one pass small out,        4861423
+silesia.tar,                        long distance mode,                 advanced one pass small out,        4847753
+silesia.tar,                        multithreaded,                      advanced one pass small out,        4861507
+silesia.tar,                        multithreaded long distance mode,   advanced one pass small out,        4853221
 silesia.tar,                        small window log,                   advanced one pass small out,        7101530
-silesia.tar,                        small hash log,                     advanced one pass small out,        6529232
-silesia.tar,                        small chain log,                    advanced one pass small out,        4917041
-silesia.tar,                        explicit params,                    advanced one pass small out,        4807380
+silesia.tar,                        small hash log,                     advanced one pass small out,        6529228
+silesia.tar,                        small chain log,                    advanced one pass small out,        4917039
+silesia.tar,                        explicit params,                    advanced one pass small out,        4807383
 silesia.tar,                        uncompressed literals,              advanced one pass small out,        5129458
 silesia.tar,                        uncompressed literals optimal,      advanced one pass small out,        4307400
 silesia.tar,                        huffman literals,                   advanced one pass small out,        5347335
@@ -819,63 +819,63 @@ github.tar,                         multithreaded with advanced params, advanced
 silesia,                            level -5,                           advanced streaming,                 6882505
 silesia,                            level -3,                           advanced streaming,                 6568376
 silesia,                            level -1,                           advanced streaming,                 6183403
-silesia,                            level 0,                            advanced streaming,                 4849552
-silesia,                            level 1,                            advanced streaming,                 5314162
-silesia,                            level 3,                            advanced streaming,                 4849552
-silesia,                            level 4,                            advanced streaming,                 4786970
-silesia,                            level 5 row 1,                      advanced streaming,                 4710236
-silesia,                            level 5 row 2,                      advanced streaming,                 4707794
-silesia,                            level 5,                            advanced streaming,                 4707794
+silesia,                            level 0,                            advanced streaming,                 4849551
+silesia,                            level 1,                            advanced streaming,                 5314161
+silesia,                            level 3,                            advanced streaming,                 4849551
+silesia,                            level 4,                            advanced streaming,                 4786969
+silesia,                            level 5 row 1,                      advanced streaming,                 4710233
+silesia,                            level 5 row 2,                      advanced streaming,                 4707790
+silesia,                            level 5,                            advanced streaming,                 4707790
 silesia,                            level 6,                            advanced streaming,                 4666383
-silesia,                            level 7 row 1,                      advanced streaming,                 4596296
+silesia,                            level 7 row 1,                      advanced streaming,                 4596297
 silesia,                            level 7 row 2,                      advanced streaming,                 4603381
 silesia,                            level 7,                            advanced streaming,                 4603381
-silesia,                            level 9,                            advanced streaming,                 4546001
+silesia,                            level 9,                            advanced streaming,                 4546005
 silesia,                            level 12 row 1,                     advanced streaming,                 4519288
-silesia,                            level 12 row 2,                     advanced streaming,                 4521397
-silesia,                            level 13,                           advanced streaming,                 4482135
+silesia,                            level 12 row 2,                     advanced streaming,                 4521406
+silesia,                            level 13,                           advanced streaming,                 4482131
 silesia,                            level 16,                           advanced streaming,                 4360251
-silesia,                            level 19,                           advanced streaming,                 4283237
-silesia,                            no source size,                     advanced streaming,                 4849516
+silesia,                            level 19,                           advanced streaming,                 4283236
+silesia,                            no source size,                     advanced streaming,                 4849515
 silesia,                            long distance mode,                 advanced streaming,                 4840738
-silesia,                            multithreaded,                      advanced streaming,                 4849552
-silesia,                            multithreaded long distance mode,   advanced streaming,                 4840758
+silesia,                            multithreaded,                      advanced streaming,                 4849551
+silesia,                            multithreaded long distance mode,   advanced streaming,                 4840759
 silesia,                            small window log,                   advanced streaming,                 7112062
 silesia,                            small hash log,                     advanced streaming,                 6526141
-silesia,                            small chain log,                    advanced streaming,                 4912197
+silesia,                            small chain log,                    advanced streaming,                 4912199
 silesia,                            explicit params,                    advanced streaming,                 4795884
 silesia,                            uncompressed literals,              advanced streaming,                 5127982
 silesia,                            uncompressed literals optimal,      advanced streaming,                 4317896
-silesia,                            huffman literals,                   advanced streaming,                 5331168
+silesia,                            huffman literals,                   advanced streaming,                 5331171
 silesia,                            multithreaded with advanced params, advanced streaming,                 5127982
 silesia.tar,                        level -5,                           advanced streaming,                 6982759
 silesia.tar,                        level -3,                           advanced streaming,                 6641283
 silesia.tar,                        level -1,                           advanced streaming,                 6190795
-silesia.tar,                        level 0,                            advanced streaming,                 4861427
-silesia.tar,                        level 1,                            advanced streaming,                 5336939
-silesia.tar,                        level 3,                            advanced streaming,                 4861427
-silesia.tar,                        level 4,                            advanced streaming,                 4799630
+silesia.tar,                        level 0,                            advanced streaming,                 4861425
+silesia.tar,                        level 1,                            advanced streaming,                 5336941
+silesia.tar,                        level 3,                            advanced streaming,                 4861425
+silesia.tar,                        level 4,                            advanced streaming,                 4799632
 silesia.tar,                        level 5 row 1,                      advanced streaming,                 4722329
 silesia.tar,                        level 5 row 2,                      advanced streaming,                 4719261
 silesia.tar,                        level 5,                            advanced streaming,                 4719261
-silesia.tar,                        level 6,                            advanced streaming,                 4677729
-silesia.tar,                        level 7 row 1,                      advanced streaming,                 4606715
-silesia.tar,                        level 7 row 2,                      advanced streaming,                 4613544
-silesia.tar,                        level 7,                            advanced streaming,                 4613544
+silesia.tar,                        level 6,                            advanced streaming,                 4677732
+silesia.tar,                        level 7 row 1,                      advanced streaming,                 4606717
+silesia.tar,                        level 7 row 2,                      advanced streaming,                 4613548
+silesia.tar,                        level 7,                            advanced streaming,                 4613548
 silesia.tar,                        level 9,                            advanced streaming,                 4555432
-silesia.tar,                        level 12 row 1,                     advanced streaming,                 4529459
-silesia.tar,                        level 12 row 2,                     advanced streaming,                 4530258
-silesia.tar,                        level 13,                           advanced streaming,                 4491765
+silesia.tar,                        level 12 row 1,                     advanced streaming,                 4529458
+silesia.tar,                        level 12 row 2,                     advanced streaming,                 4530259
+silesia.tar,                        level 13,                           advanced streaming,                 4491769
 silesia.tar,                        level 16,                           advanced streaming,                 4356834
-silesia.tar,                        level 19,                           advanced streaming,                 4264392
-silesia.tar,                        no source size,                     advanced streaming,                 4861423
-silesia.tar,                        long distance mode,                 advanced streaming,                 4847754
-silesia.tar,                        multithreaded,                      advanced streaming,                 4861508
-silesia.tar,                        multithreaded long distance mode,   advanced streaming,                 4853222
+silesia.tar,                        level 19,                           advanced streaming,                 4264388
+silesia.tar,                        no source size,                     advanced streaming,                 4861421
+silesia.tar,                        long distance mode,                 advanced streaming,                 4847753
+silesia.tar,                        multithreaded,                      advanced streaming,                 4861507
+silesia.tar,                        multithreaded long distance mode,   advanced streaming,                 4853221
 silesia.tar,                        small window log,                   advanced streaming,                 7118769
-silesia.tar,                        small hash log,                     advanced streaming,                 6529235
-silesia.tar,                        small chain log,                    advanced streaming,                 4917021
-silesia.tar,                        explicit params,                    advanced streaming,                 4807399
+silesia.tar,                        small hash log,                     advanced streaming,                 6529231
+silesia.tar,                        small chain log,                    advanced streaming,                 4917019
+silesia.tar,                        explicit params,                    advanced streaming,                 4807403
 silesia.tar,                        uncompressed literals,              advanced streaming,                 5129461
 silesia.tar,                        uncompressed literals optimal,      advanced streaming,                 4307400
 silesia.tar,                        huffman literals,                   advanced streaming,                 5352360
@@ -1113,38 +1113,38 @@ github.tar,                         multithreaded with advanced params, advanced
 silesia,                            level -5,                           old streaming,                      6882505
 silesia,                            level -3,                           old streaming,                      6568376
 silesia,                            level -1,                           old streaming,                      6183403
-silesia,                            level 0,                            old streaming,                      4849552
-silesia,                            level 1,                            old streaming,                      5314162
-silesia,                            level 3,                            old streaming,                      4849552
-silesia,                            level 4,                            old streaming,                      4786970
-silesia,                            level 5,                            old streaming,                      4707794
+silesia,                            level 0,                            old streaming,                      4849551
+silesia,                            level 1,                            old streaming,                      5314161
+silesia,                            level 3,                            old streaming,                      4849551
+silesia,                            level 4,                            old streaming,                      4786969
+silesia,                            level 5,                            old streaming,                      4707790
 silesia,                            level 6,                            old streaming,                      4666383
 silesia,                            level 7,                            old streaming,                      4603381
-silesia,                            level 9,                            old streaming,                      4546001
-silesia,                            level 13,                           old streaming,                      4482135
+silesia,                            level 9,                            old streaming,                      4546005
+silesia,                            level 13,                           old streaming,                      4482131
 silesia,                            level 16,                           old streaming,                      4360251
-silesia,                            level 19,                           old streaming,                      4283237
-silesia,                            no source size,                     old streaming,                      4849516
-silesia,                            uncompressed literals,              old streaming,                      4849552
-silesia,                            uncompressed literals optimal,      old streaming,                      4283237
+silesia,                            level 19,                           old streaming,                      4283236
+silesia,                            no source size,                     old streaming,                      4849515
+silesia,                            uncompressed literals,              old streaming,                      4849551
+silesia,                            uncompressed literals optimal,      old streaming,                      4283236
 silesia,                            huffman literals,                   old streaming,                      6183403
 silesia.tar,                        level -5,                           old streaming,                      6982759
 silesia.tar,                        level -3,                           old streaming,                      6641283
 silesia.tar,                        level -1,                           old streaming,                      6190795
-silesia.tar,                        level 0,                            old streaming,                      4861427
-silesia.tar,                        level 1,                            old streaming,                      5336939
-silesia.tar,                        level 3,                            old streaming,                      4861427
-silesia.tar,                        level 4,                            old streaming,                      4799630
+silesia.tar,                        level 0,                            old streaming,                      4861425
+silesia.tar,                        level 1,                            old streaming,                      5336941
+silesia.tar,                        level 3,                            old streaming,                      4861425
+silesia.tar,                        level 4,                            old streaming,                      4799632
 silesia.tar,                        level 5,                            old streaming,                      4719261
-silesia.tar,                        level 6,                            old streaming,                      4677729
-silesia.tar,                        level 7,                            old streaming,                      4613544
+silesia.tar,                        level 6,                            old streaming,                      4677732
+silesia.tar,                        level 7,                            old streaming,                      4613548
 silesia.tar,                        level 9,                            old streaming,                      4555432
-silesia.tar,                        level 13,                           old streaming,                      4491765
+silesia.tar,                        level 13,                           old streaming,                      4491769
 silesia.tar,                        level 16,                           old streaming,                      4356834
-silesia.tar,                        level 19,                           old streaming,                      4264392
-silesia.tar,                        no source size,                     old streaming,                      4861423
-silesia.tar,                        uncompressed literals,              old streaming,                      4861427
-silesia.tar,                        uncompressed literals optimal,      old streaming,                      4264392
+silesia.tar,                        level 19,                           old streaming,                      4264388
+silesia.tar,                        no source size,                     old streaming,                      4861421
+silesia.tar,                        uncompressed literals,              old streaming,                      4861425
+silesia.tar,                        uncompressed literals optimal,      old streaming,                      4264388
 silesia.tar,                        huffman literals,                   old streaming,                      6190795
 github,                             level -5,                           old streaming,                      205285
 github,                             level -5 with dict,                 old streaming,                      46718
@@ -1215,55 +1215,55 @@ github.tar,                         huffman literals,                   old stre
 silesia,                            level -5,                           old streaming advanced,             6882505
 silesia,                            level -3,                           old streaming advanced,             6568376
 silesia,                            level -1,                           old streaming advanced,             6183403
-silesia,                            level 0,                            old streaming advanced,             4849552
-silesia,                            level 1,                            old streaming advanced,             5314162
-silesia,                            level 3,                            old streaming advanced,             4849552
-silesia,                            level 4,                            old streaming advanced,             4786970
-silesia,                            level 5,                            old streaming advanced,             4707794
+silesia,                            level 0,                            old streaming advanced,             4849551
+silesia,                            level 1,                            old streaming advanced,             5314161
+silesia,                            level 3,                            old streaming advanced,             4849551
+silesia,                            level 4,                            old streaming advanced,             4786969
+silesia,                            level 5,                            old streaming advanced,             4707790
 silesia,                            level 6,                            old streaming advanced,             4666383
 silesia,                            level 7,                            old streaming advanced,             4603381
-silesia,                            level 9,                            old streaming advanced,             4546001
-silesia,                            level 13,                           old streaming advanced,             4482135
+silesia,                            level 9,                            old streaming advanced,             4546005
+silesia,                            level 13,                           old streaming advanced,             4482131
 silesia,                            level 16,                           old streaming advanced,             4360251
-silesia,                            level 19,                           old streaming advanced,             4283237
-silesia,                            no source size,                     old streaming advanced,             4849516
-silesia,                            long distance mode,                 old streaming advanced,             4849552
-silesia,                            multithreaded,                      old streaming advanced,             4849552
-silesia,                            multithreaded long distance mode,   old streaming advanced,             4849552
+silesia,                            level 19,                           old streaming advanced,             4283236
+silesia,                            no source size,                     old streaming advanced,             4849515
+silesia,                            long distance mode,                 old streaming advanced,             4849551
+silesia,                            multithreaded,                      old streaming advanced,             4849551
+silesia,                            multithreaded long distance mode,   old streaming advanced,             4849551
 silesia,                            small window log,                   old streaming advanced,             7112062
 silesia,                            small hash log,                     old streaming advanced,             6526141
-silesia,                            small chain log,                    old streaming advanced,             4912197
+silesia,                            small chain log,                    old streaming advanced,             4912199
 silesia,                            explicit params,                    old streaming advanced,             4795884
-silesia,                            uncompressed literals,              old streaming advanced,             4849552
-silesia,                            uncompressed literals optimal,      old streaming advanced,             4283237
+silesia,                            uncompressed literals,              old streaming advanced,             4849551
+silesia,                            uncompressed literals optimal,      old streaming advanced,             4283236
 silesia,                            huffman literals,                   old streaming advanced,             6183403
-silesia,                            multithreaded with advanced params, old streaming advanced,             4849552
+silesia,                            multithreaded with advanced params, old streaming advanced,             4849551
 silesia.tar,                        level -5,                           old streaming advanced,             6982759
 silesia.tar,                        level -3,                           old streaming advanced,             6641283
 silesia.tar,                        level -1,                           old streaming advanced,             6190795
-silesia.tar,                        level 0,                            old streaming advanced,             4861427
-silesia.tar,                        level 1,                            old streaming advanced,             5336939
-silesia.tar,                        level 3,                            old streaming advanced,             4861427
-silesia.tar,                        level 4,                            old streaming advanced,             4799630
+silesia.tar,                        level 0,                            old streaming advanced,             4861425
+silesia.tar,                        level 1,                            old streaming advanced,             5336941
+silesia.tar,                        level 3,                            old streaming advanced,             4861425
+silesia.tar,                        level 4,                            old streaming advanced,             4799632
 silesia.tar,                        level 5,                            old streaming advanced,             4719261
-silesia.tar,                        level 6,                            old streaming advanced,             4677729
-silesia.tar,                        level 7,                            old streaming advanced,             4613544
+silesia.tar,                        level 6,                            old streaming advanced,             4677732
+silesia.tar,                        level 7,                            old streaming advanced,             4613548
 silesia.tar,                        level 9,                            old streaming advanced,             4555432
-silesia.tar,                        level 13,                           old streaming advanced,             4491765
+silesia.tar,                        level 13,                           old streaming advanced,             4491769
 silesia.tar,                        level 16,                           old streaming advanced,             4356834
-silesia.tar,                        level 19,                           old streaming advanced,             4264392
-silesia.tar,                        no source size,                     old streaming advanced,             4861423
-silesia.tar,                        long distance mode,                 old streaming advanced,             4861427
-silesia.tar,                        multithreaded,                      old streaming advanced,             4861427
-silesia.tar,                        multithreaded long distance mode,   old streaming advanced,             4861427
+silesia.tar,                        level 19,                           old streaming advanced,             4264388
+silesia.tar,                        no source size,                     old streaming advanced,             4861421
+silesia.tar,                        long distance mode,                 old streaming advanced,             4861425
+silesia.tar,                        multithreaded,                      old streaming advanced,             4861425
+silesia.tar,                        multithreaded long distance mode,   old streaming advanced,             4861425
 silesia.tar,                        small window log,                   old streaming advanced,             7118772
-silesia.tar,                        small hash log,                     old streaming advanced,             6529235
-silesia.tar,                        small chain log,                    old streaming advanced,             4917021
-silesia.tar,                        explicit params,                    old streaming advanced,             4807399
-silesia.tar,                        uncompressed literals,              old streaming advanced,             4861427
-silesia.tar,                        uncompressed literals optimal,      old streaming advanced,             4264392
+silesia.tar,                        small hash log,                     old streaming advanced,             6529231
+silesia.tar,                        small chain log,                    old streaming advanced,             4917019
+silesia.tar,                        explicit params,                    old streaming advanced,             4807403
+silesia.tar,                        uncompressed literals,              old streaming advanced,             4861425
+silesia.tar,                        uncompressed literals optimal,      old streaming advanced,             4264388
 silesia.tar,                        huffman literals,                   old streaming advanced,             6190795
-silesia.tar,                        multithreaded with advanced params, old streaming advanced,             4861427
+silesia.tar,                        multithreaded with advanced params, old streaming advanced,             4861425
 github,                             level -5,                           old streaming advanced,             216734
 github,                             level -5 with dict,                 old streaming advanced,             49562
 github,                             level -3,                           old streaming advanced,             192160