LLVMFuzzerTestOneInput:
   19|     61|extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t *data, std::size_t size) {
   20|     61|    std::vector<std::uint8_t> working(data, data + size);
   21|     61|    std::sort(working.begin(), working.end());
   22|     61|    std::vector<std::uint8_t> results;
   23|     61|    (void)std::unique_copy(working.begin(), working.end(),
   24|     61|                           std::back_inserter<std::vector<std::uint8_t>>(results));
   25|     61|    std::vector<std::uint8_t>::iterator it; // scratch iterator
   26|       |
   27|       |    // Check the size of the unique'd sequence.
   28|       |    // it should only be zero if the input sequence was empty.
   29|     61|    if (results.size() == 0)
  ------------------
  |  Branch (29:9): [True: 0, False: 61]
  ------------------
   30|      0|        return working.size() == 0 ? 0 : 1;
  ------------------
  |  Branch (30:16): [True: 0, False: 0]
  ------------------
   31|       |
   32|       |    // 'results' is sorted
   33|     61|    if (!std::is_sorted(results.begin(), results.end()))
  ------------------
  |  Branch (33:9): [True: 0, False: 61]
  ------------------
   34|      0|        return 2;
   35|       |
   36|       |    // All the elements in 'results' must be different
   37|     61|    it = results.begin();
   38|     61|    std::uint8_t prev_value = *it++;
   39|  1.78k|    for (; it != results.end(); ++it) {
  ------------------
  |  Branch (39:12): [True: 1.71k, False: 61]
  ------------------
   40|  1.71k|        if (*it == prev_value)
  ------------------
  |  Branch (40:13): [True: 0, False: 1.71k]
  ------------------
   41|      0|            return 3;
   42|  1.71k|        prev_value = *it;
   43|  1.71k|    }
   44|       |
   45|       |    // Every element in 'results' must be in 'working'
   46|     61|    for (auto v : results)
  ------------------
  |  Branch (46:17): [True: 1.78k, False: 61]
  ------------------
   47|  1.78k|        if (std::find(working.begin(), working.end(), v) == working.end())
  ------------------
  |  Branch (47:13): [True: 0, False: 1.78k]
  ------------------
   48|      0|            return 4;
   49|       |
   50|       |    // Every element in 'working' must be in 'results'
   51|     61|    for (auto v : working)
  ------------------
  |  Branch (51:17): [True: 4.19M, False: 61]
  ------------------
   52|  4.19M|        if (std::find(results.begin(), results.end(), v) == results.end())
  ------------------
  |  Branch (52:13): [True: 0, False: 4.19M]
  ------------------
   53|      0|            return 5;
   54|       |
   55|     61|    return 0;
   56|     61|}

