LLVMFuzzerTestOneInput:
   12|  4.85k|{
   13|  4.85k|    using namespace boost::beast;
   14|       |
   15|  4.85k|    error_code ec;
   16|  4.85k|    flat_buffer buffer;
   17|  4.85k|    net::io_context ioc;
   18|  4.85k|    test::stream stream{ioc, {reinterpret_cast<const char*>(data), size}};
   19|  4.85k|    stream.close_remote();
   20|       |
   21|  4.85k|    http::request_parser<http::dynamic_body> parser;
   22|  4.85k|    http::read(stream, buffer, parser, ec);
   23|       |
   24|  4.85k|    return 0;
   25|  4.85k|}

_ZN5boost4asio15any_io_executorC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_NS0_10constraintIXsr13conditional_tIXaantsr7is_sameIS9_S1_EE5valuentsr10is_base_ofINS0_9execution6detail17any_executor_baseES9_EE5valueENSC_24is_valid_target_executorIS9_FvNSB_12context_as_tIRNS0_17execution_contextEEENSC_8blocking7never_tILi0EEENSB_11prefer_onlyINSJ_10possibly_tILi0EEEEENSM_INSC_16outstanding_work9tracked_tILi0EEEEENSM_INSQ_11untracked_tILi0EEEEENSM_INSC_12relationship6fork_tILi0EEEEENSM_INSX_14continuation_tILi0EEEEEEEENS5_17integral_constantIbLb0EEEEE5valueEiE4typeE:
  173|  4.85k|    : base_type(static_cast<Executor&&>(e))
  174|  4.85k|  {
  175|  4.85k|  }

_ZNK5boost4asio12const_buffer4sizeEv:
  307|   377k|  {
  308|   377k|    return size_;
  309|   377k|  }
_ZN5boost4asio11buffer_sizeINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEmRKT_:
  586|  42.4k|{
  587|  42.4k|  return detail::buffer_size(
  588|  42.4k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  42.4k|      boost::asio::buffer_sequence_begin(b),
  590|  42.4k|      boost::asio::buffer_sequence_end(b));
  591|  42.4k|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorEEEmNS1_16multiple_buffersET_SD_:
  551|  42.4k|{
  552|  42.4k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  42.4k|  Iterator iter = begin;
  555|  85.6k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 43.1k, False: 42.4k]
  ------------------
  556|  43.1k|  {
  557|  43.1k|    const_buffer b(*iter);
  558|  43.1k|    total_buffer_size += b.size();
  559|  43.1k|  }
  560|       |
  561|  42.4k|  return total_buffer_size;
  562|  42.4k|}
_ZN5boost4asio14mutable_bufferC2Ev:
  121|  86.3k|    : data_(0),
  122|  86.3k|      size_(0)
  123|  86.3k|  {
  124|  86.3k|  }
_ZN5boost4asio14mutable_bufferC2EPvm:
  128|   241k|    : data_(data),
  129|   241k|      size_(size)
  130|   241k|  {
  131|   241k|  }
_ZN5boost4asio14mutable_bufferpLEm:
  194|  84.8k|  {
  195|  84.8k|    std::size_t offset = n < size_ ? n : size_;
  ------------------
  |  Branch (195:26): [True: 84.8k, False: 0]
  ------------------
  196|  84.8k|    data_ = static_cast<char*>(data_) + offset;
  197|  84.8k|    size_ -= offset;
  198|  84.8k|    return *this;
  199|  84.8k|  }
_ZN5boost4asio12const_bufferC2ERKNS0_14mutable_bufferE:
  248|   116k|    : data_(b.data()),
  249|   116k|      size_(b.size())
  250|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  251|       |      , debug_check_(b.get_debug_check())
  252|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  253|   116k|  {
  254|   116k|  }
_ZNK5boost4asio14mutable_buffer4dataEv:
  178|   237k|  {
  179|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  180|       |    if (size_ && debug_check_)
  181|       |      debug_check_();
  182|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  183|   237k|    return data_;
  184|   237k|  }
_ZNK5boost4asio14mutable_buffer4sizeEv:
  188|   314k|  {
  189|   314k|    return size_;
  190|   314k|  }
_ZN5boost4asio21buffer_sequence_beginINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSC_PKNS0_14mutable_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SG_EE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SL_EE5valueEiE4typeE:
  436|  84.8k|{
  437|  84.8k|  return c.begin();
  438|  84.8k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSC_PKNS0_14mutable_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SG_EE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SL_EE5valueEiE4typeE:
  521|  84.8k|{
  522|  84.8k|  return c.end();
  523|  84.8k|}
_ZN5boost4asio11buffer_copyINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEENS0_12const_bufferEEEmRKT_RKT0_:
 2594|  42.4k|{
 2595|  42.4k|  return detail::buffer_copy(
 2596|  42.4k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  42.4k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  42.4k|      boost::asio::buffer_sequence_begin(target),
 2599|  42.4k|      boost::asio::buffer_sequence_end(target),
 2600|  42.4k|      boost::asio::buffer_sequence_begin(source),
 2601|  42.4k|      boost::asio::buffer_sequence_end(source));
 2602|  42.4k|}
_ZN5boost4asio6detail11buffer_copyINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorEPKNS0_12const_bufferEEEmNS1_16multiple_buffersENS1_10one_bufferET_SH_T0_SI_m:
 2461|  42.4k|{
 2462|  42.4k|  std::size_t total_bytes_copied = 0;
 2463|  42.4k|  TargetIterator target_iter = target_begin;
 2464|       |
 2465|  42.4k|  for (const_buffer source_buffer(
 2466|  42.4k|        boost::asio::buffer(*source_begin, max_bytes_to_copy));
 2467|  85.6k|      source_buffer.size() && target_iter != target_end; ++target_iter)
  ------------------
  |  Branch (2467:7): [True: 43.1k, False: 42.4k]
  |  Branch (2467:31): [True: 43.1k, False: 0]
  ------------------
 2468|  43.1k|  {
 2469|  43.1k|    mutable_buffer target_buffer(*target_iter);
 2470|  43.1k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2471|  43.1k|    total_bytes_copied += bytes_copied;
 2472|  43.1k|    source_buffer += bytes_copied;
 2473|  43.1k|  }
 2474|       |
 2475|  42.4k|  return total_bytes_copied;
 2476|  42.4k|}
_ZN5boost4asio6bufferERKNS0_12const_bufferEm:
  914|  42.4k|{
  915|  42.4k|  return const_buffer(b.data(),
  916|  42.4k|      b.size() < max_size_in_bytes
  ------------------
  |  Branch (916:7): [True: 42.4k, False: 0]
  ------------------
  917|  42.4k|      ? b.size() : max_size_in_bytes
  918|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  919|       |      , b.get_debug_check()
  920|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  921|  42.4k|      );
  922|  42.4k|}
_ZNK5boost4asio12const_buffer4dataEv:
  297|   163k|  {
  298|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  299|       |    if (size_ && debug_check_)
  300|       |      debug_check_();
  301|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  302|   163k|    return data_;
  303|   163k|  }
_ZN5boost4asio12const_bufferC2EPKvm:
  241|  89.7k|    : data_(data),
  242|  89.7k|      size_(size)
  243|  89.7k|  {
  244|  89.7k|  }
_ZN5boost4asio6detail13buffer_copy_1ERKNS0_14mutable_bufferERKNS0_12const_bufferE:
 2404|  84.6k|{
 2405|  84.6k|  using namespace std; // For memcpy.
 2406|  84.6k|  std::size_t target_size = target.size();
 2407|  84.6k|  std::size_t source_size = source.size();
 2408|  84.6k|  std::size_t n = target_size < source_size ? target_size : source_size;
  ------------------
  |  Branch (2408:19): [True: 32.5k, False: 52.1k]
  ------------------
 2409|  84.6k|  if (n > 0)
  ------------------
  |  Branch (2409:7): [True: 84.6k, False: 0]
  ------------------
 2410|  84.6k|    memcpy(target.data(), source.data(), n);
 2411|  84.6k|  return n;
 2412|  84.6k|}
_ZN5boost4asio12const_bufferpLEm:
  313|  43.1k|  {
  314|  43.1k|    std::size_t offset = n < size_ ? n : size_;
  ------------------
  |  Branch (314:26): [True: 737, False: 42.4k]
  ------------------
  315|  43.1k|    data_ = static_cast<const char*>(data_) + offset;
  316|  43.1k|    size_ -= offset;
  317|  43.1k|    return *this;
  318|  43.1k|  }
_ZN5boost4asio21buffer_sequence_beginINS0_12const_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  380|  47.2k|{
  381|  47.2k|  return static_cast<const const_buffer*>(detail::addressof(b));
  382|  47.2k|}
_ZN5boost4asio19buffer_sequence_endINS0_12const_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  465|  47.2k|{
  466|  47.2k|  return static_cast<const const_buffer*>(detail::addressof(b)) + 1;
  467|  47.2k|}
_ZN5boost4asio6bufferEPKvm:
  940|  47.2k|{
  941|  47.2k|  return const_buffer(data, size_in_bytes);
  942|  47.2k|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS0_12const_bufferEEEmRKT_RKT0_:
 2594|  4.85k|{
 2595|  4.85k|  return detail::buffer_copy(
 2596|  4.85k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  4.85k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  4.85k|      boost::asio::buffer_sequence_begin(target),
 2599|  4.85k|      boost::asio::buffer_sequence_end(target),
 2600|  4.85k|      boost::asio::buffer_sequence_begin(source),
 2601|  4.85k|      boost::asio::buffer_sequence_end(source));
 2602|  4.85k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferEPKNS0_12const_bufferEEEmNS1_10one_bufferES9_T_SA_T0_SB_:
 2418|  4.85k|{
 2419|  4.85k|  return (buffer_copy_1)(*target_begin, *source_begin);
 2420|  4.85k|}
_ZN5boost4asio21buffer_sequence_beginINS0_14mutable_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  370|   114k|{
  371|   114k|  return static_cast<const mutable_buffer*>(detail::addressof(b));
  372|   114k|}
_ZN5boost4asio19buffer_sequence_endINS0_14mutable_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  455|   114k|{
  456|   114k|  return static_cast<const mutable_buffer*>(detail::addressof(b)) + 1;
  457|   114k|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferES2_EEmRKT_RKT0_m:
 2632|  36.6k|{
 2633|  36.6k|  return detail::buffer_copy(
 2634|  36.6k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2635|  36.6k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2636|  36.6k|      boost::asio::buffer_sequence_begin(target),
 2637|  36.6k|      boost::asio::buffer_sequence_end(target),
 2638|  36.6k|      boost::asio::buffer_sequence_begin(source),
 2639|  36.6k|      boost::asio::buffer_sequence_end(source), max_bytes_to_copy);
 2640|  36.6k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferES5_EEmNS1_10one_bufferES6_T_S7_T0_S8_m:
 2427|  36.6k|{
 2428|  36.6k|  return (buffer_copy_1)(*target_begin,
 2429|  36.6k|      boost::asio::buffer(*source_begin, max_bytes_to_copy));
 2430|  36.6k|}
_ZN5boost4asio6bufferERKNS0_14mutable_bufferEm:
  883|  36.6k|{
  884|  36.6k|  return mutable_buffer(
  885|  36.6k|      mutable_buffer(b.data(),
  886|  36.6k|        b.size() < max_size_in_bytes
  ------------------
  |  Branch (886:9): [True: 36.6k, False: 0]
  ------------------
  887|  36.6k|        ? b.size() : max_size_in_bytes
  888|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  889|       |        , b.get_debug_check()
  890|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  891|  36.6k|        ));
  892|  36.6k|}

_ZN5boost4asio6configC2ERNS0_17execution_contextE:
   65|  29.1k|    : service_(use_service<config_service>(context))
   66|  29.1k|  {
   67|  29.1k|  }

_ZN5boost4asio6detail27conditionally_enabled_eventC2Ev:
   38|  4.85k|  {
   39|  4.85k|  }
_ZN5boost4asio6detail27conditionally_enabled_eventD2Ev:
   43|  4.85k|  {
   44|  4.85k|  }

_ZN5boost4asio6detail27conditionally_enabled_mutexC2Ebi:
  117|  4.85k|    : spin_count_(spin_count),
  118|  4.85k|      enabled_(enabled)
  119|  4.85k|  {
  120|  4.85k|  }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev:
   64|  9.70k|    {
   65|  9.70k|      if (locked_)
  ------------------
  |  Branch (65:11): [True: 0, False: 9.70k]
  ------------------
   66|      0|        mutex_.mutex_.unlock();
   67|  9.70k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockC2ERS2_:
   51|  9.70k|      : mutex_(m)
   52|  9.70k|    {
   53|  9.70k|      if (m.enabled_)
  ------------------
  |  Branch (53:11): [True: 9.70k, False: 0]
  ------------------
   54|  9.70k|      {
   55|  9.70k|        mutex_.mutex_.lock();
   56|  9.70k|        locked_ = true;
   57|  9.70k|      }
   58|      0|      else
   59|      0|        locked_ = false;
   60|  9.70k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv:
   89|  9.70k|    {
   90|  9.70k|      if (locked_)
  ------------------
  |  Branch (90:11): [True: 9.70k, False: 0]
  ------------------
   91|  9.70k|      {
   92|  9.70k|        mutex_.unlock();
   93|  9.70k|        locked_ = false;
   94|  9.70k|      }
   95|  9.70k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex6unlockEv:
  153|  9.70k|  {
  154|  9.70k|    if (enabled_)
  ------------------
  |  Branch (154:9): [True: 9.70k, False: 0]
  ------------------
  155|  9.70k|      mutex_.unlock();
  156|  9.70k|  }
_ZN5boost4asio6detail27conditionally_enabled_mutexD2Ev:
  124|  4.85k|  {
  125|  4.85k|  }

_ZN5boost4asio6detail11posix_eventC2Ev:
   33|  4.85k|  : state_(0)
   34|  4.85k|{
   35|       |#if (defined(__MACH__) && defined(__APPLE__)) \
   36|       |      || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   37|       |  int error = ::pthread_cond_init(&cond_, 0);
   38|       |#else // (defined(__MACH__) && defined(__APPLE__))
   39|       |      // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   40|  4.85k|  ::pthread_condattr_t attr;
   41|  4.85k|  int error = ::pthread_condattr_init(&attr);
   42|  4.85k|  if (error == 0)
  ------------------
  |  Branch (42:7): [True: 4.85k, False: 0]
  ------------------
   43|  4.85k|  {
   44|  4.85k|    error = ::pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
   45|  4.85k|    if (error == 0)
  ------------------
  |  Branch (45:9): [True: 4.85k, False: 0]
  ------------------
   46|  4.85k|      error = ::pthread_cond_init(&cond_, &attr);
   47|  4.85k|    ::pthread_condattr_destroy(&attr);
   48|  4.85k|  }
   49|  4.85k|#endif // (defined(__MACH__) && defined(__APPLE__))
   50|       |       // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   51|       |
   52|  4.85k|  boost::system::error_code ec(error,
   53|  4.85k|      boost::asio::error::get_system_category());
   54|  4.85k|  boost::asio::detail::throw_error(ec, "event");
   55|  4.85k|}

_ZN5boost4asio6detail11posix_mutexC2Ev:
   33|  9.70k|{
   34|  9.70k|  int error = ::pthread_mutex_init(&mutex_, 0);
   35|  9.70k|  boost::system::error_code ec(error,
   36|  9.70k|      boost::asio::error::get_system_category());
   37|  9.70k|  boost::asio::detail::throw_error(ec, "mutex");
   38|  9.70k|}

_ZN5boost4asio6detail9schedulerC2ERNS0_17execution_contextEbPFPNS1_14scheduler_taskES4_E:
  114|  4.85k|  : boost::asio::detail::execution_context_service_base<scheduler>(ctx),
  115|  4.85k|    one_thread_(config(ctx).get("scheduler", "concurrency_hint", 0) == 1),
  116|  4.85k|    mutex_(config(ctx).get("scheduler", "locking", true),
  117|  4.85k|        config(ctx).get("scheduler", "locking_spin_count", 0)),
  118|  4.85k|    task_(0),
  119|  4.85k|    get_task_(get_task),
  120|  4.85k|    task_interrupted_(true),
  121|  4.85k|    outstanding_work_(0),
  122|  4.85k|    stopped_(false),
  123|  4.85k|    shutdown_(false),
  124|  4.85k|    concurrency_hint_(config(ctx).get("scheduler", "concurrency_hint", 0)),
  125|  4.85k|    task_usec_(config(ctx).get("scheduler", "task_usec", -1L)),
  126|  4.85k|    wait_usec_(config(ctx).get("scheduler", "wait_usec", -1L)),
  127|  4.85k|    thread_(0)
  128|  4.85k|{
  129|  4.85k|  BOOST_ASIO_HANDLER_TRACKING_INIT;
  ------------------
  |  |  241|  4.85k|# define BOOST_ASIO_HANDLER_TRACKING_INIT (void)0
  ------------------
  130|       |
  131|  4.85k|  if (own_thread)
  ------------------
  |  Branch (131:7): [True: 0, False: 4.85k]
  ------------------
  132|      0|  {
  133|      0|    ++outstanding_work_;
  134|      0|    boost::asio::detail::signal_blocker sb;
  135|      0|    thread_ = new boost::asio::detail::thread(thread_function(this));
  136|      0|  }
  137|  4.85k|}
_ZN5boost4asio6detail9schedulerD2Ev:
  140|  4.85k|{
  141|  4.85k|  if (thread_)
  ------------------
  |  Branch (141:7): [True: 0, False: 4.85k]
  ------------------
  142|      0|  {
  143|      0|    mutex::scoped_lock lock(mutex_);
  144|      0|    shutdown_ = true;
  145|      0|    stop_all_threads(lock);
  146|      0|    lock.unlock();
  147|      0|    thread_->join();
  148|      0|    delete thread_;
  149|      0|  }
  150|  4.85k|}
_ZN5boost4asio6detail9scheduler8shutdownEv:
  153|  9.70k|{
  154|  9.70k|  mutex::scoped_lock lock(mutex_);
  155|  9.70k|  shutdown_ = true;
  156|  9.70k|  if (thread_)
  ------------------
  |  Branch (156:7): [True: 0, False: 9.70k]
  ------------------
  157|      0|    stop_all_threads(lock);
  158|  9.70k|  lock.unlock();
  159|       |
  160|       |  // Join thread to ensure task operation is returned to queue.
  161|  9.70k|  if (thread_)
  ------------------
  |  Branch (161:7): [True: 0, False: 9.70k]
  ------------------
  162|      0|  {
  163|      0|    thread_->join();
  164|      0|    delete thread_;
  165|      0|    thread_ = 0;
  166|      0|  }
  167|       |
  168|       |  // Destroy handler objects.
  169|  9.70k|  while (!op_queue_.empty())
  ------------------
  |  Branch (169:10): [True: 0, False: 9.70k]
  ------------------
  170|      0|  {
  171|      0|    operation* o = op_queue_.front();
  172|      0|    op_queue_.pop();
  173|      0|    if (o != &task_operation_)
  ------------------
  |  Branch (173:9): [True: 0, False: 0]
  ------------------
  174|      0|      o->destroy();
  175|      0|  }
  176|       |
  177|       |  // Reset to initial state.
  178|  9.70k|  task_ = 0;
  179|  9.70k|}

_ZN5boost4asio6detail16service_registry11add_serviceINS1_36config_from_concurrency_hint_serviceEEEvPT_:
   44|  4.85k|{
   45|  4.85k|  execution_context::service::key key;
   46|  4.85k|  init_key<Service>(key, 0);
   47|  4.85k|  return do_add_service(key, new_service);
   48|  4.85k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_36config_from_concurrency_hint_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  4.85k|{
   62|  4.85k|  init_key_from_id(key, Service::id);
   63|  4.85k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS0_14config_serviceEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  33.9k|{
   78|  33.9k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  33.9k|  key.id_ = 0;
   80|  33.9k|}
_ZN5boost4asio6detail16service_registry11add_serviceINS1_9schedulerEEEvPT_:
   44|  4.85k|{
   45|  4.85k|  execution_context::service::key key;
   46|  4.85k|  init_key<Service>(key, 0);
   47|  4.85k|  return do_add_service(key, new_service);
   48|  4.85k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_9schedulerEEEvRNS0_17execution_context7service3keyEz:
   61|  4.85k|{
   62|  4.85k|  init_key_from_id(key, Service::id);
   63|  4.85k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS1_9schedulerEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  4.85k|{
   78|  4.85k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  4.85k|  key.id_ = 0;
   80|  4.85k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS0_14config_serviceEEERT_v:
   26|  29.1k|{
   27|  29.1k|  execution_context::service::key key;
   28|  29.1k|  init_key<Service>(key, 0);
   29|  29.1k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  29.1k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  29.1k|}
_ZN5boost4asio6detail16service_registry8init_keyINS0_14config_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  29.1k|{
   62|  29.1k|  init_key_from_id(key, Service::id);
   63|  29.1k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS_5beast4test6detail14stream_serviceEEERT_v:
   26|  4.85k|{
   27|  4.85k|  execution_context::service::key key;
   28|  4.85k|  init_key<Service>(key, 0);
   29|  4.85k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  4.85k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  4.85k|}
_ZN5boost4asio6detail16service_registry8init_keyINS_5beast4test6detail14stream_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  4.85k|{
   62|  4.85k|  init_key_from_id(key, Service::id);
   63|  4.85k|}
_ZN5boost4asio6detail16service_registry6createINS_5beast4test6detail14stream_serviceENS0_17execution_contextEEEPNS8_7serviceEPv:
   85|  4.85k|{
   86|  4.85k|  return new Service(*static_cast<Owner*>(owner));
   87|  4.85k|}

_ZN5boost4asio6detail16service_registry14do_add_serviceERKNS0_17execution_context7service3keyEPS4_:
  156|  9.70k|{
  157|  9.70k|  if (&owner_ != &new_service->context())
  ------------------
  |  Branch (157:7): [True: 0, False: 9.70k]
  ------------------
  158|      0|    boost::asio::detail::throw_exception(invalid_service_owner());
  159|       |
  160|  9.70k|  boost::asio::detail::mutex::scoped_lock lock(mutex_);
  161|       |
  162|       |  // Check if there is an existing service object with the given key.
  163|  9.70k|  execution_context::service* service = first_service_;
  164|  14.5k|  while (service)
  ------------------
  |  Branch (164:10): [True: 4.85k, False: 9.70k]
  ------------------
  165|  4.85k|  {
  166|  4.85k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (166:9): [True: 0, False: 4.85k]
  ------------------
  167|      0|      boost::asio::detail::throw_exception(service_already_exists());
  168|  4.85k|    service = service->next_;
  169|  4.85k|  }
  170|       |
  171|       |  // Take ownership of the service object.
  172|  9.70k|  new_service->key_ = key;
  173|  9.70k|  new_service->next_ = first_service_;
  174|  9.70k|  first_service_ = new_service;
  175|  9.70k|}
_ZN5boost4asio6detail16service_registry10keys_matchERKNS0_17execution_context7service3keyES7_:
   98|  53.3k|{
   99|  53.3k|  if (key1.id_ && key2.id_)
  ------------------
  |  Branch (99:7): [True: 0, False: 53.3k]
  |  Branch (99:19): [True: 0, False: 0]
  ------------------
  100|      0|    if (key1.id_ == key2.id_)
  ------------------
  |  Branch (100:9): [True: 0, False: 0]
  ------------------
  101|      0|      return true;
  102|  53.3k|  if (key1.type_info_ && key2.type_info_)
  ------------------
  |  Branch (102:7): [True: 53.3k, False: 0]
  |  Branch (102:26): [True: 33.9k, False: 19.4k]
  ------------------
  103|  33.9k|    if (*key1.type_info_ == *key2.type_info_)
  ------------------
  |  Branch (103:9): [True: 29.1k, False: 4.85k]
  ------------------
  104|  29.1k|      return true;
  105|  24.2k|  return false;
  106|  53.3k|}
_ZN5boost4asio6detail16service_registryC2ERNS0_17execution_contextE:
   30|  4.85k|  : owner_(owner),
   31|  4.85k|    first_service_(0)
   32|  4.85k|{
   33|  4.85k|}
_ZN5boost4asio6detail16service_registry14do_use_serviceERKNS0_17execution_context7service3keyEPFPS4_PvES9_:
  116|  33.9k|{
  117|  33.9k|  boost::asio::detail::mutex::scoped_lock lock(mutex_);
  118|       |
  119|       |  // First see if there is an existing service object with the given key.
  120|  33.9k|  execution_context::service* service = first_service_;
  121|  43.6k|  while (service)
  ------------------
  |  Branch (121:10): [True: 38.8k, False: 4.85k]
  ------------------
  122|  38.8k|  {
  123|  38.8k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (123:9): [True: 29.1k, False: 9.70k]
  ------------------
  124|  29.1k|      return service;
  125|  9.70k|    service = service->next_;
  126|  9.70k|  }
  127|       |
  128|       |  // Create a new service object. The service registry's mutex is not locked
  129|       |  // at this time to allow for nested calls into this function from the new
  130|       |  // service's constructor.
  131|  4.85k|  lock.unlock();
  132|  4.85k|  auto_service_ptr new_service = { factory(owner) };
  133|  4.85k|  new_service.ptr_->key_ = key;
  134|  4.85k|  lock.lock();
  135|       |
  136|       |  // Check that nobody else created another service object of the same type
  137|       |  // while the lock was released.
  138|  4.85k|  service = first_service_;
  139|  14.5k|  while (service)
  ------------------
  |  Branch (139:10): [True: 9.70k, False: 4.85k]
  ------------------
  140|  9.70k|  {
  141|  9.70k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (141:9): [True: 0, False: 9.70k]
  ------------------
  142|      0|      return service;
  143|  9.70k|    service = service->next_;
  144|  9.70k|  }
  145|       |
  146|       |  // Service was successfully initialised, pass ownership to registry.
  147|  4.85k|  new_service.ptr_->next_ = first_service_;
  148|  4.85k|  first_service_ = new_service.ptr_;
  149|  4.85k|  new_service.ptr_ = 0;
  150|  4.85k|  return first_service_;
  151|  4.85k|}
_ZN5boost4asio6detail16service_registry7destroyEPNS0_17execution_context7serviceE:
  109|  19.4k|{
  110|  19.4k|  delete service;
  111|  19.4k|}
_ZN5boost4asio6detail16service_registry17shutdown_servicesEv:
   40|  9.70k|{
   41|  9.70k|  execution_context::service* service = first_service_;
   42|  38.8k|  while (service)
  ------------------
  |  Branch (42:10): [True: 29.1k, False: 9.70k]
  ------------------
   43|  29.1k|  {
   44|  29.1k|    service->shutdown();
   45|  29.1k|    service = service->next_;
   46|  29.1k|  }
   47|  9.70k|}
_ZN5boost4asio6detail16service_registry16destroy_servicesEv:
   50|  4.85k|{
   51|  19.4k|  while (first_service_)
  ------------------
  |  Branch (51:10): [True: 14.5k, False: 4.85k]
  ------------------
   52|  14.5k|  {
   53|  14.5k|    execution_context::service* next_service = first_service_->next_;
   54|  14.5k|    destroy(first_service_);
   55|  14.5k|    first_service_ = next_service;
   56|  14.5k|  }
   57|  4.85k|}
_ZN5boost4asio6detail16service_registryD2Ev:
   36|  4.85k|{
   37|  4.85k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idERNS0_17execution_context7service3keyERKNS3_2idE:
   90|  4.85k|{
   91|  4.85k|  key.type_info_ = 0;
   92|  4.85k|  key.id_ = &id;
   93|  4.85k|}

_ZN5boost4asio6detail15keyword_tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEEC2Ev:
   37|      2|  {
   38|      2|  }

_ZN5boost4asio6detail11noncopyableC2Ev:
   29|   111k|  noncopyable() {}
_ZN5boost4asio6detail11noncopyableD2Ev:
   30|   111k|  ~noncopyable() {}

_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEEC2Ev:
   70|  4.85k|    : front_(0),
   71|  4.85k|      back_(0)
   72|  4.85k|  {
   73|  4.85k|  }
_ZNK5boost4asio6detail8op_queueINS1_19scheduler_operationEE5emptyEv:
  138|  9.70k|  {
  139|  9.70k|    return front_ == 0;
  140|  9.70k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev:
   77|  4.85k|  {
   78|  4.85k|    while (Operation* op = front_)
  ------------------
  |  Branch (78:23): [True: 0, False: 4.85k]
  ------------------
   79|      0|    {
   80|      0|      pop();
   81|      0|      op_queue_access::destroy(op);
   82|      0|    }
   83|  4.85k|  }

_ZN5boost4asio6detail11posix_eventD2Ev:
   42|  4.85k|  {
   43|  4.85k|    ::pthread_cond_destroy(&cond_);
   44|  4.85k|  }

_ZN5boost4asio6detail11posix_mutex4lockEv:
   57|  58.2k|  {
   58|  58.2k|    (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL.
   59|  58.2k|  }
_ZN5boost4asio6detail11posix_mutex6unlockEv:
   63|  58.2k|  {
   64|  58.2k|    (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL.
   65|  58.2k|  }
_ZN5boost4asio6detail11posix_mutexD2Ev:
   45|  9.70k|  {
   46|  9.70k|    ::pthread_mutex_destroy(&mutex_); // Ignore EBUSY.
   47|  9.70k|  }

_ZN5boost4asio6detail9scheduler14task_operationC2Ev:
  201|  4.85k|    task_operation() : operation(0) {}

_ZN5boost4asio6detail19scheduler_operationC2EPFvPvPS2_RKNS_6system10error_codeEmE:
   54|  4.85k|    : next_(0),
   55|  4.85k|      func_(func),
   56|  4.85k|      task_result_(0)
   57|  4.85k|  {
   58|  4.85k|  }
_ZN5boost4asio6detail19scheduler_operationD2Ev:
   62|  4.85k|  {
   63|  4.85k|  }

_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEEC2ERS3_:
   44|  43.6k|    : mutex_(m)
   45|  43.6k|  {
   46|  43.6k|    mutex_.lock();
   47|  43.6k|    locked_ = true;
   48|  43.6k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEED2Ev:
   52|  43.6k|  {
   53|  43.6k|    if (locked_)
  ------------------
  |  Branch (53:9): [True: 43.6k, False: 0]
  ------------------
   54|  43.6k|      mutex_.unlock();
   55|  43.6k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEE6unlockEv:
   69|  4.85k|  {
   70|  4.85k|    if (locked_)
  ------------------
  |  Branch (70:9): [True: 4.85k, False: 0]
  ------------------
   71|  4.85k|    {
   72|  4.85k|      mutex_.unlock();
   73|  4.85k|      locked_ = false;
   74|  4.85k|    }
   75|  4.85k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEE4lockEv:
   59|  4.85k|  {
   60|  4.85k|    if (!locked_)
  ------------------
  |  Branch (60:9): [True: 4.85k, False: 0]
  ------------------
   61|  4.85k|    {
   62|  4.85k|      mutex_.lock();
   63|  4.85k|      locked_ = true;
   64|  4.85k|    }
   65|  4.85k|  }

_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEEC2EPS3_:
   32|  4.85k|    : p_(p)
   33|  4.85k|  {
   34|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEE3getEv:
   44|  4.85k|  {
   45|  4.85k|    return p_;
   46|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEEdeEv:
   56|  4.85k|  {
   57|  4.85k|    return *p_;
   58|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEE7releaseEv:
   69|  4.85k|  {
   70|  4.85k|    T* tmp = p_;
   71|  4.85k|    p_ = 0;
   72|  4.85k|    return tmp;
   73|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEED2Ev:
   38|  4.85k|  {
   39|  4.85k|    delete p_;
   40|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEEC2EPS3_:
   32|  4.85k|    : p_(p)
   33|  4.85k|  {
   34|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEE3getEv:
   44|  4.85k|  {
   45|  4.85k|    return p_;
   46|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEE7releaseEv:
   69|  4.85k|  {
   70|  4.85k|    T* tmp = p_;
   71|  4.85k|    p_ = 0;
   72|  4.85k|    return tmp;
   73|  4.85k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEED2Ev:
   38|  4.85k|  {
   39|  4.85k|    delete p_;
   40|  4.85k|  }

_ZN5boost4asio6detail16service_registry16auto_service_ptrD2Ev:
  124|  4.85k|    ~auto_service_ptr() { destroy(ptr_); }

_ZN5boost4asio6detail11throw_errorERKNS_6system10error_codeEPKcRKNS_15source_locationE:
   49|  14.5k|{
   50|  14.5k|  if (err)
  ------------------
  |  Branch (50:7): [True: 0, False: 14.5k]
  ------------------
   51|      0|    do_throw_error(err, location BOOST_ASIO_SOURCE_LOCATION_ARG);
  ------------------
  |  |  644|      0|# define BOOST_ASIO_SOURCE_LOCATION_ARG , loc
  ------------------
   52|  14.5k|}

_ZN5boost4asio5error19get_system_categoryEv:
  258|  14.5k|{
  259|  14.5k|  return boost::system::system_category();
  260|  14.5k|}
_ZN5boost4asio5error15make_error_codeENS1_11misc_errorsE:
  353|  44.1k|{
  354|  44.1k|  return boost::system::error_code(
  355|  44.1k|      static_cast<int>(e), get_misc_category());
  356|  44.1k|}

_ZNK5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE5queryINS7_9context_tILi0EEEEENST_25find_convertible_propertyIT_E17query_result_typeERKSY_PNSt3__19enable_ifIXaantsr7is_sameIS10_vEE5valuesr12is_referenceIS10_EE5valueEvE4typeE:
 1702|  4.85k|  {
 1703|  4.85k|    if (!target_)
  ------------------
  |  Branch (1703:9): [True: 0, False: 4.85k]
  ------------------
 1704|      0|    {
 1705|      0|      bad_executor ex;
 1706|      0|      boost::asio::detail::throw_exception(ex);
 1707|      0|    }
 1708|  4.85k|    typedef find_convertible_property<Property> found;
 1709|  4.85k|    remove_reference_t<typename found::query_result_type>* result = 0;
 1710|  4.85k|    prop_fns_[found::index].query(&result, object_fns_->target(*this),
 1711|  4.85k|        &static_cast<const typename found::type&>(p));
 1712|  4.85k|    return *result;
 1713|  4.85k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2ERKST_:
 1522|  4.85k|    : detail::any_executor_base(
 1523|  4.85k|        static_cast<const detail::any_executor_base&>(other)),
 1524|  4.85k|      prop_fns_(other.prop_fns_)
 1525|  4.85k|  {
 1526|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2ERKS3_:
  560|  4.85k|  {
  561|  4.85k|    if (!!other)
  ------------------
  |  Branch (561:9): [True: 4.85k, False: 0]
  ------------------
  562|  4.85k|    {
  563|  4.85k|      object_fns_ = other.object_fns_;
  564|  4.85k|      target_fns_ = other.target_fns_;
  565|  4.85k|      object_fns_->copy(*this, other);
  566|  4.85k|    }
  567|      0|    else
  568|      0|    {
  569|      0|      object_fns_ = 0;
  570|      0|      target_ = 0;
  571|      0|      target_fns_ = 0;
  572|      0|    }
  573|  4.85k|  }
_ZNK5boost4asio9execution6detail17any_executor_basentEv:
  730|  19.4k|  {
  731|  19.4k|    return target_ == 0;
  732|  19.4k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2EOST_:
 1554|  4.85k|    : detail::any_executor_base(
 1555|  4.85k|        static_cast<any_executor_base&&>(
 1556|  4.85k|          static_cast<any_executor_base&>(other))),
 1557|  4.85k|      prop_fns_(other.prop_fns_)
 1558|  4.85k|  {
 1559|  4.85k|    other.prop_fns_ = prop_fns_table<void>();
 1560|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2EOS3_:
  615|  4.85k|  {
  616|  4.85k|    if (other.target_)
  ------------------
  |  Branch (616:9): [True: 4.85k, False: 0]
  ------------------
  617|  4.85k|    {
  618|  4.85k|      object_fns_ = other.object_fns_;
  619|  4.85k|      target_fns_ = other.target_fns_;
  620|  4.85k|      other.object_fns_ = 0;
  621|  4.85k|      other.target_fns_ = 0;
  622|  4.85k|      object_fns_->move(*this, other);
  623|  4.85k|      other.target_ = 0;
  624|  4.85k|    }
  625|      0|    else
  626|      0|    {
  627|      0|      object_fns_ = 0;
  628|      0|      target_ = 0;
  629|      0|      target_fns_ = 0;
  630|      0|    }
  631|  4.85k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE14prop_fns_tableIvEEPKNS7_17any_executor_base8prop_fnsIST_EEv:
 1819|  4.85k|  {
 1820|  4.85k|    static const prop_fns<any_executor> fns[] =
 1821|  4.85k|    {
 1822|  4.85k|      {
 1823|  4.85k|        &detail::any_executor_base::query_fn<
 1824|  4.85k|            Ex, SupportableProperties>,
 1825|  4.85k|        &detail::any_executor_base::require_fn<
 1826|  4.85k|            any_executor, Ex, SupportableProperties>,
 1827|  4.85k|        &detail::any_executor_base::prefer_fn<
 1828|  4.85k|            any_executor, Ex, SupportableProperties>
 1829|  4.85k|      }...
 1830|  4.85k|    };
 1831|  4.85k|    return fns;
 1832|  4.85k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_PNSX_9enable_ifIXsr13conditional_tIXaantsr7is_sameIS11_ST_EE5valuentsr10is_base_ofINS7_17any_executor_baseES11_EE5valueENS7_24is_valid_target_executorIS11_FvS6_SA_SE_SI_SL_SP_SS_EEENSX_17integral_constantIbLb0EEEEE5valueEvE4typeE:
 1451|  4.85k|    : detail::any_executor_base(
 1452|  4.85k|        static_cast<Executor&&>(ex), false_type()),
 1453|  4.85k|      prop_fns_(prop_fns_table<Executor>())
 1454|  4.85k|  {
 1455|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_NS7_17integral_constantIbLb0EEE:
  498|  4.85k|    : target_fns_(target_fns_table<Executor>(
  499|  4.85k|          any_executor_base::query_blocking(ex,
  500|  4.85k|            can_query<const Executor&, const execution::blocking_t&>())
  501|  4.85k|          == execution::blocking.always))
  502|  4.85k|  {
  503|  4.85k|    any_executor_base::construct_object(ex,
  504|  4.85k|        integral_constant<bool,
  505|  4.85k|          sizeof(Executor) <= sizeof(object_type)
  506|  4.85k|            && alignment_of<Executor>::value <= alignment_of<object_type>::value
  507|  4.85k|        >());
  508|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base16target_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS3_10target_fnsEbPNS7_9enable_ifIXntsr7is_sameIT_vEE5valueEvE4typeE:
  916|  4.85k|  {
  917|  4.85k|    static const target_fns fns_with_execute =
  918|  4.85k|    {
  919|  4.85k|      &any_executor_base::target_type_ex<Ex>,
  920|  4.85k|      &any_executor_base::equal_ex<Ex>,
  921|  4.85k|      &any_executor_base::execute_ex<Ex>,
  922|  4.85k|      0
  923|  4.85k|    };
  924|       |
  925|  4.85k|    static const target_fns fns_with_blocking_execute =
  926|  4.85k|    {
  927|  4.85k|      &any_executor_base::target_type_ex<Ex>,
  928|  4.85k|      &any_executor_base::equal_ex<Ex>,
  929|  4.85k|      0,
  930|  4.85k|      &any_executor_base::blocking_execute_ex<Ex>
  931|  4.85k|    };
  932|       |
  933|  4.85k|    return is_always_blocking ? &fns_with_blocking_execute : &fns_with_execute;
  ------------------
  |  Branch (933:12): [True: 0, False: 4.85k]
  ------------------
  934|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base14query_blockingINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEENS2_10blocking_tILi0EEERKT_NS7_17integral_constantIbLb1EEE:
 1146|  4.85k|  {
 1147|  4.85k|    return boost::asio::query(ex, execution::blocking);
 1148|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base16construct_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRT_NS7_17integral_constantIbLb1EEE:
 1158|  4.85k|  {
 1159|  4.85k|    object_fns_ = object_fns_table<Executor>();
 1160|  4.85k|    target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
 1161|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base16object_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS3_10object_fnsEPNS7_9enable_ifIXaantsr7is_sameIT_vEE5valuentsr7is_sameISF_NS2_22shared_target_executorEEE5valueEvE4typeE:
  844|  4.85k|  {
  845|  4.85k|    static const object_fns fns =
  846|  4.85k|    {
  847|  4.85k|      &any_executor_base::destroy_object<Obj>,
  848|  4.85k|      &any_executor_base::copy_object<Obj>,
  849|  4.85k|      &any_executor_base::move_object<Obj>,
  850|  4.85k|      &any_executor_base::target_object<Obj>
  851|  4.85k|    };
  852|  4.85k|    return &fns;
  853|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base14destroy_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_:
  813|  9.70k|  {
  814|  9.70k|    ex.object<Obj>().~Obj();
  815|  9.70k|  }
_ZN5boost4asio9execution6detail17any_executor_base6objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEERT_v:
  750|  29.1k|  {
  751|  29.1k|    return *static_cast<Ex*>(static_cast<void*>(&object_));
  752|  29.1k|  }
_ZN5boost4asio9execution6detail17any_executor_base11copy_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_RKS3_:
  819|  4.85k|  {
  820|  4.85k|    new (&ex1.object_) Obj(ex2.object<Obj>());
  821|  4.85k|    ex1.target_ = &ex1.object<Obj>();
  822|  4.85k|  }
_ZNK5boost4asio9execution6detail17any_executor_base6objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEERKT_v:
  756|  9.70k|  {
  757|  9.70k|    return *static_cast<const Ex*>(static_cast<const void*>(&object_));
  758|  9.70k|  }
_ZN5boost4asio9execution6detail17any_executor_base11move_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_SB_:
  826|  4.85k|  {
  827|  4.85k|    new (&ex1.object_) Obj(static_cast<Obj&&>(ex2.object<Obj>()));
  828|  4.85k|    ex1.target_ = &ex1.object<Obj>();
  829|  4.85k|    ex2.object<Obj>().~Obj();
  830|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base13target_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKvRKS3_:
  834|  4.85k|  {
  835|  4.85k|    return &ex.object<Obj>();
  836|  4.85k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE14prop_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS7_17any_executor_base8prop_fnsIST_EEv:
 1819|  4.85k|  {
 1820|  4.85k|    static const prop_fns<any_executor> fns[] =
 1821|  4.85k|    {
 1822|  4.85k|      {
 1823|  4.85k|        &detail::any_executor_base::query_fn<
 1824|  4.85k|            Ex, SupportableProperties>,
 1825|  4.85k|        &detail::any_executor_base::require_fn<
 1826|  4.85k|            any_executor, Ex, SupportableProperties>,
 1827|  4.85k|        &detail::any_executor_base::prefer_fn<
 1828|  4.85k|            any_executor, Ex, SupportableProperties>
 1829|  4.85k|      }...
 1830|  4.85k|    };
 1831|  4.85k|    return fns;
 1832|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base8query_fnINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_:
 1061|  4.85k|  {
 1062|  4.85k|    query_fn_impl<Ex, Prop>(result, ex, prop, 0);
 1063|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base13query_fn_implINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_PNS7_9enable_ifIXntsr7is_sameIT_vEE5valueEvE4typeE:
 1055|  4.85k|  {
 1056|  4.85k|    query_fn_non_void<Ex, Prop>(result, ex, prop, 0);
 1057|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_base17query_fn_non_voidINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_PNS7_9enable_ifIXaaaasr5boost4asio9can_queryIRKT_RKT0_EE5valuentsr7is_sameINSM_29polymorphic_query_result_typeEvEE5valuesr12is_referenceISP_EE5valueEvE4typeE:
  974|  4.85k|  {
  975|  4.85k|    *static_cast<remove_reference_t<
  976|  4.85k|      typename Prop::polymorphic_query_result_type>**>(result)
  977|  4.85k|        = &static_cast<typename Prop::polymorphic_query_result_type>(
  978|  4.85k|            boost::asio::query(*static_cast<const Ex*>(ex),
  979|  4.85k|              *static_cast<const Prop*>(prop)));
  980|  4.85k|  }
_ZN5boost4asio9execution6detail17any_executor_baseD2Ev:
  576|  14.5k|  {
  577|  14.5k|    if (!!*this)
  ------------------
  |  Branch (577:9): [True: 9.70k, False: 4.85k]
  ------------------
  578|  9.70k|      object_fns_->destroy(*this);
  579|  14.5k|  }

_ZN5boost4asio9execution6detaileqERKNS2_10blocking_tILi0EEES6_:
  370|  4.85k|  {
  371|  4.85k|    return a.value_ == b.value_;
  372|  4.85k|  }
_ZN5boost4asio9execution6detail10blocking_tILi0EEC2ENS2_8blocking10possibly_tILi0EEE:
  221|  4.85k|    : value_(0)
  222|  4.85k|  {
  223|  4.85k|  }
_ZN5boost4asio9execution6detail10blocking_tILi0EEC2ENS2_8blocking8always_tILi0EEE:
  226|  4.85k|    : value_(1)
  227|  4.85k|  {
  228|  4.85k|  }

_ZN5boost4asio9execution12context_as_tIRNS0_17execution_contextEEC2ENS1_6detail9context_tILi0EEE:
   83|  4.85k|  {
   84|  4.85k|  }
_ZN5boost4asio9execution5queryINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERNS0_17execution_contextEEET0_RKT_RKNS1_12context_as_tISB_EEPNS5_9enable_ifIXsr7is_sameISA_SB_EE5valueEvE4typeEPNSJ_IXsr9can_queryISE_RKNS1_6detail9context_tILi0EEEEE5valueEvE4typeE:
  119|  4.85k|  {
  120|  4.85k|    return boost::asio::query(ex, context);
  121|  4.85k|  }

_ZN5boost4asio6detail30execution_context_service_baseINS0_14config_serviceEEC2ERNS0_17execution_contextE:
  400|  4.85k|    : execution_context::service(e)
  401|  4.85k|  {
  402|  4.85k|  }
_ZN5boost4asio17execution_context7service3keyC2Ev:
  337|  58.2k|    key() : type_info_(0), id_(0) {}
_ZN5boost4asio6detail30execution_context_service_baseINS1_9schedulerEEC2ERNS0_17execution_contextE:
  400|  4.85k|    : execution_context::service(e)
  401|  4.85k|  {
  402|  4.85k|  }
_ZN5boost4asio17execution_context2idC2Ev:
  300|      8|  id() {}

_ZN5boost4asio15any_io_executorC2ERKS1_:
   40|  4.85k|  : base_type(static_cast<const base_type&>(e))
   41|  4.85k|{
   42|  4.85k|}
_ZN5boost4asio15any_io_executorC2EOS1_:
   51|  4.85k|  : base_type(static_cast<base_type&&>(e))
   52|  4.85k|{
   53|  4.85k|}

_ZNK5boost4asio6config3getIbEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  4.85k|{
   92|  4.85k|  return detail::config_get(service_, section,
   93|  4.85k|      key, default_value, is_same<T, bool>());
   94|  4.85k|}
_ZN5boost4asio6detail10config_getIbEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb1EEE:
   71|  4.85k|{
   72|  4.85k|  char buf[std::numeric_limits<unsigned long long>::digits10
   73|  4.85k|      + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   74|  4.85k|  if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (74:19): [True: 4.85k, False: 0]
  ------------------
   75|  4.85k|  {
   76|  4.85k|    char* end = nullptr;
   77|  4.85k|    errno = 0;
   78|  4.85k|    unsigned long long result = std::strtoll(str, &end, 0);
   79|  4.85k|    if (errno == ERANGE || (result != 0 && result != 1))
  ------------------
  |  Branch (79:9): [True: 0, False: 4.85k]
  |  Branch (79:29): [True: 4.85k, False: 0]
  |  Branch (79:44): [True: 0, False: 4.85k]
  ------------------
   80|      0|      detail::throw_exception(std::out_of_range("config out of range"));
   81|  4.85k|    return static_cast<T>(result != 0);
   82|  4.85k|  }
   83|      0|  return default_value;
   84|  4.85k|}
_ZNK5boost4asio6config3getIiEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  14.5k|{
   92|  14.5k|  return detail::config_get(service_, section,
   93|  14.5k|      key, default_value, is_same<T, bool>());
   94|  14.5k|}
_ZN5boost4asio6detail10config_getIiEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb0EEE:
   33|  14.5k|{
   34|  14.5k|  if (is_unsigned<T>::value)
  ------------------
  |  Branch (34:7): [Folded - Ignored]
  ------------------
   35|      0|  {
   36|      0|    char buf[std::numeric_limits<unsigned long long>::digits10
   37|      0|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   38|      0|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (38:21): [True: 0, False: 0]
  ------------------
   39|      0|    {
   40|      0|      char* end = nullptr;
   41|      0|      errno = 0;
   42|      0|      unsigned long long result = std::strtoull(str, &end, 0);
   43|      0|      if (errno == ERANGE
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|          || result > static_cast<unsigned long long>(
  ------------------
  |  Branch (44:14): [True: 0, False: 0]
  ------------------
   45|      0|            (std::numeric_limits<T>::max)()))
   46|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   47|      0|      return static_cast<T>(result);
   48|      0|    }
   49|      0|  }
   50|  14.5k|  else
   51|  14.5k|  {
   52|  14.5k|    char buf[std::numeric_limits<unsigned long long>::digits10
   53|  14.5k|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   54|  14.5k|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (54:21): [True: 9.70k, False: 4.85k]
  ------------------
   55|  9.70k|    {
   56|  9.70k|      char* end = nullptr;
   57|  9.70k|      errno = 0;
   58|  9.70k|      long long result = std::strtoll(str, &end, 0);
   59|  9.70k|      if (errno == ERANGE || result < (std::numeric_limits<T>::min)()
  ------------------
  |  Branch (59:11): [True: 0, False: 9.70k]
  |  Branch (59:30): [True: 0, False: 9.70k]
  ------------------
   60|  9.70k|          || result > (std::numeric_limits<T>::max)())
  ------------------
  |  Branch (60:14): [True: 0, False: 9.70k]
  ------------------
   61|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   62|  9.70k|      return static_cast<T>(result);
   63|  9.70k|    }
   64|  14.5k|  }
   65|  4.85k|  return default_value;
   66|  14.5k|}
_ZNK5boost4asio6config3getIlEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  9.70k|{
   92|  9.70k|  return detail::config_get(service_, section,
   93|  9.70k|      key, default_value, is_same<T, bool>());
   94|  9.70k|}
_ZN5boost4asio6detail10config_getIlEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb0EEE:
   33|  9.70k|{
   34|  9.70k|  if (is_unsigned<T>::value)
  ------------------
  |  Branch (34:7): [Folded - Ignored]
  ------------------
   35|      0|  {
   36|      0|    char buf[std::numeric_limits<unsigned long long>::digits10
   37|      0|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   38|      0|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (38:21): [True: 0, False: 0]
  ------------------
   39|      0|    {
   40|      0|      char* end = nullptr;
   41|      0|      errno = 0;
   42|      0|      unsigned long long result = std::strtoull(str, &end, 0);
   43|      0|      if (errno == ERANGE
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|          || result > static_cast<unsigned long long>(
  ------------------
  |  Branch (44:14): [True: 0, False: 0]
  ------------------
   45|      0|            (std::numeric_limits<T>::max)()))
   46|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   47|      0|      return static_cast<T>(result);
   48|      0|    }
   49|      0|  }
   50|  9.70k|  else
   51|  9.70k|  {
   52|  9.70k|    char buf[std::numeric_limits<unsigned long long>::digits10
   53|  9.70k|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   54|  9.70k|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (54:21): [True: 0, False: 9.70k]
  ------------------
   55|      0|    {
   56|      0|      char* end = nullptr;
   57|      0|      errno = 0;
   58|      0|      long long result = std::strtoll(str, &end, 0);
   59|      0|      if (errno == ERANGE || result < (std::numeric_limits<T>::min)()
  ------------------
  |  Branch (59:11): [True: 0, False: 0]
  |  Branch (59:30): [True: 0, False: 0]
  ------------------
   60|      0|          || result > (std::numeric_limits<T>::max)())
  ------------------
  |  Branch (60:14): [True: 0, False: 0]
  ------------------
   61|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   62|      0|      return static_cast<T>(result);
   63|      0|    }
   64|  9.70k|  }
   65|  9.70k|  return default_value;
   66|  9.70k|}

_ZN5boost4asio28config_from_concurrency_hintC2Ev:
  100|  4.85k|  : concurrency_hint_(BOOST_ASIO_CONCURRENCY_HINT_DEFAULT)
  ------------------
  |  |   84|  4.85k|# define BOOST_ASIO_CONCURRENCY_HINT_DEFAULT -1
  ------------------
  101|  4.85k|{
  102|  4.85k|}
_ZNK5boost4asio28config_from_concurrency_hint4makeERNS0_17execution_contextE:
  105|  4.85k|{
  106|  4.85k|  (void)make_service<detail::config_from_concurrency_hint_service>(ctx,
  107|  4.85k|      concurrency_hint_ == 1
  ------------------
  |  Branch (107:7): [True: 0, False: 4.85k]
  ------------------
  108|  4.85k|        ? BOOST_ASIO_CONCURRENCY_HINT_1 : concurrency_hint_);
  ------------------
  |  |   91|      0|# define BOOST_ASIO_CONCURRENCY_HINT_1 1
  ------------------
  109|  4.85k|}
_ZN5boost4asio6detail36config_from_concurrency_hint_serviceC2ERNS0_17execution_contextEi:
   54|  4.85k|    : config_service(ctx),
   55|  4.85k|      concurrency_hint_(concurrency_hint)
   56|  4.85k|  {
   57|  4.85k|  }
_ZN5boost4asio14config_serviceC2ERNS0_17execution_contextE:
   33|  4.85k|  : detail::execution_context_service_base<config_service>(ctx)
   34|  4.85k|{
   35|  4.85k|}
_ZN5boost4asio14config_service8shutdownEv:
   38|  9.70k|{
   39|  9.70k|}
_ZNK5boost4asio6detail36config_from_concurrency_hint_service9get_valueEPKcS4_Pcm:
   61|  29.1k|  {
   62|  29.1k|    if (std::strcmp(section, "scheduler") == 0)
  ------------------
  |  Branch (62:9): [True: 29.1k, False: 0]
  ------------------
   63|  29.1k|    {
   64|  29.1k|      if (std::strcmp(key, "concurrency_hint") == 0)
  ------------------
  |  Branch (64:11): [True: 9.70k, False: 19.4k]
  ------------------
   65|  9.70k|      {
   66|  9.70k|        std::snprintf(value, value_len, "%d",
   67|  9.70k|            BOOST_ASIO_CONCURRENCY_HINT_IS_SPECIAL(concurrency_hint_)
  ------------------
  |  |   38|  9.70k|  ((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (38:3): [True: 0, False: 9.70k]
  |  |  ------------------
  |  |   39|  9.70k|    & BOOST_ASIO_CONCURRENCY_HINT_ID_MASK) \
  |  |  ------------------
  |  |  |  |   24|  9.70k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   40|  9.70k|      == BOOST_ASIO_CONCURRENCY_HINT_ID)
  |  |  ------------------
  |  |  |  |   23|  9.70k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   68|  9.70k|              ? 1 : concurrency_hint_);
   69|  9.70k|        return value;
   70|  9.70k|      }
   71|  19.4k|      else if (std::strcmp(key, "locking") == 0)
  ------------------
  |  Branch (71:16): [True: 4.85k, False: 14.5k]
  ------------------
   72|  4.85k|      {
   73|  4.85k|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|  4.85k|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 4.85k, False: 0]
  |  |  ------------------
  |  |   45|  4.85k|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|  4.85k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|  4.85k|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|  4.85k|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|  4.85k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   74|  4.85k|            SCHEDULER, concurrency_hint_) ? "1" : "0";
   75|  4.85k|      }
   76|  29.1k|    }
   77|      0|    else if (std::strcmp(section, "reactor") == 0)
  ------------------
  |  Branch (77:14): [True: 0, False: 0]
  ------------------
   78|      0|    {
   79|      0|      if (std::strcmp(key, "io_locking") == 0)
  ------------------
  |  Branch (79:11): [True: 0, False: 0]
  ------------------
   80|      0|      {
   81|      0|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|      0|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 0, False: 0]
  |  |  ------------------
  |  |   45|      0|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|      0|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|      0|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|      0|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|      0|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   82|      0|            REACTOR_IO, concurrency_hint_) ? "1" : "0";
   83|      0|      }
   84|      0|      else if (std::strcmp(key, "registration_locking") == 0)
  ------------------
  |  Branch (84:16): [True: 0, False: 0]
  ------------------
   85|      0|      {
   86|      0|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|      0|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 0, False: 0]
  |  |  ------------------
  |  |   45|      0|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|      0|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|      0|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|      0|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|      0|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   87|      0|            REACTOR_REGISTRATION, concurrency_hint_) ? "1" : "0";
   88|      0|      }
   89|      0|    }
   90|  14.5k|    return nullptr;
   91|  29.1k|  }

_ZN5boost4asio5error18get_netdb_categoryEv:
   57|      2|{
   58|      2|  static detail::netdb_category instance;
   59|      2|  return instance;
   60|      2|}
_ZN5boost4asio5error21get_addrinfo_categoryEv:
   85|      2|{
   86|      2|  static detail::addrinfo_category instance;
   87|      2|  return instance;
   88|      2|}
_ZN5boost4asio5error17get_misc_categoryEv:
  119|  44.1k|{
  120|  44.1k|  static detail::misc_category instance;
  121|  44.1k|  return instance;
  122|  44.1k|}

_ZN5boost4asio12make_serviceINS0_6detail36config_from_concurrency_hint_serviceEJiEEERT_RNS0_17execution_contextEDpOT0_:
   40|  4.85k|{
   41|  4.85k|  detail::scoped_ptr<Service> svc(
   42|  4.85k|      new Service(e, static_cast<Args&&>(args)...));
   43|  4.85k|  e.service_registry_->template add_service<Service>(svc.get());
   44|  4.85k|  Service& result = *svc;
   45|  4.85k|  svc.release();
   46|  4.85k|  return result;
   47|  4.85k|}
_ZN5boost4asio17execution_context7service7contextEv:
   70|  9.70k|{
   71|  9.70k|  return owner_;
   72|  9.70k|}
_ZN5boost4asio11add_serviceINS0_6detail9schedulerEEEvRNS0_17execution_contextEPT_:
   51|  4.85k|{
   52|       |  // Check that Service meets the necessary type requirements.
   53|  4.85k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   54|       |
   55|  4.85k|  e.service_registry_->template add_service<Service>(svc);
   56|  4.85k|}
_ZN5boost4asio11use_serviceINS0_14config_serviceEEERT_RNS0_17execution_contextE:
   31|  29.1k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  29.1k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  29.1k|  return e.service_registry_->template use_service<Service>();
   36|  29.1k|}
_ZN5boost4asio11use_serviceINS_5beast4test6detail14stream_serviceEEERT_RNS0_17execution_contextE:
   31|  4.85k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  4.85k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  4.85k|  return e.service_registry_->template use_service<Service>();
   36|  4.85k|}

_ZN5boost4asio17execution_context7serviceC2ERS1_:
   63|  14.5k|  : owner_(owner),
   64|  14.5k|    next_(0)
   65|  14.5k|{
   66|  14.5k|}
_ZN5boost4asio17execution_contextC2ERKNS1_13service_makerE:
   34|  4.85k|  : service_registry_(new boost::asio::detail::service_registry(*this))
   35|  4.85k|{
   36|  4.85k|  initial_services.make(*this);
   37|  4.85k|}
_ZN5boost4asio17execution_contextD2Ev:
   40|  4.85k|{
   41|  4.85k|  shutdown();
   42|  4.85k|  destroy();
   43|  4.85k|  delete service_registry_;
   44|  4.85k|}
_ZN5boost4asio17execution_context8shutdownEv:
   47|  9.70k|{
   48|  9.70k|  service_registry_->shutdown_services();
   49|  9.70k|}
_ZN5boost4asio17execution_context7destroyEv:
   52|  4.85k|{
   53|  4.85k|  service_registry_->destroy_services();
   54|  4.85k|}

_ZN5boost4asio10io_context12get_executorEv:
   55|  4.85k|{
   56|  4.85k|  return executor_type(*this);
   57|  4.85k|}

_ZN5boost4asio10io_contextC2Ev:
   39|  4.85k|  : execution_context(config_from_concurrency_hint()),
   40|  4.85k|    impl_(add_impl(new impl_type(*this, false)))
   41|  4.85k|{
   42|  4.85k|}
_ZN5boost4asio10io_context8add_implEPNS0_6detail9schedulerE:
   57|  4.85k|{
   58|  4.85k|  boost::asio::detail::scoped_ptr<impl_type> scoped_impl(impl);
   59|  4.85k|  boost::asio::add_service<impl_type>(*this, scoped_impl.get());
   60|  4.85k|  return *scoped_impl.release();
   61|  4.85k|}
_ZN5boost4asio10io_contextD2Ev:
   64|  4.85k|{
   65|  4.85k|  shutdown();
   66|  4.85k|}

_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2ERS1_:
  916|  4.85k|    : Allocator(),
  917|  4.85k|      target_(reinterpret_cast<uintptr_t>(&i))
  918|  4.85k|  {
  919|  4.85k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (919:9): [Folded - Ignored]
  ------------------
  920|      0|      context_ptr()->impl_.work_started();
  921|  4.85k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2EOS6_:
  512|  19.4k|    : Allocator(static_cast<Allocator&&>(other)),
  513|  19.4k|      target_(other.target_)
  514|  19.4k|  {
  515|  19.4k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (515:9): [Folded - Ignored]
  ------------------
  516|      0|      other.target_ = 0;
  517|  19.4k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE4bitsEv:
  940|  4.85k|  {
  941|  4.85k|    return target_ & runtime_bits;
  942|  4.85k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE11context_ptrEv:
  935|  4.85k|  {
  936|  4.85k|    return reinterpret_cast<io_context*>(target_ & ~runtime_bits);
  937|  4.85k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE5queryENS0_9execution6detail10blocking_tILi0EEE:
  725|  4.85k|  {
  726|  4.85k|    return (bits() & blocking_never)
  ------------------
  |  Branch (726:12): [True: 0, False: 4.85k]
  ------------------
  727|  4.85k|      ? execution::blocking_t(execution::blocking.never)
  728|  4.85k|      : execution::blocking_t(execution::blocking.possibly);
  729|  4.85k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2ERKS6_:
  502|  4.85k|    : Allocator(static_cast<const Allocator&>(other)),
  503|  4.85k|      target_(other.target_)
  504|  4.85k|  {
  505|  4.85k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (505:9): [Folded - Ignored]
  ------------------
  506|      0|      if (context_ptr())
  ------------------
  |  Branch (506:11): [True: 0, False: 0]
  ------------------
  507|      0|        context_ptr()->impl_.work_started();
  508|  4.85k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE5queryENS0_9execution6detail9context_tILi0EEE:
  709|  4.85k|  {
  710|  4.85k|    return *context_ptr();
  711|  4.85k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EED2Ev:
  521|  29.1k|  {
  522|  29.1k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (522:9): [Folded - Ignored]
  ------------------
  523|      0|      if (context_ptr())
  ------------------
  |  Branch (523:11): [True: 0, False: 0]
  ------------------
  524|      0|        context_ptr()->impl_.work_finished();
  525|  29.1k|  }

_ZNK19boost_asio_query_fn4implclIRN5boost4asio15any_io_executorERKNS3_9execution6detail9context_tILi0EEEEENSt3__19enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SE_SG_vvvvE11result_typeEE4typeEOSE_OSF_:
  232|  4.85k|  {
  233|  4.85k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  4.85k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution6detail10blocking_tILi0EEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SJ_SL_vvvvE11result_typeEE4typeEOSJ_OSK_:
  232|  4.85k|  {
  233|  4.85k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  4.85k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution12context_as_tIRNS3_17execution_contextEEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE2EENS_11call_traitsIS0_SK_SM_vvvvE11result_typeEE4typeEOSK_OSL_:
  243|  4.85k|  {
  244|  4.85k|    return query(static_cast<T&&>(t), static_cast<Property&&>(p));
  245|  4.85k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution6detail9context_tILi0EEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SJ_SL_vvvvE11result_typeEE4typeEOSJ_OSK_:
  232|  4.85k|  {
  233|  4.85k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  4.85k|  }

_ZN5boost15source_locationC2EPKcjS2_j:
   42|  14.5k|    BOOST_CONSTEXPR source_location( char const * file, boost::uint_least32_t ln, char const * function, boost::uint_least32_t col = 0 ) BOOST_NOEXCEPT: file_( file ), function_( function ), line_( ln ), column_( col )
   43|  14.5k|    {
   44|  14.5k|    }

_ZN5boost5beast4test6detail14stream_service9make_implENS_4asio15any_io_executorEPNS1_10fail_countE:
   54|  4.85k|{
   55|       |#if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
   56|       |    auto& ctx = exec.context();
   57|       |#else
   58|  4.85k|    auto& ctx = net::query(
   59|  4.85k|        exec,
   60|  4.85k|        net::execution::context);
   61|  4.85k|#endif
   62|  4.85k|    auto& svc = net::use_service<stream_service>(ctx);
   63|  4.85k|    auto sp = boost::make_shared<detail::stream_state>(exec, svc.sp_, fc);
   64|  4.85k|    std::lock_guard<std::mutex> g(svc.sp_->m_);
   65|  4.85k|    svc.sp_->v_.push_back(sp.get());
   66|  4.85k|    return sp;
   67|  4.85k|}
_ZN5boost5beast4test6detail14stream_serviceC2ERNS_4asio17execution_contextE:
   28|  4.85k|    : beast::detail::service_base<stream_service>(ctx)
   29|  4.85k|    , sp_(boost::make_shared<stream_service_impl>())
   30|  4.85k|{
   31|  4.85k|}
_ZN5boost5beast4test6detail14stream_service8shutdownEv:
   36|  9.70k|{
   37|  9.70k|    std::vector<std::unique_ptr<detail::stream_read_op_base>> v;
   38|  9.70k|    std::lock_guard<std::mutex> g1(sp_->m_);
   39|  9.70k|    v.reserve(sp_->v_.size());
   40|  9.70k|    for(auto p : sp_->v_)
  ------------------
  |  Branch (40:16): [True: 0, False: 9.70k]
  ------------------
   41|      0|    {
   42|      0|        std::lock_guard<std::mutex> g2(p->m);
   43|      0|        v.emplace_back(std::move(p->op));
   44|      0|        p->code = detail::stream_status::eof;
   45|      0|    }
   46|  9.70k|}
_ZN5boost5beast4test6detail12stream_stateD2Ev:
   97|  4.85k|{
   98|       |    // cancel outstanding read
   99|  4.85k|    if(op != nullptr)
  ------------------
  |  Branch (99:8): [True: 0, False: 4.85k]
  ------------------
  100|      0|        (*op)(net::error::operation_aborted);
  101|  4.85k|}
_ZN5boost5beast4test6detail12stream_stateC2ENS_4asio15any_io_executorENS_8weak_ptrINS2_19stream_service_implEEEPNS1_10fail_countE:
   89|  4.85k|    : exec(std::move(exec_))
   90|  4.85k|    , wp(std::move(wp_))
   91|  4.85k|    , fc(fc_)
   92|  4.85k|{
   93|  4.85k|}
_ZN5boost5beast4test6detail12stream_state11cancel_readEv:
  134|  4.85k|{
  135|  4.85k|    std::unique_ptr<stream_read_op_base> p;
  136|  4.85k|    {
  137|  4.85k|        std::lock_guard<std::mutex> lock(m);
  138|  4.85k|        code = stream_status::eof;
  139|  4.85k|        p = std::move(op);
  140|  4.85k|    }
  141|  4.85k|    if(p != nullptr)
  ------------------
  |  Branch (141:8): [True: 0, False: 4.85k]
  ------------------
  142|      0|        (*p)(net::error::operation_aborted);
  143|  4.85k|}
_ZN5boost5beast4test6detail12stream_state11notify_readEv:
  119|  4.85k|{
  120|  4.85k|    if(op)
  ------------------
  |  Branch (120:8): [True: 0, False: 4.85k]
  ------------------
  121|      0|    {
  122|      0|        auto op_ = std::move(op);
  123|      0|        op_->operator()(error_code{});
  124|      0|    }
  125|  4.85k|    else
  126|  4.85k|    {
  127|  4.85k|        cv.notify_all();
  128|  4.85k|    }
  129|  4.85k|}
_ZN5boost5beast4test6detail12stream_state6removeEv:
  106|  4.85k|{
  107|  4.85k|    auto sp = wp.lock();
  108|       |
  109|       |    // If this goes off, it means the lifetime of a test::stream object
  110|       |    // extended beyond the lifetime of the associated execution context.
  111|  4.85k|    BOOST_ASSERT(sp);
  ------------------
  |  |   66|  4.85k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  112|       |
  113|  4.85k|    sp->remove(*this);
  114|  4.85k|}
_ZN5boost5beast4test6detail19stream_service_impl6removeERNS2_12stream_stateE:
   74|  4.85k|{
   75|  4.85k|    std::lock_guard<std::mutex> g(m_);
   76|  4.85k|    *std::find(
   77|  4.85k|        v_.begin(), v_.end(),
   78|  4.85k|            &impl) = std::move(v_.back());
   79|  4.85k|    v_.pop_back();
   80|  4.85k|}

_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS3_14mutable_bufferEEEmRKT_RNS_6system10error_codeE:
  284|  40.3k|{
  285|  40.3k|    static_assert(net::is_mutable_buffer_sequence<
  286|  40.3k|            MutableBufferSequence>::value,
  287|  40.3k|        "MutableBufferSequence type requirements not met");
  288|       |
  289|  40.3k|    ++in_->nread;
  290|       |
  291|       |    // test failure
  292|  40.3k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (292:8): [True: 0, False: 40.3k]
  |  Branch (292:19): [True: 0, False: 0]
  ------------------
  293|      0|        return 0;
  294|       |
  295|       |    // A request to read 0 bytes from a stream is a no-op.
  296|  40.3k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (296:8): [True: 0, False: 40.3k]
  ------------------
  297|      0|    {
  298|      0|        ec = {};
  299|      0|        return 0;
  300|      0|    }
  301|       |
  302|  40.3k|    std::unique_lock<std::mutex> lock{in_->m};
  303|  40.3k|    BOOST_ASSERT(! in_->op);
  ------------------
  |  |   66|  40.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  304|  40.3k|    in_->cv.wait(lock,
  305|  40.3k|        [&]()
  306|  40.3k|        {
  307|  40.3k|            return
  308|  40.3k|                in_->b.size() > 0 ||
  309|  40.3k|                in_->code != detail::stream_status::ok;
  310|  40.3k|        });
  311|       |
  312|       |    // deliver bytes before eof
  313|  40.3k|    if(in_->b.size() > 0)
  ------------------
  |  Branch (313:8): [True: 36.6k, False: 3.73k]
  ------------------
  314|  36.6k|    {
  315|  36.6k|        auto const n = net::buffer_copy(
  316|  36.6k|            buffers, in_->b.data(), in_->read_max);
  317|  36.6k|        in_->b.consume(n);
  318|  36.6k|        in_->nread_bytes += n;
  319|  36.6k|        return n;
  320|  36.6k|    }
  321|       |
  322|       |    // deliver error
  323|  3.73k|    BOOST_ASSERT(in_->code != detail::stream_status::ok);
  ------------------
  |  |   66|  3.73k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  324|  3.73k|    BOOST_BEAST_ASSIGN_EC(ec, net::error::eof);
  ------------------
  |  |  111|  3.73k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  3.73k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  3.73k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  3.73k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  3.73k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|  3.73k|    return 0;
  326|  3.73k|}
_ZZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS3_14mutable_bufferEEEmRKT_RNS_6system10error_codeEENKUlvE_clEv:
  306|  40.3k|        {
  307|  40.3k|            return
  308|  40.3k|                in_->b.size() > 0 ||
  ------------------
  |  Branch (308:17): [True: 36.6k, False: 3.73k]
  ------------------
  309|  40.3k|                in_->code != detail::stream_status::ok;
  ------------------
  |  Branch (309:17): [True: 3.73k, False: 0]
  ------------------
  310|  40.3k|        });

_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEEC2ERNS3_10io_contextENS_4core17basic_string_viewIcEE:
  127|  4.85k|    : in_(detail::stream_service::make_impl(ioc.get_executor(), nullptr))
  128|  4.85k|{
  129|  4.85k|    in_->b.commit(net::buffer_copy(
  130|  4.85k|        in_->b.prepare(s.size()),
  131|  4.85k|        net::buffer(s.data(), s.size())));
  132|  4.85k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEED2Ev:
   72|  4.85k|{
   73|  4.85k|    close();
   74|  4.85k|    in_->remove();
   75|  4.85k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE5closeEv:
  199|  4.85k|{
  200|  4.85k|    in_->cancel_read();
  201|       |
  202|       |    // disconnect
  203|  4.85k|    {
  204|  4.85k|        auto out = out_.lock();
  205|  4.85k|        out_.reset();
  206|       |
  207|       |        // notify peer
  208|  4.85k|        if(out)
  ------------------
  |  Branch (208:12): [True: 0, False: 4.85k]
  ------------------
  209|      0|        {
  210|      0|            std::lock_guard<std::mutex> lock(out->m);
  211|      0|            if(out->code == detail::stream_status::ok)
  ------------------
  |  Branch (211:16): [True: 0, False: 0]
  ------------------
  212|      0|            {
  213|      0|                out->code = detail::stream_status::eof;
  214|      0|                out->notify_read();
  215|      0|            }
  216|      0|        }
  217|  4.85k|    }
  218|  4.85k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE12close_remoteEv:
  224|  4.85k|{
  225|  4.85k|    std::lock_guard<std::mutex> lock{in_->m};
  226|  4.85k|    if(in_->code == detail::stream_status::ok)
  ------------------
  |  Branch (226:8): [True: 4.85k, False: 0]
  ------------------
  227|  4.85k|    {
  228|  4.85k|        in_->code = detail::stream_status::eof;
  229|  4.85k|        in_->notify_read();
  230|  4.85k|    }
  231|  4.85k|}

_ZN5boost5beast6detail22dynamic_buffer_prepareINS0_18basic_multi_bufferINSt3__19allocatorIcEEEENS0_4http5errorEEENS_8optionalINT_20mutable_buffers_typeEEERSB_mRNS_6system10error_codeET0_:
   58|  42.4k|{
   59|  42.4k|#ifndef BOOST_NO_EXCEPTIONS
   60|  42.4k|    try
   61|  42.4k|    {
   62|  42.4k|        boost::optional<typename
   63|  42.4k|            DynamicBuffer::mutable_buffers_type> result;
   64|  42.4k|        result.emplace(buffer.prepare(size));
   65|  42.4k|        ec = {};
   66|  42.4k|        return result;
   67|  42.4k|    }
   68|  42.4k|    catch(std::length_error const&)
   69|  42.4k|    {
   70|      0|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   71|      0|    }
   72|      0|    return boost::none;
   73|       |
   74|       |#else
   75|       |    return dynamic_buffer_prepare_noexcept(
   76|       |        buffer, size, ec, ev);
   77|       |#endif
   78|  42.4k|}
_ZN5boost5beast6detail22dynamic_buffer_prepareINS0_17basic_flat_bufferINSt3__19allocatorIcEEEENS0_4http5errorEEENS_8optionalINT_20mutable_buffers_typeEEERSB_mRNS_6system10error_codeET0_:
   58|  40.3k|{
   59|  40.3k|#ifndef BOOST_NO_EXCEPTIONS
   60|  40.3k|    try
   61|  40.3k|    {
   62|  40.3k|        boost::optional<typename
   63|  40.3k|            DynamicBuffer::mutable_buffers_type> result;
   64|  40.3k|        result.emplace(buffer.prepare(size));
   65|  40.3k|        ec = {};
   66|  40.3k|        return result;
   67|  40.3k|    }
   68|  40.3k|    catch(std::length_error const&)
   69|  40.3k|    {
   70|      0|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   71|      0|    }
   72|      0|    return boost::none;
   73|       |
   74|       |#else
   75|       |    return dynamic_buffer_prepare_noexcept(
   76|       |        buffer, size, ec, ev);
   77|       |#endif
   78|  40.3k|}

_ZNK5boost5beast6detail17buffer_bytes_implclENS_4asio12const_bufferE:
   53|  42.4k|    {
   54|  42.4k|        return net::const_buffer(b).size();
   55|  42.4k|    }
_ZNK5boost5beast6detail17buffer_bytes_implclENS_4asio14mutable_bufferE:
   59|  40.3k|    {
   60|  40.3k|        return net::mutable_buffer(b).size();
   61|  40.3k|    }

_ZN5boost5beast6detail11char_bufferILm4096EE5clearEv:
   45|  2.58k|    {
   46|  2.58k|        size_ = 0;
   47|  2.58k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE10try_appendEPKcS5_:
   35|  6.99k|    {
   36|  6.99k|        std::size_t const n = last - first;
   37|  6.99k|        if (n > N - size_)
  ------------------
  |  Branch (37:13): [True: 15, False: 6.97k]
  ------------------
   38|     15|            return false;
   39|  6.97k|        std::memmove(&buf_[size_], first, n);
   40|  6.97k|        size_ += n;
   41|  6.97k|        return true;
   42|  6.99k|    }
_ZNK5boost5beast6detail11char_bufferILm4096EE5emptyEv:
   65|  2.57k|    {
   66|  2.57k|        return size_ == 0;
   67|  2.57k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE13try_push_backEc:
   27|  4.41k|    {
   28|  4.41k|        if (size_ == N)
  ------------------
  |  Branch (28:13): [True: 1, False: 4.41k]
  ------------------
   29|      1|            return false;
   30|  4.41k|        buf_[size_++] = c;
   31|  4.41k|        return true;
   32|  4.41k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE4dataEv:
   50|  2.03k|    {
   51|  2.03k|        return buf_;
   52|  2.03k|    }
_ZNK5boost5beast6detail11char_bufferILm4096EE4sizeEv:
   60|  2.03k|    {
   61|  2.03k|        return size_;
   62|  2.03k|    }

_ZN5boost5beast6detail11sum_exceedsImmmEEbT_T0_T1_:
   45|  42.4k|{
   46|  42.4k|    static_assert(
   47|  42.4k|        std::is_unsigned<U1>::value &&
   48|  42.4k|        std::is_unsigned<U2>::value &&
   49|  42.4k|        std::is_unsigned<U3>::value, "");
   50|  42.4k|    return y > z || x > z - y;
  ------------------
  |  Branch (50:12): [True: 0, False: 42.4k]
  |  Branch (50:21): [True: 0, False: 42.4k]
  ------------------
   51|  42.4k|}
_ZN5boost5beast6detail5clampImEEmT_m:
   33|  42.4k|{
   34|  42.4k|    if(x >= limit)
  ------------------
  |  Branch (34:8): [True: 25.5k, False: 16.8k]
  ------------------
   35|  25.5k|        return limit;
   36|  16.8k|    return static_cast<std::size_t>(x);
   37|  42.4k|}

_ZN5boost5beast6detail12service_baseINS0_4test6detail14stream_serviceEEC2ERNS_4asio17execution_contextE:
   26|  4.85k|        : net::execution_context::service(ctx)
   27|  4.85k|    {
   28|  4.85k|    }

_ZN5boost5beast6detail15string_literalsli3_svEPKcm:
   27|  23.0k|{
   28|  23.0k|    return string_view{p, n};
   29|  23.0k|}
_ZN5boost5beast6detail13ascii_tolowerEc:
   36|  4.57M|{
   37|  4.57M|    return ((static_cast<unsigned>(c) - 65U) < 26) ?
  ------------------
  |  Branch (37:12): [True: 1.87M, False: 2.69M]
  ------------------
   38|  2.69M|        c + 'a' - 'A' : c;
   39|  4.57M|}

_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE8capacityEv:
  419|  72.0k|    {
  420|  72.0k|        return dist(begin_, end_);
  421|  72.0k|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4distEPKcS7_:
   87|   506k|    {
   88|   506k|        return static_cast<std::size_t>(last - first);
   89|   506k|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE6commitEm:
  486|  45.2k|    {
  487|  45.2k|        out_ += (std::min)(n, dist(out_, last_));
  488|  45.2k|    }
_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4sizeEv:
  405|   196k|    {
  406|   196k|        return dist(in_, out_);
  407|   196k|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4dataEv:
  440|  73.3k|    {
  441|  73.3k|        return {in_, dist(in_, out_)};
  442|  73.3k|    }
_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE8max_sizeEv:
  412|  80.7k|    {
  413|  80.7k|        return max_;
  414|  80.7k|    }

_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEEC2Ev:
   42|  9.70k|    : begin_(nullptr)
   43|  9.70k|    , in_(nullptr)
   44|  9.70k|    , out_(nullptr)
   45|  9.70k|    , last_(nullptr)
   46|  9.70k|    , end_(nullptr)
   47|  9.70k|    , max_(alloc_traits::max_size(
   48|  9.70k|        this->get()))
   49|  9.70k|{
   50|  9.70k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEED2Ev:
   32|  9.70k|{
   33|  9.70k|    if(! begin_)
  ------------------
  |  Branch (33:8): [True: 0, False: 9.70k]
  ------------------
   34|      0|        return;
   35|  9.70k|    alloc_traits::deallocate(
   36|  9.70k|        this->get(), begin_, capacity());
   37|  9.70k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE7prepareEm:
  321|  45.2k|{
  322|  45.2k|    auto const len = size();
  323|  45.2k|    if(len > max_ || n > (max_ - len))
  ------------------
  |  Branch (323:8): [True: 0, False: 45.2k]
  |  Branch (323:22): [True: 0, False: 45.2k]
  ------------------
  324|      0|        BOOST_THROW_EXCEPTION(std::length_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  325|  45.2k|            "basic_flat_buffer too long"});
  326|  45.2k|    if(n <= dist(out_, end_))
  ------------------
  |  Branch (326:8): [True: 28.3k, False: 16.8k]
  ------------------
  327|  28.3k|    {
  328|       |        // existing capacity is sufficient
  329|  28.3k|        last_ = out_ + n;
  330|  28.3k|        return{out_, n};
  331|  28.3k|    }
  332|  16.8k|    if(n <= capacity() - len)
  ------------------
  |  Branch (332:8): [True: 2.09k, False: 14.7k]
  ------------------
  333|  2.09k|    {
  334|       |        // after a memmove,
  335|       |        // existing capacity is sufficient
  336|  2.09k|        if(len > 0)
  ------------------
  |  Branch (336:12): [True: 2.09k, False: 0]
  ------------------
  337|  2.09k|        {
  338|  2.09k|            BOOST_ASSERT(begin_);
  ------------------
  |  |   66|  2.09k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  339|  2.09k|            BOOST_ASSERT(in_);
  ------------------
  |  |   66|  2.09k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  340|  2.09k|            std::memmove(begin_, in_, len);
  341|  2.09k|        }
  342|  2.09k|        in_ = begin_;
  343|  2.09k|        out_ = in_ + len;
  344|  2.09k|        last_ = out_ + n;
  345|  2.09k|        return {out_, n};
  346|  2.09k|    }
  347|       |    // allocate a new buffer
  348|  14.7k|    auto const new_size = (std::min<std::size_t>)(
  349|  14.7k|        max_,
  350|  14.7k|        (std::max<std::size_t>)(2 * len, len + n));
  351|  14.7k|    auto const p = alloc(new_size);
  352|  14.7k|    if(begin_)
  ------------------
  |  Branch (352:8): [True: 5.06k, False: 9.70k]
  ------------------
  353|  5.06k|    {
  354|  5.06k|        BOOST_ASSERT(p);
  ------------------
  |  |   66|  5.06k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  355|  5.06k|        BOOST_ASSERT(in_);
  ------------------
  |  |   66|  5.06k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  356|  5.06k|        std::memcpy(p, in_, len);
  357|  5.06k|        alloc_traits::deallocate(
  358|  5.06k|            this->get(), begin_, capacity());
  359|  5.06k|    }
  360|  14.7k|    begin_ = p;
  361|  14.7k|    in_ = begin_;
  362|  14.7k|    out_ = in_ + len;
  363|  14.7k|    last_ = out_ + n;
  364|  14.7k|    end_ = begin_ + new_size;
  365|  14.7k|    return {out_, n};
  366|  14.7k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE5allocEm:
  534|  14.7k|{
  535|  14.7k|    if(n > alloc_traits::max_size(this->get()))
  ------------------
  |  Branch (535:8): [True: 0, False: 14.7k]
  ------------------
  536|      0|        BOOST_THROW_EXCEPTION(std::length_error(
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  537|  14.7k|            "A basic_flat_buffer exceeded the allocator's maximum size"));
  538|  14.7k|    return alloc_traits::allocate(this->get(), n);
  539|  14.7k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE7consumeEm:
  372|  73.3k|{
  373|  73.3k|    if(n >= dist(in_, out_))
  ------------------
  |  Branch (373:8): [True: 31.6k, False: 41.7k]
  ------------------
  374|  31.6k|    {
  375|  31.6k|        in_ = begin_;
  376|  31.6k|        out_ = begin_;
  377|  31.6k|        return;
  378|  31.6k|    }
  379|  41.7k|    in_ += n;
  380|  41.7k|}

_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEED2Ev:
  460|  4.85k|{
  461|  4.85k|    destroy(list_);
  462|  4.85k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7destroyERNS_9intrusive9list_implINS6_8bhtraitsINS5_7elementENS6_16list_node_traitsIPvEELNS6_14link_mode_typeE0ENS6_7dft_tagELj1EEEmLb0EvEE:
 1198|  6.26k|{
 1199|  6.26k|    for(auto it = list.begin();
 1200|  7.67k|            it != list.end();)
  ------------------
  |  Branch (1200:13): [True: 1.41k, False: 6.26k]
  ------------------
 1201|  1.41k|        destroy(*it++);
 1202|  6.26k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7destroyERNS5_7elementE:
 1208|  1.41k|{
 1209|  1.41k|    auto a = rebind_type{this->get()};
 1210|  1.41k|    auto const n =
 1211|  1.41k|        (sizeof(element) + e.size() +
 1212|  1.41k|            sizeof(align_type) - 1) /
 1213|  1.41k|        sizeof(align_type);
 1214|  1.41k|    e.~element();
 1215|  1.41k|    alloc_traits::deallocate(a,
 1216|  1.41k|        reinterpret_cast<align_type*>(&e), n);
 1217|  1.41k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEC2ERKS7_:
  283|  42.4k|    subrange(subrange const&) = default;
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7prepareEm:
  854|  42.4k|{
  855|  42.4k|    auto const n0 = n;
  856|  42.4k|    if(in_size_ > max_ || n > (max_ - in_size_))
  ------------------
  |  Branch (856:8): [True: 0, False: 42.4k]
  |  Branch (856:27): [True: 0, False: 42.4k]
  ------------------
  857|      0|        BOOST_THROW_EXCEPTION(std::length_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  858|  42.4k|            "basic_multi_buffer too long"});
  859|  42.4k|    list_type reuse;
  860|  42.4k|    std::size_t total = in_size_;
  861|       |    // put all empty buffers on reuse list
  862|  42.4k|    if(out_ != list_.end())
  ------------------
  |  Branch (862:8): [True: 41.7k, False: 676]
  ------------------
  863|  41.7k|    {
  864|  41.7k|        total += out_->size() - out_pos_;
  865|  41.7k|        if(out_ != list_.iterator_to(list_.back()))
  ------------------
  |  Branch (865:12): [True: 0, False: 41.7k]
  ------------------
  866|      0|        {
  867|      0|            out_end_ = out_->size();
  868|      0|            reuse.splice(reuse.end(), list_,
  869|      0|                std::next(out_), list_.end());
  870|       |        #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  871|       |            debug_check();
  872|       |        #endif
  873|      0|        }
  874|  41.7k|        auto const avail = out_->size() - out_pos_;
  875|  41.7k|        if(n > avail)
  ------------------
  |  Branch (875:12): [True: 737, False: 41.0k]
  ------------------
  876|    737|        {
  877|    737|            out_end_ = out_->size();
  878|    737|            n -= avail;
  879|    737|        }
  880|  41.0k|        else
  881|  41.0k|        {
  882|  41.0k|            out_end_ = out_pos_ + n;
  883|  41.0k|            n = 0;
  884|  41.0k|        }
  885|       |    #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  886|       |        debug_check();
  887|       |    #endif
  888|  41.7k|    }
  889|       |    // get space from reuse buffers
  890|  42.4k|    while(n > 0 && ! reuse.empty())
  ------------------
  |  Branch (890:11): [True: 1.41k, False: 41.0k]
  |  Branch (890:20): [True: 0, False: 1.41k]
  ------------------
  891|      0|    {
  892|      0|        auto& e = reuse.front();
  893|      0|        reuse.erase(reuse.iterator_to(e));
  894|      0|        list_.push_back(e);
  895|      0|        total += e.size();
  896|      0|        if(n > e.size())
  ------------------
  |  Branch (896:12): [True: 0, False: 0]
  ------------------
  897|      0|        {
  898|      0|            out_end_ = e.size();
  899|      0|            n -= e.size();
  900|      0|        }
  901|      0|        else
  902|      0|        {
  903|      0|            out_end_ = n;
  904|      0|            n = 0;
  905|      0|        }
  906|       |    #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  907|       |        debug_check();
  908|       |    #endif
  909|      0|    }
  910|  42.4k|    BOOST_ASSERT(total <= max_);
  ------------------
  |  |   66|  42.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  911|  42.4k|    if(! reuse.empty() || n > 0)
  ------------------
  |  Branch (911:8): [True: 0, False: 42.4k]
  |  Branch (911:27): [True: 1.41k, False: 41.0k]
  ------------------
  912|  1.41k|    {
  913|  1.41k|        destroy(reuse);
  914|  1.41k|        if(n > 0)
  ------------------
  |  Branch (914:12): [True: 1.41k, False: 0]
  ------------------
  915|  1.41k|        {
  916|  1.41k|            std::size_t const growth_factor = 2;
  917|  1.41k|            std::size_t altn = in_size_ * growth_factor;
  918|       |	    // Overflow detection:
  919|  1.41k|            if(in_size_ > altn)
  ------------------
  |  Branch (919:16): [True: 0, False: 1.41k]
  ------------------
  920|      0|                altn = (std::numeric_limits<std::size_t>::max)();
  921|  1.41k|            else
  922|  1.41k|                altn = (std::max<std::size_t>)(512, altn);
  923|  1.41k|            auto const size =
  924|  1.41k|                (std::min<std::size_t>)(
  925|  1.41k|                    max_ - total,
  926|  1.41k|                    (std::max<std::size_t>)(n, altn));
  927|  1.41k|            auto& e = alloc(size);
  928|  1.41k|            list_.push_back(e);
  929|  1.41k|            if(out_ == list_.end())
  ------------------
  |  Branch (929:16): [True: 676, False: 737]
  ------------------
  930|    676|                out_ = list_.iterator_to(e);
  931|  1.41k|            out_end_ = n;
  932|       |        #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  933|       |            debug_check();
  934|       |        #endif
  935|  1.41k|        }
  936|  1.41k|    }
  937|  42.4k|    auto const result =
  938|  42.4k|        mutable_buffers_type(
  939|  42.4k|            *this, in_size_, n0);
  940|  42.4k|    BOOST_ASSERT(
  ------------------
  |  |   66|  42.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  941|  42.4k|        net::buffer_size(result) == n0);
  942|  42.4k|    return result;
  943|  42.4k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE5allocEm:
 1224|  1.41k|{
 1225|  1.41k|    if(size > alloc_traits::max_size(this->get()))
  ------------------
  |  Branch (1225:8): [True: 0, False: 1.41k]
  ------------------
 1226|      0|        BOOST_THROW_EXCEPTION(std::length_error(
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
 1227|  1.41k|        "A basic_multi_buffer exceeded the allocator's maximum size"));
 1228|  1.41k|    auto a = rebind_type{this->get()};
 1229|  1.41k|    auto const p = alloc_traits::allocate(a,
 1230|  1.41k|        (sizeof(element) + size + sizeof(align_type) - 1) /
 1231|  1.41k|            sizeof(align_type));
 1232|  1.41k|    return *(::new(p) element(size));
 1233|  1.41k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEC2ERKS5_mm:
  116|  42.4k|        : b_(&b)
  117|  42.4k|    {
  118|  42.4k|        auto const set_empty = [&]
  119|  42.4k|        {
  120|  42.4k|            begin_ = b_->list_.end();
  121|  42.4k|            end_ = b_->list_.end();
  122|  42.4k|            begin_pos_ = 0;
  123|  42.4k|            last_pos_ = 0;
  124|  42.4k|        };
  125|       |
  126|       |        // VFALCO Handle this trivial case of
  127|       |        // pos larger than total size, otherwise
  128|       |        // the addition to pos can overflow.
  129|       |        //if(pos >= b_->in_size_)
  130|       |        // skip unused prefix
  131|  42.4k|        pos = pos + b_->in_pos_;
  132|       |
  133|       |        // iterate the buffers
  134|  42.4k|        auto it = b_->list_.begin();
  135|       |
  136|       |        // is the list empty?
  137|  42.4k|        if(it == b_->list_.end())
  ------------------
  |  Branch (137:12): [True: 0, False: 42.4k]
  ------------------
  138|      0|        {
  139|      0|            set_empty();
  140|      0|            return;
  141|      0|        }
  142|       |        
  143|       |        // is the requested size zero?
  144|  42.4k|        if(n == 0)
  ------------------
  |  Branch (144:12): [True: 0, False: 42.4k]
  ------------------
  145|      0|        {
  146|      0|            set_empty();
  147|      0|            return;
  148|      0|        }
  149|       |
  150|       |
  151|       |        // get last buffer and its size
  152|  42.4k|        auto const last =
  153|  42.4k|            std::prev(b_->list_.end());
  154|  42.4k|        auto const last_end =
  155|  42.4k|            [&]
  156|  42.4k|            {
  157|  42.4k|                if(b_->out_end_ == 0)
  158|  42.4k|                    return last->size();
  159|  42.4k|                return b_->out_end_;
  160|  42.4k|            }();
  161|       |
  162|       |        // only one buffer in list?
  163|  42.4k|        if(it == last)
  ------------------
  |  Branch (163:12): [True: 12.0k, False: 30.3k]
  ------------------
  164|  12.0k|        {
  165|  12.0k|            if(pos >= last_end)
  ------------------
  |  Branch (165:16): [True: 0, False: 12.0k]
  ------------------
  166|      0|            {
  167|      0|                set_empty();
  168|      0|                return;
  169|      0|            }
  170|       |
  171|  12.0k|            begin_ = it;
  172|  12.0k|            begin_pos_ = pos;
  173|  12.0k|            end_ = std::next(it);
  174|  12.0k|            if(n > last_end - pos)
  ------------------
  |  Branch (174:16): [True: 0, False: 12.0k]
  ------------------
  175|      0|                last_pos_ = last_end;
  176|  12.0k|            else
  177|  12.0k|                last_pos_ = pos + n;
  178|  12.0k|            return;
  179|  12.0k|        }
  180|       |
  181|  30.3k|        for(;;)
  182|   150k|        {
  183|       |            // is pos in this buffer?
  184|   150k|            if(pos < it->size())
  ------------------
  |  Branch (184:16): [True: 737, False: 149k]
  ------------------
  185|    737|            {
  186|    737|                begin_ = it;
  187|    737|                begin_pos_ = pos;
  188|       |
  189|       |                // does this buffer satisfy n?
  190|    737|                auto const avail =
  191|    737|                    it->size() - pos;
  192|    737|                if(n <= avail)
  ------------------
  |  Branch (192:20): [True: 0, False: 737]
  ------------------
  193|      0|                {
  194|      0|                    end_ = ++it;
  195|      0|                    last_pos_ = pos + n;
  196|      0|                    return;
  197|      0|                }
  198|       |
  199|    737|                n -= avail;
  200|    737|                ++it;
  201|    737|                break;
  202|    737|            }
  203|       |
  204|   149k|            pos -= it->size();
  205|   149k|            ++it;
  206|       |
  207|       |            // did we reach the last buffer?
  208|   149k|            if(it == last)
  ------------------
  |  Branch (208:16): [True: 29.6k, False: 120k]
  ------------------
  209|  29.6k|            {
  210|       |                // is pos past the end?
  211|  29.6k|                if(pos >= last_end)
  ------------------
  |  Branch (211:20): [True: 0, False: 29.6k]
  ------------------
  212|      0|                {
  213|      0|                    set_empty();
  214|      0|                    return;
  215|      0|                }
  216|       |
  217|       |                // satisfy the request
  218|  29.6k|                begin_ = it;
  219|  29.6k|                begin_pos_ = pos;
  220|  29.6k|                end_ = std::next(it);
  221|  29.6k|                if(n < last_end - pos)
  ------------------
  |  Branch (221:20): [True: 0, False: 29.6k]
  ------------------
  222|      0|                    last_pos_ = pos + n;
  223|  29.6k|                else
  224|  29.6k|                    last_pos_ = last_end;
  225|  29.6k|                return;
  226|  29.6k|            }
  227|   149k|        }
  228|       |
  229|       |        // find pos+n
  230|    737|        for(;;)
  231|    737|        {
  232|    737|            if(it == last)
  ------------------
  |  Branch (232:16): [True: 737, False: 0]
  ------------------
  233|    737|            {
  234|    737|                end_ = ++it;
  235|    737|                if(n >= last_end)
  ------------------
  |  Branch (235:20): [True: 737, False: 0]
  ------------------
  236|    737|                    last_pos_ = last_end;
  237|      0|                else
  238|      0|                    last_pos_ = n;
  239|    737|                return;
  240|    737|            }
  241|      0|            if(n <= it->size())
  ------------------
  |  Branch (241:16): [True: 0, False: 0]
  ------------------
  242|      0|            {
  243|      0|                end_ = ++it;
  244|      0|                last_pos_ = n;
  245|      0|                return;
  246|      0|            }
  247|       |            
  248|      0|            n -= it->size();
  249|      0|            ++it;
  250|      0|        }
  251|    737|    }
_ZZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEC1ERKS5_mmENKUlvE0_clEv:
  156|  42.4k|            {
  157|  42.4k|                if(b_->out_end_ == 0)
  ------------------
  |  Branch (157:20): [True: 0, False: 42.4k]
  ------------------
  158|      0|                    return last->size();
  159|  42.4k|                return b_->out_end_;
  160|  42.4k|            }();
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorC2ERKS8_:
  361|  84.8k|        const_iterator const& other) = default;
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorneERKS8_:
  375|   128k|    {
  376|   128k|        return !(*this == other);
  377|   128k|    }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratoreqERKS8_:
  368|   128k|    {
  369|   128k|        return sr_ == other.sr_ && it_ == other.it_;
  ------------------
  |  Branch (369:16): [True: 128k, False: 0]
  |  Branch (369:36): [True: 42.4k, False: 86.3k]
  ------------------
  370|   128k|    }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratordeEv:
  381|  86.3k|    {
  382|  86.3k|        value_type result;
  383|  86.3k|        BOOST_ASSERT(sr_->last_pos_ != 0);
  ------------------
  |  |   66|  86.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  384|  86.3k|        if(it_ == std::prev(sr_->end_))
  ------------------
  |  Branch (384:12): [True: 84.8k, False: 1.47k]
  ------------------
  385|  84.8k|            result = {
  386|  84.8k|                it_->data(), sr_->last_pos_ };
  387|  1.47k|        else
  388|  1.47k|            result = {
  389|  1.47k|                it_->data(), it_->size() };
  390|  86.3k|        if(it_ == sr_->begin_)
  ------------------
  |  Branch (390:12): [True: 84.8k, False: 1.47k]
  ------------------
  391|  84.8k|            result += sr_->begin_pos_;
  392|  86.3k|        return result;
  393|  86.3k|    }
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorppEv:
  400|  86.3k|    {
  401|  86.3k|        ++it_;
  402|  86.3k|        return *this;
  403|  86.3k|    }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE5beginEv:
  438|  84.8k|{
  439|  84.8k|    return const_iterator(
  440|  84.8k|        *this, begin_);
  441|  84.8k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE14const_iteratorC2ERKS7_RKNS_9intrusive13list_iteratorINSB_8bhtraitsINS5_7elementENSB_16list_node_traitsIPvEELNSB_14link_mode_typeE0ENSB_7dft_tagELj1EEELb1EEE:
  345|   169k|        : sr_(&sr)
  346|   169k|        , it_(it)
  347|   169k|    {
  348|   169k|    }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EE3endEv:
  450|  84.8k|{
  451|  84.8k|    return const_iterator(
  452|  84.8k|        *this, end_);
  453|  84.8k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE6commitEm:
  949|  42.4k|{
  950|  42.4k|    if(list_.empty())
  ------------------
  |  Branch (950:8): [True: 0, False: 42.4k]
  ------------------
  951|      0|        return;
  952|  42.4k|    if(out_ == list_.end())
  ------------------
  |  Branch (952:8): [True: 0, False: 42.4k]
  ------------------
  953|      0|        return;
  954|  42.4k|    auto const back =
  955|  42.4k|        list_.iterator_to(list_.back());
  956|  43.1k|    while(out_ != back)
  ------------------
  |  Branch (956:11): [True: 737, False: 42.4k]
  ------------------
  957|    737|    {
  958|    737|        auto const avail =
  959|    737|            out_->size() - out_pos_;
  960|    737|        if(n < avail)
  ------------------
  |  Branch (960:12): [True: 0, False: 737]
  ------------------
  961|      0|        {
  962|      0|            out_pos_ += n;
  963|      0|            in_size_ += n;
  964|       |        #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  965|       |            debug_check();
  966|       |        #endif
  967|      0|            return;
  968|      0|        }
  969|    737|        ++out_;
  970|    737|        n -= avail;
  971|    737|        out_pos_ = 0;
  972|    737|        in_size_ += avail;
  973|       |    #if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  974|       |        debug_check();
  975|       |    #endif
  976|    737|    }
  977|       |
  978|  42.4k|    n = (std::min)(n, out_end_ - out_pos_);
  979|  42.4k|    out_pos_ += n;
  980|  42.4k|    in_size_ += n;
  981|  42.4k|    if(out_pos_ == out_->size())
  ------------------
  |  Branch (981:8): [True: 164, False: 42.2k]
  ------------------
  982|    164|    {
  983|    164|        ++out_;
  984|    164|        out_pos_ = 0;
  985|    164|        out_end_ = 0;
  986|    164|    }
  987|       |#if BOOST_BEAST_MULTI_BUFFER_DEBUG_CHECK
  988|       |    debug_check();
  989|       |#endif
  990|  42.4k|}
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEEC2Ev:
  467|  4.85k|    : max_(alloc_traits::max_size(this->get()))
  468|  4.85k|    , out_(list_.end())
  469|  4.85k|{
  470|  4.85k|}

_ZN5boost5beast9read_sizeINS0_17basic_flat_bufferINSt3__19allocatorIcEEEEEEmRT_m:
   63|  40.3k|{
   64|  40.3k|    return detail::read_size(buffer, max_size,
   65|  40.3k|        detail::has_read_size_helper<DynamicBuffer>{});
   66|  40.3k|}
_ZN5boost5beast6detail9read_sizeINS0_17basic_flat_bufferINSt3__19allocatorIcEEEEEEmRT_mNS4_17integral_constantIbLb0EEE:
   45|  40.3k|{
   46|  40.3k|    static_assert(
   47|  40.3k|        net::is_dynamic_buffer<DynamicBuffer>::value,
   48|  40.3k|        "DynamicBuffer type requirements not met");
   49|  40.3k|    auto const size = buffer.size();
   50|  40.3k|    auto const limit = buffer.max_size() - size;
   51|  40.3k|    BOOST_ASSERT(size <= buffer.max_size());
  ------------------
  |  |   66|  40.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   52|  40.3k|    return std::min<std::size_t>(
   53|  40.3k|        std::max<std::size_t>(512, buffer.capacity() - size),
   54|  40.3k|        std::min<std::size_t>(max_size, limit));
   55|  40.3k|}

_ZNK5boost5beast5ilessclENS_4core17basic_string_viewIcEES4_:
   55|   495k|{
   56|   495k|    using std::begin;
   57|   495k|    using std::end;
   58|   495k|    return std::lexicographical_compare(
   59|   495k|        begin(lhs), end(lhs), begin(rhs), end(rhs),
   60|   495k|        [](char c1, char c2)
   61|   495k|        {
   62|   495k|            return detail::ascii_tolower(c1) < detail::ascii_tolower(c2);
   63|   495k|        }
   64|   495k|    );
   65|   495k|}
_ZZNK5boost5beast5ilessclENS_4core17basic_string_viewIcEES4_ENKUlccE_clEcc:
   61|  2.25M|        {
   62|  2.25M|            return detail::ascii_tolower(c1) < detail::ascii_tolower(c2);
   63|  2.25M|        }
_ZN5boost5beast7iequalsENS_4core17basic_string_viewIcEES3_:
   25|  63.1k|{
   26|  63.1k|    if(lhs.size() != rhs.size())
  ------------------
  |  Branch (26:8): [True: 15.1k, False: 47.9k]
  ------------------
   27|  15.1k|        return false;
   28|  47.9k|    auto n  = lhs.size();
   29|  47.9k|    auto p1 = lhs.data();
   30|  47.9k|    auto p2 = rhs.data();
   31|       |    // fast loop
   32|   195k|    while(n--)
  ------------------
  |  Branch (32:11): [True: 155k, False: 39.6k]
  ------------------
   33|   155k|    {
   34|   155k|        if(*p1++ != *p2++)
  ------------------
  |  Branch (34:12): [True: 8.31k, False: 147k]
  ------------------
   35|  8.31k|            goto slow;
   36|   155k|    }
   37|  39.6k|    return true;
   38|  8.31k|slow:
   39|  8.31k|    --p1;
   40|  8.31k|    --p2;
   41|  8.31k|    do
   42|  29.3k|    {
   43|  29.3k|        if( detail::ascii_tolower(*p1++) !=
  ------------------
  |  Branch (43:13): [True: 4.52k, False: 24.8k]
  ------------------
   44|  29.3k|            detail::ascii_tolower(*p2++))
   45|  4.52k|            return false;
   46|  29.3k|    }
   47|  24.8k|    while(n--);
  ------------------
  |  Branch (47:11): [True: 21.0k, False: 3.78k]
  ------------------
   48|  3.78k|    return true;
   49|  8.31k|}

_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7element4sizeEv:
  101|   431k|        {
  102|   431k|            return size_;
  103|   431k|        }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE4sizeEv:
  465|  84.8k|    {
  466|  84.8k|        return in_size_;
  467|  84.8k|    }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE8max_sizeEv:
  472|  84.8k|    {
  473|  84.8k|        return max_;
  474|  84.8k|    }
_ZN5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementC2Em:
   95|  1.41k|            : size_(n)
   96|  1.41k|        {
   97|  1.41k|        }
_ZNK5boost5beast18basic_multi_bufferINSt3__19allocatorIcEEE7element4dataEv:
  107|  86.3k|        {
  108|  86.3k|            return const_cast<char*>(
  109|  86.3k|                reinterpret_cast<char const*>(this + 1));
  110|  86.3k|        }

_ZN5boost5beast4http18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEE6reader4initERKNS_8optionalImEERNS_6system10error_codeE:
   85|  1.23k|        {
   86|  1.23k|            ec = {};
   87|  1.23k|        }
_ZN5boost5beast4http18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEE6reader3putINS_4asio12const_bufferEEEmRKT_RNS_6system10error_codeE:
   93|  42.4k|        {
   94|  42.4k|            auto const n = buffer_bytes(buffers);
   95|  42.4k|            if(beast::detail::sum_exceeds(body_.size(), n, body_.max_size()))
  ------------------
  |  Branch (95:16): [True: 0, False: 42.4k]
  ------------------
   96|      0|            {
   97|      0|                BOOST_BEAST_ASSIGN_EC(ec, error::buffer_overflow);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   98|      0|                return 0;
   99|      0|            }
  100|  42.4k|            auto const mb =
  101|  42.4k|                beast::detail::dynamic_buffer_prepare(
  102|  42.4k|                    body_, (std::min)(n,
  103|  42.4k|                        body_.max_size() - body_.size()),
  104|  42.4k|                            ec, error::buffer_overflow);
  105|  42.4k|            if(ec)
  ------------------
  |  Branch (105:16): [True: 0, False: 42.4k]
  ------------------
  106|      0|                return 0;
  107|  42.4k|            auto const bytes_transferred =
  108|  42.4k|                net::buffer_copy(*mb, buffers);
  109|  42.4k|            body_.commit(bytes_transferred);
  110|  42.4k|            return bytes_transferred;
  111|  42.4k|        }
_ZN5boost5beast4http18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEE6reader6finishERNS_6system10error_codeE:
  115|     12|        {
  116|     12|            ec = {};
  117|     12|        }
_ZN5boost5beast4http18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEE6readerC2ILb1ENS1_12basic_fieldsIS6_EEEERNS1_6headerIXT_ET0_EERS7_:
   78|  4.85k|            : body_(b)
   79|  4.85k|        {
   80|  4.85k|        }

_ZN5boost5beast4http12basic_parserILb1EED2Ev:
  158|  4.85k|    virtual ~basic_parser() = default;
_ZN5boost5beast4http12basic_parserILb1EEC2Ev:
  138|  4.85k|    basic_parser() = default;
_ZN5boost5beast4http12basic_parserILb1EE18default_body_limitENSt3__117integral_constantIbLb1EEE:
  116|  4.85k|    {
  117|       |        // limit for requests
  118|  4.85k|        return 1 * 1024 * 1024; // 1MB
  119|  4.85k|    }
_ZN5boost5beast4http12basic_parserILb1EE5eagerEb:
  347|  4.85k|    {
  348|  4.85k|        if(v)
  ------------------
  |  Branch (348:12): [True: 4.85k, False: 0]
  ------------------
  349|  4.85k|            f_ |= flagEager;
  350|      0|        else
  351|      0|            f_ &= ~flagEager;
  352|  4.85k|    }
_ZNK5boost5beast4http12basic_parserILb1EE7is_doneEv:
  187|   143k|    {
  188|   143k|        return state_ == state::complete;
  189|   143k|    }
_ZNK5boost5beast4http12basic_parserILb1EE14is_header_doneEv:
  195|  1.23k|    {
  196|  1.23k|        return state_ > state::fields;
  197|  1.23k|    }
_ZNK5boost5beast4http12basic_parserILb1EE5eagerEv:
  325|  35.2k|    {
  326|  35.2k|        return (f_ & flagEager) != 0;
  327|  35.2k|    }
_ZNK5boost5beast4http12basic_parserILb1EE8got_someEv:
  169|  7.46k|    {
  170|  7.46k|        return state_ != state::nothing_yet;
  171|  7.46k|    }

_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEEC2ENS_4core17basic_string_viewIcEE:
  134|  2.66k|        : s_(s)
  135|  2.66k|    {
  136|  2.66k|    }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iterator5errorEv:
  102|  9.40k|        {
  103|  9.40k|            return error_;
  104|  9.40k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE5beginEv:
  157|  6.64k|{
  158|  6.64k|    return const_iterator{*this, false};
  159|  6.64k|}
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorC2ERKS5_b:
  111|  13.2k|            : list_(&list)
  112|  13.2k|            , it_(at_end ? nullptr :
  ------------------
  |  Branch (112:19): [True: 6.64k, False: 6.64k]
  ------------------
  113|  13.2k|                list.s_.data())
  114|  13.2k|        {
  115|  13.2k|            if(! at_end)
  ------------------
  |  Branch (115:16): [True: 6.64k, False: 6.64k]
  ------------------
  116|  6.64k|                increment();
  117|  13.2k|        }
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iterator9incrementEv:
  121|  19.8k|        {
  122|  19.8k|            if(! this->get()(
  ------------------
  |  Branch (122:16): [True: 59, False: 19.8k]
  ------------------
  123|  19.8k|                    v_, it_, list_->s_))
  124|     59|            {
  125|     59|                it_ = nullptr;
  126|     59|                error_ = true;
  127|     59|            }
  128|  19.8k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE3endEv:
  167|  6.64k|{
  168|  6.64k|    return const_iterator{*this, true};
  169|  6.64k|}
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorneERKS6_:
   75|  16.0k|        {
   76|  16.0k|            return ! (*this == other);
   77|  16.0k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratordeEv:
   81|  6.64k|        {
   82|  6.64k|            return v_;
   83|  6.64k|        }
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorppEv:
   87|  13.2k|        {
   88|  13.2k|            increment();
   89|  13.2k|            return *this;
   90|  13.2k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratoreqERKS6_:
   66|  24.1k|        {
   67|  24.1k|            return
   68|  24.1k|                other.list_ == list_ &&
  ------------------
  |  Branch (68:17): [True: 24.1k, False: 0]
  ------------------
   69|  24.1k|                other.it_ == it_;
  ------------------
  |  Branch (69:17): [True: 5.02k, False: 19.1k]
  ------------------
   70|  24.1k|        }

_ZN5boost5beast4http6detail17basic_parser_base11make_stringEPKcS5_:
   79|   122k|    {
   80|   122k|        return {first, static_cast<
   81|   122k|            std::size_t>(last - first)};
   82|   122k|    }
_ZN5boost5beast4http6detail17basic_parser_base8is_digitEc:
   54|  17.9k|    {
   55|  17.9k|        return static_cast<unsigned char>(c-'0') < 10;
   56|  17.9k|    }
_ZN5boost5beast4http6detail17basic_parser_base8is_printEc:
   61|  1.46M|    {
   62|  1.46M|        return static_cast<unsigned char>(c-32) < 95;
   63|  1.46M|    }

_ZN5boost5beast4http6detail17basic_parser_base12parse_methodERPKcS5_RNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  275|  5.63k|{
  276|       |    // parse token SP
  277|  5.63k|    auto const first = it;
  278|  1.37M|    for(;; ++it)
  279|  1.38M|    {
  280|  1.38M|        if(it + 1 > last)
  ------------------
  |  Branch (280:12): [True: 513, False: 1.38M]
  ------------------
  281|    513|        {
  282|    513|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    513|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    513|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    513|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    513|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    513|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|    513|            return;
  284|    513|        }
  285|  1.38M|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (285:12): [True: 5.12k, False: 1.37M]
  ------------------
  286|  5.12k|            break;
  287|  1.38M|    }
  288|  5.12k|    if(it + 1 > last)
  ------------------
  |  Branch (288:8): [True: 0, False: 5.12k]
  ------------------
  289|      0|    {
  290|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  291|      0|        return;
  292|      0|    }
  293|  5.12k|    if(*it != ' ')
  ------------------
  |  Branch (293:8): [True: 21, False: 5.10k]
  ------------------
  294|     21|    {
  295|     21|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_method);
  ------------------
  |  |  111|     21|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     21|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     21|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     21|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     21|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  296|     21|        return;
  297|     21|    }
  298|  5.10k|    if(it == first)
  ------------------
  |  Branch (298:8): [True: 1, False: 5.10k]
  ------------------
  299|      1|    {
  300|       |        // cannot be empty
  301|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_method);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|      1|        return;
  303|      1|    }
  304|  5.10k|    result = make_string(first, it++);
  305|  5.10k|}
_ZN5boost5beast4http6detail17basic_parser_base12parse_targetERPKcS5_RNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  312|  5.10k|{
  313|       |    // parse target SP
  314|  5.10k|    auto const first = it;
  315|   488k|    for(;; ++it)
  316|   493k|    {
  317|   493k|        if(it + 1 > last)
  ------------------
  |  Branch (317:12): [True: 237, False: 493k]
  ------------------
  318|    237|        {
  319|    237|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    237|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    237|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    237|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    237|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    237|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|    237|            return;
  321|    237|        }
  322|   493k|        if(! is_pathchar(*it))
  ------------------
  |  Branch (322:12): [True: 4.86k, False: 488k]
  ------------------
  323|  4.86k|            break;
  324|   493k|    }
  325|  4.86k|    if(it + 1 > last)
  ------------------
  |  Branch (325:8): [True: 0, False: 4.86k]
  ------------------
  326|      0|    {
  327|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|      0|        return;
  329|      0|    }
  330|  4.86k|    if(*it != ' ')
  ------------------
  |  Branch (330:8): [True: 15, False: 4.85k]
  ------------------
  331|     15|    {
  332|     15|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_target);
  ------------------
  |  |  111|     15|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     15|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     15|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     15|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     15|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  333|     15|        return;
  334|     15|    }
  335|  4.85k|    if(it == first)
  ------------------
  |  Branch (335:8): [True: 1, False: 4.85k]
  ------------------
  336|      1|    {
  337|       |        // cannot be empty
  338|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_target);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|      1|        return;
  340|      1|    }
  341|  4.85k|    result = make_string(first, it++);
  342|  4.85k|}
_ZN5boost5beast4http6detail17basic_parser_base11is_pathcharEc:
   52|   493k|{
   53|       |    // VFALCO This looks the same as the one below...
   54|       |
   55|       |    // TEXT = <any OCTET except CTLs, and excluding LWS>
   56|   493k|    static bool constexpr tab[256] = {
   57|   493k|        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //   0
   58|   493k|        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //  16
   59|   493k|        0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  32
   60|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  48
   61|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  64
   62|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  80
   63|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  96
   64|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 112
   65|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 128
   66|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 144
   67|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 160
   68|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 176
   69|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 192
   70|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 208
   71|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 224
   72|   493k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1  // 240
   73|   493k|    };
   74|   493k|    return tab[static_cast<unsigned char>(c)];
   75|   493k|}
_ZN5boost5beast4http6detail17basic_parser_base13parse_versionERPKcS5_RiRNS_6system10error_codeE:
  349|  4.85k|{
  350|  4.85k|    if(it + 8 > last)
  ------------------
  |  Branch (350:8): [True: 89, False: 4.76k]
  ------------------
  351|     89|    {
  352|     89|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     89|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     89|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     89|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     89|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     89|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  353|     89|        return;
  354|     89|    }
  355|  4.76k|    if(*it++ != 'H')
  ------------------
  |  Branch (355:8): [True: 14, False: 4.74k]
  ------------------
  356|     14|    {
  357|     14|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     14|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     14|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     14|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     14|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     14|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  358|     14|        return;
  359|     14|    }
  360|  4.74k|    if(*it++ != 'T')
  ------------------
  |  Branch (360:8): [True: 12, False: 4.73k]
  ------------------
  361|     12|    {
  362|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|     12|        return;
  364|     12|    }
  365|  4.73k|    if(*it++ != 'T')
  ------------------
  |  Branch (365:8): [True: 13, False: 4.72k]
  ------------------
  366|     13|    {
  367|     13|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     13|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     13|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     13|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     13|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     13|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|     13|        return;
  369|     13|    }
  370|  4.72k|    if(*it++ != 'P')
  ------------------
  |  Branch (370:8): [True: 11, False: 4.71k]
  ------------------
  371|     11|    {
  372|     11|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     11|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     11|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     11|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     11|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     11|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  373|     11|        return;
  374|     11|    }
  375|  4.71k|    if(*it++ != '/')
  ------------------
  |  Branch (375:8): [True: 12, False: 4.70k]
  ------------------
  376|     12|    {
  377|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  378|     12|        return;
  379|     12|    }
  380|  4.70k|    if(! is_digit(*it))
  ------------------
  |  Branch (380:8): [True: 5, False: 4.69k]
  ------------------
  381|      5|    {
  382|      5|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|      5|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      5|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      5|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      5|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      5|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  383|      5|        return;
  384|      5|    }
  385|  4.69k|    result = 10 * (*it++ - '0');
  386|  4.69k|    if(*it++ != '.')
  ------------------
  |  Branch (386:8): [True: 12, False: 4.68k]
  ------------------
  387|     12|    {
  388|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  389|     12|        return;
  390|     12|    }
  391|  4.68k|    if(! is_digit(*it))
  ------------------
  |  Branch (391:8): [True: 7, False: 4.67k]
  ------------------
  392|      7|    {
  393|      7|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|      7|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      7|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      7|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      7|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      7|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  394|      7|        return;
  395|      7|    }
  396|  4.67k|    result += *it++ - '0';
  397|  4.67k|}
_ZN5boost5beast4http6detail17basic_parser_base11parse_fieldERPKcS5_RNS_4core17basic_string_viewIcEESA_RNS0_6detail11char_bufferILm4096EEERNS_6system10error_codeE:
  466|  50.0k|{
  467|       |/*  header-field    = field-name ":" OWS field-value OWS
  468|       |
  469|       |    field-name      = token
  470|       |    field-value     = *( field-content / obs-fold )
  471|       |    field-content   = field-vchar [ 1*( SP / HTAB ) field-vchar ]
  472|       |    field-vchar     = VCHAR / obs-text
  473|       |
  474|       |    obs-fold        = CRLF 1*( SP / HTAB )
  475|       |                    ; obsolete line folding
  476|       |                    ; see Section 3.2.4
  477|       |
  478|       |    token           = 1*<any CHAR except CTLs or separators>
  479|       |    CHAR            = <any US-ASCII character (octets 0 - 127)>
  480|       |    sep             = "(" | ")" | "<" | ">" | "@"
  481|       |                    | "," | ";" | ":" | "\" | <">
  482|       |                    | "/" | "[" | "]" | "?" | "="
  483|       |                    | "{" | "}" | SP | HT
  484|       |*/
  485|  50.0k|    static char const* is_token =
  486|  50.0k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  487|  50.0k|        "\0\1\0\1\1\1\1\1\0\0\1\1\0\1\1\0\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0"
  488|  50.0k|        "\0\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\1\1"
  489|  50.0k|        "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\1\0\1\0"
  490|  50.0k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  491|  50.0k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  492|  50.0k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  493|  50.0k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  494|       |
  495|       |    // name
  496|  50.0k|    BOOST_ALIGNMENT(16) static const char ranges1[] =
  497|  50.0k|        "\x00 "  /* control chars and up to SP */
  498|  50.0k|        "\"\""   /* 0x22 */
  499|  50.0k|        "()"     /* 0x28,0x29 */
  500|  50.0k|        ",,"     /* 0x2c */
  501|  50.0k|        "//"     /* 0x2f */
  502|  50.0k|        ":@"     /* 0x3a-0x40 */
  503|  50.0k|        "[]"     /* 0x5b-0x5d */
  504|  50.0k|        "{\377"; /* 0x7b-0xff */
  505|  50.0k|    auto first = p;
  506|  50.0k|    bool found;
  507|  50.0k|    std::tie(p, found) = find_fast(
  508|  50.0k|        p, last, ranges1, sizeof(ranges1)-1);
  509|  50.0k|    if(! found && p >= last)
  ------------------
  |  Branch (509:8): [True: 50.0k, False: 0]
  |  Branch (509:19): [True: 0, False: 50.0k]
  ------------------
  510|      0|    {
  511|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  512|      0|        return;
  513|      0|    }
  514|  50.0k|    for(;;)
  515|   667k|    {
  516|   667k|        if(*p == ':')
  ------------------
  |  Branch (516:12): [True: 49.6k, False: 617k]
  ------------------
  517|  49.6k|            break;
  518|   617k|        if(! is_token[static_cast<
  ------------------
  |  Branch (518:12): [True: 34, False: 617k]
  ------------------
  519|   617k|            unsigned char>(*p)])
  520|     34|        {
  521|     34|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_field);
  ------------------
  |  |  111|     34|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     34|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     34|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     34|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     34|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  522|     34|            return;
  523|     34|        }
  524|   617k|        ++p;
  525|   617k|        if(p >= last)
  ------------------
  |  Branch (525:12): [True: 405, False: 617k]
  ------------------
  526|    405|        {
  527|    405|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    405|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    405|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    405|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    405|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    405|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  528|    405|            return;
  529|    405|        }
  530|   617k|    }
  531|  49.6k|    if(p == first)
  ------------------
  |  Branch (531:8): [True: 2, False: 49.6k]
  ------------------
  532|      2|    {
  533|       |        // empty name
  534|      2|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_field);
  ------------------
  |  |  111|      2|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      2|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      2|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      2|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      2|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  535|      2|        return;
  536|      2|    }
  537|  49.6k|    name = make_string(first, p);
  538|  49.6k|    ++p; // eat ':'
  539|  49.6k|    char const* token_last = nullptr;
  540|  49.6k|    for(;;)
  541|  50.7k|    {
  542|       |        // eat leading ' ' and '\t'
  543|  50.7k|        for(;;++p)
  544|  70.3k|        {
  545|  70.3k|            if(p + 1 > last)
  ------------------
  |  Branch (545:16): [True: 160, False: 70.2k]
  ------------------
  546|    160|            {
  547|    160|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    160|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    160|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    160|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    160|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    160|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  548|    160|                return;
  549|    160|            }
  550|  70.2k|            if(! (*p == ' ' || *p == '\t'))
  ------------------
  |  Branch (550:19): [True: 16.9k, False: 53.2k]
  |  Branch (550:32): [True: 2.65k, False: 50.5k]
  ------------------
  551|  50.5k|                break;
  552|  70.2k|        }
  553|       |        // parse to CRLF
  554|  50.5k|        first = p;
  555|  50.5k|        p = parse_token_to_eol(p, last, token_last, ec);
  556|  50.5k|        if(ec)
  ------------------
  |  Branch (556:12): [True: 696, False: 49.8k]
  ------------------
  557|    696|            return;
  558|  49.8k|        if(! p)
  ------------------
  |  Branch (558:12): [True: 23, False: 49.8k]
  ------------------
  559|     23|        {
  560|     23|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     23|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     23|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     23|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     23|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     23|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  561|     23|            return;
  562|     23|        }
  563|       |        // Look 1 char past the CRLF to handle obs-fold.
  564|  49.8k|        if(p + 1 > last)
  ------------------
  |  Branch (564:12): [True: 114, False: 49.7k]
  ------------------
  565|    114|        {
  566|    114|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    114|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    114|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    114|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    114|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    114|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|    114|            return;
  568|    114|        }
  569|  49.7k|        token_last =
  570|  49.7k|            trim_back(token_last, first);
  571|  49.7k|        if(*p != ' ' && *p != '\t')
  ------------------
  |  Branch (571:12): [True: 48.2k, False: 1.48k]
  |  Branch (571:25): [True: 46.0k, False: 2.18k]
  ------------------
  572|  46.0k|        {
  573|  46.0k|            value = make_string(first, token_last);
  574|  46.0k|            return;
  575|  46.0k|        }
  576|  3.66k|        ++p;
  577|  3.66k|        if(token_last != first)
  ------------------
  |  Branch (577:12): [True: 2.58k, False: 1.08k]
  ------------------
  578|  2.58k|            break;
  579|  3.66k|    }
  580|  2.58k|    buf.clear();
  581|  2.58k|    if (!buf.try_append(first, token_last))
  ------------------
  |  Branch (581:9): [True: 1, False: 2.57k]
  ------------------
  582|      1|    {
  583|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  584|      1|        return;
  585|      1|    }
  586|       |
  587|  2.57k|    BOOST_ASSERT(! buf.empty());
  ------------------
  |  |   66|  2.57k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  588|  2.57k|    for(;;)
  589|  9.91k|    {
  590|       |        // eat leading ' ' and '\t'
  591|  38.5k|        for(;;++p)
  592|  48.5k|        {
  593|  48.5k|            if(p + 1 > last)
  ------------------
  |  Branch (593:16): [True: 203, False: 48.3k]
  ------------------
  594|    203|            {
  595|    203|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    203|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    203|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    203|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    203|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    203|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|    203|                return;
  597|    203|            }
  598|  48.3k|            if(! (*p == ' ' || *p == '\t'))
  ------------------
  |  Branch (598:19): [True: 19.8k, False: 28.4k]
  |  Branch (598:32): [True: 18.7k, False: 9.71k]
  ------------------
  599|  9.71k|                break;
  600|  48.3k|        }
  601|       |        // parse to CRLF
  602|  9.71k|        first = p;
  603|  9.71k|        p = parse_token_to_eol(p, last, token_last, ec);
  604|  9.71k|        if(ec)
  ------------------
  |  Branch (604:12): [True: 254, False: 9.46k]
  ------------------
  605|    254|            return;
  606|  9.46k|        if(! p)
  ------------------
  |  Branch (606:12): [True: 20, False: 9.44k]
  ------------------
  607|     20|        {
  608|     20|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     20|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     20|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     20|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     20|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     20|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  609|     20|            return;
  610|     20|        }
  611|       |        // Look 1 char past the CRLF to handle obs-fold.
  612|  9.44k|        if(p + 1 > last)
  ------------------
  |  Branch (612:12): [True: 51, False: 9.39k]
  ------------------
  613|     51|        {
  614|     51|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     51|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     51|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     51|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     51|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     51|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  615|     51|            return;
  616|     51|        }
  617|  9.39k|        token_last = trim_back(token_last, first);
  618|  9.39k|        if(first != token_last)
  ------------------
  |  Branch (618:12): [True: 4.41k, False: 4.97k]
  ------------------
  619|  4.41k|        {
  620|  4.41k|            if (!buf.try_push_back(' ') ||
  ------------------
  |  Branch (620:17): [True: 1, False: 4.41k]
  ------------------
  621|  4.41k|                !buf.try_append(first, token_last))
  ------------------
  |  Branch (621:17): [True: 14, False: 4.39k]
  ------------------
  622|     15|            {
  623|     15|                BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|     15|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     15|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     15|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     15|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     15|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  624|     15|                return;
  625|     15|            }
  626|  4.41k|        }
  627|  9.37k|        if(*p != ' ' && *p != '\t')
  ------------------
  |  Branch (627:12): [True: 6.32k, False: 3.04k]
  |  Branch (627:25): [True: 2.03k, False: 4.29k]
  ------------------
  628|  2.03k|        {
  629|  2.03k|            value = {buf.data(), buf.size()};
  630|  2.03k|            return;
  631|  2.03k|        }
  632|  7.33k|        ++p;
  633|  7.33k|    }
  634|  2.57k|}
_ZN5boost5beast4http6detail17basic_parser_base9find_fastEPKcS5_S5_m:
  114|  50.0k|{
  115|  50.0k|    bool found = false;
  116|  50.0k|    boost::ignore_unused(buf_end, ranges, ranges_size);
  117|  50.0k|    return {buf, found};
  118|  50.0k|}
_ZN5boost5beast4http6detail17basic_parser_base18parse_token_to_eolEPKcS5_RS5_RNS_6system10error_codeE:
  213|  60.2k|{
  214|  1.40M|    for(;; ++p)
  215|  1.46M|    {
  216|  1.46M|        if(p >= last)
  ------------------
  |  Branch (216:12): [True: 822, False: 1.46M]
  ------------------
  217|    822|        {
  218|    822|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    822|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    822|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    822|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    822|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    822|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|    822|            return p;
  220|    822|        }
  221|  1.46M|        if(BOOST_UNLIKELY(! is_print(*p)))
  ------------------
  |  |   75|  1.46M|#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  |  |  ------------------
  |  |  |  Branch (75:27): [True: 322k, False: 1.14M]
  |  |  ------------------
  ------------------
  222|   322k|            if((BOOST_LIKELY(static_cast<
  ------------------
  |  |   74|   645k|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 78.9k, False: 243k]
  |  |  ------------------
  ------------------
  223|   322k|                    unsigned char>(*p) < '\040') &&
  224|   322k|                BOOST_LIKELY(*p != 9)) ||
  ------------------
  |  |   74|  78.9k|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 59.4k, False: 19.5k]
  |  |  ------------------
  ------------------
  225|   322k|                BOOST_UNLIKELY(*p == 127))
  ------------------
  |  |   75|   263k|#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  |  |  ------------------
  |  |  |  Branch (75:27): [True: 2, False: 263k]
  |  |  ------------------
  ------------------
  226|  59.4k|                goto found_control;
  227|  1.46M|    }
  228|  59.4k|found_control:
  229|  59.4k|    if(BOOST_LIKELY(*p == '\r'))
  ------------------
  |  |   74|  59.4k|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 59.4k, False: 43]
  |  |  ------------------
  ------------------
  230|  59.4k|    {
  231|  59.4k|        if(++p >= last)
  ------------------
  |  Branch (231:12): [True: 114, False: 59.2k]
  ------------------
  232|    114|        {
  233|    114|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    114|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    114|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    114|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    114|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    114|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|    114|            return last;
  235|    114|        }
  236|  59.2k|        if(*p++ != '\n')
  ------------------
  |  Branch (236:12): [True: 14, False: 59.2k]
  ------------------
  237|     14|        {
  238|     14|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|     14|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     14|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     14|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     14|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     14|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  239|     14|            return last;
  240|     14|        }
  241|  59.2k|        token_last = p - 2;
  242|  59.2k|    }
  243|       |#if 0
  244|       |    // VFALCO This allows `\n` by itself
  245|       |    //        to terminate a line
  246|       |    else if(*p == '\n')
  247|       |    {
  248|       |        token_last = p;
  249|       |        ++p;
  250|       |    }
  251|       |#endif
  252|     43|    else
  253|     43|    {
  254|       |        // invalid character
  255|     43|        return nullptr;
  256|     43|    }
  257|  59.2k|    return p;
  258|  59.4k|}
_ZN5boost5beast4http6detail17basic_parser_base9trim_backEPKcS5_:
   38|  59.1k|{
   39|  73.5k|    while(it != first)
  ------------------
  |  Branch (39:11): [True: 31.7k, False: 41.8k]
  ------------------
   40|  31.7k|    {
   41|  31.7k|        auto const c = it[-1];
   42|  31.7k|        if(c != ' ' && c != '\t')
  ------------------
  |  Branch (42:12): [True: 23.2k, False: 8.50k]
  |  Branch (42:24): [True: 17.2k, False: 5.93k]
  ------------------
   43|  17.2k|            break;
   44|  14.4k|        --it;
   45|  14.4k|    }
   46|  59.1k|    return it;
   47|  59.1k|}
_ZN5boost5beast4http6detail17basic_parser_base9parse_decENS_4core17basic_string_viewIcEERm:
  160|  2.36k|{
  161|  2.36k|    char const* it = s.data();
  162|  2.36k|    char const* last = it + s.size();
  163|  2.36k|    if(it == last)
  ------------------
  |  Branch (163:8): [True: 0, False: 2.36k]
  ------------------
  164|      0|        return false;
  165|  2.36k|    std::uint64_t tmp = 0;
  166|  2.36k|    do
  167|  8.53k|    {
  168|  8.53k|        if((! is_digit(*it)) ||
  ------------------
  |  Branch (168:12): [True: 62, False: 8.46k]
  ------------------
  169|  8.53k|            tmp > (std::numeric_limits<std::uint64_t>::max)() / 10)
  ------------------
  |  Branch (169:13): [True: 3, False: 8.46k]
  ------------------
  170|     65|            return false;
  171|  8.46k|        tmp *= 10;
  172|  8.46k|        std::uint64_t const d = *it - '0';
  173|  8.46k|        if((std::numeric_limits<std::uint64_t>::max)() - tmp < d)
  ------------------
  |  Branch (173:12): [True: 1, False: 8.46k]
  ------------------
  174|      1|            return false;
  175|  8.46k|        tmp += d;
  176|  8.46k|    }
  177|  8.46k|    while(++it != last);
  ------------------
  |  Branch (177:11): [True: 6.16k, False: 2.30k]
  ------------------
  178|  2.30k|    v = tmp;
  179|  2.30k|    return true;
  180|  2.36k|}
_ZN5boost5beast4http6detail17basic_parser_base10parse_crlfERPKc:
  263|  19.3k|{
  264|  19.3k|    if( it[0] != '\r' || it[1] != '\n')
  ------------------
  |  Branch (264:9): [True: 17, False: 19.3k]
  |  Branch (264:26): [True: 10, False: 19.3k]
  ------------------
  265|     27|        return false;
  266|  19.3k|    it += 2;
  267|  19.3k|    return true;
  268|  19.3k|}
_ZN5boost5beast4http6detail17basic_parser_base8find_eolEPKcS5_RNS_6system10error_codeE:
  126|  21.9k|{
  127|  21.9k|    for(;;)
  128|  55.8M|    {
  129|  55.8M|        if(it == last)
  ------------------
  |  Branch (129:12): [True: 2.77k, False: 55.8M]
  ------------------
  130|  2.77k|        {
  131|  2.77k|            ec = {};
  132|  2.77k|            return nullptr;
  133|  2.77k|        }
  134|  55.8M|        if(*it == '\r')
  ------------------
  |  Branch (134:12): [True: 19.2k, False: 55.8M]
  ------------------
  135|  19.2k|        {
  136|  19.2k|            if(++it == last)
  ------------------
  |  Branch (136:16): [True: 246, False: 18.9k]
  ------------------
  137|    246|            {
  138|    246|                ec = {};
  139|    246|                return nullptr;
  140|    246|            }
  141|  18.9k|            if(*it != '\n')
  ------------------
  |  Branch (141:16): [True: 10, False: 18.9k]
  ------------------
  142|     10|            {
  143|     10|                BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  144|     10|                return nullptr;
  145|     10|            }
  146|  18.9k|            ec = {};
  147|  18.9k|            return ++it;
  148|  18.9k|        }
  149|       |        // VFALCO Should we handle the legacy case
  150|       |        // for lines terminated with a single '\n'?
  151|  55.8M|        ++it;
  152|  55.8M|    }
  153|  21.9k|}
_ZN5boost5beast4http6detail17basic_parser_base9parse_hexERPKcRm:
  185|  18.9k|{
  186|  18.9k|    unsigned char d;
  187|  18.9k|    if(! unhex(d, *it))
  ------------------
  |  Branch (187:8): [True: 5, False: 18.9k]
  ------------------
  188|      5|        return false;
  189|  18.9k|    std::uint64_t tmp = 0;
  190|  18.9k|    do
  191|  33.8k|    {
  192|  33.8k|        if(tmp > (std::numeric_limits<std::uint64_t>::max)() / 16)
  ------------------
  |  Branch (192:12): [True: 6, False: 33.8k]
  ------------------
  193|      6|            return false;
  194|  33.8k|        tmp *= 16;
  195|  33.8k|        if((std::numeric_limits<std::uint64_t>::max)() - tmp < d)
  ------------------
  |  Branch (195:12): [True: 0, False: 33.8k]
  ------------------
  196|      0|            return false;
  197|  33.8k|        tmp += d;
  198|  33.8k|    }
  199|  33.8k|    while(unhex(d, *++it));
  ------------------
  |  Branch (199:11): [True: 14.9k, False: 18.9k]
  ------------------
  200|  18.9k|    v = tmp;
  201|  18.9k|    return true;
  202|  18.9k|}
_ZN5boost5beast4http6detail17basic_parser_base5unhexERhc:
   80|  52.8k|{
   81|  52.8k|    static signed char constexpr tab[256] = {
   82|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //   0
   83|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  16
   84|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  32
   85|  52.8k|            0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, //  48
   86|  52.8k|        -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  64
   87|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  80
   88|  52.8k|        -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  96
   89|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 112
   90|       |
   91|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 128
   92|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 144
   93|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 160
   94|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 176
   95|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 192
   96|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 208
   97|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 224
   98|  52.8k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1  // 240
   99|  52.8k|    };
  100|  52.8k|    d = static_cast<unsigned char>(
  101|  52.8k|        tab[static_cast<unsigned char>(c)]);
  102|  52.8k|    return d != static_cast<unsigned char>(-1);
  103|  52.8k|}
_ZN5boost5beast4http6detail17basic_parser_base22parse_chunk_extensionsERPKcS5_RNS_6system10error_codeE:
  643|  18.7k|{
  644|       |/*
  645|       |    chunk-ext       = *( BWS  ";" BWS chunk-ext-name [ BWS  "=" BWS chunk-ext-val ] )
  646|       |    BWS             = *( SP / HTAB ) ; "Bad White Space"
  647|       |    chunk-ext-name  = token
  648|       |    chunk-ext-val   = token / quoted-string
  649|       |    token           = 1*tchar
  650|       |    quoted-string   = DQUOTE *( qdtext / quoted-pair ) DQUOTE
  651|       |    qdtext          = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text
  652|       |    quoted-pair     = "\" ( HTAB / SP / VCHAR / obs-text )
  653|       |    obs-text        = %x80-FF
  654|       |
  655|       |    https://www.rfc-editor.org/errata_search.php?rfc=7230&eid=4667
  656|       |*/
  657|  51.6k|loop:
  658|  51.6k|    if(it == last)
  ------------------
  |  Branch (658:8): [True: 27, False: 51.6k]
  ------------------
  659|     27|    {
  660|     27|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     27|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     27|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     27|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     27|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     27|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  661|     27|        return;
  662|     27|    }
  663|  51.6k|    if(*it != ' ' && *it != '\t' && *it != ';')
  ------------------
  |  Branch (663:8): [True: 45.5k, False: 6.09k]
  |  Branch (663:22): [True: 30.2k, False: 15.2k]
  |  Branch (663:37): [True: 2.54k, False: 27.7k]
  ------------------
  664|  2.54k|        return;
  665|       |    // BWS
  666|  49.0k|    if(*it == ' ' || *it == '\t')
  ------------------
  |  Branch (666:8): [True: 6.09k, False: 42.9k]
  |  Branch (666:22): [True: 15.2k, False: 27.7k]
  ------------------
  667|  21.3k|    {
  668|  21.3k|        for(;;)
  669|  16.5M|        {
  670|  16.5M|            ++it;
  671|  16.5M|            if(it == last)
  ------------------
  |  Branch (671:16): [True: 121, False: 16.5M]
  ------------------
  672|    121|            {
  673|    121|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    121|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    121|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    121|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    121|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    121|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  674|    121|                return;
  675|    121|            }
  676|  16.5M|            if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (676:16): [True: 23.8k, False: 16.5M]
  |  Branch (676:30): [True: 21.1k, False: 2.65k]
  ------------------
  677|  21.1k|                break;
  678|  16.5M|        }
  679|  21.3k|    }
  680|       |    // ';'
  681|  48.9k|    if(*it != ';')
  ------------------
  |  Branch (681:8): [True: 50, False: 48.8k]
  ------------------
  682|     50|    {
  683|     50|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk_extension);
  ------------------
  |  |  111|     50|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     50|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     50|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     50|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     50|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  684|     50|        return;
  685|     50|    }
  686|   109k|semi:
  687|   109k|    ++it; // skip ';'
  688|       |    // BWS
  689|   109k|    for(;;)
  690|  7.72M|    {
  691|  7.72M|        if(it == last)
  ------------------
  |  Branch (691:12): [True: 93, False: 7.72M]
  ------------------
  692|     93|        {
  693|     93|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     93|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     93|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     93|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     93|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     93|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  694|     93|            return;
  695|     93|        }
  696|  7.72M|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (696:12): [True: 112k, False: 7.61M]
  |  Branch (696:26): [True: 108k, False: 3.16k]
  ------------------
  697|   108k|            break;
  698|  7.61M|        ++it;
  699|  7.61M|    }
  700|       |    // chunk-ext-name
  701|   108k|    if(! detail::is_token_char(*it))
  ------------------
  |  Branch (701:8): [True: 42, False: 108k]
  ------------------
  702|     42|    {
  703|     42|        ec = error::bad_chunk_extension;
  704|     42|        return;
  705|     42|    }
  706|   108k|    for(;;)
  707|  13.0M|    {
  708|  13.0M|        ++it;
  709|  13.0M|        if(it == last)
  ------------------
  |  Branch (709:12): [True: 87, False: 13.0M]
  ------------------
  710|     87|        {
  711|     87|            ec = error::need_more;
  712|     87|            return;
  713|     87|        }
  714|  13.0M|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (714:12): [True: 108k, False: 12.9M]
  ------------------
  715|   108k|            break;
  716|  13.0M|    }
  717|       |    // BWS [ ";" / "=" ]
  718|   108k|    {
  719|   108k|        bool bws;
  720|   108k|        if(*it == ' ' || *it == '\t')
  ------------------
  |  Branch (720:12): [True: 17.8k, False: 90.9k]
  |  Branch (720:26): [True: 47.5k, False: 43.4k]
  ------------------
  721|  65.4k|        {
  722|  65.4k|            for(;;)
  723|  14.3M|            {
  724|  14.3M|                ++it;
  725|  14.3M|                if(it == last)
  ------------------
  |  Branch (725:20): [True: 138, False: 14.3M]
  ------------------
  726|    138|                {
  727|    138|                    ec = error::need_more;
  728|    138|                    return;
  729|    138|                }
  730|  14.3M|                if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (730:20): [True: 99.1k, False: 14.2M]
  |  Branch (730:34): [True: 65.2k, False: 33.8k]
  ------------------
  731|  65.2k|                    break;
  732|  14.3M|            }
  733|  65.2k|            bws = true;
  734|  65.2k|        }
  735|  43.4k|        else
  736|  43.4k|        {
  737|  43.4k|            bws = false;
  738|  43.4k|        }
  739|   108k|        if(*it == ';')
  ------------------
  |  Branch (739:12): [True: 60.1k, False: 48.5k]
  ------------------
  740|  60.1k|            goto semi;
  741|  48.5k|        if(*it != '=')
  ------------------
  |  Branch (741:12): [True: 14.8k, False: 33.7k]
  ------------------
  742|  14.8k|        {
  743|  14.8k|            if(bws)
  ------------------
  |  Branch (743:16): [True: 48, False: 14.7k]
  ------------------
  744|     48|                ec = error::bad_chunk_extension;
  745|  14.8k|            return;
  746|  14.8k|        }
  747|  33.7k|        ++it; // skip '='
  748|  33.7k|    }
  749|       |    // BWS
  750|      0|    for(;;)
  751|  7.64M|    {
  752|  7.64M|        if(it == last)
  ------------------
  |  Branch (752:12): [True: 86, False: 7.64M]
  ------------------
  753|     86|        {
  754|     86|            ec = error::need_more;
  755|     86|            return;
  756|     86|        }
  757|  7.64M|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (757:12): [True: 34.1k, False: 7.61M]
  |  Branch (757:26): [True: 33.6k, False: 527]
  ------------------
  758|  33.6k|            break;
  759|  7.61M|        ++it;
  760|  7.61M|    }
  761|       |    // chunk-ext-val
  762|  33.6k|    if(*it != '"')
  ------------------
  |  Branch (762:8): [True: 18.8k, False: 14.7k]
  ------------------
  763|  18.8k|    {
  764|       |        // token
  765|  18.8k|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (765:12): [True: 27, False: 18.8k]
  ------------------
  766|     27|        {
  767|     27|            ec = error::bad_chunk_extension;
  768|     27|            return;
  769|     27|        }
  770|  18.8k|        for(;;)
  771|  8.68M|        {
  772|  8.68M|            ++it;
  773|  8.68M|            if(it == last)
  ------------------
  |  Branch (773:16): [True: 67, False: 8.68M]
  ------------------
  774|     67|            {
  775|     67|                ec = error::need_more;
  776|     67|                return;
  777|     67|            }
  778|  8.68M|            if(! detail::is_token_char(*it))
  ------------------
  |  Branch (778:16): [True: 18.7k, False: 8.67M]
  ------------------
  779|  18.7k|                break;
  780|  8.68M|        }
  781|  18.8k|    }
  782|  14.7k|    else
  783|  14.7k|    {
  784|       |        // quoted-string
  785|  14.7k|        for(;;)
  786|  37.7M|        {
  787|  37.7M|            ++it;
  788|  37.7M|            if(it == last)
  ------------------
  |  Branch (788:16): [True: 514, False: 37.7M]
  ------------------
  789|    514|            {
  790|    514|                ec = error::need_more;
  791|    514|                return;
  792|    514|            }
  793|  37.7M|            if(*it == '"')
  ------------------
  |  Branch (793:16): [True: 14.0k, False: 37.7M]
  ------------------
  794|  14.0k|                break;
  795|  37.7M|            if(*it == '\\')
  ------------------
  |  Branch (795:16): [True: 14.8M, False: 22.8M]
  ------------------
  796|  14.8M|            {
  797|  14.8M|                ++it;
  798|  14.8M|                if(it == last)
  ------------------
  |  Branch (798:20): [True: 161, False: 14.8M]
  ------------------
  799|    161|                {
  800|    161|                    ec = error::need_more;
  801|    161|                    return;
  802|    161|                }
  803|  14.8M|            }
  804|  37.7M|        }
  805|  14.0k|        ++it;
  806|  14.0k|    }
  807|  32.8k|    goto loop;
  808|  33.6k|}

_ZN5boost5beast4http6detail4trimENS_4core17basic_string_viewIcEE:
  244|  47.7k|{
  245|  47.7k|    auto first = s.begin();
  246|  47.7k|    auto last = s.end();
  247|  47.7k|    skip_ows(first, last);
  248|  47.7k|    while(first != last)
  ------------------
  |  Branch (248:11): [True: 12.0k, False: 35.7k]
  ------------------
  249|  12.0k|    {
  250|  12.0k|        auto const c = *std::prev(last);
  251|  12.0k|        if(c != ' ' && c != '\t')
  ------------------
  |  Branch (251:12): [True: 12.0k, False: 0]
  |  Branch (251:24): [True: 12.0k, False: 0]
  ------------------
  252|  12.0k|            break;
  253|      0|        --last;
  254|      0|    }
  255|  47.7k|    if(first == last)
  ------------------
  |  Branch (255:8): [True: 35.7k, False: 12.0k]
  ------------------
  256|  35.7k|        return {};
  257|  12.0k|    return {&*first,
  258|  12.0k|        static_cast<std::size_t>(last - first)};
  259|  47.7k|}
_ZN5boost5beast4http6detail8skip_owsIPKcEEvRT_S6_:
  225|   138k|{
  226|   145k|    while(it != end)
  ------------------
  |  Branch (226:11): [True: 88.6k, False: 56.6k]
  ------------------
  227|  88.6k|    {
  228|  88.6k|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (228:12): [True: 84.7k, False: 3.91k]
  |  Branch (228:26): [True: 81.3k, False: 3.39k]
  ------------------
  229|  81.3k|            break;
  230|  7.30k|        ++it;
  231|  7.30k|    }
  232|   138k|}
_ZN5boost5beast4http6detail13is_token_charEc:
   81|  23.4M|{
   82|       |    /*
   83|       |        tchar = "!" | "#" | "$" | "%" | "&" |
   84|       |                "'" | "*" | "+" | "-" | "." |
   85|       |                "^" | "_" | "`" | "|" | "~" |
   86|       |                DIGIT | ALPHA
   87|       |    */
   88|  23.4M|    static char constexpr tab[] = {
   89|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 0
   90|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 16
   91|  23.4M|        0, 1, 0, 1,  1, 1, 1, 1,  0, 0, 1, 1,  0, 1, 1, 0, // 32
   92|  23.4M|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 0, 0,  0, 0, 0, 0, // 48
   93|  23.4M|        0, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 64
   94|  23.4M|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0,  0, 0, 1, 1, // 80
   95|  23.4M|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 96
   96|  23.4M|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0,  1, 0, 1, 0, // 112
   97|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 128
   98|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 144
   99|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 160
  100|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 176
  101|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 192
  102|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 208
  103|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 224
  104|  23.4M|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0  // 240
  105|  23.4M|    };
  106|  23.4M|    BOOST_STATIC_ASSERT(sizeof(tab) == 256);
  ------------------
  |  |   71|  23.4M|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  107|  23.4M|    return tab[static_cast<unsigned char>(c)];
  108|  23.4M|}
_ZNK5boost5beast4http6detail21opt_token_list_policyclERNS_4core17basic_string_viewIcEERPKcS6_:
  348|  19.8k|{
  349|  19.8k|    v = {};
  350|  19.8k|    auto need_comma = it != s.data();
  351|  19.8k|    for(;;)
  352|  57.4k|    {
  353|  57.4k|        detail::skip_ows(it, (s.data() + s.size()));
  354|  57.4k|        if(it == (s.data() + s.size()))
  ------------------
  |  Branch (354:12): [True: 5.01k, False: 52.4k]
  ------------------
  355|  5.01k|        {
  356|  5.01k|            it = nullptr;
  357|  5.01k|            return true;
  358|  5.01k|        }
  359|  52.4k|        auto const c = *it;
  360|  52.4k|        if(detail::is_token_char(c))
  ------------------
  |  Branch (360:12): [True: 14.7k, False: 37.6k]
  ------------------
  361|  14.7k|        {
  362|  14.7k|            if(need_comma)
  ------------------
  |  Branch (362:16): [True: 6, False: 14.7k]
  ------------------
  363|      6|                return false;
  364|  14.7k|            auto const p0 = it;
  365|  14.7k|            for(;;)
  366|   152k|            {
  367|   152k|                ++it;
  368|   152k|                if(it == (s.data() + s.size()))
  ------------------
  |  Branch (368:20): [True: 5.13k, False: 146k]
  ------------------
  369|  5.13k|                    break;
  370|   146k|                if(! detail::is_token_char(*it))
  ------------------
  |  Branch (370:20): [True: 9.65k, False: 137k]
  ------------------
  371|  9.65k|                    break;
  372|   146k|            }
  373|  14.7k|            v = string_view{p0,
  374|  14.7k|                static_cast<std::size_t>(it - p0)};
  375|  14.7k|            return true;
  376|  14.7k|        }
  377|  37.6k|        if(c != ',')
  ------------------
  |  Branch (377:12): [True: 53, False: 37.6k]
  ------------------
  378|     53|            return false;
  379|  37.6k|        need_comma = false;
  380|  37.6k|        ++it;
  381|  37.6k|    }
  382|  19.8k|}

_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareclENS_4core17basic_string_viewIcEERKNS6_10value_typeE:
  131|   496k|        {
  132|   496k|            if(lhs.size() < rhs.name_string().size())
  ------------------
  |  Branch (132:16): [True: 15.1k, False: 481k]
  ------------------
  133|  15.1k|                return true;
  134|   481k|            if(lhs.size() > rhs.name_string().size())
  ------------------
  |  Branch (134:16): [True: 6.93k, False: 474k]
  ------------------
  135|  6.93k|                return false;
  136|   474k|            return iless::operator()(lhs, rhs.name_string());
  137|   481k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareclERKNS6_10value_typeENS_4core17basic_string_viewIcEE:
  144|  34.4k|        {
  145|  34.4k|            if(lhs.name_string().size() < rhs.size())
  ------------------
  |  Branch (145:16): [True: 9.59k, False: 24.8k]
  ------------------
  146|  9.59k|                return true;
  147|  24.8k|            if(lhs.name_string().size() > rhs.size())
  ------------------
  |  Branch (147:16): [True: 4.43k, False: 20.3k]
  ------------------
  148|  4.43k|                return false;
  149|  20.3k|            return iless::operator()(lhs.name_string(), rhs);
  150|  24.8k|        }
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEEC2Ev:
  234|  4.85k|    basic_fields() = default;

_ZN5boost5beast4http12basic_parserILb1EE3putINS_4asio14mutable_bufferEEEmRKT_RNS_6system10error_codeE:
   27|  36.6k|{
   28|  36.6k|    static_assert(net::is_const_buffer_sequence<
   29|  36.6k|        ConstBufferSequence>::value,
   30|  36.6k|            "ConstBufferSequence type requirements not met");
   31|  36.6k|    auto const p = net::buffer_sequence_begin(buffers);
   32|  36.6k|    auto const last = net::buffer_sequence_end(buffers);
   33|  36.6k|    if(p == last)
  ------------------
  |  Branch (33:8): [True: 0, False: 36.6k]
  ------------------
   34|      0|    {
   35|      0|        ec = {};
   36|      0|        return 0;
   37|      0|    }
   38|  36.6k|    if(std::next(p) == last)
  ------------------
  |  Branch (38:8): [True: 36.6k, False: 0]
  ------------------
   39|  36.6k|    {
   40|       |        // single buffer
   41|  36.6k|        return put(net::const_buffer(*p), ec);
   42|  36.6k|    }
   43|      0|    auto const size = buffer_bytes(buffers);
   44|      0|    if(size <= max_stack_buffer)
  ------------------
  |  Branch (44:8): [True: 0, False: 0]
  ------------------
   45|      0|        return put_from_stack(size, buffers, ec);
   46|      0|    if(size > buf_len_)
  ------------------
  |  Branch (46:8): [True: 0, False: 0]
  ------------------
   47|      0|    {
   48|       |        // reallocate
   49|      0|        buf_ = boost::make_unique_noinit<char[]>(size);
   50|      0|        buf_len_ = size;
   51|      0|    }
   52|       |    // flatten
   53|      0|    net::buffer_copy(net::buffer(
   54|      0|        buf_.get(), size), buffers);
   55|      0|    return put(net::const_buffer{
   56|      0|        buf_.get(), size}, ec);
   57|      0|}
_ZNK5boost5beast4http12basic_parserILb1EE24content_length_uncheckedEv:
   63|  2.60k|{
   64|  2.60k|    if(f_ & flagContentLength)
  ------------------
  |  Branch (64:8): [True: 795, False: 1.81k]
  ------------------
   65|    795|        return len0_;
   66|  1.81k|    return boost::none;
   67|  2.60k|}

_ZN5boost5beast4http12basic_parserILb1EE3putENS_4asio12const_bufferERNS_6system10error_codeE:
   84|  36.6k|{
   85|       |    // If this goes off you have tried to parse more data after the parser
   86|       |    // has completed. A common cause of this is re-using a parser, which is
   87|       |    // not supported. If you need to re-use a parser, consider storing it
   88|       |    // in an optional. Then reset() and emplace() prior to parsing each new
   89|       |    // message.
   90|  36.6k|    BOOST_ASSERT(!is_done());
  ------------------
  |  |   66|  36.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   91|  36.6k|    if (is_done())
  ------------------
  |  Branch (91:9): [True: 0, False: 36.6k]
  ------------------
   92|      0|    {
   93|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::stale_parser);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   94|      0|        return 0;
   95|      0|    }
   96|  36.6k|    auto p = static_cast<char const*>(buffer.data());
   97|  36.6k|    auto n = buffer.size();
   98|  36.6k|    auto const p0 = p;
   99|  36.6k|    auto const p1 = p0 + n;
  100|  36.6k|    ec = {};
  101|  71.9k|loop:
  102|  71.9k|    switch(state_)
  ------------------
  |  Branch (102:12): [True: 0, False: 71.9k]
  ------------------
  103|  71.9k|    {
  104|  4.85k|    case state::nothing_yet:
  ------------------
  |  Branch (104:5): [True: 4.85k, False: 67.0k]
  ------------------
  105|  4.85k|        if(n == 0)
  ------------------
  |  Branch (105:12): [True: 0, False: 4.85k]
  ------------------
  106|      0|        {
  107|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  108|      0|            return 0;
  109|      0|        }
  110|  4.85k|        state_ = state::start_line;
  111|  4.85k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  4.85k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  112|       |
  113|  5.63k|    case state::start_line:
  ------------------
  |  Branch (113:5): [True: 789, False: 71.1k]
  ------------------
  114|  5.63k|        parse_start_line(p, n, ec);
  115|  5.63k|        if(ec)
  ------------------
  |  Branch (115:12): [True: 1.01k, False: 4.62k]
  ------------------
  116|  1.01k|            goto done;
  117|  4.62k|        BOOST_ASSERT(! is_done());
  ------------------
  |  |   66|  4.62k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  118|  4.62k|        n = static_cast<std::size_t>(p1 - p);
  119|  4.62k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  4.62k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  120|       |
  121|  6.10k|    case state::fields:
  ------------------
  |  Branch (121:5): [True: 1.48k, False: 70.4k]
  ------------------
  122|  6.10k|        parse_fields(p, n, ec);
  123|  6.10k|        if(ec)
  ------------------
  |  Branch (123:12): [True: 4.75k, False: 1.35k]
  ------------------
  124|  4.75k|            goto done;
  125|  1.35k|        finish_header(ec, is_request{});
  126|  1.35k|        if(ec)
  ------------------
  |  Branch (126:12): [True: 80, False: 1.27k]
  ------------------
  127|     80|            goto done;
  128|  1.27k|        break;
  129|       |
  130|  1.27k|    case state::body0:
  ------------------
  |  Branch (130:5): [True: 144, False: 71.7k]
  ------------------
  131|    144|        this->on_body_init_impl(content_length(), ec);
  132|    144|        if(ec)
  ------------------
  |  Branch (132:12): [True: 0, False: 144]
  ------------------
  133|      0|            goto done;
  134|    144|        state_ = state::body;
  135|    144|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    144|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  136|       |
  137|  13.5k|    case state::body:
  ------------------
  |  Branch (137:5): [True: 13.4k, False: 58.4k]
  ------------------
  138|  13.5k|        parse_body(p, n, ec);
  139|  13.5k|        if(ec)
  ------------------
  |  Branch (139:12): [True: 0, False: 13.5k]
  ------------------
  140|      0|            goto done;
  141|  13.5k|        break;
  142|       |
  143|  13.5k|    case state::body_to_eof0:
  ------------------
  |  Branch (143:5): [True: 0, False: 71.9k]
  ------------------
  144|      0|        this->on_body_init_impl(content_length(), ec);
  145|      0|        if(ec)
  ------------------
  |  Branch (145:12): [True: 0, False: 0]
  ------------------
  146|      0|            goto done;
  147|      0|        state_ = state::body_to_eof;
  148|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  149|       |
  150|      0|    case state::body_to_eof:
  ------------------
  |  Branch (150:5): [True: 0, False: 71.9k]
  ------------------
  151|      0|        parse_body_to_eof(p, n, ec);
  152|      0|        if(ec)
  ------------------
  |  Branch (152:12): [True: 0, False: 0]
  ------------------
  153|      0|            goto done;
  154|      0|        break;
  155|       |
  156|  1.08k|    case state::chunk_header0:
  ------------------
  |  Branch (156:5): [True: 1.08k, False: 70.8k]
  ------------------
  157|  1.08k|        this->on_body_init_impl(content_length(), ec);
  158|  1.08k|        if(ec)
  ------------------
  |  Branch (158:12): [True: 0, False: 1.08k]
  ------------------
  159|      0|            goto done;
  160|  1.08k|        state_ = state::chunk_header;
  161|  1.08k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  1.08k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  162|       |
  163|  22.2k|    case state::chunk_header:
  ------------------
  |  Branch (163:5): [True: 21.1k, False: 50.7k]
  ------------------
  164|  22.2k|        parse_chunk_header(p, n, ec);
  165|  22.2k|        if(ec)
  ------------------
  |  Branch (165:12): [True: 4.97k, False: 17.2k]
  ------------------
  166|  4.97k|            goto done;
  167|  17.2k|        if(state_ != state::trailer_fields)
  ------------------
  |  Branch (167:12): [True: 17.2k, False: 44]
  ------------------
  168|  17.2k|            break;
  169|     44|        n = static_cast<std::size_t>(p1 - p);
  170|     44|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     44|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  171|       |
  172|    142|    case state::trailer_fields:
  ------------------
  |  Branch (172:5): [True: 98, False: 71.8k]
  ------------------
  173|    142|        parse_fields(p, n, ec);
  174|    142|        if(ec)
  ------------------
  |  Branch (174:12): [True: 141, False: 1]
  ------------------
  175|    141|            goto done;
  176|      1|        state_ = state::complete;
  177|      1|        this->on_finish_impl(ec);
  178|      1|        goto done;
  179|       |
  180|  28.8k|    case state::chunk_body:
  ------------------
  |  Branch (180:5): [True: 28.8k, False: 43.0k]
  ------------------
  181|  28.8k|        parse_chunk_body(p, n, ec);
  182|  28.8k|        if(ec)
  ------------------
  |  Branch (182:12): [True: 0, False: 28.8k]
  ------------------
  183|      0|            goto done;
  184|  28.8k|        break;
  185|       |
  186|  28.8k|    case state::complete:
  ------------------
  |  Branch (186:5): [True: 0, False: 71.9k]
  ------------------
  187|      0|        ec = {};
  188|      0|        goto done;
  189|  71.9k|    }
  190|  60.9k|    if(p < p1 && ! is_done() && eager())
  ------------------
  |  Branch (190:8): [True: 35.2k, False: 25.6k]
  |  Branch (190:18): [True: 35.2k, False: 6]
  |  Branch (190:33): [True: 35.2k, False: 0]
  ------------------
  191|  35.2k|    {
  192|  35.2k|        n = static_cast<std::size_t>(p1 - p);
  193|  35.2k|        goto loop;
  194|  35.2k|    }
  195|  36.6k|done:
  196|  36.6k|    return static_cast<std::size_t>(p - p0);
  197|  60.9k|}
_ZN5boost5beast4http12basic_parserILb1EE16parse_start_lineERPKcmRNS_6system10error_codeE:
  346|  5.63k|{
  347|  5.63k|    auto const p0 = in;
  348|       |
  349|  5.63k|    inner_parse_start_line(in, in + (std::min<std::size_t>)
  350|  5.63k|        (n, header_limit_), ec, is_request{});
  351|  5.63k|    if(ec == error::need_more && n >= header_limit_)
  ------------------
  |  Branch (351:8): [True: 857, False: 4.78k]
  |  Branch (351:8): [True: 1, False: 5.63k]
  |  Branch (351:34): [True: 1, False: 856]
  ------------------
  352|      1|    {
  353|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  354|      1|    }
  355|  5.63k|    header_limit_ -= static_cast<std::uint32_t>(in - p0);
  356|  5.63k|}
_ZN5boost5beast4http12basic_parserILb1EE22inner_parse_start_lineERPKcS5_RNS_6system10error_codeENSt3__117integral_constantIbLb1EEE:
  232|  5.63k|{
  233|       |/*
  234|       |    request-line   = method SP request-target SP HTTP-version CRLF
  235|       |    method         = token
  236|       |*/
  237|  5.63k|    auto p = in;
  238|       |
  239|  5.63k|    string_view method;
  240|  5.63k|    parse_method(p, last, method, ec);
  241|  5.63k|    if(ec)
  ------------------
  |  Branch (241:8): [True: 535, False: 5.10k]
  ------------------
  242|    535|        return;
  243|       |
  244|  5.10k|    string_view target;
  245|  5.10k|    parse_target(p, last, target, ec);
  246|  5.10k|    if(ec)
  ------------------
  |  Branch (246:8): [True: 253, False: 4.85k]
  ------------------
  247|    253|        return;
  248|       |
  249|  4.85k|    int version = 0;
  250|  4.85k|    parse_version(p, last, version, ec);
  251|  4.85k|    if(ec)
  ------------------
  |  Branch (251:8): [True: 175, False: 4.67k]
  ------------------
  252|    175|        return;
  253|  4.67k|    if(version < 10 || version > 11)
  ------------------
  |  Branch (253:8): [True: 4, False: 4.67k]
  |  Branch (253:24): [True: 6, False: 4.66k]
  ------------------
  254|     10|    {
  255|     10|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|     10|        return;
  257|     10|    }
  258|       |
  259|  4.66k|    if(p + 2 > last)
  ------------------
  |  Branch (259:8): [True: 18, False: 4.64k]
  ------------------
  260|     18|    {
  261|     18|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     18|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     18|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     18|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     18|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     18|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  262|     18|        return;
  263|     18|    }
  264|  4.64k|    if(p[0] != '\r' || p[1] != '\n')
  ------------------
  |  Branch (264:8): [True: 10, False: 4.63k]
  |  Branch (264:24): [True: 11, False: 4.62k]
  ------------------
  265|     21|    {
  266|     21|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     21|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     21|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     21|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     21|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     21|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  267|     21|        return;
  268|     21|    }
  269|  4.62k|    p += 2;
  270|       |
  271|  4.62k|    if(version >= 11)
  ------------------
  |  Branch (271:8): [True: 3.25k, False: 1.36k]
  ------------------
  272|  3.25k|        f_ |= flagHTTP11;
  273|       |
  274|  4.62k|    this->on_request_impl(string_to_verb(method),
  275|  4.62k|        method, target, version, ec);
  276|  4.62k|    if(ec)
  ------------------
  |  Branch (276:8): [True: 0, False: 4.62k]
  ------------------
  277|      0|        return;
  278|       |
  279|  4.62k|    in = p;
  280|  4.62k|    state_ = state::fields;
  281|  4.62k|}
_ZN5boost5beast4http12basic_parserILb1EE12parse_fieldsERPKcmRNS_6system10error_codeE:
  403|  6.25k|{
  404|  6.25k|    auto const p0 = in;
  405|       |
  406|  6.25k|    inner_parse_fields(in, in + (std::min<std::size_t>)
  407|  6.25k|        (n, header_limit_), ec);
  408|  6.25k|    if(ec == error::need_more && n >= header_limit_)
  ------------------
  |  Branch (408:8): [True: 4.45k, False: 1.79k]
  |  Branch (408:8): [True: 6, False: 6.24k]
  |  Branch (408:34): [True: 6, False: 4.44k]
  ------------------
  409|      6|    {
  410|      6|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      6|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      6|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      6|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      6|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      6|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|      6|    }
  412|  6.25k|    header_limit_ -= static_cast<std::uint32_t>(in - p0);
  413|  6.25k|}
_ZN5boost5beast4http12basic_parserILb1EE18inner_parse_fieldsERPKcS5_RNS_6system10error_codeE:
  363|  6.25k|{
  364|  6.25k|    string_view name;
  365|  6.25k|    string_view value;
  366|       |    // https://stackoverflow.com/questions/686217/maximum-on-http-header-values
  367|  6.25k|    beast::detail::char_buffer<max_obs_fold> buf;
  368|  6.25k|    auto p = in;
  369|  6.25k|    for(;;)
  370|  54.0k|    {
  371|  54.0k|        if(p + 2 > last)
  ------------------
  |  Branch (371:12): [True: 2.58k, False: 51.4k]
  ------------------
  372|  2.58k|        {
  373|  2.58k|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|  2.58k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  2.58k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  2.58k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  2.58k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  2.58k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  374|  2.58k|            return;
  375|  2.58k|        }
  376|  51.4k|        if(p[0] == '\r')
  ------------------
  |  Branch (376:12): [True: 1.36k, False: 50.0k]
  ------------------
  377|  1.36k|        {
  378|  1.36k|            if(p[1] != '\n')
  ------------------
  |  Branch (378:16): [True: 10, False: 1.35k]
  ------------------
  379|     10|            {
  380|     10|                BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  381|     10|            }
  382|  1.36k|            in = p + 2;
  383|  1.36k|            return;
  384|  1.36k|        }
  385|  50.0k|        parse_field(p, last, name, value, buf, ec);
  386|  50.0k|        if(ec)
  ------------------
  |  Branch (386:12): [True: 1.97k, False: 48.0k]
  ------------------
  387|  1.97k|            return;
  388|  48.0k|        auto const f = string_to_field(name);
  389|  48.0k|        do_field(f, value, ec);
  390|  48.0k|        if(ec)
  ------------------
  |  Branch (390:12): [True: 321, False: 47.7k]
  ------------------
  391|    321|            return;
  392|  47.7k|        this->on_field_impl(f, name, value, ec);
  393|  47.7k|        if(ec)
  ------------------
  |  Branch (393:12): [True: 0, False: 47.7k]
  ------------------
  394|      0|            return;
  395|  47.7k|        in = p;
  396|  47.7k|    }
  397|  6.25k|}
_ZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  675|  48.0k|{
  676|  48.0k|    using namespace beast::detail::string_literals;
  677|       |    // Connection
  678|  48.0k|    if(f == field::connection ||
  ------------------
  |  Branch (678:8): [True: 1.25k, False: 46.8k]
  ------------------
  679|  48.0k|        f == field::proxy_connection)
  ------------------
  |  Branch (679:9): [True: 0, False: 46.8k]
  ------------------
  680|  1.25k|    {
  681|  1.25k|        auto const list = opt_token_list{value};
  682|  1.25k|        if(! validate_list(list))
  ------------------
  |  Branch (682:12): [True: 35, False: 1.22k]
  ------------------
  683|     35|        {
  684|       |            // VFALCO Should this be a field specific error?
  685|     35|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     35|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     35|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     35|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     35|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     35|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  686|     35|            return;
  687|     35|        }
  688|  1.22k|        for(auto const& s : list)
  ------------------
  |  Branch (688:27): [True: 4.27k, False: 1.22k]
  ------------------
  689|  4.27k|        {
  690|  4.27k|            if(beast::iequals("close"_sv, s))
  ------------------
  |  Branch (690:16): [True: 515, False: 3.76k]
  ------------------
  691|    515|            {
  692|    515|                f_ |= flagConnectionClose;
  693|    515|                continue;
  694|    515|            }
  695|       |
  696|  3.76k|            if(beast::iequals("keep-alive"_sv, s))
  ------------------
  |  Branch (696:16): [True: 483, False: 3.28k]
  ------------------
  697|    483|            {
  698|    483|                f_ |= flagConnectionKeepAlive;
  699|    483|                continue;
  700|    483|            }
  701|       |
  702|  3.28k|            if(beast::iequals("upgrade"_sv, s))
  ------------------
  |  Branch (702:16): [True: 507, False: 2.77k]
  ------------------
  703|    507|            {
  704|    507|                f_ |= flagConnectionUpgrade;
  705|    507|                continue;
  706|    507|            }
  707|  3.28k|        }
  708|  1.22k|        ec = {};
  709|  1.22k|        return;
  710|  1.25k|    }
  711|       |
  712|       |    // Content-Length
  713|  46.8k|    if(f == field::content_length)
  ------------------
  |  Branch (713:8): [True: 1.41k, False: 45.4k]
  ------------------
  714|  1.41k|    {
  715|  1.41k|        auto bad_content_length = [&ec]
  716|  1.41k|        {
  717|  1.41k|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_content_length);
  718|  1.41k|        };
  719|       |
  720|  1.41k|        auto multiple_content_length = [&ec]
  721|  1.41k|        {
  722|  1.41k|            BOOST_BEAST_ASSIGN_EC(ec, error::multiple_content_length);
  723|  1.41k|        };
  724|       |
  725|       |        // conflicting field
  726|  1.41k|        if(f_ & flagChunked)
  ------------------
  |  Branch (726:12): [True: 1, False: 1.41k]
  ------------------
  727|      1|            return bad_content_length();
  728|       |
  729|       |        // Content-length may be a comma-separated list of integers
  730|  1.41k|        auto tokens_unprocessed = 1 +
  731|  1.41k|            std::count(value.begin(), value.end(), ',');
  732|  1.41k|        auto tokens = opt_token_list(value);
  733|  1.41k|        if (tokens.begin() == tokens.end() ||
  ------------------
  |  Branch (733:13): [True: 30, False: 1.38k]
  |  Branch (733:13): [True: 37, False: 1.37k]
  ------------------
  734|  1.41k|            !validate_list(tokens))
  ------------------
  |  Branch (734:13): [True: 7, False: 1.37k]
  ------------------
  735|     37|                return bad_content_length();
  736|       |
  737|  1.37k|        auto existing = this->content_length_unchecked();
  738|  1.37k|        for (auto tok : tokens)
  ------------------
  |  Branch (738:23): [True: 2.36k, False: 1.17k]
  ------------------
  739|  2.36k|        {
  740|  2.36k|            std::uint64_t v;
  741|  2.36k|            if (!parse_dec(tok, v))
  ------------------
  |  Branch (741:17): [True: 66, False: 2.30k]
  ------------------
  742|     66|                return bad_content_length();
  743|  2.30k|            --tokens_unprocessed;
  744|  2.30k|            if (existing.has_value())
  ------------------
  |  Branch (744:17): [True: 1.63k, False: 669]
  ------------------
  745|  1.63k|            {
  746|  1.63k|                if (v != *existing)
  ------------------
  |  Branch (746:21): [True: 129, False: 1.50k]
  ------------------
  747|    129|                    return multiple_content_length();
  748|  1.63k|            }
  749|    669|            else
  750|    669|            {
  751|    669|                existing = v;
  752|    669|            }
  753|  2.30k|        }
  754|       |
  755|  1.17k|        if (tokens_unprocessed)
  ------------------
  |  Branch (755:13): [True: 50, False: 1.12k]
  ------------------
  756|     50|            return bad_content_length();
  757|       |
  758|  1.12k|        BOOST_ASSERT(existing.has_value());
  ------------------
  |  |   66|  1.12k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  759|  1.12k|        ec = {};
  760|  1.12k|        len_ = *existing;
  761|  1.12k|        len0_ = *existing;
  762|  1.12k|        f_ |= flagContentLength;
  763|  1.12k|        return;
  764|  1.12k|    }
  765|       |
  766|       |    // Transfer-Encoding
  767|  45.4k|    if(f == field::transfer_encoding)
  ------------------
  |  Branch (767:8): [True: 5.42k, False: 39.9k]
  ------------------
  768|  5.42k|    {
  769|  5.42k|        if(f_ & flagChunked)
  ------------------
  |  Branch (769:12): [True: 2, False: 5.42k]
  ------------------
  770|      2|        {
  771|       |            // duplicate
  772|      2|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_transfer_encoding);
  ------------------
  |  |  111|      2|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      2|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      2|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      2|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      2|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  773|      2|            return;
  774|      2|        }
  775|       |
  776|  5.42k|        if(f_ & flagContentLength)
  ------------------
  |  Branch (776:12): [True: 1, False: 5.42k]
  ------------------
  777|      1|        {
  778|       |            // conflicting field
  779|      1|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_transfer_encoding);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  780|      1|            return;
  781|      1|        }
  782|       |
  783|  5.42k|        ec = {};
  784|  5.42k|        auto const v = token_list{value};
  785|  5.42k|        auto const p = std::find_if(v.begin(), v.end(),
  786|  5.42k|            [&](string_view const& s)
  787|  5.42k|            {
  788|  5.42k|                return beast::iequals("chunked"_sv, s);
  789|  5.42k|            });
  790|  5.42k|        if(p == v.end())
  ------------------
  |  Branch (790:12): [True: 3.00k, False: 2.42k]
  ------------------
  791|  3.00k|            return;
  792|  2.42k|        if(std::next(p) != v.end())
  ------------------
  |  Branch (792:12): [True: 1.28k, False: 1.14k]
  ------------------
  793|  1.28k|            return;
  794|  1.14k|        len_ = 0;
  795|  1.14k|        f_ |= flagChunked;
  796|  1.14k|        return;
  797|  2.42k|    }
  798|       |
  799|       |    // Upgrade
  800|  39.9k|    if(f == field::upgrade)
  ------------------
  |  Branch (800:8): [True: 216, False: 39.7k]
  ------------------
  801|    216|    {
  802|    216|        ec = {};
  803|    216|        f_ |= flagUpgrade;
  804|    216|        return;
  805|    216|    }
  806|       |
  807|  39.7k|    ec = {};
  808|  39.7k|}
_ZZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeEENKUlvE_clEv:
  716|    154|        {
  717|    154|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_content_length);
  ------------------
  |  |  111|    154|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    154|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    154|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    154|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    154|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  718|    154|        };
_ZZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeEENKUlvE0_clEv:
  721|    129|        {
  722|    129|            BOOST_BEAST_ASSIGN_EC(ec, error::multiple_content_length);
  ------------------
  |  |  111|    129|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    129|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    129|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    129|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    129|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  723|    129|        };
_ZZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeEENKUlRKS7_E_clESC_:
  787|  8.02k|            {
  788|  8.02k|                return beast::iequals("chunked"_sv, s);
  789|  8.02k|            });
_ZN5boost5beast4http12basic_parserILb1EE13finish_headerERNS_6system10error_codeENSt3__117integral_constantIbLb1EEE:
  419|  1.35k|{
  420|       |    // RFC 7230 section 3.3
  421|       |    // https://tools.ietf.org/html/rfc7230#section-3.3
  422|       |
  423|  1.35k|    if(f_ & flagSkipBody)
  ------------------
  |  Branch (423:8): [True: 0, False: 1.35k]
  ------------------
  424|      0|    {
  425|      0|        state_ = state::complete;
  426|      0|    }
  427|  1.35k|    else if(f_ & flagContentLength)
  ------------------
  |  Branch (427:13): [True: 262, False: 1.09k]
  ------------------
  428|    262|    {
  429|    262|        if(body_limit_.has_value() &&
  ------------------
  |  Branch (429:12): [True: 262, False: 0]
  ------------------
  430|    262|           len_ > body_limit_)
  ------------------
  |  Branch (430:12): [True: 80, False: 182]
  ------------------
  431|     80|        {
  432|     80|            BOOST_BEAST_ASSIGN_EC(ec, error::body_limit);
  ------------------
  |  |  111|     80|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     80|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     80|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     80|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     80|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|     80|            return;
  434|     80|        }
  435|    182|        if(len_ > 0)
  ------------------
  |  Branch (435:12): [True: 181, False: 1]
  ------------------
  436|    181|        {
  437|    181|            f_ |= flagHasBody;
  438|    181|            state_ = state::body0;
  439|    181|        }
  440|      1|        else
  441|      1|        {
  442|      1|            state_ = state::complete;
  443|      1|        }
  444|    182|    }
  445|  1.09k|    else if(f_ & flagChunked)
  ------------------
  |  Branch (445:13): [True: 1.08k, False: 7]
  ------------------
  446|  1.08k|    {
  447|  1.08k|        f_ |= flagHasBody;
  448|  1.08k|        state_ = state::chunk_header0;
  449|  1.08k|    }
  450|      7|    else
  451|      7|    {
  452|      7|        len_ = 0;
  453|      7|        len0_ = 0;
  454|      7|        state_ = state::complete;
  455|      7|    }
  456|       |
  457|  1.27k|    ec = {};
  458|  1.27k|    this->on_header_impl(ec);
  459|  1.27k|    if(ec)
  ------------------
  |  Branch (459:8): [True: 0, False: 1.27k]
  ------------------
  460|      0|        return;
  461|  1.27k|    if(state_ == state::complete)
  ------------------
  |  Branch (461:8): [True: 8, False: 1.27k]
  ------------------
  462|      8|        this->on_finish_impl(ec);
  463|  1.27k|}
_ZNK5boost5beast4http12basic_parserILb1EE14content_lengthEv:
   51|  1.23k|{
   52|  1.23k|    BOOST_ASSERT(is_header_done());
  ------------------
  |  |   66|  1.23k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   53|  1.23k|    return content_length_unchecked();
   54|  1.23k|}
_ZN5boost5beast4http12basic_parserILb1EE10parse_bodyERPKcmRNS_6system10error_codeE:
  527|  13.5k|{
  528|  13.5k|    ec = {};
  529|  13.5k|    n = this->on_body_impl(string_view{p,
  530|  13.5k|        beast::detail::clamp(len_, n)}, ec);
  531|  13.5k|    p += n;
  532|  13.5k|    len_ -= n;
  533|  13.5k|    if(ec)
  ------------------
  |  Branch (533:8): [True: 0, False: 13.5k]
  ------------------
  534|      0|        return;
  535|  13.5k|    if(len_ > 0)
  ------------------
  |  Branch (535:8): [True: 13.5k, False: 3]
  ------------------
  536|  13.5k|        return;
  537|      3|    state_ = state::complete;
  538|      3|    this->on_finish_impl(ec);
  539|      3|}
_ZN5boost5beast4http12basic_parserILb1EE18parse_chunk_headerERPKcmRNS_6system10error_codeE:
  568|  22.2k|{
  569|       |/*
  570|       |    chunked-body   = *chunk last-chunk trailer-part CRLF
  571|       |
  572|       |    chunk          = chunk-size [ chunk-ext ] CRLF chunk-data CRLF
  573|       |    last-chunk     = 1*("0") [ chunk-ext ] CRLF
  574|       |    trailer-part   = *( header-field CRLF )
  575|       |
  576|       |    chunk-size     = 1*HEXDIG
  577|       |    chunk-data     = 1*OCTET ; a sequence of chunk-size octets
  578|       |    chunk-ext      = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
  579|       |    chunk-ext-name = token
  580|       |    chunk-ext-val  = token / quoted-string
  581|       |*/
  582|       |
  583|  22.2k|    auto p = in;
  584|  22.2k|    auto const pend = p + n;
  585|       |
  586|  22.2k|    if(n < 2)
  ------------------
  |  Branch (586:8): [True: 236, False: 22.0k]
  ------------------
  587|    236|    {
  588|    236|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    236|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    236|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    236|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    236|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    236|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  589|    236|        return;
  590|    236|    }
  591|  22.0k|    if(f_ & flagExpectCRLF)
  ------------------
  |  Branch (591:8): [True: 19.3k, False: 2.61k]
  ------------------
  592|  19.3k|    {
  593|       |        // Treat the last CRLF in a chunk as
  594|       |        // part of the next chunk, so p can
  595|       |        // be parsed in one call instead of two.
  596|  19.3k|        if(! parse_crlf(p))
  ------------------
  |  Branch (596:12): [True: 27, False: 19.3k]
  ------------------
  597|     27|        {
  598|     27|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk);
  ------------------
  |  |  111|     27|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     27|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     27|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     27|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     27|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  599|     27|            return;
  600|     27|        }
  601|  19.3k|    }
  602|       |
  603|  21.9k|    auto const eol = find_eol(p, pend, ec);
  604|  21.9k|    if(ec)
  ------------------
  |  Branch (604:8): [True: 10, False: 21.9k]
  ------------------
  605|     10|        return;
  606|  21.9k|    if(! eol)
  ------------------
  |  Branch (606:8): [True: 3.02k, False: 18.9k]
  ------------------
  607|  3.02k|    {
  608|  3.02k|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|  3.02k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  3.02k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  3.02k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  3.02k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  3.02k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  609|  3.02k|        return;
  610|  3.02k|    }
  611|       |
  612|  18.9k|    std::uint64_t size;
  613|  18.9k|    if(! parse_hex(p, size))
  ------------------
  |  Branch (613:8): [True: 11, False: 18.9k]
  ------------------
  614|     11|    {
  615|     11|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk);
  ------------------
  |  |  111|     11|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     11|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     11|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     11|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     11|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  616|     11|        return;
  617|     11|    }
  618|  18.9k|    if (body_limit_.has_value())
  ------------------
  |  Branch (618:9): [True: 18.9k, False: 0]
  ------------------
  619|  18.9k|    {
  620|  18.9k|        if (size > *body_limit_)
  ------------------
  |  Branch (620:13): [True: 167, False: 18.7k]
  ------------------
  621|    167|        {
  622|    167|            BOOST_BEAST_ASSIGN_EC(ec, error::body_limit);
  ------------------
  |  |  111|    167|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    167|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    167|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    167|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    167|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|    167|            return;
  624|    167|        }
  625|  18.7k|        *body_limit_ -= size;
  626|  18.7k|    }
  627|       |
  628|  18.7k|    auto const start = p;
  629|  18.7k|    parse_chunk_extensions(p, pend, ec);
  630|  18.7k|    if(ec)
  ------------------
  |  Branch (630:8): [True: 1.46k, False: 17.3k]
  ------------------
  631|  1.46k|        return;
  632|  17.3k|    if(p != eol - 2)
  ------------------
  |  Branch (632:8): [True: 40, False: 17.2k]
  ------------------
  633|     40|    {
  634|     40|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk_extension);
  ------------------
  |  |  111|     40|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     40|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     40|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     40|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     40|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  635|     40|        return;
  636|     40|    }
  637|  17.2k|    auto const ext = make_string(start, p);
  638|  17.2k|    this->on_chunk_header_impl(size, ext, ec);
  639|  17.2k|    if(ec)
  ------------------
  |  Branch (639:8): [True: 0, False: 17.2k]
  ------------------
  640|      0|        return;
  641|       |
  642|  17.2k|    len_ = size;
  643|  17.2k|    in = eol;
  644|  17.2k|    f_ |= flagExpectCRLF;
  645|  17.2k|    if(size != 0)
  ------------------
  |  Branch (645:8): [True: 17.2k, False: 44]
  ------------------
  646|  17.2k|    {
  647|  17.2k|        state_ = state::chunk_body;
  648|  17.2k|        return;
  649|  17.2k|    }
  650|     44|    state_ = state::trailer_fields;
  651|     44|    header_limit_ += 2; // for the final chunk's CRLF
  652|     44|}
_ZN5boost5beast4http12basic_parserILb1EE16parse_chunk_bodyERPKcmRNS_6system10error_codeE:
  659|  28.8k|{
  660|  28.8k|    ec = {};
  661|  28.8k|    n = this->on_chunk_body_impl(
  662|  28.8k|        len_, string_view{p,
  663|  28.8k|            beast::detail::clamp(len_, n)}, ec);
  664|  28.8k|    p += n;
  665|  28.8k|    len_ -= n;
  666|  28.8k|    if(len_ == 0)
  ------------------
  |  Branch (666:8): [True: 16.9k, False: 11.8k]
  ------------------
  667|  16.9k|        state_ = state::chunk_header;
  668|  28.8k|}
_ZN5boost5beast4http12basic_parserILb1EE7put_eofERNS_6system10error_codeE:
  203|  3.73k|{
  204|  3.73k|    BOOST_ASSERT(got_some());
  ------------------
  |  |   66|  3.73k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  205|  3.73k|    if( state_ == state::start_line ||
  ------------------
  |  Branch (205:9): [True: 67, False: 3.66k]
  ------------------
  206|  3.73k|        state_ == state::fields)
  ------------------
  |  Branch (206:9): [True: 2.83k, False: 836]
  ------------------
  207|  2.89k|    {
  208|  2.89k|        BOOST_BEAST_ASSIGN_EC(ec, error::partial_message);
  ------------------
  |  |  111|  2.89k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  2.89k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  2.89k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  2.89k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  2.89k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  209|  2.89k|        return;
  210|  2.89k|    }
  211|    836|    if(f_ & (flagContentLength | flagChunked))
  ------------------
  |  Branch (211:8): [True: 836, False: 0]
  ------------------
  212|    836|    {
  213|    836|        if(state_ != state::complete)
  ------------------
  |  Branch (213:12): [True: 836, False: 0]
  ------------------
  214|    836|        {
  215|    836|            BOOST_BEAST_ASSIGN_EC(ec, error::partial_message);
  ------------------
  |  |  111|    836|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    836|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    836|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    836|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    836|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  216|    836|            return;
  217|    836|        }
  218|      0|        ec = {};
  219|      0|        return;
  220|    836|    }
  221|      0|    state_ = state::complete;
  222|      0|    ec = {};
  223|      0|    this->on_finish_impl(ec);
  224|      0|}

_ZN5boost5beast4http15make_error_codeENS1_5errorE:
  107|  63.2k|{
  108|  63.2k|    static detail::http_error_category const cat{};
  109|  63.2k|    return error_code{static_cast<
  110|  63.2k|        std::underlying_type<error>::type>(ev), cat};
  111|  63.2k|}
_ZN5boost5beast4http6detail19http_error_categoryC2Ev:
   30|      1|    http_error_category() : error_category(0x964627da815bf210u)  {}

_ZN5boost5beast4http15string_to_fieldENS_4core17basic_string_viewIcEE:
  572|  48.0k|{
  573|  48.0k|    return detail::get_field_table().string_to_field(s);
  574|  48.0k|}
_ZN5boost5beast4http6detail15get_field_tableEv:
  548|  48.0k|{
  549|  48.0k|    static field_table const tab;
  550|  48.0k|    return tab;
  551|  48.0k|}
_ZN5boost5beast4http6detail11field_tableC2Ev:
  119|      1|        : by_name_({{
  120|       |// string constants
  121|      1|            "<unknown-field>",
  122|      1|            "A-IM",
  123|      1|            "Accept",
  124|      1|            "Accept-Additions",
  125|      1|            "Accept-Charset",
  126|      1|            "Accept-Datetime",
  127|      1|            "Accept-Encoding",
  128|      1|            "Accept-Features",
  129|      1|            "Accept-Language",
  130|      1|            "Accept-Patch",
  131|      1|            "Accept-Post",
  132|      1|            "Accept-Ranges",
  133|      1|            "Access-Control",
  134|      1|            "Access-Control-Allow-Credentials",
  135|      1|            "Access-Control-Allow-Headers",
  136|      1|            "Access-Control-Allow-Methods",
  137|      1|            "Access-Control-Allow-Origin",
  138|      1|            "Access-Control-Expose-Headers",
  139|      1|            "Access-Control-Max-Age",
  140|      1|            "Access-Control-Request-Headers",
  141|      1|            "Access-Control-Request-Method",
  142|      1|            "Age",
  143|      1|            "Allow",
  144|      1|            "ALPN",
  145|      1|            "Also-Control",
  146|      1|            "Alt-Svc",
  147|      1|            "Alt-Used",
  148|      1|            "Alternate-Recipient",
  149|      1|            "Alternates",
  150|      1|            "Apparently-To",
  151|      1|            "Apply-To-Redirect-Ref",
  152|      1|            "Approved",
  153|      1|            "Archive",
  154|      1|            "Archived-At",
  155|      1|            "Article-Names",
  156|      1|            "Article-Updates",
  157|      1|            "Authentication-Control",
  158|      1|            "Authentication-Info",
  159|      1|            "Authentication-Results",
  160|      1|            "Authorization",
  161|      1|            "Auto-Submitted",
  162|      1|            "Autoforwarded",
  163|      1|            "Autosubmitted",
  164|      1|            "Base",
  165|      1|            "Bcc",
  166|      1|            "Body",
  167|      1|            "C-Ext",
  168|      1|            "C-Man",
  169|      1|            "C-Opt",
  170|      1|            "C-PEP",
  171|      1|            "C-PEP-Info",
  172|      1|            "Cache-Control",
  173|      1|            "CalDAV-Timezones",
  174|      1|            "Cancel-Key",
  175|      1|            "Cancel-Lock",
  176|      1|            "Cc",
  177|      1|            "Close",
  178|      1|            "Comments",
  179|      1|            "Compliance",
  180|      1|            "Connection",
  181|      1|            "Content-Alternative",
  182|      1|            "Content-Base",
  183|      1|            "Content-Description",
  184|      1|            "Content-Disposition",
  185|      1|            "Content-Duration",
  186|      1|            "Content-Encoding",
  187|      1|            "Content-features",
  188|      1|            "Content-ID",
  189|      1|            "Content-Identifier",
  190|      1|            "Content-Language",
  191|      1|            "Content-Length",
  192|      1|            "Content-Location",
  193|      1|            "Content-MD5",
  194|      1|            "Content-Range",
  195|      1|            "Content-Return",
  196|      1|            "Content-Script-Type",
  197|      1|            "Content-Style-Type",
  198|      1|            "Content-Transfer-Encoding",
  199|      1|            "Content-Type",
  200|      1|            "Content-Version",
  201|      1|            "Control",
  202|      1|            "Conversion",
  203|      1|            "Conversion-With-Loss",
  204|      1|            "Cookie",
  205|      1|            "Cookie2",
  206|      1|            "Cost",
  207|      1|            "DASL",
  208|      1|            "Date",
  209|      1|            "Date-Received",
  210|      1|            "DAV",
  211|      1|            "Default-Style",
  212|      1|            "Deferred-Delivery",
  213|      1|            "Delivery-Date",
  214|      1|            "Delta-Base",
  215|      1|            "Depth",
  216|      1|            "Derived-From",
  217|      1|            "Destination",
  218|      1|            "Differential-ID",
  219|      1|            "Digest",
  220|      1|            "Discarded-X400-IPMS-Extensions",
  221|      1|            "Discarded-X400-MTS-Extensions",
  222|      1|            "Disclose-Recipients",
  223|      1|            "Disposition-Notification-Options",
  224|      1|            "Disposition-Notification-To",
  225|      1|            "Distribution",
  226|      1|            "DKIM-Signature",
  227|      1|            "DL-Expansion-History",
  228|      1|            "Downgraded-Bcc",
  229|      1|            "Downgraded-Cc",
  230|      1|            "Downgraded-Disposition-Notification-To",
  231|      1|            "Downgraded-Final-Recipient",
  232|      1|            "Downgraded-From",
  233|      1|            "Downgraded-In-Reply-To",
  234|      1|            "Downgraded-Mail-From",
  235|      1|            "Downgraded-Message-Id",
  236|      1|            "Downgraded-Original-Recipient",
  237|      1|            "Downgraded-Rcpt-To",
  238|      1|            "Downgraded-References",
  239|      1|            "Downgraded-Reply-To",
  240|      1|            "Downgraded-Resent-Bcc",
  241|      1|            "Downgraded-Resent-Cc",
  242|      1|            "Downgraded-Resent-From",
  243|      1|            "Downgraded-Resent-Reply-To",
  244|      1|            "Downgraded-Resent-Sender",
  245|      1|            "Downgraded-Resent-To",
  246|      1|            "Downgraded-Return-Path",
  247|      1|            "Downgraded-Sender",
  248|      1|            "Downgraded-To",
  249|      1|            "EDIINT-Features",
  250|      1|            "Eesst-Version",
  251|      1|            "Encoding",
  252|      1|            "Encrypted",
  253|      1|            "Errors-To",
  254|      1|            "ETag",
  255|      1|            "Expect",
  256|      1|            "Expires",
  257|      1|            "Expiry-Date",
  258|      1|            "Ext",
  259|      1|            "Followup-To",
  260|      1|            "Forwarded",
  261|      1|            "From",
  262|      1|            "Generate-Delivery-Report",
  263|      1|            "GetProfile",
  264|      1|            "Hobareg",
  265|      1|            "Host",
  266|      1|            "HTTP2-Settings",
  267|      1|            "If",
  268|      1|            "If-Match",
  269|      1|            "If-Modified-Since",
  270|      1|            "If-None-Match",
  271|      1|            "If-Range",
  272|      1|            "If-Schedule-Tag-Match",
  273|      1|            "If-Unmodified-Since",
  274|      1|            "IM",
  275|      1|            "Importance",
  276|      1|            "In-Reply-To",
  277|      1|            "Incomplete-Copy",
  278|      1|            "Injection-Date",
  279|      1|            "Injection-Info",
  280|      1|            "Jabber-ID",
  281|      1|            "Keep-Alive",
  282|      1|            "Keywords",
  283|      1|            "Label",
  284|      1|            "Language",
  285|      1|            "Last-Modified",
  286|      1|            "Latest-Delivery-Time",
  287|      1|            "Lines",
  288|      1|            "Link",
  289|      1|            "List-Archive",
  290|      1|            "List-Help",
  291|      1|            "List-ID",
  292|      1|            "List-Owner",
  293|      1|            "List-Post",
  294|      1|            "List-Subscribe",
  295|      1|            "List-Unsubscribe",
  296|      1|            "List-Unsubscribe-Post",
  297|      1|            "Location",
  298|      1|            "Lock-Token",
  299|      1|            "Man",
  300|      1|            "Max-Forwards",
  301|      1|            "Memento-Datetime",
  302|      1|            "Message-Context",
  303|      1|            "Message-ID",
  304|      1|            "Message-Type",
  305|      1|            "Meter",
  306|      1|            "Method-Check",
  307|      1|            "Method-Check-Expires",
  308|      1|            "MIME-Version",
  309|      1|            "MMHS-Acp127-Message-Identifier",
  310|      1|            "MMHS-Authorizing-Users",
  311|      1|            "MMHS-Codress-Message-Indicator",
  312|      1|            "MMHS-Copy-Precedence",
  313|      1|            "MMHS-Exempted-Address",
  314|      1|            "MMHS-Extended-Authorisation-Info",
  315|      1|            "MMHS-Handling-Instructions",
  316|      1|            "MMHS-Message-Instructions",
  317|      1|            "MMHS-Message-Type",
  318|      1|            "MMHS-Originator-PLAD",
  319|      1|            "MMHS-Originator-Reference",
  320|      1|            "MMHS-Other-Recipients-Indicator-CC",
  321|      1|            "MMHS-Other-Recipients-Indicator-To",
  322|      1|            "MMHS-Primary-Precedence",
  323|      1|            "MMHS-Subject-Indicator-Codes",
  324|      1|            "MT-Priority",
  325|      1|            "Negotiate",
  326|      1|            "Newsgroups",
  327|      1|            "NNTP-Posting-Date",
  328|      1|            "NNTP-Posting-Host",
  329|      1|            "Non-Compliance",
  330|      1|            "Obsoletes",
  331|      1|            "Opt",
  332|      1|            "Optional",
  333|      1|            "Optional-WWW-Authenticate",
  334|      1|            "Ordering-Type",
  335|      1|            "Organization",
  336|      1|            "Origin",
  337|      1|            "Original-Encoded-Information-Types",
  338|      1|            "Original-From",
  339|      1|            "Original-Message-ID",
  340|      1|            "Original-Recipient",
  341|      1|            "Original-Sender",
  342|      1|            "Original-Subject",
  343|      1|            "Originator-Return-Address",
  344|      1|            "Overwrite",
  345|      1|            "P3P",
  346|      1|            "Path",
  347|      1|            "PEP",
  348|      1|            "Pep-Info",
  349|      1|            "PICS-Label",
  350|      1|            "Position",
  351|      1|            "Posting-Version",
  352|      1|            "Pragma",
  353|      1|            "Prefer",
  354|      1|            "Preference-Applied",
  355|      1|            "Prevent-NonDelivery-Report",
  356|      1|            "Priority",
  357|      1|            "Privicon",
  358|      1|            "ProfileObject",
  359|      1|            "Protocol",
  360|      1|            "Protocol-Info",
  361|      1|            "Protocol-Query",
  362|      1|            "Protocol-Request",
  363|      1|            "Proxy-Authenticate",
  364|      1|            "Proxy-Authentication-Info",
  365|      1|            "Proxy-Authorization",
  366|      1|            "Proxy-Connection",
  367|      1|            "Proxy-Features",
  368|      1|            "Proxy-Instruction",
  369|      1|            "Public",
  370|      1|            "Public-Key-Pins",
  371|      1|            "Public-Key-Pins-Report-Only",
  372|      1|            "Range",
  373|      1|            "Received",
  374|      1|            "Received-SPF",
  375|      1|            "Redirect-Ref",
  376|      1|            "References",
  377|      1|            "Referer",
  378|      1|            "Referer-Root",
  379|      1|            "Relay-Version",
  380|      1|            "Reply-By",
  381|      1|            "Reply-To",
  382|      1|            "Require-Recipient-Valid-Since",
  383|      1|            "Resent-Bcc",
  384|      1|            "Resent-Cc",
  385|      1|            "Resent-Date",
  386|      1|            "Resent-From",
  387|      1|            "Resent-Message-ID",
  388|      1|            "Resent-Reply-To",
  389|      1|            "Resent-Sender",
  390|      1|            "Resent-To",
  391|      1|            "Resolution-Hint",
  392|      1|            "Resolver-Location",
  393|      1|            "Retry-After",
  394|      1|            "Return-Path",
  395|      1|            "Safe",
  396|      1|            "Schedule-Reply",
  397|      1|            "Schedule-Tag",
  398|      1|            "Sec-Fetch-Dest",
  399|      1|            "Sec-Fetch-Mode",
  400|      1|            "Sec-Fetch-Site",
  401|      1|            "Sec-Fetch-User",
  402|      1|            "Sec-WebSocket-Accept",
  403|      1|            "Sec-WebSocket-Extensions",
  404|      1|            "Sec-WebSocket-Key",
  405|      1|            "Sec-WebSocket-Protocol",
  406|      1|            "Sec-WebSocket-Version",
  407|      1|            "Security-Scheme",
  408|      1|            "See-Also",
  409|      1|            "Sender",
  410|      1|            "Sensitivity",
  411|      1|            "Server",
  412|      1|            "Set-Cookie",
  413|      1|            "Set-Cookie2",
  414|      1|            "SetProfile",
  415|      1|            "SIO-Label",
  416|      1|            "SIO-Label-History",
  417|      1|            "SLUG",
  418|      1|            "SoapAction",
  419|      1|            "Solicitation",
  420|      1|            "Status-URI",
  421|      1|            "Strict-Transport-Security",
  422|      1|            "Subject",
  423|      1|            "SubOK",
  424|      1|            "Subst",
  425|      1|            "Summary",
  426|      1|            "Supersedes",
  427|      1|            "Surrogate-Capability",
  428|      1|            "Surrogate-Control",
  429|      1|            "TCN",
  430|      1|            "TE",
  431|      1|            "Timeout",
  432|      1|            "Title",
  433|      1|            "To",
  434|      1|            "Topic",
  435|      1|            "Trailer",
  436|      1|            "Transfer-Encoding",
  437|      1|            "TTL",
  438|      1|            "UA-Color",
  439|      1|            "UA-Media",
  440|      1|            "UA-Pixels",
  441|      1|            "UA-Resolution",
  442|      1|            "UA-Windowpixels",
  443|      1|            "Upgrade",
  444|      1|            "Urgency",
  445|      1|            "URI",
  446|      1|            "User-Agent",
  447|      1|            "Variant-Vary",
  448|      1|            "Vary",
  449|      1|            "VBR-Info",
  450|      1|            "Version",
  451|      1|            "Via",
  452|      1|            "Want-Digest",
  453|      1|            "Warning",
  454|      1|            "WWW-Authenticate",
  455|      1|            "X-Archived-At",
  456|      1|            "X-Device-Accept",
  457|      1|            "X-Device-Accept-Charset",
  458|      1|            "X-Device-Accept-Encoding",
  459|      1|            "X-Device-Accept-Language",
  460|      1|            "X-Device-User-Agent",
  461|      1|            "X-Frame-Options",
  462|      1|            "X-Mittente",
  463|      1|            "X-PGP-Sig",
  464|      1|            "X-Ricevuta",
  465|      1|            "X-Riferimento-Message-ID",
  466|      1|            "X-TipoRicevuta",
  467|      1|            "X-Trasporto",
  468|      1|            "X-VerificaSicurezza",
  469|      1|            "X400-Content-Identifier",
  470|      1|            "X400-Content-Return",
  471|      1|            "X400-Content-Type",
  472|      1|            "X400-MTS-Identifier",
  473|      1|            "X400-Originator",
  474|      1|            "X400-Received",
  475|      1|            "X400-Recipients",
  476|      1|            "X400-Trace",
  477|      1|            "Xref"
  478|      1|        }})
  479|      1|    {
  480|    256|        for(std::size_t i = 1, n = 256; i < n; ++i)
  ------------------
  |  Branch (480:41): [True: 255, False: 1]
  ------------------
  481|    255|        {
  482|    255|            auto sv = by_name_[ i ];
  483|    255|            auto h = digest(sv);
  484|    255|            auto j = h % N;
  485|    255|            BOOST_ASSERT(map_[j][0] == 0);
  ------------------
  |  |   66|    255|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  486|    255|            map_[j][0] = static_cast<unsigned char>(i);
  487|    255|        }
  488|       |
  489|    102|        for(std::size_t i = 256, n = by_name_.size(); i < n; ++i)
  ------------------
  |  Branch (489:55): [True: 101, False: 1]
  ------------------
  490|    101|        {
  491|    101|            auto sv = by_name_[i];
  492|    101|            auto h = digest(sv);
  493|    101|            auto j = h % N;
  494|    101|            BOOST_ASSERT(map_[j][1] == 0);
  ------------------
  |  |   66|    101|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  495|    101|            map_[j][1] = static_cast<unsigned char>(i - 255);
  496|    101|        }
  497|      1|    }
_ZN5boost5beast4http6detail11field_table6digestENS_4core17basic_string_viewIcEE:
   53|  48.4k|    {
   54|  48.4k|        std::uint32_t r = 0;
   55|  48.4k|        std::size_t n = s.size();
   56|  48.4k|        auto p = reinterpret_cast<
   57|  48.4k|            unsigned char const*>(s.data());
   58|       |        // consume N characters at a time
   59|       |        // VFALCO Can we do 8 on 64-bit systems?
   60|   116k|        while(n >= 4)
  ------------------
  |  Branch (60:15): [True: 67.6k, False: 48.4k]
  ------------------
   61|  67.6k|        {
   62|  67.6k|            auto const v = get_chars(p);
   63|  67.6k|            r = (r * 5 + (
   64|  67.6k|                v | 0x20202020 )); // convert to lower
   65|  67.6k|            p += 4;
   66|  67.6k|            n -= 4;
   67|  67.6k|        }
   68|       |        // handle remaining characters
   69|   103k|        while( n > 0 )
  ------------------
  |  Branch (69:16): [True: 55.2k, False: 48.4k]
  ------------------
   70|  55.2k|        {
   71|  55.2k|            r = r * 5 + ( *p | 0x20 );
   72|  55.2k|            ++p;
   73|  55.2k|            --n;
   74|  55.2k|        }
   75|  48.4k|        return r;
   76|  48.4k|    }
_ZN5boost5beast4http6detail11field_table9get_charsEPKh:
   34|   128k|    {
   35|       |        // VFALCO memcpy is endian-dependent
   36|       |        //std::memcpy(&v, p, 4);
   37|       |        // Compiler should be smart enough to
   38|       |        // optimize this down to one instruction.
   39|   128k|        return
   40|   128k|             p[0] |
   41|   128k|            (p[1] <<  8) |
   42|   128k|            (p[2] << 16) |
   43|   128k|            (p[3] << 24);
   44|   128k|    }
_ZNK5boost5beast4http6detail11field_table15string_to_fieldENS_4core17basic_string_viewIcEE:
  501|  48.0k|    {
  502|  48.0k|        auto h = digest(s);
  503|  48.0k|        auto j = h % N;
  504|  48.0k|        int i = map_[j][0];
  505|  48.0k|        string_view s2 = by_name_[i];
  506|  48.0k|        if(i != 0 && equals(s, s2))
  ------------------
  |  Branch (506:12): [True: 6.71k, False: 41.3k]
  |  Branch (506:22): [True: 3.37k, False: 3.34k]
  ------------------
  507|  3.37k|            return static_cast<field>(i);
  508|  44.7k|        i = map_[j][1];
  509|  44.7k|        if(i == 0)
  ------------------
  |  Branch (509:12): [True: 34.9k, False: 9.79k]
  ------------------
  510|  34.9k|            return field::unknown;
  511|  9.79k|        i += 255;
  512|  9.79k|        s2 = by_name_[i];
  513|       |
  514|  9.79k|        if(equals(s, s2))
  ------------------
  |  Branch (514:12): [True: 6.41k, False: 3.38k]
  ------------------
  515|  6.41k|            return static_cast<field>(i);
  516|  3.38k|        return field::unknown;
  517|  9.79k|    }
_ZN5boost5beast4http6detail11field_table6equalsENS_4core17basic_string_viewIcEES6_:
   83|  16.5k|    {
   84|  16.5k|        using Int = std::uint32_t; // VFALCO std::size_t?
   85|  16.5k|        auto n = lhs.size();
   86|  16.5k|        if(n != rhs.size())
  ------------------
  |  Branch (86:12): [True: 5.10k, False: 11.4k]
  ------------------
   87|  5.10k|            return false;
   88|  11.4k|        auto p1 = reinterpret_cast<
   89|  11.4k|            unsigned char const*>(lhs.data());
   90|  11.4k|        auto p2 = reinterpret_cast<
   91|  11.4k|            unsigned char const*>(rhs.data());
   92|  11.4k|        auto constexpr S = sizeof(Int);
   93|  11.4k|        auto constexpr Mask = static_cast<Int>(
   94|  11.4k|            0xDFDFDFDFDFDFDFDF & ~Int{0});
   95|  40.9k|        for(; n >= S; p1 += S, p2 += S, n -= S)
  ------------------
  |  Branch (95:15): [True: 30.5k, False: 10.4k]
  ------------------
   96|  30.5k|        {
   97|  30.5k|            Int const v1 = get_chars(p1);
   98|  30.5k|            Int const v2 = get_chars(p2);
   99|  30.5k|            if((v1 ^ v2) & Mask)
  ------------------
  |  Branch (99:16): [True: 996, False: 29.5k]
  ------------------
  100|    996|                return false;
  101|  30.5k|        }
  102|  23.8k|        for(; n; ++p1, ++p2, --n)
  ------------------
  |  Branch (102:15): [True: 14.0k, False: 9.78k]
  ------------------
  103|  14.0k|            if(( *p1 ^ *p2) & 0xDF)
  ------------------
  |  Branch (103:16): [True: 625, False: 13.4k]
  ------------------
  104|    625|                return false;
  105|  9.78k|        return true;
  106|  10.4k|    }

_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEED2Ev:
  351|  4.85k|{
  352|  4.85k|    delete_list();
  353|  4.85k|    realloc_string(method_, {});
  354|  4.85k|    realloc_string(
  355|  4.85k|        target_or_reason_, {});
  356|  4.85k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11delete_listEv:
 1147|  4.85k|{
 1148|  52.6k|    for(auto it = list_.begin(); it != list_.end();)
  ------------------
  |  Branch (1148:34): [True: 47.7k, False: 4.85k]
  ------------------
 1149|  47.7k|        delete_element(*it++);
 1150|  4.85k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14delete_elementERNS6_7elementE:
 1025|  47.7k|{
 1026|  47.7k|    auto a = rebind_type{this->get()};
 1027|  47.7k|    auto const n =
 1028|  47.7k|        (sizeof(element) + e.off_ + e.len_ + 2 + sizeof(align_type) - 1) /
 1029|  47.7k|            sizeof(align_type);
 1030|  47.7k|    e.~element();
 1031|  47.7k|    alloc_traits::deallocate(a,
 1032|  47.7k|        reinterpret_cast<align_type*>(&e), n);
 1033|  47.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14realloc_stringERNS_4core17basic_string_viewIcEES9_:
 1069|  14.3k|{
 1070|  14.3k|    if(dest.empty() && s.empty())
  ------------------
  |  Branch (1070:8): [True: 5.13k, False: 9.19k]
  |  Branch (1070:24): [True: 568, False: 4.56k]
  ------------------
 1071|    568|        return;
 1072|  13.7k|    auto a = typename beast::detail::allocator_traits<
 1073|  13.7k|        Allocator>::template rebind_alloc<
 1074|  13.7k|            char>(this->get());
 1075|  13.7k|    char* p = nullptr;
 1076|  13.7k|    if(! s.empty())
  ------------------
  |  Branch (1076:8): [True: 4.56k, False: 9.19k]
  ------------------
 1077|  4.56k|    {
 1078|  4.56k|        p = a.allocate(s.size());
 1079|  4.56k|        s.copy(p, s.size());
 1080|  4.56k|    }
 1081|  13.7k|    if(! dest.empty())
  ------------------
  |  Branch (1081:8): [True: 9.19k, False: 4.56k]
  ------------------
 1082|  9.19k|        a.deallocate(const_cast<char*>(
 1083|  9.19k|            dest.data()), dest.size());
 1084|  13.7k|    if(p)
  ------------------
  |  Branch (1084:8): [True: 4.56k, False: 9.19k]
  ------------------
 1085|  4.56k|        dest = {p, s.size()};
 1086|  9.19k|    else
 1087|  9.19k|        dest = {};
 1088|  13.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE15set_target_implENS_4core17basic_string_viewIcEE:
  855|  4.62k|{
  856|  4.62k|    realloc_target(
  857|  4.62k|        target_or_reason_, s);
  858|  4.62k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14realloc_targetERNS_4core17basic_string_viewIcEES9_:
 1095|  4.62k|{
 1096|       |    // The target string are stored with an
 1097|       |    // extra space at the beginning to help
 1098|       |    // the writer class.
 1099|  4.62k|    if(dest.empty() && s.empty())
  ------------------
  |  Branch (1099:8): [True: 4.62k, False: 0]
  |  Branch (1099:24): [True: 0, False: 4.62k]
  ------------------
 1100|      0|        return;
 1101|  4.62k|    auto a = typename beast::detail::allocator_traits<
 1102|  4.62k|        Allocator>::template rebind_alloc<
 1103|  4.62k|            char>(this->get());
 1104|  4.62k|    char* p = nullptr;
 1105|  4.62k|    if(! s.empty())
  ------------------
  |  Branch (1105:8): [True: 4.62k, False: 0]
  ------------------
 1106|  4.62k|    {
 1107|  4.62k|        p = a.allocate(1 + s.size());
 1108|  4.62k|        p[0] = ' ';
 1109|  4.62k|        s.copy(p + 1, s.size());
 1110|  4.62k|    }
 1111|  4.62k|    if(! dest.empty())
  ------------------
  |  Branch (1111:8): [True: 0, False: 4.62k]
  ------------------
 1112|      0|        a.deallocate(const_cast<char*>(
 1113|      0|            dest.data()), dest.size());
 1114|  4.62k|    if(p)
  ------------------
  |  Branch (1114:8): [True: 4.62k, False: 0]
  ------------------
 1115|  4.62k|        dest = {p, 1 + s.size()};
 1116|      0|    else
 1117|      0|        dest = {};
 1118|  4.62k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE15set_method_implENS_4core17basic_string_viewIcEE:
  846|  4.62k|{
  847|  4.62k|    realloc_string(method_, s);
  848|  4.62k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6insertENS1_5fieldENS_4core17basic_string_viewIcEESA_RNS_6system10error_codeE:
  563|  47.7k|{
  564|  47.7k|    ec = {};
  565|  47.7k|    auto* e = try_create_new_element(name, sname, value, ec);
  566|  47.7k|    if(ec.failed())
  ------------------
  |  Branch (566:8): [True: 0, False: 47.7k]
  ------------------
  567|      0|        return;
  568|  47.7k|    insert_element(*e);
  569|  47.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE22try_create_new_elementENS1_5fieldENS_4core17basic_string_viewIcEESA_RNS_6system10error_codeE:
  955|  47.7k|{
  956|  47.7k|    if(sname.size() > max_name_size)
  ------------------
  |  Branch (956:8): [True: 0, False: 47.7k]
  ------------------
  957|      0|    {
  958|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_field_name_too_large);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  959|      0|        return nullptr;
  960|      0|    }
  961|  47.7k|    if(value.size() > max_value_size)
  ------------------
  |  Branch (961:8): [True: 0, False: 47.7k]
  ------------------
  962|      0|    {
  963|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_field_value_too_large);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  964|      0|        return nullptr;
  965|      0|    }
  966|  47.7k|    value = detail::trim(value);
  967|  47.7k|    std::uint16_t const off =
  968|  47.7k|        static_cast<off_t>(sname.size() + 2);
  969|  47.7k|    std::uint16_t const len =
  970|  47.7k|        static_cast<off_t>(value.size());
  971|  47.7k|    auto a = rebind_type{this->get()};
  972|  47.7k|    auto const p = alloc_traits::allocate(a,
  973|  47.7k|        (sizeof(element) + off + len + 2 + sizeof(align_type) - 1) /
  974|  47.7k|            sizeof(align_type));
  975|  47.7k|    return ::new(p) element(name, sname, value);
  976|  47.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementC2ENS1_5fieldENS_4core17basic_string_viewIcEESB_:
  342|  47.7k|    : value_type(name, sname, value)
  343|  47.7k|{
  344|  47.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_typeC2ENS1_5fieldENS_4core17basic_string_viewIcEESB_:
  293|  47.7k|    : off_(static_cast<off_t>(sname.size() + 2))
  294|  47.7k|    , len_(static_cast<off_t>(value.size()))
  295|  47.7k|    , f_(name)
  296|  47.7k|{
  297|       |    //BOOST_ASSERT(name == field::unknown ||
  298|       |    //    iequals(sname, to_string(name)));
  299|  47.7k|    char* p = data();
  300|  47.7k|    p[off_-2] = ':';
  301|  47.7k|    p[off_-1] = ' ';
  302|  47.7k|    p[off_ + len_] = '\r';
  303|  47.7k|    p[off_ + len_ + 1] = '\n';
  304|  47.7k|    sname.copy(p, sname.size());
  305|  47.7k|    value.copy(p + off_, value.size());
  306|  47.7k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type4dataEv:
  272|  1.72M|{
  273|  1.72M|    return const_cast<char*>(
  274|  1.72M|        reinterpret_cast<char const*>(
  275|  1.72M|            static_cast<element const*>(this) + 1));
  276|  1.72M|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14insert_elementERNS6_7elementE:
  997|  47.7k|{
  998|  47.7k|    auto const before =
  999|  47.7k|        set_.upper_bound(e.name_string(), key_compare{});
 1000|  47.7k|    if(before == set_.begin())
  ------------------
  |  Branch (1000:8): [True: 3.97k, False: 43.7k]
  ------------------
 1001|  3.97k|    {
 1002|  3.97k|        BOOST_ASSERT(count(e.name_string()) == 0);
  ------------------
  |  |   66|  3.97k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1003|  3.97k|        set_.insert_before(before, e);
 1004|  3.97k|        list_.push_back(e);
 1005|  3.97k|        return;
 1006|  3.97k|    }
 1007|  43.7k|    auto const last = std::prev(before);
 1008|       |    // VFALCO is it worth comparing `field name` first?
 1009|  43.7k|    if(! beast::iequals(e.name_string(), last->name_string()))
  ------------------
  |  Branch (1009:8): [True: 4.28k, False: 39.5k]
  ------------------
 1010|  4.28k|    {
 1011|  4.28k|        BOOST_ASSERT(count(e.name_string()) == 0);
  ------------------
  |  |   66|  4.28k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1012|  4.28k|        set_.insert_before(before, e);
 1013|  4.28k|        list_.push_back(e);
 1014|  4.28k|        return;
 1015|  4.28k|    }
 1016|       |    // keep duplicate fields together in the list
 1017|  39.5k|    set_.insert_before(before, e);
 1018|  39.5k|    list_.insert(++list_.iterator_to(*last), e);
 1019|  39.5k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type11name_stringEv:
  322|  1.67M|{
  323|  1.67M|    return {data(),
  324|  1.67M|        static_cast<std::size_t>(off_ - 2)};
  325|  1.67M|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE5countENS_4core17basic_string_viewIcEE:
  676|  8.25k|{
  677|  8.25k|    return set_.count(name, key_compare{});
  678|  8.25k|}

_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6targetENS_4core17basic_string_viewIcEE:
   85|  4.62k|{
   86|  4.62k|    this->set_target_impl(s);
   87|  4.62k|}
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6methodENS1_4verbE:
   43|     61|{
   44|     61|    if(v == verb::unknown)
  ------------------
  |  Branch (44:8): [True: 0, False: 61]
  ------------------
   45|      0|        BOOST_THROW_EXCEPTION(
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
   46|     61|            std::invalid_argument{"unknown method"});
   47|     61|    method_ = v;
   48|     61|    this->set_method_impl({});
   49|     61|}
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE13method_stringENS_4core17basic_string_viewIcEE:
   65|  4.56k|{
   66|  4.56k|    method_ = string_to_verb(s);
   67|  4.56k|    if(method_ != verb::unknown)
  ------------------
  |  Branch (67:8): [True: 0, False: 4.56k]
  ------------------
   68|      0|        this->set_method_impl({});
   69|  4.56k|    else
   70|  4.56k|        this->set_method_impl(s);
   71|  4.56k|}

_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_EC2Ev:
   23|  4.85k|    : rd_(m_.base(), m_.body())
   24|  4.85k|{
   25|  4.85k|}

_ZN5boost5beast4http4readINS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_17basic_flat_bufferINSt3__19allocatorIcEEEELb1EEEmRT_RT0_RNS1_12basic_parserIXT1_EEERNS_6system10error_codeE:
  592|  4.85k|{
  593|  4.85k|    static_assert(
  594|  4.85k|        is_sync_read_stream<SyncReadStream>::value,
  595|  4.85k|        "SyncReadStream type requirements not met");
  596|  4.85k|    static_assert(
  597|  4.85k|        net::is_dynamic_buffer<DynamicBuffer>::value,
  598|  4.85k|        "DynamicBuffer type requirements not met");
  599|  4.85k|    parser.eager(true);
  600|  4.85k|    return detail::sync_read_op<
  601|  4.85k|        detail::parser_is_done>(
  602|  4.85k|            stream, buffer, parser, ec);
  603|  4.85k|}
_ZN5boost5beast4http6detail12sync_read_opINS2_14parser_is_doneENS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_17basic_flat_bufferINSt3__19allocatorIcEEEELb1EEEmRT0_RT1_RNS1_12basic_parserIXT2_EEERNS_6system10error_codeE:
  395|  4.85k|{
  396|  4.85k|    std::size_t total = 0;
  397|  4.85k|    ec.clear();
  398|       |
  399|  4.85k|    if (!Condition{}(p))
  ------------------
  |  Branch (399:9): [True: 4.85k, False: 0]
  ------------------
  400|  4.85k|    {
  401|  4.85k|        do
  402|  30.5k|        {
  403|  30.5k|            total +=
  404|  30.5k|                detail::read_some(s, b, p, ec);
  405|  30.5k|        } while (!ec &&
  ------------------
  |  Branch (405:18): [True: 25.7k, False: 4.83k]
  |  Branch (405:18): [True: 25.6k, False: 4.85k]
  ------------------
  406|  30.5k|                 !Condition{}(p));
  ------------------
  |  Branch (406:18): [True: 25.6k, False: 12]
  ------------------
  407|  4.85k|    }
  408|  4.85k|    return total;
  409|  4.85k|}
_ZNK5boost5beast4http6detail14parser_is_doneclILb1EEEbRKNS1_12basic_parserIXT_EEE:
   38|  30.5k|    {
   39|  30.5k|        return p.is_done();
   40|  30.5k|    }
_ZN5boost5beast4http6detail9read_someINS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_17basic_flat_bufferINSt3__19allocatorIcEEEELb1EEEmRT_RT0_RNS1_12basic_parserIXT1_EEERNS_6system10error_codeE:
  337|  30.5k|{
  338|  30.5k|    std::size_t total = 0;
  339|  30.5k|    ec.clear();
  340|  30.5k|    if(b.size() == 0)
  ------------------
  |  Branch (340:8): [True: 30.5k, False: 0]
  ------------------
  341|  30.5k|        goto do_read;
  342|      0|    for(;;)
  343|  36.6k|    {
  344|       |        // parse
  345|  36.6k|        {
  346|  36.6k|            auto const used = p.put(b.data(), ec);
  347|  36.6k|            total += used;
  348|  36.6k|            b.consume(used);
  349|  36.6k|        }
  350|  36.6k|        if(ec != http::error::need_more)
  ------------------
  |  Branch (350:12): [True: 26.8k, False: 9.85k]
  ------------------
  351|  26.8k|            break;
  352|       |
  353|  40.3k|    do_read:
  354|       |        // VFALCO This was read_size_or_throw
  355|  40.3k|        auto const size = read_size(b, 65536);
  356|  40.3k|        if(size == 0)
  ------------------
  |  Branch (356:12): [True: 0, False: 40.3k]
  ------------------
  357|      0|        {
  358|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::buffer_overflow);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|      0|            return total;
  360|      0|        }
  361|  40.3k|        auto const mb =
  362|  40.3k|            beast::detail::dynamic_buffer_prepare(
  363|  40.3k|                b, size, ec, error::buffer_overflow);
  364|  40.3k|        if(ec)
  ------------------
  |  Branch (364:12): [True: 0, False: 40.3k]
  ------------------
  365|      0|            return total;
  366|  40.3k|        std::size_t
  367|  40.3k|            bytes_transferred =
  368|  40.3k|                s.read_some(*mb, ec);
  369|  40.3k|        b.commit(bytes_transferred);
  370|  40.3k|        if(ec == net::error::eof)
  ------------------
  |  Branch (370:12): [True: 3.73k, False: 36.6k]
  ------------------
  371|  3.73k|        {
  372|  3.73k|            BOOST_ASSERT(bytes_transferred == 0);
  ------------------
  |  |   66|  3.73k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  373|  3.73k|            if(p.got_some())
  ------------------
  |  Branch (373:16): [True: 3.73k, False: 0]
  ------------------
  374|  3.73k|            {
  375|       |                // caller sees EOF on next read
  376|  3.73k|                ec.assign(0, ec.category());
  377|  3.73k|                p.put_eof(ec);
  378|  3.73k|                if(ec)
  ------------------
  |  Branch (378:20): [True: 3.73k, False: 0]
  ------------------
  379|  3.73k|                    return total;
  380|      0|                BOOST_ASSERT(p.is_done());
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  381|      0|                return total;
  382|      0|            }
  383|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::end_of_stream);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  384|      0|            break;
  385|  3.73k|        }
  386|  36.6k|        if(ec)
  ------------------
  |  Branch (386:12): [True: 0, False: 36.6k]
  ------------------
  387|      0|            break;
  388|  36.6k|    }
  389|       |
  390|  26.8k|    return total;
  391|      0|}

_ZN5boost5beast4http13validate_listINS1_6detail21opt_token_list_policyEEEbRKNS3_17basic_parsed_listIT_EE:
  364|  2.63k|{
  365|  2.63k|    auto const last = list.end();
  366|  2.63k|    auto it = list.begin();
  367|  2.63k|    if(it.error())
  ------------------
  |  Branch (367:8): [True: 7, False: 2.63k]
  ------------------
  368|      7|        return false;
  369|  6.96k|    while(it != last)
  ------------------
  |  Branch (369:11): [True: 6.76k, False: 207]
  ------------------
  370|  6.76k|    {
  371|  6.76k|        ++it;
  372|  6.76k|        if(it.error())
  ------------------
  |  Branch (372:12): [True: 35, False: 6.72k]
  ------------------
  373|     35|            return false;
  374|  6.72k|        if(it == last)
  ------------------
  |  Branch (374:12): [True: 2.39k, False: 4.33k]
  ------------------
  375|  2.39k|            break;
  376|  6.72k|    }
  377|  2.59k|    return true;
  378|  2.63k|}
_ZNK5boost5beast4http10token_list14const_iteratordeEv:
  283|  8.02k|    {
  284|  8.02k|        return v_;
  285|  8.02k|    }
_ZN5boost5beast4http10token_list14const_iteratorppEv:
  295|  8.02k|    {
  296|  8.02k|        increment();
  297|  8.02k|        return *this;
  298|  8.02k|    }
_ZNK5boost5beast4http10token_list5beginEv:
  329|  5.42k|{
  330|  5.42k|    return const_iterator{s_.begin(), s_.end()};
  331|  5.42k|}
_ZN5boost5beast4http10token_list14const_iteratorC2EPKcS5_:
  312|  18.6k|    {
  313|  18.6k|        it_ = begin;
  314|  18.6k|        first_ = begin;
  315|  18.6k|        last_ = end;
  316|  18.6k|        increment();
  317|  18.6k|    }
_ZNK5boost5beast4http10token_list3endEv:
  338|  13.2k|{
  339|  13.2k|    return const_iterator{s_.end(), s_.end()};
  340|  13.2k|}
_ZNK5boost5beast4http10token_list14const_iteratoreqERKS3_:
  268|  18.8k|    {
  269|  18.8k|        return
  270|  18.8k|            other.it_ == it_ &&
  ------------------
  |  Branch (270:13): [True: 11.0k, False: 7.80k]
  ------------------
  271|  18.8k|            other.first_ == first_ &&
  ------------------
  |  Branch (271:13): [True: 7.14k, False: 3.92k]
  ------------------
  272|  18.8k|            other.last_ == last_;
  ------------------
  |  Branch (272:13): [True: 7.14k, False: 0]
  ------------------
  273|  18.8k|    }
_ZNK5boost5beast4http10token_list14const_iteratorneERKS3_:
  277|  13.4k|    {
  278|  13.4k|        return !(*this == other);
  279|  13.4k|    }

_ZN5boost5beast4http10token_list14const_iterator9incrementEv:
  146|  26.7k|{
  147|       |    /*
  148|       |        token-list  = *( "," OWS ) token *( OWS "," [ OWS ext ] )
  149|       |    */
  150|  26.7k|    auto const err =
  151|  26.7k|        [&]
  152|  26.7k|        {
  153|  26.7k|            it_ = last_;
  154|  26.7k|            first_ = last_;
  155|  26.7k|        };
  156|  26.7k|    auto need_comma = it_ != first_;
  157|  26.7k|    v_ = {};
  158|  26.7k|    first_ = it_;
  159|  26.7k|    for(;;)
  160|  32.7k|    {
  161|  32.7k|        detail::skip_ows(it_, last_);
  162|  32.7k|        if(it_ == last_)
  ------------------
  |  Branch (162:12): [True: 15.8k, False: 16.8k]
  ------------------
  163|  15.8k|            return err();
  164|  16.8k|        auto const c = *it_;
  165|  16.8k|        if(detail::is_token_char(c))
  ------------------
  |  Branch (165:12): [True: 9.90k, False: 6.97k]
  ------------------
  166|  9.90k|        {
  167|  9.90k|            if(need_comma)
  ------------------
  |  Branch (167:16): [True: 599, False: 9.30k]
  ------------------
  168|    599|                return err();
  169|  9.30k|            auto const p0 = it_;
  170|  9.30k|            for(;;)
  171|  48.7k|            {
  172|  48.7k|                ++it_;
  173|  48.7k|                if(it_ == last_)
  ------------------
  |  Branch (173:20): [True: 2.82k, False: 45.9k]
  ------------------
  174|  2.82k|                    break;
  175|  45.9k|                if(! detail::is_token_char(*it_))
  ------------------
  |  Branch (175:20): [True: 6.48k, False: 39.4k]
  ------------------
  176|  6.48k|                    break;
  177|  45.9k|            }
  178|  9.30k|            v_ = string_view{&*p0,
  179|  9.30k|                static_cast<std::size_t>(it_ - p0)};
  180|  9.30k|            return;
  181|  9.90k|        }
  182|  6.97k|        if(c != ',')
  ------------------
  |  Branch (182:12): [True: 929, False: 6.04k]
  ------------------
  183|    929|            return err();
  184|  6.04k|        need_comma = false;
  185|  6.04k|        ++it_;
  186|  6.04k|    }
  187|  26.7k|}
_ZZN5boost5beast4http10token_list14const_iterator9incrementEvENKUlvE_clEv:
  152|  17.4k|        {
  153|  17.4k|            it_ = last_;
  154|  17.4k|            first_ = last_;
  155|  17.4k|        };

_ZN5boost5beast4http14string_to_verbENS_4core17basic_string_viewIcEE:
   76|  9.19k|{
   77|       |/*
   78|       |    ACL
   79|       |    BIND
   80|       |    CHECKOUT
   81|       |    CONNECT
   82|       |    COPY
   83|       |    DELETE
   84|       |    GET
   85|       |    HEAD
   86|       |    LINK
   87|       |    LOCK
   88|       |    M-SEARCH
   89|       |    MERGE
   90|       |    MKACTIVITY
   91|       |    MKCALENDAR
   92|       |    MKCOL
   93|       |    MOVE
   94|       |    NOTIFY
   95|       |    OPTIONS
   96|       |    PATCH
   97|       |    POST
   98|       |    PROPFIND
   99|       |    PROPPATCH
  100|       |    PURGE
  101|       |    PUT
  102|       |    REBIND
  103|       |    REPORT
  104|       |    SEARCH
  105|       |    SUBSCRIBE
  106|       |    TRACE
  107|       |    UNBIND
  108|       |    UNLINK
  109|       |    UNLOCK
  110|       |    UNSUBSCRIBE
  111|       |*/
  112|  9.19k|    using namespace beast::detail::string_literals;
  113|  9.19k|    if(v.size() < 3)
  ------------------
  |  Branch (113:8): [True: 6.64k, False: 2.54k]
  ------------------
  114|  6.64k|        return verb::unknown;
  115|  2.54k|    auto c = v[0];
  116|  2.54k|    v.remove_prefix(1);
  117|  2.54k|    switch(c)
  118|  2.54k|    {
  119|     93|    case 'A':
  ------------------
  |  Branch (119:5): [True: 93, False: 2.45k]
  ------------------
  120|     93|        if(v == "CL"_sv)
  ------------------
  |  Branch (120:12): [True: 1, False: 92]
  ------------------
  121|      1|            return verb::acl;
  122|     92|        break;
  123|       |
  124|    113|    case 'B':
  ------------------
  |  Branch (124:5): [True: 113, False: 2.43k]
  ------------------
  125|    113|        if(v == "IND"_sv)
  ------------------
  |  Branch (125:12): [True: 1, False: 112]
  ------------------
  126|      1|            return verb::bind;
  127|    112|        break;
  128|       |
  129|    195|    case 'C':
  ------------------
  |  Branch (129:5): [True: 195, False: 2.35k]
  ------------------
  130|    195|        c = v[0];
  131|    195|        v.remove_prefix(1);
  132|    195|        switch(c)
  133|    195|        {
  134|     41|        case 'H':
  ------------------
  |  Branch (134:9): [True: 41, False: 154]
  ------------------
  135|     41|            if(v == "ECKOUT"_sv)
  ------------------
  |  Branch (135:16): [True: 1, False: 40]
  ------------------
  136|      1|                return verb::checkout;
  137|     40|            break;
  138|       |
  139|    148|        case 'O':
  ------------------
  |  Branch (139:9): [True: 148, False: 47]
  ------------------
  140|    148|            if(v == "NNECT"_sv)
  ------------------
  |  Branch (140:16): [True: 1, False: 147]
  ------------------
  141|      1|                return verb::connect;
  142|    147|            if(v == "PY"_sv)
  ------------------
  |  Branch (142:16): [True: 1, False: 146]
  ------------------
  143|      1|                return verb::copy;
  144|    146|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    146|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  145|       |
  146|    152|        default:
  ------------------
  |  Branch (146:9): [True: 6, False: 189]
  ------------------
  147|    152|            break;
  148|    195|        }
  149|    192|        break;
  150|       |
  151|    192|    case 'D':
  ------------------
  |  Branch (151:5): [True: 33, False: 2.51k]
  ------------------
  152|     33|        if(v == "ELETE"_sv)
  ------------------
  |  Branch (152:12): [True: 1, False: 32]
  ------------------
  153|      1|            return verb::delete_;
  154|     32|        break;
  155|       |
  156|    109|    case 'G':
  ------------------
  |  Branch (156:5): [True: 109, False: 2.44k]
  ------------------
  157|    109|        if(v == "ET"_sv)
  ------------------
  |  Branch (157:12): [True: 1, False: 108]
  ------------------
  158|      1|            return verb::get;
  159|    108|        break;
  160|       |
  161|    157|    case 'H':
  ------------------
  |  Branch (161:5): [True: 157, False: 2.39k]
  ------------------
  162|    157|        if(v == "EAD"_sv)
  ------------------
  |  Branch (162:12): [True: 1, False: 156]
  ------------------
  163|      1|            return verb::head;
  164|    156|        break;
  165|       |
  166|    176|    case 'L':
  ------------------
  |  Branch (166:5): [True: 176, False: 2.37k]
  ------------------
  167|    176|        if(v == "INK"_sv)
  ------------------
  |  Branch (167:12): [True: 1, False: 175]
  ------------------
  168|      1|            return verb::link;
  169|    175|        if(v == "OCK"_sv)
  ------------------
  |  Branch (169:12): [True: 1, False: 174]
  ------------------
  170|      1|            return verb::lock;
  171|    174|        break;
  172|       |
  173|    598|    case 'M':
  ------------------
  |  Branch (173:5): [True: 598, False: 1.95k]
  ------------------
  174|    598|        c = v[0];
  175|    598|        v.remove_prefix(1);
  176|    598|        switch(c)
  177|    598|        {
  178|     33|        case '-':
  ------------------
  |  Branch (178:9): [True: 33, False: 565]
  ------------------
  179|     33|            if(v == "SEARCH"_sv)
  ------------------
  |  Branch (179:16): [True: 1, False: 32]
  ------------------
  180|      1|                return verb::msearch;
  181|     32|            break;
  182|       |
  183|    219|        case 'E':
  ------------------
  |  Branch (183:9): [True: 219, False: 379]
  ------------------
  184|    219|            if(v == "RGE"_sv)
  ------------------
  |  Branch (184:16): [True: 1, False: 218]
  ------------------
  185|      1|                return verb::merge;
  186|    218|            break;
  187|       |
  188|    231|        case 'K':
  ------------------
  |  Branch (188:9): [True: 231, False: 367]
  ------------------
  189|    231|            if(v == "ACTIVITY"_sv)
  ------------------
  |  Branch (189:16): [True: 1, False: 230]
  ------------------
  190|      1|                return verb::mkactivity;
  191|    230|            if(v[0] == 'C')
  ------------------
  |  Branch (191:16): [True: 176, False: 54]
  ------------------
  192|    176|            {
  193|    176|                v.remove_prefix(1);
  194|    176|                if(v == "ALENDAR"_sv)
  ------------------
  |  Branch (194:20): [True: 1, False: 175]
  ------------------
  195|      1|                    return verb::mkcalendar;
  196|    175|                if(v == "OL"_sv)
  ------------------
  |  Branch (196:20): [True: 1, False: 174]
  ------------------
  197|      1|                    return verb::mkcol;
  198|    174|                break;
  199|    175|            }
  200|     54|            break;
  201|       |
  202|    105|        case 'O':
  ------------------
  |  Branch (202:9): [True: 105, False: 493]
  ------------------
  203|    105|            if(v == "VE"_sv)
  ------------------
  |  Branch (203:16): [True: 1, False: 104]
  ------------------
  204|      1|                return verb::move;
  205|    104|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    104|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  206|       |
  207|    114|        default:
  ------------------
  |  Branch (207:9): [True: 10, False: 588]
  ------------------
  208|    114|            break;
  209|    598|        }
  210|    592|        break;
  211|       |
  212|    592|    case 'N':
  ------------------
  |  Branch (212:5): [True: 17, False: 2.53k]
  ------------------
  213|     17|        if(v == "OTIFY"_sv)
  ------------------
  |  Branch (213:12): [True: 1, False: 16]
  ------------------
  214|      1|            return verb::notify;
  215|     16|        break;
  216|       |
  217|     65|    case 'O':
  ------------------
  |  Branch (217:5): [True: 65, False: 2.48k]
  ------------------
  218|     65|        if(v == "PTIONS"_sv)
  ------------------
  |  Branch (218:12): [True: 1, False: 64]
  ------------------
  219|      1|            return verb::options;
  220|     64|        break;
  221|       |
  222|    516|    case 'P':
  ------------------
  |  Branch (222:5): [True: 516, False: 2.03k]
  ------------------
  223|    516|        c = v[0];
  224|    516|        v.remove_prefix(1);
  225|    516|        switch(c)
  226|    516|        {
  227|     89|        case 'A':
  ------------------
  |  Branch (227:9): [True: 89, False: 427]
  ------------------
  228|     89|            if(v == "TCH"_sv)
  ------------------
  |  Branch (228:16): [True: 1, False: 88]
  ------------------
  229|      1|                return verb::patch;
  230|     88|            break;
  231|       |
  232|    161|        case 'O':
  ------------------
  |  Branch (232:9): [True: 161, False: 355]
  ------------------
  233|    161|            if(v == "ST"_sv)
  ------------------
  |  Branch (233:16): [True: 29, False: 132]
  ------------------
  234|     29|                return verb::post;
  235|    132|            break;
  236|       |
  237|    132|        case 'R':
  ------------------
  |  Branch (237:9): [True: 82, False: 434]
  ------------------
  238|     82|            if(v == "OPFIND"_sv)
  ------------------
  |  Branch (238:16): [True: 1, False: 81]
  ------------------
  239|      1|                return verb::propfind;
  240|     81|            if(v == "OPPATCH"_sv)
  ------------------
  |  Branch (240:16): [True: 1, False: 80]
  ------------------
  241|      1|                return verb::proppatch;
  242|     80|            break;
  243|       |
  244|    148|        case 'U':
  ------------------
  |  Branch (244:9): [True: 148, False: 368]
  ------------------
  245|    148|            if(v == "RGE"_sv)
  ------------------
  |  Branch (245:16): [True: 1, False: 147]
  ------------------
  246|      1|                return verb::purge;
  247|    147|            if(v == "T"_sv)
  ------------------
  |  Branch (247:16): [True: 1, False: 146]
  ------------------
  248|      1|                return verb::put;
  249|    146|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    146|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  250|       |
  251|    182|        default:
  ------------------
  |  Branch (251:9): [True: 36, False: 480]
  ------------------
  252|    182|            break;
  253|    516|        }
  254|    482|        break;
  255|       |
  256|    482|    case 'R':
  ------------------
  |  Branch (256:5): [True: 76, False: 2.47k]
  ------------------
  257|     76|        if(v[0] != 'E')
  ------------------
  |  Branch (257:12): [True: 34, False: 42]
  ------------------
  258|     34|            break;
  259|     42|        v.remove_prefix(1);
  260|     42|        if(v == "BIND"_sv)
  ------------------
  |  Branch (260:12): [True: 1, False: 41]
  ------------------
  261|      1|            return verb::rebind;
  262|     41|        if(v == "PORT"_sv)
  ------------------
  |  Branch (262:12): [True: 1, False: 40]
  ------------------
  263|      1|            return verb::report;
  264|     40|        break;
  265|       |
  266|     92|    case 'S':
  ------------------
  |  Branch (266:5): [True: 92, False: 2.45k]
  ------------------
  267|     92|        if(v == "EARCH"_sv)
  ------------------
  |  Branch (267:12): [True: 1, False: 91]
  ------------------
  268|      1|            return verb::search;
  269|     91|        if(v == "UBSCRIBE"_sv)
  ------------------
  |  Branch (269:12): [True: 1, False: 90]
  ------------------
  270|      1|            return verb::subscribe;
  271|     90|        break;
  272|       |
  273|     90|    case 'T':
  ------------------
  |  Branch (273:5): [True: 63, False: 2.48k]
  ------------------
  274|     63|        if(v == "RACE"_sv)
  ------------------
  |  Branch (274:12): [True: 1, False: 62]
  ------------------
  275|      1|            return verb::trace;
  276|     62|        break;
  277|       |
  278|    140|    case 'U':
  ------------------
  |  Branch (278:5): [True: 140, False: 2.40k]
  ------------------
  279|    140|        if(v[0] != 'N')
  ------------------
  |  Branch (279:12): [True: 30, False: 110]
  ------------------
  280|     30|            break;
  281|    110|        v.remove_prefix(1);
  282|    110|        if(v == "BIND"_sv)
  ------------------
  |  Branch (282:12): [True: 1, False: 109]
  ------------------
  283|      1|            return verb::unbind;
  284|    109|        if(v == "LINK"_sv)
  ------------------
  |  Branch (284:12): [True: 1, False: 108]
  ------------------
  285|      1|            return verb::unlink;
  286|    108|        if(v == "LOCK"_sv)
  ------------------
  |  Branch (286:12): [True: 1, False: 107]
  ------------------
  287|      1|            return verb::unlock;
  288|    107|        if(v == "SUBSCRIBE"_sv)
  ------------------
  |  Branch (288:12): [True: 1, False: 106]
  ------------------
  289|      1|            return verb::unsubscribe;
  290|    106|        break;
  291|       |
  292|    106|    default:
  ------------------
  |  Branch (292:5): [True: 106, False: 2.44k]
  ------------------
  293|    106|        break;
  294|  2.54k|    }
  295|       |
  296|  2.48k|    return verb::unknown;
  297|  2.54k|}

_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7versionEj:
  114|  4.62k|    {
  115|  4.62k|        BOOST_ASSERT(value > 0 && value < 100);
  ------------------
  |  |   66|  4.62k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  116|  4.62k|        version_ = value;
  117|  4.62k|    }
_ZN5boost5beast4http7messageILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEENS1_12basic_fieldsIS7_EEEC2Ev:
  513|  4.85k|    message() = default;
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2Ev:
   70|  4.85k|    header() = default;
_ZN5boost5beast4http7messageILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEENS1_12basic_fieldsIS7_EEE4baseEv:
  718|  4.85k|    {
  719|  4.85k|        return *this;
  720|  4.85k|    }
_ZNR5boost5beast4http7messageILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEENS1_12basic_fieldsIS7_EEE4bodyEv:
  877|  4.85k|    {
  878|  4.85k|        return this->boost::empty_value<
  879|  4.85k|            typename Body::value_type>::get();
  880|  4.85k|    }

_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_ED2Ev:
   92|  4.85k|    ~parser() = default;
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E15on_request_implENS1_4verbENS_4core17basic_string_viewIcEESE_iRNS_6system10error_codeE:
  385|  4.62k|    {
  386|  4.62k|        this->on_request_impl(
  387|  4.62k|            method, method_str, target, version, ec,
  388|  4.62k|            std::integral_constant<bool, isRequest>{});
  389|  4.62k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E15on_request_implENS1_4verbENS_4core17basic_string_viewIcEESE_iRNS_6system10error_codeENS5_17integral_constantIbLb1EEE:
  348|  4.62k|    {
  349|       |        // If this assert goes off, it means you tried to re-use a
  350|       |        // parser after it was done reading a message. This is not
  351|       |        // allowed, you need to create a new parser for each message.
  352|       |        // The easiest way to do that is to store the parser in
  353|       |        // an optional object.
  354|       |
  355|  4.62k|        BOOST_ASSERT(! used_);
  ------------------
  |  |   66|  4.62k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  356|  4.62k|        if(used_)
  ------------------
  |  Branch (356:12): [True: 0, False: 4.62k]
  ------------------
  357|      0|        {
  358|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::stale_parser);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|      0|            return;
  360|      0|        }
  361|  4.62k|        used_ = true;
  362|       |
  363|  4.62k|        m_.target(target);
  364|  4.62k|        if(method != verb::unknown)
  ------------------
  |  Branch (364:12): [True: 61, False: 4.56k]
  ------------------
  365|     61|            m_.method(method);
  366|  4.56k|        else
  367|  4.56k|            m_.method_string(method_str);
  368|  4.62k|        m_.version(version);
  369|  4.62k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E13on_field_implENS1_5fieldENS_4core17basic_string_viewIcEESE_RNS_6system10error_codeE:
  443|  47.7k|    {
  444|  47.7k|        m_.insert(name, name_string, value, ec);
  445|  47.7k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E14on_header_implERNS_6system10error_codeE:
  449|  1.27k|    {
  450|  1.27k|        ec = {};
  451|  1.27k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E17on_body_init_implERKNS_8optionalImEERNS_6system10error_codeE:
  457|  1.23k|    {
  458|  1.23k|        rd_.init(content_length, ec);
  459|  1.23k|        rd_inited_ = true;
  460|  1.23k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E12on_body_implENS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  466|  13.5k|    {
  467|  13.5k|        return rd_.put(net::buffer(
  468|  13.5k|            body.data(), body.size()), ec);
  469|  13.5k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E20on_chunk_header_implEmNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  476|  17.2k|    {
  477|  17.2k|        if(cb_h_)
  ------------------
  |  Branch (477:12): [True: 0, False: 17.2k]
  ------------------
  478|      0|            return cb_h_(size, extensions, ec);
  479|  17.2k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E18on_chunk_body_implEmNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  486|  28.8k|    {
  487|  28.8k|        if(cb_b_)
  ------------------
  |  Branch (487:12): [True: 0, False: 28.8k]
  ------------------
  488|      0|            return cb_b_(remain, body, ec);
  489|  28.8k|        return rd_.put(net::buffer(
  490|  28.8k|            body.data(), body.size()), ec);
  491|  28.8k|    }
_ZN5boost5beast4http6parserILb1ENS1_18basic_dynamic_bodyINS0_18basic_multi_bufferINSt3__19allocatorIcEEEEEES7_E14on_finish_implERNS_6system10error_codeE:
  496|     12|    {
  497|     12|        rd_.finish(ec);
  498|     12|    }

_ZN5boost5beast4http10token_listC2ENS_4core17basic_string_viewIcEE:
  258|  5.42k|        : s_(s)
  259|  5.42k|    {
  260|  5.42k|    }

_ZN5boost4core17basic_string_viewIcEC2EPKcm:
  376|  1.91M|    BOOST_CONSTEXPR basic_string_view( Ch const* str, size_type len ) BOOST_NOEXCEPT: p_( str ), n_( len )
  377|  1.91M|    {
  378|  1.91M|    }
_ZNK5boost4core17basic_string_viewIcE5emptyEv:
  504|  65.4k|    {
  505|  65.4k|        return n_ == 0;
  506|  65.4k|    }
_ZNK5boost4core17basic_string_viewIcE4sizeEv:
  489|  3.30M|    {
  490|  3.30M|        return n_;
  491|  3.30M|    }
_ZNK5boost4core17basic_string_viewIcE4copyEPcmm:
  569|   104k|    {
  570|   104k|        if( pos > size() )
  ------------------
  |  Branch (570:13): [True: 0, False: 104k]
  ------------------
  571|      0|        {
  572|      0|            boost::throw_exception( std::out_of_range( "basic_string_view::copy" ), BOOST_CURRENT_LOCATION );
  ------------------
  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  ------------------
  573|      0|        }
  574|       |
  575|   104k|        std::size_t rlen = (std::min)( n, size() - pos );
  576|       |
  577|   104k|        traits_type::copy( s, data() + pos, rlen );
  578|       |
  579|   104k|        return rlen;
  580|   104k|    }
_ZNK5boost4core17basic_string_viewIcE4dataEv:
  539|   627k|    {
  540|   627k|        return p_;
  541|   627k|    }
_ZN5boost4core17basic_string_viewIcEC2Ev:
  369|   166k|    {
  370|   166k|    }
_ZNK5boost4core17basic_string_viewIcEixEm:
  511|  4.30k|    {
  512|  4.30k|        BOOST_ASSERT( pos < size() );
  ------------------
  |  |   66|  4.30k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  513|  4.30k|        return p_[ pos ];
  514|  4.30k|    }
_ZN5boost4core17basic_string_viewIcE13remove_prefixEm:
  546|  4.18k|    {
  547|  4.18k|        BOOST_ASSERT( n <= size() );
  ------------------
  |  |   66|  4.18k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  548|       |
  549|  4.18k|        p_ += n;
  550|  4.18k|        n_ -= n;
  551|  4.18k|    }
_ZN5boost4coreeqENS0_17basic_string_viewIcEES2_:
  961|  3.68k|    {
  962|  3.68k|        return sv1.size() == sv2.size() && traits_type::compare( sv1.data(), sv2.data(), sv1.size() ) == 0;
  ------------------
  |  Branch (962:16): [True: 1.42k, False: 2.26k]
  |  Branch (962:44): [True: 61, False: 1.36k]
  ------------------
  963|  3.68k|    }
_ZNK5boost4core17basic_string_viewIcE5beginEv:
  447|  1.04M|    {
  448|  1.04M|        return p_;
  449|  1.04M|    }
_ZNK5boost4core17basic_string_viewIcE3endEv:
  452|  1.07M|    {
  453|  1.07M|        return p_ + n_;
  454|  1.07M|    }

_ZN5boost6empty_11empty_valueINSt3__19allocatorIcEELj0ELb1EE3getEv:
  185|   176k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
  186|   176k|        return *this;
  187|   176k|    }
_ZN5boost6empty_11empty_valueINSt3__19allocatorIcEELj0ELb1EEC2Ev:
  153|  19.4k|    empty_value() = default;
_ZN5boost6empty_11empty_valueINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEEELj0ELb0EEC2Ev:
   57|  4.85k|    empty_value() = default;
_ZN5boost6empty_11empty_valueINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEEELj0ELb0EE3getEv:
   89|  4.85k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
   90|  4.85k|        return value_;
   91|  4.85k|    }
_ZN5boost6empty_11empty_valueINS_5beast4http6detail21opt_token_list_policyELj0ELb1EE3getEv:
  185|  19.8k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
  186|  19.8k|        return *this;
  187|  19.8k|    }

_ZN5boost13ignore_unusedIJRPKcS3_RmEEEvDpOT_:
   20|  50.0k|{}

_ZN5boost4core7launderINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEPT_SB_:
   46|  42.4k|{
   47|  42.4k|    return __builtin_launder( p );
   48|  42.4k|}
_ZN5boost4core7launderIKNS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEPT_SC_:
   46|  42.4k|{
   47|  42.4k|    return __builtin_launder( p );
   48|  42.4k|}
_ZN5boost4core7launderINS_4asio14mutable_bufferEEEPT_S5_:
   46|  40.3k|{
   47|  40.3k|    return __builtin_launder( p );
   48|  40.3k|}
_ZN5boost4core7launderIKNS_4asio14mutable_bufferEEEPT_S6_:
   46|  40.3k|{
   47|  40.3k|    return __builtin_launder( p );
   48|  40.3k|}

_ZN5boost9intrusive7bstbaseINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvED2Ev:
  588|  4.85k|   {
  589|  4.85k|      if(is_safe_autounlink<value_traits::link_mode>::value){
  ------------------
  |  Branch (589:10): [Folded - Ignored]
  ------------------
  590|      0|         node_algorithms::clear_and_dispose
  591|      0|            ( this->header_ptr()
  592|      0|            , detail::node_disposer<detail::null_disposer, value_traits, AlgoType>
  593|      0|               (detail::null_disposer(), &this->get_value_traits()));
  594|      0|         node_algorithms::init(this->header_ptr());
  595|      0|      }
  596|  4.85k|   }
_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE11upper_boundINS_4core17basic_string_viewIcEESH_EENS0_13tree_iteratorISG_Lb0EEERKT_T0_:
  349|  47.7k|   {
  350|  47.7k|      return iterator(node_algorithms::upper_bound
  351|  47.7k|         (this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
  352|  47.7k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE10header_ptrEv:
  130|   148k|   { return holder.root.get_node(); }
_ZNK5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE13key_node_compISH_EENSJ_17key_node_comp_retIT_E4typeESM_:
  370|  56.0k|   {
  371|  56.0k|      return detail::key_nodeptr_comp<KeyTypeKeyCompare, value_traits, key_of_value>(comp, &this->get_value_traits());
  372|  56.0k|   }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE16get_value_traitsEv:
  136|   215k|   {  return this->holder;  }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE21priv_value_traits_ptrEv:
  145|   159k|   {  return pointer_traits<const_value_traits_ptr>::pointer_to(this->get_value_traits());  }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE5beginEv:
  148|  47.7k|   {  return iterator(node_algorithms::begin_node(this->header_ptr()), this->priv_value_traits_ptr());   }
_ZNK5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvE5countINS_4core17basic_string_viewIcEESH_EEmRKT_T0_:
 1626|  8.25k|   {
 1627|  8.25k|      std::pair<const_iterator, const_iterator> ret = this->equal_range(key, comp);
 1628|  8.25k|      size_type n = 0;
 1629|  8.25k|      for(; ret.first != ret.second; ++ret.first){ ++n; }
  ------------------
  |  Branch (1629:13): [True: 0, False: 8.25k]
  ------------------
 1630|  8.25k|      return n;
 1631|  8.25k|   }
_ZNK5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE11equal_rangeINS_4core17basic_string_viewIcEESH_EENS6_4pairINS0_13tree_iteratorISG_Lb1EEESQ_EERKT_T0_:
  415|  8.25k|   {
  416|  8.25k|      std::pair<node_ptr, node_ptr> ret =
  417|  8.25k|         node_algorithms::equal_range(this->header_ptr(), key, this->key_node_comp(comp));
  418|  8.25k|      return std::pair<const_iterator, const_iterator>( const_iterator(ret.first, this->priv_value_traits_ptr())
  419|  8.25k|                                                      , const_iterator(ret.second, this->priv_value_traits_ptr()));
  420|  8.25k|   }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE10header_ptrEv:
  133|  8.25k|   { return holder.root.get_node(); }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvE13insert_beforeENS0_13tree_iteratorISG_Lb1EEERSA_:
 1356|  47.7k|   {
 1357|  47.7k|      node_ptr to_insert(this->get_value_traits().to_node_ptr(value));
 1358|  47.7k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
  ------------------
  |  |   33|  47.7k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  47.7k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1359|  47.7k|      this->sz_traits().increment();
 1360|  47.7k|      return iterator(node_algorithms::insert_before
 1361|  47.7k|         (this->header_ptr(), pos.pointed_node(), to_insert), this->priv_value_traits_ptr());
 1362|  47.7k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE16get_value_traitsEv:
  139|  47.7k|   {  return this->holder;  }
_ZNK5boost9intrusive12bstbase_hackINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvE9sz_traitsEv:
  560|  47.7k|   {  return size_traits();  }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvEC2Ev:
  688|  4.85k|      :  data_type(key_compare(), value_traits())
  689|  4.85k|   {}
_ZN5boost9intrusive7bstbaseINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  582|  4.85k|      : base_type(comp, vtraits)
  583|  4.85k|   {}
_ZN5boost9intrusive12bstbase_hackINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  554|  4.85k|      : base_type(comp, vtraits)
  555|  4.85k|   {}
_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  300|  4.85k|      : detail::ebo_functor_holder<value_compare>(value_compare(comp)), treeheader_t(vtraits)
  301|  4.85k|   {}
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvEC2ERKSG_:
  124|  4.85k|      : holder(vtraits)
  125|  4.85k|   {
  126|  4.85k|      node_algorithms::init_header(this->header_ptr());
  127|  4.85k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE8holder_tC2ERKSG_:
  108|  4.85k|         : ValueTraits(vtraits)
  109|  4.85k|      {}

_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11upper_boundINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EEPKSU_RKT_T0_:
  942|  47.7k|   {
  943|  47.7k|      return upper_bound_loop(NodeTraits::get_parent(header), detail::uncast(header), key, comp);
  944|  47.7k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE16upper_bound_loopINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EESV_SV_RKT_T0_:
 2048|  47.7k|   {
 2049|   533k|      while(x){
  ------------------
  |  Branch (2049:13): [True: 485k, False: 47.7k]
  ------------------
 2050|   485k|         if(comp(key, x)){
  ------------------
  |  Branch (2050:13): [True: 62.2k, False: 423k]
  ------------------
 2051|  62.2k|            y = x;
 2052|  62.2k|            x = NodeTraits::get_left(x);
 2053|  62.2k|         }
 2054|   423k|         else{
 2055|   423k|            x = NodeTraits::get_right(x);
 2056|   423k|         }
 2057|   485k|      }
 2058|  47.7k|      return y;
 2059|  47.7k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE10begin_nodeEPKNS0_11rbtree_nodeIS3_EE:
  217|  47.7k|   {  return node_traits::get_left(header);   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11equal_rangeINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEENSF_4pairIPNS0_11rbtree_nodeIS3_EESW_EEPKSV_RKT_T0_:
  880|  8.25k|   {
  881|  8.25k|      return bounded_range(header, key, key, comp, true, true);
  882|  8.25k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13bounded_rangeINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEENSF_4pairIPNS0_11rbtree_nodeIS3_EESW_EEPKSV_RKT_S12_T0_bb:
  792|  8.25k|   {
  793|  8.25k|      node_ptr y = detail::uncast(header);
  794|  8.25k|      node_ptr x = NodeTraits::get_parent(header);
  795|       |
  796|  31.0k|      while(x){
  ------------------
  |  Branch (796:13): [True: 22.8k, False: 8.25k]
  ------------------
  797|       |         //If x is less than lower_key the target
  798|       |         //range is on the right part
  799|  22.8k|         if(comp(x, lower_key)){
  ------------------
  |  Branch (799:13): [True: 11.6k, False: 11.1k]
  ------------------
  800|       |            //Check for invalid input range
  801|  11.6k|            BOOST_INTRUSIVE_INVARIANT_ASSERT(comp(x, upper_key));
  ------------------
  |  |   26|  11.6k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  11.6k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  802|  11.6k|            x = NodeTraits::get_right(x);
  803|  11.6k|         }
  804|       |         //If the upper_key is less than x, the target
  805|       |         //range is on the left part
  806|  11.1k|         else if(comp(upper_key, x)){
  ------------------
  |  Branch (806:18): [True: 11.1k, False: 0]
  ------------------
  807|  11.1k|            y = x;
  808|  11.1k|            x = NodeTraits::get_left(x);
  809|  11.1k|         }
  810|      0|         else{
  811|       |            //x is inside the bounded range(lower_key <= x <= upper_key),
  812|       |            //so we must split lower and upper searches
  813|       |            //
  814|       |            //Sanity check: if lower_key and upper_key are equal, then both left_closed and right_closed can't be false
  815|      0|            BOOST_INTRUSIVE_INVARIANT_ASSERT(left_closed || right_closed || comp(lower_key, x) || comp(x, upper_key));
  ------------------
  |  |   26|      0|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  816|      0|            return std::pair<node_ptr,node_ptr>(
  817|      0|               left_closed
  ------------------
  |  Branch (817:16): [True: 0, False: 0]
  ------------------
  818|       |                  //If left_closed, then comp(x, lower_key) is already the lower_bound
  819|       |                  //condition so we save one comparison and go to the next level
  820|       |                  //following traditional lower_bound algo
  821|      0|                  ? lower_bound_loop(NodeTraits::get_left(x), x, lower_key, comp)
  822|       |                  //If left-open, comp(x, lower_key) is not the upper_bound algo
  823|       |                  //condition so we must recheck current 'x' node with upper_bound algo
  824|      0|                  : upper_bound_loop(x, y, lower_key, comp)
  825|      0|            ,
  826|      0|               right_closed
  ------------------
  |  Branch (826:16): [True: 0, False: 0]
  ------------------
  827|       |                  //If right_closed, then comp(upper_key, x) is already the upper_bound
  828|       |                  //condition so we can save one comparison and go to the next level
  829|       |                  //following lower_bound algo
  830|      0|                  ? upper_bound_loop(NodeTraits::get_right(x), y, upper_key, comp)
  831|       |                  //If right-open, comp(upper_key, x) is not the lower_bound algo
  832|       |                  //condition so we must recheck current 'x' node with lower_bound algo
  833|      0|                  : lower_bound_loop(x, y, upper_key, comp)
  834|      0|            );
  835|      0|         }
  836|  22.8k|      }
  837|  8.25k|      return std::pair<node_ptr,node_ptr> (y, y);
  838|  8.25k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_beforeEPNS0_11rbtree_nodeIS3_EES8_S8_Pm:
 1205|  47.7k|   {
 1206|  47.7k|      insert_commit_data commit_data;
 1207|  47.7k|      insert_before_check(header, pos, commit_data, pdepth);
 1208|  47.7k|      insert_commit(header, new_node, commit_data);
 1209|  47.7k|      return new_node;
 1210|  47.7k|   }
_ZN5boost9intrusive20insert_commit_data_tIPNS0_11rbtree_nodeIPvEEEC2Ev:
   42|  47.7k|      : link_left(false), node()
   43|  47.7k|   {}
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE19insert_before_checkEPNS0_11rbtree_nodeIS3_EES8_RNS0_20insert_commit_data_tIS8_EEPm:
 1658|  47.7k|   {
 1659|  47.7k|      node_ptr prev(pos);
 1660|  47.7k|      if(pos != NodeTraits::get_left(header))
  ------------------
  |  Branch (1660:10): [True: 43.7k, False: 3.97k]
  ------------------
 1661|  43.7k|         prev = base_type::prev_node(pos);
 1662|  47.7k|      bool link_left = unique(header) || !NodeTraits::get_left(pos);
  ------------------
  |  Branch (1662:24): [True: 3.02k, False: 44.7k]
  |  Branch (1662:42): [True: 7.29k, False: 37.4k]
  ------------------
 1663|  47.7k|      commit_data.link_left = link_left;
 1664|  47.7k|      commit_data.node = link_left ? pos : prev;
  ------------------
  |  Branch (1664:26): [True: 10.3k, False: 37.4k]
  ------------------
 1665|  47.7k|      if(pdepth){
  ------------------
  |  Branch (1665:10): [True: 0, False: 47.7k]
  ------------------
 1666|      0|         *pdepth = commit_data.node == header ? 0 : depth(commit_data.node) + 1;
  ------------------
  |  Branch (1666:20): [True: 0, False: 0]
  ------------------
 1667|      0|      }
 1668|  47.7k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE6uniqueEPKNS0_11rbtree_nodeIS3_EE:
  251|  47.7k|   { return !NodeTraits::get_parent(n); }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_commitEPNS0_11rbtree_nodeIS3_EES8_RKNS0_20insert_commit_data_tIS8_EE:
 1769|  47.7k|   {
 1770|       |      //Check if commit_data has not been initialized by a insert_unique_check call.
 1771|  47.7k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(commit_data.node != node_ptr());
  ------------------
  |  |   26|  47.7k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  47.7k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1772|  47.7k|      node_ptr parent_node(commit_data.node);
 1773|  47.7k|      if(parent_node == header){
  ------------------
  |  Branch (1773:10): [True: 3.02k, False: 44.7k]
  ------------------
 1774|  3.02k|         NodeTraits::set_parent(header, new_node);
 1775|  3.02k|         NodeTraits::set_right(header, new_node);
 1776|  3.02k|         NodeTraits::set_left(header, new_node);
 1777|  3.02k|      }
 1778|  44.7k|      else if(commit_data.link_left){
  ------------------
  |  Branch (1778:15): [True: 7.29k, False: 37.4k]
  ------------------
 1779|  7.29k|         NodeTraits::set_left(parent_node, new_node);
 1780|  7.29k|         if(parent_node == NodeTraits::get_left(header))
  ------------------
  |  Branch (1780:13): [True: 950, False: 6.34k]
  ------------------
 1781|    950|             NodeTraits::set_left(header, new_node);
 1782|  7.29k|      }
 1783|  37.4k|      else{
 1784|  37.4k|         NodeTraits::set_right(parent_node, new_node);
 1785|  37.4k|         if(parent_node == NodeTraits::get_right(header))
  ------------------
  |  Branch (1785:13): [True: 11.2k, False: 26.2k]
  ------------------
 1786|  11.2k|             NodeTraits::set_right(header, new_node);
 1787|  37.4k|      }
 1788|  47.7k|      NodeTraits::set_parent(new_node, parent_node);
 1789|  47.7k|      NodeTraits::set_right(new_node, node_ptr());
 1790|  47.7k|      NodeTraits::set_left(new_node, node_ptr());
 1791|  47.7k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE25rotate_left_no_parent_fixEPNS0_11rbtree_nodeIS3_EES8_:
 1806|  37.0k|   {
 1807|  37.0k|      node_ptr p_right_left(NodeTraits::get_left(p_right));
 1808|  37.0k|      NodeTraits::set_right(p, p_right_left);
 1809|  37.0k|      if(p_right_left){
  ------------------
  |  Branch (1809:10): [True: 16.7k, False: 20.2k]
  ------------------
 1810|  16.7k|         NodeTraits::set_parent(p_right_left, p);
 1811|  16.7k|      }
 1812|  37.0k|      NodeTraits::set_left(p_right, p);
 1813|  37.0k|      NodeTraits::set_parent(p, p_right);
 1814|  37.0k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE12rotate_rightEPNS0_11rbtree_nodeIS3_EES8_S8_S8_:
 1839|  11.0k|   {
 1840|  11.0k|      const bool p_was_left(NodeTraits::get_left(p_parent) == p);
 1841|  11.0k|      rotate_right_no_parent_fix(p, p_left);
 1842|  11.0k|      NodeTraits::set_parent(p_left, p_parent);
 1843|  11.0k|      set_child(header, p_left, p_parent, p_was_left);
 1844|  11.0k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE9set_childEPNS0_11rbtree_nodeIS3_EES8_S8_b:
 1795|  37.9k|   {
 1796|  37.9k|      if(new_parent == header)
  ------------------
  |  Branch (1796:10): [True: 1.65k, False: 36.3k]
  ------------------
 1797|  1.65k|         NodeTraits::set_parent(header, new_child);
 1798|  36.3k|      else if(link_left)
  ------------------
  |  Branch (1798:15): [True: 7.47k, False: 28.8k]
  ------------------
 1799|  7.47k|         NodeTraits::set_left(new_parent, new_child);
 1800|  28.8k|      else
 1801|  28.8k|         NodeTraits::set_right(new_parent, new_child);
 1802|  37.9k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE26rotate_right_no_parent_fixEPNS0_11rbtree_nodeIS3_EES8_:
 1827|  11.8k|   {
 1828|  11.8k|      node_ptr p_left_right(NodeTraits::get_right(p_left));
 1829|  11.8k|      NodeTraits::set_left(p, p_left_right);
 1830|  11.8k|      if(p_left_right){
  ------------------
  |  Branch (1830:10): [True: 6.45k, False: 5.38k]
  ------------------
 1831|  6.45k|         NodeTraits::set_parent(p_left_right, p);
 1832|  6.45k|      }
 1833|  11.8k|      NodeTraits::set_right(p_left, p);
 1834|  11.8k|      NodeTraits::set_parent(p, p_left);
 1835|  11.8k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11rotate_leftEPNS0_11rbtree_nodeIS3_EES8_S8_S8_:
 1818|  26.8k|   {
 1819|  26.8k|      const bool p_was_left(NodeTraits::get_left(p_parent) == p);
 1820|  26.8k|      rotate_left_no_parent_fix(p, p_right);
 1821|  26.8k|      NodeTraits::set_parent(p_right, p_parent);
 1822|  26.8k|      set_child(header, p_right, p_parent, p_was_left);
 1823|  26.8k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11init_headerEPNS0_11rbtree_nodeIS3_EE:
  597|  4.85k|   {
  598|  4.85k|      NodeTraits::set_parent(header, node_ptr());
  599|  4.85k|      NodeTraits::set_left(header, header);
  600|  4.85k|      NodeTraits::set_right(header, header);
  601|  4.85k|   }

_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE11link_beforeEPNS0_9list_nodeIS3_EES8_:
  183|  49.1k|   {
  184|  49.1k|      node_ptr prev(NodeTraits::get_previous(nxt_node));
  185|  49.1k|      NodeTraits::set_previous(this_node, prev);
  186|  49.1k|      NodeTraits::set_next(this_node, nxt_node);
  187|       |      //nxt_node might be an alias for prev->next_
  188|       |      //so use it before NodeTraits::set_next(prev, ...)
  189|       |      //is called and the reference changes its value
  190|  49.1k|      NodeTraits::set_previous(nxt_node, this_node);
  191|  49.1k|      NodeTraits::set_next(prev, this_node);
  192|  49.1k|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE6initedEPKNS0_9list_nodeIS3_EE:
   84|   124k|   {  return !NodeTraits::get_next(this_node); }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE11init_headerEPNS0_9list_nodeIS3_EE:
   95|  52.1k|   {
   96|  52.1k|      NodeTraits::set_next(this_node, this_node);
   97|  52.1k|      NodeTraits::set_previous(this_node, this_node);
   98|  52.1k|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE6uniqueEPKNS0_9list_nodeIS3_EE:
  119|  86.2k|   {
  120|  86.2k|      node_ptr next = NodeTraits::get_next(this_node);
  121|  86.2k|      return !next || next == this_node;
  ------------------
  |  Branch (121:14): [True: 0, False: 86.2k]
  |  Branch (121:23): [True: 43.8k, False: 42.4k]
  ------------------
  122|  86.2k|   }

_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE9prev_nodeEPNS0_11rbtree_nodeIS3_EE:
   69|  87.5k|   {
   70|  87.5k|      if(is_header(n)){
  ------------------
  |  Branch (70:10): [True: 22.4k, False: 65.1k]
  ------------------
   71|  22.4k|         return NodeTraits::get_right(n);
   72|  22.4k|      }
   73|  65.1k|      else if(NodeTraits::get_left(n)){
  ------------------
  |  Branch (73:15): [True: 52.4k, False: 12.6k]
  ------------------
   74|  52.4k|         return maximum(NodeTraits::get_left(n));
   75|  52.4k|      }
   76|  12.6k|      else {
   77|  12.6k|         node_ptr p(n);
   78|  12.6k|         node_ptr x = NodeTraits::get_parent(p);
   79|  16.7k|         while(p == NodeTraits::get_left(x)){
  ------------------
  |  Branch (79:16): [True: 4.11k, False: 12.6k]
  ------------------
   80|  4.11k|            p = x;
   81|  4.11k|            x = NodeTraits::get_parent(x);
   82|  4.11k|         }
   83|  12.6k|         return x;
   84|  12.6k|      }
   85|  87.5k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE9is_headerEPKNS0_11rbtree_nodeIS3_EE:
  129|  87.5k|   {
  130|  87.5k|      node_ptr p_left (NodeTraits::get_left(p));
  131|  87.5k|      node_ptr p_right(NodeTraits::get_right(p));
  132|  87.5k|      if(!NodeTraits::get_parent(p) || //Header condition when empty tree
  ------------------
  |  Branch (132:10): [True: 0, False: 87.5k]
  ------------------
  133|  87.5k|         (p_left && p_right &&         //Header always has leftmost and rightmost
  ------------------
  |  Branch (133:11): [True: 74.9k, False: 12.6k]
  |  Branch (133:21): [True: 66.4k, False: 8.45k]
  ------------------
  134|  87.5k|            (p_left == p_right ||      //Header condition when only node
  ------------------
  |  Branch (134:14): [True: 1.60k, False: 64.8k]
  ------------------
  135|  66.4k|               (NodeTraits::get_parent(p_left)  != p ||
  ------------------
  |  Branch (135:17): [True: 19.9k, False: 44.8k]
  ------------------
  136|  64.8k|                NodeTraits::get_parent(p_right) != p ))
  ------------------
  |  Branch (136:17): [True: 862, False: 44.0k]
  ------------------
  137|       |               //When tree size > 1 headers can't be leftmost's
  138|       |               //and rightmost's parent
  139|  87.5k|          )){
  140|  22.4k|         return true;
  141|  22.4k|      }
  142|  65.1k|      return false;
  143|  87.5k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE7maximumEPNS0_11rbtree_nodeIS3_EE:
  112|  52.4k|   {
  113|  52.4k|      for(node_ptr p_right = NodeTraits::get_right(n)
  114|   171k|         ;p_right
  ------------------
  |  Branch (114:11): [True: 118k, False: 52.4k]
  ------------------
  115|   118k|         ;p_right = NodeTraits::get_right(n)){
  116|   118k|         n = p_right;
  117|   118k|      }
  118|  52.4k|      return n;
  119|  52.4k|   }

_ZN5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEE8get_nodeEv:
   47|   308k|   { return pointer_traits< node_ptr >::pointer_to(*static_cast< node* >(this)); }
_ZN5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEE8get_nodeEv:
   47|   148k|   { return pointer_traits< node_ptr >::pointer_to(*static_cast< node* >(this)); }
_ZNK5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEE8get_nodeEv:
   44|  8.25k|   { return pointer_traits< const_node_ptr >::pointer_to(*static_cast< const node* >(this)); }
_ZN5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEEC2Ev:
   41|  52.1k|   default_header_holder() : node() {}
_ZNK5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEE8get_nodeEv:
   44|   213k|   { return pointer_traits< const_node_ptr >::pointer_to(*static_cast< const node* >(this)); }
_ZN5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEEC2Ev:
   41|  4.85k|   default_header_holder() : node() {}

_ZNK5boost9intrusive6detail18ebo_functor_holderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareEvLb0EE3getEv:
  285|   592k|   inline const T& get()const{return *this;}
_ZN5boost9intrusive6detail18ebo_functor_holderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareEvLb0EEC2ERKSA_:
  239|   653k|      : T(t)
  240|   653k|   {}
_ZN5boost9intrusive6detail18ebo_functor_holderINS0_18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENSA_11key_compareENS_11move_detail8identityISB_EEbLb1EEEvLb0EEC2EOSH_:
  243|  4.85k|      : T(::boost::move(t))
  244|  4.85k|   {}

_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EED2Ev:
  190|  49.1k|   {
  191|  49.1k|      destructor_impl
  192|  49.1k|         (*this, detail::link_dispatch<hooktags::link_mode>());
  193|  49.1k|   }
_ZN5boost9intrusive6detail15destructor_implINS0_12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EEEEEvRT_NS1_13link_dispatchILS9_0EEE:
   56|  49.1k|{}
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EED2Ev:
  190|  47.7k|   {
  191|  47.7k|      destructor_impl
  192|  47.7k|         (*this, detail::link_dispatch<hooktags::link_mode>());
  193|  47.7k|   }
_ZN5boost9intrusive6detail15destructor_implINS0_12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EEEEEvRT_NS1_13link_dispatchILS9_0EEE:
   56|  47.7k|{}
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EEC2Ev:
  173|  49.1k|   {
  174|  49.1k|      if(hooktags::safemode_or_autounlink){
  ------------------
  |  Branch (174:10): [Folded - Ignored]
  ------------------
  175|      0|         node_algorithms::init(this->this_ptr());
  176|      0|      }
  177|  49.1k|   }
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EEC2Ev:
  173|  47.7k|   {
  174|  47.7k|      if(hooktags::safemode_or_autounlink){
  ------------------
  |  Branch (174:10): [Folded - Ignored]
  ------------------
  175|      0|         node_algorithms::init(this->this_ptr());
  176|      0|      }
  177|  47.7k|   }

_ZN5boost9intrusive13bhtraits_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE12to_value_ptrESC_:
   61|   602k|   {
   62|   602k|      return pointer_traits<pointer>::
   63|   602k|         static_cast_from(pointer_traits<node_holder_ptr>::static_cast_from(n));
   64|   602k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE12to_value_ptrESD_:
   61|  47.7k|   {
   62|  47.7k|      return pointer_traits<pointer>::
   63|  47.7k|         static_cast_from(pointer_traits<node_holder_ptr>::static_cast_from(n));
   64|  47.7k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EE12to_value_ptrESD_:
   61|   614k|   {
   62|   614k|      return pointer_traits<pointer>::
   63|   614k|         static_cast_from(pointer_traits<node_holder_ptr>::static_cast_from(n));
   64|   614k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EE11to_node_ptrERS9_:
   73|  47.7k|   {
   74|  47.7k|      node_ptr p = pointer_traits<node_ptr>::pointer_to
   75|  47.7k|         (static_cast<node_reference>(static_cast<node_holder_reference>(value)));
   76|  47.7k|      return p;
   77|  47.7k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE11to_node_ptrERS9_:
   73|   126k|   {
   74|   126k|      node_ptr p = pointer_traits<node_ptr>::pointer_to
   75|   126k|         (static_cast<node_reference>(static_cast<node_holder_reference>(value)));
   76|   126k|      return p;
   77|   126k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE11to_node_ptrERS8_:
   73|   171k|   {
   74|   171k|      node_ptr p = pointer_traits<node_ptr>::pointer_to
   75|   171k|         (static_cast<node_reference>(static_cast<node_holder_reference>(value)));
   76|   171k|      return p;
   77|   171k|   }

_ZN5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKS5_RKSK_:
  110|   956k|      : nodeptr_(n_ptr)
  111|   956k|   {}
_ZNK5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE7get_ptrEv:
  114|   639k|   {  return StoredPointer();  }
_ZN5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKS5_RKSL_:
  110|   223k|      : nodeptr_(n_ptr)
  111|   223k|   {}
_ZNK5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE7get_ptrEv:
  114|  87.2k|   {  return StoredPointer();  }
_ZN5boost9intrusive17iiterator_membersIPNS0_11rbtree_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIS3_Lb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2ERKS5_RKSL_:
  110|   311k|      : nodeptr_(n_ptr)
  111|   311k|   {}
_ZNK5boost9intrusive17iiterator_membersIPNS0_11rbtree_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIS3_Lb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE7get_ptrEv:
  114|   151k|   {  return StoredPointer();  }
_ZN5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2Ev:
  107|  84.8k|   {}

_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEclINS_4core17basic_string_viewIcEEPNS0_11rbtree_nodeISE_EEEEbRKT_RKT0_NSJ_11enable_if_cIXaantsr30is_same_or_nodeptr_convertibleISU_EE5valuesr30is_same_or_nodeptr_convertibleISX_EE5valueEPNSM_11sfinae_typeEE4typeE:
  110|   496k|   {  return base()(t1, *traits_->to_value_ptr(t2));  }
_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEE4baseEv:
   82|   531k|   {  return static_cast<const base_t&>(*this); }
_ZN5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEC2ESA_PKSI_:
   85|  56.0k|      :  base_t(kcomp), traits_(traits)
   86|  56.0k|   {}
_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEclIPNS0_11rbtree_nodeISE_EENS_4core17basic_string_viewIcEEEEbRKT_RKT0_NSJ_11enable_if_cIXaasr30is_same_or_nodeptr_convertibleISU_EE5valuentsr30is_same_or_nodeptr_convertibleISX_EE5valueEPNSM_11sfinae_typeEE4typeE:
  104|  34.4k|   {  return base()(*traits_->to_value_ptr(t1), t2);  }

_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2EPNS0_9list_nodeISB_EEPKSF_:
   67|   189k|      : members_(nodeptr, traits_ptr)
   68|   189k|   {}
_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESI_:
  122|   135k|   {  return !(l == r); }
_ZN5boost9intrusiveeqERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESI_:
  119|   178k|   {  return l.pointed_node() == r.pointed_node();   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE12pointed_nodeEv:
   82|   359k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEi:
   99|  1.41k|   {
  100|  1.41k|      list_iterator result (*this);
  101|  1.41k|      members_.nodeptr_ = node_traits::get_next(members_.nodeptr_);
  102|  1.41k|      return result;
  103|  1.41k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKSG_:
   71|  1.41k|      :  members_(other.pointed_node(), other.get_value_traits())
   72|  1.41k|   {}
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE16get_value_traitsEv:
   88|  1.41k|   {  return members_.get_ptr(); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEdeEv:
  125|  1.41k|   {  return *operator->();   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEptEv:
  128|   128k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  135|   128k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2EPNS0_9list_nodeISC_EEPKSG_:
   67|   136k|      : members_(nodeptr, traits_ptr)
   68|   136k|   {}
_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESJ_:
  122|  52.6k|   {  return !(l == r); }
_ZN5boost9intrusiveeqERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESJ_:
  119|  52.6k|   {  return l.pointed_node() == r.pointed_node();   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE12pointed_nodeEv:
   82|   192k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEi:
   99|  47.7k|   {
  100|  47.7k|      list_iterator result (*this);
  101|  47.7k|      members_.nodeptr_ = node_traits::get_next(members_.nodeptr_);
  102|  47.7k|      return result;
  103|  47.7k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKSH_:
   71|  47.7k|      :  members_(other.pointed_node(), other.get_value_traits())
   72|  47.7k|   {}
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE16get_value_traitsEv:
   88|  87.2k|   {  return members_.get_ptr(); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEdeEv:
  125|  47.7k|   {  return *operator->();   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEptEv:
  128|  47.7k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  135|  47.7k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE12pointed_nodeEv:
   82|  39.5k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEv:
   92|  39.5k|   {
   93|  39.5k|      node_ptr p = node_traits::get_next(members_.nodeptr_);
   94|  39.5k|      members_.nodeptr_ = p;
   95|  39.5k|      return static_cast<list_iterator&> (*this);
   96|  39.5k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2ERKNS1_ISG_Lb0EEE:
   75|  39.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   76|  39.5k|   {}
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2ERKSG_:
   71|   638k|      :  members_(other.pointed_node(), other.get_value_traits())
   72|   638k|   {}
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE12pointed_nodeEv:
   82|  1.71M|   { return members_.nodeptr_; }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE16get_value_traitsEv:
   88|   638k|   {  return members_.get_ptr(); }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEv:
   92|    901|   {
   93|    901|      node_ptr p = node_traits::get_next(members_.nodeptr_);
   94|    901|      members_.nodeptr_ = p;
   95|    901|      return static_cast<list_iterator&> (*this);
   96|    901|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEppEv:
   92|   279k|   {
   93|   279k|      node_ptr p = node_traits::get_next(members_.nodeptr_);
   94|   279k|      members_.nodeptr_ = p;
   95|   279k|      return static_cast<list_iterator&> (*this);
   96|   279k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEaSERKSG_:
   79|    676|   {  members_.nodeptr_ = other.members_.nodeptr_;  return *this;  }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2Ev:
   64|  84.8k|   {}
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2EPNS0_9list_nodeISB_EEPKSF_:
   67|   127k|      : members_(nodeptr, traits_ptr)
   68|   127k|   {}
_ZN5boost9intrusiveeqERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEESI_:
  119|   537k|   {  return l.pointed_node() == r.pointed_node();   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEmmEv:
  106|   128k|   {
  107|   128k|      members_.nodeptr_ = node_traits::get_previous(members_.nodeptr_);
  108|   128k|      return static_cast<list_iterator&> (*this);
  109|   128k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEaSERKSG_:
   79|  84.8k|   {  members_.nodeptr_ = other.members_.nodeptr_;  return *this;  }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEptEv:
  128|   389k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  135|   389k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }

_ZN5boost9intrusive16list_node_traitsIPvE8get_nextEPNS0_9list_nodeIS2_EE:
   63|   380k|   {  return n->next_;  }
_ZN5boost9intrusive16list_node_traitsIPvE12get_previousEPNS0_9list_nodeIS2_EE:
   54|   262k|   {  return n->prev_;  }
_ZN5boost9intrusive16list_node_traitsIPvE12set_previousEPNS0_9list_nodeIS2_EES6_:
   57|   150k|   {  n->prev_ = prev;  }
_ZN5boost9intrusive16list_node_traitsIPvE8set_nextEPNS0_9list_nodeIS2_EES6_:
   66|   150k|   {  n->next_ = next;  }
_ZN5boost9intrusive16list_node_traitsIPvE8get_nextEPKNS0_9list_nodeIS2_EE:
   60|   253k|   {  return n->next_;  }

_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8get_leftEPNS0_11rbtree_nodeIS2_EE:
   90|   496k|   {  return n->left_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_rightEPNS0_11rbtree_nodeIS2_EE:
   99|   690k|   {  return n->right_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10get_parentEPKNS0_11rbtree_nodeIS2_EE:
   78|   191k|   {  return n->parent_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8get_leftEPKNS0_11rbtree_nodeIS2_EE:
   87|   135k|   {  return n->left_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10get_parentEPNS0_11rbtree_nodeIS2_EE:
   81|   382k|   {  return n->parent_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_rightEPKNS0_11rbtree_nodeIS2_EE:
   96|  87.5k|   {  return n->right_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10set_parentEPNS0_11rbtree_nodeIS2_EES6_:
   84|   167k|   {  n->parent_ = p;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9set_rightEPNS0_11rbtree_nodeIS2_EES6_:
  102|   182k|   {  n->right_ = r;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8set_leftEPNS0_11rbtree_nodeIS2_EES6_:
   93|   120k|   {  n->left_ = l;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9set_colorEPNS0_11rbtree_nodeIS2_EENS5_5colorE:
  111|   288k|   {  n->color_ = c;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE3redEv:
  117|   182k|   {  return node::red_t;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_colorEPNS0_11rbtree_nodeIS2_EE:
  108|   135k|   {  return n->color_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE5blackEv:
  114|   241k|   {  return node::black_t;  }

_ZN5boost9intrusive6detail11size_holderILb0EmvE9incrementEv:
   76|  96.9k|   {}
_ZN5boost9intrusive6detail11size_holderILb0EmvE8set_sizeEm:
   70|  52.1k|   {}

_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2EPNS0_11rbtree_nodeISC_EEPKSG_:
   75|   143k|      : members_(nodeptr, traits_ptr)
   76|   143k|   {}
_ZN5boost9intrusiveeqERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEESJ_:
  147|  47.7k|   { return l.pointed_node() == r.pointed_node(); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE12pointed_nodeEv:
   93|   230k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2EPNS0_11rbtree_nodeISC_EEPKSG_:
   75|  16.5k|      : members_(nodeptr, traits_ptr)
   76|  16.5k|   {}
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2ERKSH_:
   79|  16.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   80|  16.5k|   {}
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EE12pointed_nodeEv:
   93|  80.8k|   { return members_.nodeptr_; }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EE16get_value_traitsEv:
  159|  16.5k|   {  return members_.get_ptr();  }
_ZN5boost9intrusiveneERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEESJ_:
  150|  8.25k|   {  return !(l == r);   }
_ZN5boost9intrusiveeqERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEESJ_:
  147|  8.25k|   { return l.pointed_node() == r.pointed_node(); }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2ERKNS1_ISG_Lb0EEE:
   83|  47.7k|      :  members_(other.pointed_node(), other.get_value_traits())
   84|  47.7k|   {}
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE16get_value_traitsEv:
  159|   135k|   {  return members_.get_ptr();  }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEmmEv:
  110|  43.7k|   {
  111|  43.7k|      members_.nodeptr_ = node_algorithms::prev_node(members_.nodeptr_);
  112|  43.7k|      return *this;
  113|  43.7k|   }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2ERKSH_:
   79|  87.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   80|  87.5k|   {}
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEptEv:
  156|  83.3k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  171|  83.3k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEdeEv:
  153|  39.5k|   {  return *operator->();   }

_ZN5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEC2ERKSF_:
  149|   592k|      :  base_t(x.base_t::get())
  150|   592k|   {}
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEclINS_4core17basic_string_viewIcEEEEbRKT_RKS9_PNS0_22disable_if_smartref_toISK_SA_E4typeE:
  180|   496k|   {  return this->key_comp()(nonkey1, key2);  }
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EE8key_compEv:
  159|   531k|   {  return static_cast<const key_compare &>(*this);  }
_ZN5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEC2ERKSB_:
  145|  60.8k|      :  base_t(kcomp)
  146|  60.8k|   {}
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEclINS_4core17basic_string_viewIcEEEEbRKS9_RKT_PNS0_22disable_if_smartref_toISM_SA_E4typeE:
  175|  34.4k|   {  return this->key_comp()(key1, nonkey2);  }

http_request.cpp:_ZN5boost9intrusive6detailL6uncastIPKNS0_11rbtree_nodeIPvEEEENS1_12uncast_typesIT_E17non_const_pointerERKS9_:
   45|  56.0k|{
   46|  56.0k|   return uncast_types<ConstNodePtr>::non_const_traits::const_cast_from(ptr);
   47|  56.0k|}
http_request.cpp:_ZN5boost9intrusive6detailL6uncastIPKNS0_9list_nodeIPvEEEENS1_12uncast_typesIT_E17non_const_pointerERKS9_:
   45|  84.8k|{
   46|  84.8k|   return uncast_types<ConstNodePtr>::non_const_traits::const_cast_from(ptr);
   47|  84.8k|}

_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5beginEv:
  399|  6.26k|   { return iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE13get_root_nodeEv:
  130|   237k|   { return data_.root_plus_size_.m_header.get_node(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE21priv_value_traits_ptrEv:
  166|   317k|   {  return pointer_traits<const_value_traits_ptr>::pointer_to(this->priv_value_traits());  }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  157|   317k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE3endEv:
  423|  98.8k|   { return iterator(this->get_root_node(), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvED2Ev:
  252|  47.2k|   {
  253|       |      BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
  254|       |         this->clear();
  255|       |         node_algorithms::init(this->get_root_node());
  256|       |      }
  257|  47.2k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5beginEv:
  399|  4.85k|   { return iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE13get_root_nodeEv:
  130|  70.5k|   { return data_.root_plus_size_.m_header.get_node(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE21priv_value_traits_ptrEv:
  166|   136k|   {  return pointer_traits<const_value_traits_ptr>::pointer_to(this->priv_value_traits());  }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  157|   136k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE3endEv:
  423|  52.6k|   { return iterator(this->get_root_node(), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvED2Ev:
  252|  4.85k|   {
  253|       |      BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
  254|       |         this->clear();
  255|       |         node_algorithms::init(this->get_root_node());
  256|       |      }
  257|  4.85k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE9push_backERSA_:
  270|  8.25k|   {
  271|  8.25k|      node_ptr to_insert = priv_value_traits().to_node_ptr(value);
  272|  8.25k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
  ------------------
  |  |   33|  8.25k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  8.25k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  273|  8.25k|      node_algorithms::link_before(this->get_root_node(), to_insert);
  274|  8.25k|      this->priv_size_traits().increment();
  275|  8.25k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  160|   126k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE16priv_size_traitsEv:
  151|  52.6k|   {  return data_.root_plus_size_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6insertENS0_13list_iteratorISG_Lb1EEERSA_:
  830|  39.5k|   {
  831|  39.5k|      node_ptr to_insert = this->priv_value_traits().to_node_ptr(value);
  832|  39.5k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
  ------------------
  |  |   33|  39.5k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  39.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  833|  39.5k|      node_algorithms::link_before(p.pointed_node(), to_insert);
  834|  39.5k|      this->priv_size_traits().increment();
  835|  39.5k|      return iterator(to_insert, this->priv_value_traits_ptr());
  836|  39.5k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE11iterator_toERSA_:
 1310|  39.5k|   {
 1311|  39.5k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(this->priv_value_traits().to_node_ptr(value)));
  ------------------
  |  |   26|  39.5k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  39.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1312|  39.5k|      return iterator(this->priv_value_traits().to_node_ptr(value), this->priv_value_traits_ptr());
 1313|  39.5k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvEC2Ev:
  179|  47.2k|      :  data_(value_traits())
  180|  47.2k|   {
  181|  47.2k|      this->priv_size_traits().set_size(size_type(0));
  182|  47.2k|      node_algorithms::init_header(this->get_root_node());
  183|  47.2k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6data_tC2ERKSF_:
  144|  47.2k|         :  value_traits(val_traits)
  145|  47.2k|      {}
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE16priv_size_traitsEv:
  151|  48.7k|   {  return data_.root_plus_size_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE11iterator_toERS9_:
 1310|  84.8k|   {
 1311|  84.8k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(this->priv_value_traits().to_node_ptr(value)));
  ------------------
  |  |   26|  84.8k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  84.8k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1312|  84.8k|      return iterator(this->priv_value_traits().to_node_ptr(value), this->priv_value_traits_ptr());
 1313|  84.8k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  160|   255k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE4backEv:
  383|  84.2k|   { return *priv_value_traits().to_value_ptr(node_traits::get_previous(this->get_root_node())); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5emptyEv:
  543|  86.2k|   {  return node_algorithms::unique(this->get_root_node());   }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE13get_root_nodeEv:
  133|   213k|   { return data_.root_plus_size_.m_header.get_node(); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE9push_backERS9_:
  270|  1.41k|   {
  271|  1.41k|      node_ptr to_insert = priv_value_traits().to_node_ptr(value);
  272|  1.41k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
  ------------------
  |  |   33|  1.41k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  1.41k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  273|  1.41k|      node_algorithms::link_before(this->get_root_node(), to_insert);
  274|  1.41k|      this->priv_size_traits().increment();
  275|  1.41k|   }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5beginEv:
  407|  42.4k|   { return this->cbegin(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6cbeginEv:
  415|  42.4k|   { return const_iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE3endEv:
  431|  84.8k|   { return this->cend(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE4cendEv:
  439|  84.8k|   { return const_iterator(detail::uncast(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvEC2Ev:
  179|  4.85k|      :  data_(value_traits())
  180|  4.85k|   {
  181|  4.85k|      this->priv_size_traits().set_size(size_type(0));
  182|  4.85k|      node_algorithms::init_header(this->get_root_node());
  183|  4.85k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6data_tC2ERKSG_:
  144|  4.85k|         :  value_traits(val_traits)
  145|  4.85k|      {}

_ZN5boost9intrusive14pointer_traitsIPNS0_9list_nodeIPvEEE10pointer_toERS4_:
  300|   606k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEE10pointer_toERSG_:
  300|   317k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementEE16static_cast_fromINS0_11node_holderINS0_9list_nodeIPvEENS0_7dft_tagELj1EEEEES9_PT_:
  306|   602k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11node_holderINS0_9list_nodeIPvEENS0_7dft_tagELj1EEEE16static_cast_fromIS5_EES8_PT_:
  306|   650k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEE10pointer_toERSH_:
  300|   136k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE16static_cast_fromINS0_11node_holderINS0_9list_nodeIPvEENS0_7dft_tagELj1EEEEESA_PT_:
  306|  47.7k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE16static_cast_fromINS0_11node_holderINS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EEEEESA_PT_:
  306|   614k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11node_holderINS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EEEE16static_cast_fromIS5_EES8_PT_:
  306|   614k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11rbtree_nodeIPvEEE15const_cast_fromIKS4_EES5_PT_:
  312|  56.0k|   {  return const_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11rbtree_nodeIPvEEE10pointer_toERS4_:
  300|   195k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEE10pointer_toERSH_:
  300|   159k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_11rbtree_nodeIPvEEE10pointer_toERS5_:
  300|  8.25k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_9list_nodeIPvEEE10pointer_toERS5_:
  300|   213k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS0_9list_nodeIPvEEE15const_cast_fromIKS4_EES5_PT_:
  312|  84.8k|   {  return const_cast<pointer>(uptr);  }

_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_beforeEPNS0_11rbtree_nodeIS3_EES8_S8_:
  395|  47.7k|   {
  396|  47.7k|      bstree_algo::insert_before(header, pos, new_node);
  397|  47.7k|      rebalance_after_insertion(header, new_node);
  398|  47.7k|      return new_node;
  399|  47.7k|   }
_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE25rebalance_after_insertionEPNS0_11rbtree_nodeIS3_EES8_:
  549|  47.7k|   {
  550|  47.7k|      NodeTraits::set_color(p, NodeTraits::red());
  551|  85.2k|      while(1){
  ------------------
  |  Branch (551:13): [Folded - Ignored]
  ------------------
  552|  85.2k|         node_ptr p_parent(NodeTraits::get_parent(p));
  553|  85.2k|         const node_ptr p_grandparent(NodeTraits::get_parent(p_parent));
  554|  85.2k|         if(p_parent == header || NodeTraits::get_color(p_parent) == NodeTraits::black() || p_grandparent == header){
  ------------------
  |  Branch (554:13): [True: 4.61k, False: 80.6k]
  |  Branch (554:35): [True: 5.17k, False: 75.4k]
  |  Branch (554:93): [True: 0, False: 75.4k]
  ------------------
  555|  9.78k|            break;
  556|  9.78k|         }
  557|       |
  558|  75.4k|         NodeTraits::set_color(p_grandparent, NodeTraits::red());
  559|  75.4k|         node_ptr const p_grandparent_left (NodeTraits::get_left (p_grandparent));
  560|  75.4k|         bool const p_parent_is_left_child = p_parent == p_grandparent_left;
  561|  75.4k|         node_ptr const x(p_parent_is_left_child ? NodeTraits::get_right(p_grandparent) : p_grandparent_left);
  ------------------
  |  Branch (561:27): [True: 12.8k, False: 62.6k]
  ------------------
  562|       |
  563|  75.4k|         if(x && NodeTraits::get_color(x) == NodeTraits::red()){
  ------------------
  |  Branch (563:13): [True: 54.4k, False: 20.9k]
  |  Branch (563:18): [True: 37.4k, False: 16.9k]
  ------------------
  564|  37.4k|            NodeTraits::set_color(x, NodeTraits::black());
  565|  37.4k|            NodeTraits::set_color(p_parent, NodeTraits::black());
  566|  37.4k|            p = p_grandparent;
  567|  37.4k|         }
  568|  37.9k|         else{ //Final step
  569|  37.9k|            const bool p_is_left_child(NodeTraits::get_left(p_parent) == p);
  570|  37.9k|            if(p_parent_is_left_child){ //p_parent is left child
  ------------------
  |  Branch (570:16): [True: 11.0k, False: 26.8k]
  ------------------
  571|  11.0k|               if(!p_is_left_child){ //p is right child
  ------------------
  |  Branch (571:19): [True: 10.1k, False: 926]
  ------------------
  572|  10.1k|                  bstree_algo::rotate_left_no_parent_fix(p_parent, p);
  573|       |                  //No need to link p and p_grandparent:
  574|       |                  //    [NodeTraits::set_parent(p, p_grandparent) + NodeTraits::set_left(p_grandparent, p)]
  575|       |                  //as p_grandparent is not the header, another rotation is coming and p_parent
  576|       |                  //will be the left child of p_grandparent
  577|  10.1k|                  p_parent = p;
  578|  10.1k|               }
  579|  11.0k|               bstree_algo::rotate_right(p_grandparent, p_parent, NodeTraits::get_parent(p_grandparent), header);
  580|  11.0k|            }
  581|  26.8k|            else{  //p_parent is right child
  582|  26.8k|               if(p_is_left_child){ //p is left child
  ------------------
  |  Branch (582:19): [True: 738, False: 26.1k]
  ------------------
  583|    738|                  bstree_algo::rotate_right_no_parent_fix(p_parent, p);
  584|       |                  //No need to link p and p_grandparent:
  585|       |                  //    [NodeTraits::set_parent(p, p_grandparent) + NodeTraits::set_right(p_grandparent, p)]
  586|       |                  //as p_grandparent is not the header, another rotation is coming and p_parent
  587|       |                  //will be the right child of p_grandparent
  588|    738|                  p_parent = p;
  589|    738|               }
  590|  26.8k|               bstree_algo::rotate_left(p_grandparent, p_parent, NodeTraits::get_parent(p_grandparent), header);
  591|  26.8k|            }
  592|  37.9k|            NodeTraits::set_color(p_parent, NodeTraits::black());
  593|  37.9k|            break;
  594|  37.9k|         }
  595|  75.4k|      }
  596|  47.7k|      NodeTraits::set_color(NodeTraits::get_parent(header), NodeTraits::black());
  597|  47.7k|   }
_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11init_headerEPNS0_11rbtree_nodeIS3_EE:
  277|  4.85k|   {
  278|  4.85k|      bstree_algo::init_header(header);
  279|  4.85k|      NodeTraits::set_color(header, NodeTraits::red());
  280|  4.85k|   }

_ZN5boost9intrusive13multiset_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0EvEC2Ev:
  633|  4.85k|      :  tree_type()
  634|  4.85k|   {}

_ZN5boost11move_detail9addressofINS_9intrusive9list_nodeIPvEEEEPT_RS6_:
   40|   606k|{
   41|   606k|   return __builtin_addressof(v);
   42|   606k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive8bhtraitsINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE7elementENS2_16list_node_traitsIPvEELNS2_14link_mode_typeE0ENS2_7dft_tagELj1EEEEEPT_RSI_:
   40|   317k|{
   41|   317k|   return __builtin_addressof(v);
   42|   317k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS2_16list_node_traitsIPvEELNS2_14link_mode_typeE0ENS2_7dft_tagELj1EEEEEPT_RSJ_:
   40|   136k|{
   41|   136k|   return __builtin_addressof(v);
   42|   136k|}
_ZN5boost11move_detail9addressofINS_9intrusive11rbtree_nodeIPvEEEEPT_RS6_:
   40|   195k|{
   41|   195k|   return __builtin_addressof(v);
   42|   195k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS2_18rbtree_node_traitsIPvLb0EEELNS2_14link_mode_typeE0ENS2_7dft_tagELj3EEEEEPT_RSJ_:
   40|   159k|{
   41|   159k|   return __builtin_addressof(v);
   42|   159k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive11rbtree_nodeIPvEEEEPT_RS7_:
   40|  8.25k|{
   41|  8.25k|   return __builtin_addressof(v);
   42|  8.25k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive9list_nodeIPvEEEEPT_RS7_:
   40|   213k|{
   41|   213k|   return __builtin_addressof(v);
   42|   213k|}

_ZN5boost4moveIRNS_9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS9_11key_compareENS_11move_detail8identityISA_EEbLb1EEEEEONSD_16remove_referenceIT_E4typeEOSJ_:
  213|  4.85k|         { return static_cast<typename ::boost::move_detail::remove_reference<T>::type &&>(t); }

_ZN5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE3refEv:
   64|  42.4k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7ptr_refEv:
   54|  42.4k|    {
   55|  42.4k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  42.4k|        return caster.as_ptype;
   57|  42.4k|    }
_ZN5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7addressEv:
   40|  84.8k|    void      * address()       { return &dummy_; }
_ZNK5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE3refEv:
   63|  42.4k|    T const& ref() const { return *boost::core::launder(ptr_ref()); }
_ZNK5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7ptr_refEv:
   49|  42.4k|    {
   50|  42.4k|        union { void const* ap_pvoid; T const* as_ptype; } caster = { address() };
   51|  42.4k|        return caster.as_ptype;
   52|  42.4k|    }
_ZNK5boost15optional_detail15aligned_storageINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7addressEv:
   39|  42.4k|    void const* address() const { return &dummy_; }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE3refEv:
   64|  40.3k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7ptr_refEv:
   54|  40.3k|    {
   55|  40.3k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  40.3k|        return caster.as_ptype;
   57|  40.3k|    }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7addressEv:
   40|  80.7k|    void      * address()       { return &dummy_; }
_ZNK5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE3refEv:
   63|  40.3k|    T const& ref() const { return *boost::core::launder(ptr_ref()); }
_ZNK5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7ptr_refEv:
   49|  40.3k|    {
   50|  40.3k|        union { void const* ap_pvoid; T const* as_ptype; } caster = { address() };
   51|  40.3k|        return caster.as_ptype;
   52|  40.3k|    }
_ZNK5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7addressEv:
   39|  40.3k|    void const* address() const { return &dummy_; }

_ZN5boostgtImEEbRKT_RKNS_8optionalIS1_EE:
  113|    262|{ return y < x ; }
_ZN5boostltImEEbRKNS_8optionalIT_EERKS2_:
   69|    262|{ return (!x) || (*x < y); }
  ------------------
  |  Branch (69:10): [True: 0, False: 262]
  |  Branch (69:18): [True: 80, False: 182]
  ------------------

_ZN5boost15optional_detail16tc_optional_baseImEC2ENS0_14init_value_tagERKm:
   44|  5.64k|      m_initialized(true), m_storage(val) {}
_ZN5boost15optional_detail16tc_optional_baseImEC2ENS_6none_tE:
   40|  1.81k|      m_initialized(false), m_storage() {}
_ZNK5boost15optional_detail16tc_optional_baseImE14is_initializedEv:
  125|  64.7k|    bool is_initialized() const { return m_initialized ; }
_ZN5boost15optional_detail16tc_optional_baseImE8get_implEv:
  261|  41.6k|    reference_type       get_impl()       { return m_storage ; }
_ZN5boost15optional_detail16tc_optional_baseImE6assignERKm:
   94|    669|    {
   95|    669|      construct(val);
   96|    669|    }
_ZN5boost15optional_detail16tc_optional_baseImE9constructERKm:
  130|    669|     {
  131|    669|       m_storage = val ;
  132|    669|       m_initialized = true ;
  133|    669|     }
_ZNK5boost15optional_detail16tc_optional_baseImE8get_implEv:
  260|    262|    reference_const_type get_impl() const { return m_storage ; }

_ZN5boost15optional_detail7forwardINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEEOT_RNS_16remove_referenceISA_E4typeE:
   21|   127k|{
   22|   127k|  return static_cast<T&&>(t);
   23|   127k|}
_ZN5boost15optional_detail7forwardImEEOT_RNS_16remove_referenceIS2_E4typeE:
   21|  4.85k|{
   22|  4.85k|  return static_cast<T&&>(t);
   23|  4.85k|}
_ZN5boost15optional_detail7forwardIRmEEOT_RNS_16remove_referenceIS3_E4typeE:
   21|    669|{
   22|    669|  return static_cast<T&&>(t);
   23|    669|}
_ZN5boost15optional_detail7forwardINS_4asio14mutable_bufferEEEOT_RNS_16remove_referenceIS4_E4typeE:
   21|   121k|{
   22|   121k|  return static_cast<T&&>(t);
   23|   121k|}

_ZN5boost8optionalINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEC2Ev:
  666|  42.4k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEC2Ev:
  157|  42.4k|      m_initialized(false) {}
_ZN5boost8optionalINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7emplaceIJS8_EEEvDpOT_:
  873|  42.4k|    {
  874|  42.4k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|  42.4k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE14emplace_assignIJS9_EEEvDpOT_:
  400|  42.4k|    {
  401|  42.4k|      destroy();
  402|  42.4k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|  42.4k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE7destroyEv:
  510|  84.8k|    {
  511|  84.8k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 42.4k, False: 42.4k]
  ------------------
  512|  42.4k|        destroy_impl() ;
  513|  84.8k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE12destroy_implEv:
  526|  42.4k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE9constructIJS9_EEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|  42.4k|    {
  394|  42.4k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|  42.4k|      m_initialized = true ;
  396|  42.4k|    }
_ZNKR5boost8optionalINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEEdeEv:
  914|  42.4k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE3getEv:
  898|  42.4k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  42.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE14is_initializedEv:
  372|  42.4k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZNK5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEE8get_implEv:
  515|  42.4k|    reference_const_type get_impl() const { return m_storage.ref() ; }
_ZN5boost15optional_detail13optional_baseINS_5beast18basic_multi_bufferINSt3__19allocatorIcEEE8subrangeILb1EEEED2Ev:
  247|  42.4k|    ~optional_base() { destroy() ; }
_ZN5boost8optionalImEC2EOm:
  678|  4.85k|    optional ( rval_reference_type val ) : base(optional_detail::init_value_tag(), optional_detail::forward<T>(val))
  679|  4.85k|      {}
_ZN5boost8optionalImEC2ERKm:
  674|    795|    optional ( argument_type val ) : base(optional_detail::init_value_tag(), val) {}
_ZN5boost8optionalImEC2ENS_6none_tE:
  670|  1.81k|    optional( none_t none_ ) BOOST_NOEXCEPT : base(none_) {}
_ZNK5boost8optionalImE9has_valueEv:
 1046|  22.8k|    bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; }
_ZNR5boost8optionalImEdeEv:
  915|  41.6k|    reference_type       operator *() BOOST_OPTIONAL_REF_QUAL       { return this->get() ; }
_ZN5boost8optionalImE3getEv:
  899|  41.6k|    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  41.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost8optionalImEaSIRmEENS_9enable_ifINS_7is_sameImNS_5decayIT_E4typeEEERS1_E4typeEOS7_:
  836|    669|      {
  837|    669|        this->assign( optional_detail::forward<T_>(val) ) ;
  838|    669|        return *this ;
  839|    669|      }
_ZNK5boost8optionalImEcvbEv:
 1048|    262|    explicit operator bool() const BOOST_NOEXCEPT { return this->has_value() ; }
_ZNKR5boost8optionalImEdeEv:
  914|    262|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalImE3getEv:
  898|    262|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|    262|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost8optionalINS_4asio14mutable_bufferEEC2Ev:
  666|  40.3k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEEC2Ev:
  157|  40.3k|      m_initialized(false) {}
_ZN5boost8optionalINS_4asio14mutable_bufferEE7emplaceIJS2_EEEvDpOT_:
  873|  40.3k|    {
  874|  40.3k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|  40.3k|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE14emplace_assignIJS3_EEEvDpOT_:
  400|  40.3k|    {
  401|  40.3k|      destroy();
  402|  40.3k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|  40.3k|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE7destroyEv:
  510|  80.7k|    {
  511|  80.7k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 40.3k, False: 40.3k]
  ------------------
  512|  40.3k|        destroy_impl() ;
  513|  80.7k|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE12destroy_implEv:
  526|  40.3k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE9constructIJS3_EEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|  40.3k|    {
  394|  40.3k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|  40.3k|      m_initialized = true ;
  396|  40.3k|    }
_ZNKR5boost8optionalINS_4asio14mutable_bufferEEdeEv:
  914|  40.3k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalINS_4asio14mutable_bufferEE3getEv:
  898|  40.3k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  40.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE14is_initializedEv:
  372|  40.3k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZNK5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE8get_implEv:
  515|  40.3k|    reference_const_type get_impl() const { return m_storage.ref() ; }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEED2Ev:
  247|  40.3k|    ~optional_base() { destroy() ; }

_ZN5boost6detail12shared_countC2IPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS6_EEEET_NS0_14sp_inplace_tagIT0_EE:
  197|  4.85k|    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
  198|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  199|       |        , id_(shared_count_id)
  200|       |#endif
  201|  4.85k|    {
  202|  4.85k|#ifndef BOOST_NO_EXCEPTIONS
  203|       |
  204|  4.85k|        try
  205|  4.85k|        {
  206|  4.85k|            pi_ = new sp_counted_impl_pd< P, D >( p );
  207|  4.85k|        }
  208|  4.85k|        catch( ... )
  209|  4.85k|        {
  210|      0|            D::operator_fn( p ); // delete p
  211|      0|            throw;
  212|      0|        }
  213|       |
  214|       |#else
  215|       |
  216|       |        pi_ = new sp_counted_impl_pd< P, D >( p );
  217|       |
  218|       |        if( pi_ == 0 )
  219|       |        {
  220|       |            D::operator_fn( p ); // delete p
  221|       |            boost::throw_exception( std::bad_alloc() );
  222|       |        }
  223|       |
  224|       |#endif // #ifndef BOOST_NO_EXCEPTIONS
  225|  4.85k|    }
_ZN5boost6detail12shared_countD2Ev:
  392|  29.1k|    {
  393|  29.1k|        if( pi_ != 0 ) pi_->release();
  ------------------
  |  Branch (393:13): [True: 24.2k, False: 4.85k]
  ------------------
  394|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  395|       |        id_ = 0;
  396|       |#endif
  397|  29.1k|    }
_ZNK5boost6detail12shared_count19get_untyped_deleterEv:
  479|  9.70k|    {
  480|  9.70k|        return pi_? pi_->get_untyped_deleter(): 0;
  ------------------
  |  Branch (480:16): [True: 9.70k, False: 0]
  ------------------
  481|  9.70k|    }
_ZN5boost6detail12shared_countC2ERKS1_:
  399|  9.70k|    shared_count(shared_count const & r) noexcept: pi_(r.pi_)
  400|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  401|       |        , id_(shared_count_id)
  402|       |#endif
  403|  9.70k|    {
  404|  9.70k|        if( pi_ != 0 ) pi_->add_ref_copy();
  ------------------
  |  Branch (404:13): [True: 9.70k, False: 0]
  ------------------
  405|  9.70k|    }
_ZN5boost6detail12shared_countC2IPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS6_EEEET_NS0_14sp_inplace_tagIT0_EE:
  197|  4.85k|    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
  198|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  199|       |        , id_(shared_count_id)
  200|       |#endif
  201|  4.85k|    {
  202|  4.85k|#ifndef BOOST_NO_EXCEPTIONS
  203|       |
  204|  4.85k|        try
  205|  4.85k|        {
  206|  4.85k|            pi_ = new sp_counted_impl_pd< P, D >( p );
  207|  4.85k|        }
  208|  4.85k|        catch( ... )
  209|  4.85k|        {
  210|      0|            D::operator_fn( p ); // delete p
  211|      0|            throw;
  212|      0|        }
  213|       |
  214|       |#else
  215|       |
  216|       |        pi_ = new sp_counted_impl_pd< P, D >( p );
  217|       |
  218|       |        if( pi_ == 0 )
  219|       |        {
  220|       |            D::operator_fn( p ); // delete p
  221|       |            boost::throw_exception( std::bad_alloc() );
  222|       |        }
  223|       |
  224|       |#endif // #ifndef BOOST_NO_EXCEPTIONS
  225|  4.85k|    }
_ZN5boost6detail10weak_countC2ERKNS0_12shared_countE:
  511|  4.85k|    weak_count(shared_count const & r) noexcept: pi_(r.pi_)
  512|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  513|       |        , id_(weak_count_id)
  514|       |#endif
  515|  4.85k|    {
  516|  4.85k|        if(pi_ != 0) pi_->weak_add_ref();
  ------------------
  |  Branch (516:12): [True: 4.85k, False: 0]
  ------------------
  517|  4.85k|    }
_ZN5boost6detail10weak_countC2EOS1_:
  529|  4.85k|    weak_count(weak_count && r) noexcept: pi_(r.pi_)
  530|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  531|       |        , id_(weak_count_id)
  532|       |#endif
  533|  4.85k|    {
  534|  4.85k|        r.pi_ = 0;
  535|  4.85k|    }
_ZN5boost6detail10weak_countD2Ev:
  538|  19.4k|    {
  539|  19.4k|        if(pi_ != 0) pi_->weak_release();
  ------------------
  |  Branch (539:12): [True: 4.85k, False: 14.5k]
  ------------------
  540|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  541|       |        id_ = 0;
  542|       |#endif
  543|  19.4k|    }
_ZN5boost6detail10weak_countC2Ev:
  504|  9.70k|    constexpr weak_count() noexcept: pi_(0)
  505|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  506|       |        , id_(weak_count_id)
  507|       |#endif
  508|  9.70k|    {
  509|  9.70k|    }
_ZN5boost6detail12shared_countC2ERKNS0_10weak_countENS0_14sp_nothrow_tagE:
  627|  9.70k|inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ) noexcept: pi_( r.pi_ )
  628|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  629|       |        , id_(shared_count_id)
  630|       |#endif
  631|  9.70k|{
  632|  9.70k|    if( pi_ != 0 && !pi_->add_ref_lock() )
  ------------------
  |  Branch (632:9): [True: 4.85k, False: 4.85k]
  |  Branch (632:21): [True: 0, False: 4.85k]
  ------------------
  633|      0|    {
  634|      0|        pi_ = 0;
  635|      0|    }
  636|  9.70k|}
_ZNK5boost6detail12shared_count5emptyEv:
  450|  9.70k|    {
  451|  9.70k|        return pi_ == 0;
  452|  9.70k|    }
_ZN5boost6detail10weak_count4swapERS1_:
  574|  4.85k|    {
  575|  4.85k|        sp_counted_base * tmp = r.pi_;
  576|  4.85k|        r.pi_ = pi_;
  577|  4.85k|        pi_ = tmp;
  578|  4.85k|    }

_ZN5boost6detail15sp_counted_baseC2Ev:
   82|  9.70k|    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
   83|  9.70k|    {
   84|  9.70k|    }
_ZN5boost6detail15sp_counted_baseD2Ev:
   87|  9.70k|    {
   88|  9.70k|    }
_ZN5boost6detail15sp_counted_base7destroyEv:
   98|  9.70k|    {
   99|  9.70k|        delete this;
  100|  9.70k|    }
_ZN5boost6detail15sp_counted_base7releaseEv:
  117|  24.2k|    {
  118|  24.2k|        if( atomic_decrement( &use_count_ ) == 1 )
  ------------------
  |  Branch (118:13): [True: 9.70k, False: 14.5k]
  ------------------
  119|  9.70k|        {
  120|  9.70k|            dispose();
  121|  9.70k|            weak_release();
  122|  9.70k|        }
  123|  24.2k|    }
_ZN5boost6detail16atomic_decrementEPj:
   39|  38.8k|{
   40|  38.8k|    return __atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL );
   41|  38.8k|}
_ZN5boost6detail15sp_counted_base12weak_releaseEv:
  131|  14.5k|    {
  132|  14.5k|        if( atomic_decrement( &weak_count_ ) == 1 )
  ------------------
  |  Branch (132:13): [True: 9.70k, False: 4.85k]
  ------------------
  133|  9.70k|        {
  134|  9.70k|            destroy();
  135|  9.70k|        }
  136|  14.5k|    }
_ZN5boost6detail15sp_counted_base12add_ref_copyEv:
  107|  9.70k|    {
  108|  9.70k|        atomic_increment( &use_count_ );
  109|  9.70k|    }
_ZN5boost6detail16atomic_incrementEPj:
   34|  14.5k|{
   35|  14.5k|    __atomic_fetch_add( pw, 1, __ATOMIC_RELAXED );
   36|  14.5k|}
_ZN5boost6detail15sp_counted_base12weak_add_refEv:
  126|  4.85k|    {
  127|  4.85k|        atomic_increment( &weak_count_ );
  128|  4.85k|    }
_ZN5boost6detail15sp_counted_base12add_ref_lockEv:
  112|  4.85k|    {
  113|  4.85k|        return atomic_conditional_increment( &use_count_ ) != 0;
  114|  4.85k|    }
_ZN5boost6detail28atomic_conditional_incrementEPj:
   44|  4.85k|{
   45|       |    // long r = *pw;
   46|       |    // if( r != 0 ) ++*pw;
   47|       |    // return r;
   48|       |
   49|  4.85k|    boost::uint_least32_t r = __atomic_load_n( pw, __ATOMIC_RELAXED );
   50|       |
   51|  4.85k|    for( ;; )
   52|  4.85k|    {
   53|  4.85k|        if( r == 0 )
  ------------------
  |  Branch (53:13): [True: 0, False: 4.85k]
  ------------------
   54|      0|        {
   55|      0|            return r;
   56|      0|        }
   57|       |
   58|  4.85k|        if( __atomic_compare_exchange_n( pw, &r, r + 1, true, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) )
  ------------------
  |  Branch (58:13): [True: 4.85k, False: 0]
  ------------------
   59|  4.85k|        {
   60|  4.85k|            return r;
   61|  4.85k|        }
   62|  4.85k|    }
   63|  4.85k|}

_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEEC2ES6_:
  156|  4.85k|    sp_counted_impl_pd( P p ): ptr( p ), del()
  157|  4.85k|    {
  158|  4.85k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEE7disposeEv:
  161|  4.85k|    {
  162|  4.85k|        del( ptr );
  163|  4.85k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEE19get_untyped_deleterEv:
  176|  4.85k|    {
  177|  4.85k|        return &reinterpret_cast<char&>( del );
  178|  4.85k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEEC2ES6_:
  156|  4.85k|    sp_counted_impl_pd( P p ): ptr( p ), del()
  157|  4.85k|    {
  158|  4.85k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEE7disposeEv:
  161|  4.85k|    {
  162|  4.85k|        del( ptr );
  163|  4.85k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEE19get_untyped_deleterEv:
  176|  4.85k|    {
  177|  4.85k|        return &reinterpret_cast<char&>( del );
  178|  4.85k|    }

_ZN5boost11make_sharedINS_5beast4test6detail19stream_service_implEJEEENS_6detail15sp_if_not_arrayIT_E4typeEDpOT0_:
  223|  4.85k|{
  224|  4.85k|    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
  ------------------
  |  |  182|  4.85k|#define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >()
  ------------------
  225|       |
  226|  4.85k|    boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
  227|       |
  228|  4.85k|    void * pv = pd->address();
  229|       |
  230|  4.85k|    ::new( pv ) T( std::forward<Args>( args )... );
  231|  4.85k|    pd->set_initialized();
  232|       |
  233|  4.85k|    T * pt2 = static_cast< T* >( pv );
  234|       |
  235|  4.85k|    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
  236|  4.85k|    return boost::shared_ptr< T >( pt, pt2 );
  237|  4.85k|}
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEEC2Ev:
   69|  4.85k|    sp_ms_deleter() noexcept : initialized_( false )
   70|  4.85k|    {
   71|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEED2Ev:
   83|  4.85k|    {
   84|  4.85k|        destroy();
   85|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE7destroyEv:
   48|  9.70k|    {
   49|  9.70k|        if( initialized_ )
  ------------------
  |  Branch (49:13): [True: 4.85k, False: 4.85k]
  ------------------
   50|  4.85k|        {
   51|  4.85k|#if defined( __GNUC__ )
   52|       |
   53|       |            // fixes incorrect aliasing warning
   54|  4.85k|            T * p = reinterpret_cast< T* >( storage_.data_ );
   55|  4.85k|            p->~T();
   56|       |
   57|       |#else
   58|       |
   59|       |            reinterpret_cast< T* >( storage_.data_ )->~T();
   60|       |
   61|       |#endif
   62|       |
   63|  4.85k|            initialized_ = false;
   64|  4.85k|        }
   65|  9.70k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEEclEPS5_:
   88|  4.85k|    {
   89|  4.85k|        destroy();
   90|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE7addressEv:
   97|  4.85k|    {
   98|  4.85k|        return storage_.data_;
   99|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE15set_initializedEv:
  102|  4.85k|    {
  103|  4.85k|        initialized_ = true;
  104|  4.85k|    }
_ZN5boost11make_sharedINS_5beast4test6detail12stream_stateEJRNS_4asio15any_io_executorERNS_10shared_ptrINS3_19stream_service_implEEERPNS2_10fail_countEEEENS_6detail15sp_if_not_arrayIT_E4typeEDpOT0_:
  223|  4.85k|{
  224|  4.85k|    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
  ------------------
  |  |  182|  4.85k|#define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >()
  ------------------
  225|       |
  226|  4.85k|    boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
  227|       |
  228|  4.85k|    void * pv = pd->address();
  229|       |
  230|  4.85k|    ::new( pv ) T( std::forward<Args>( args )... );
  231|  4.85k|    pd->set_initialized();
  232|       |
  233|  4.85k|    T * pt2 = static_cast< T* >( pv );
  234|       |
  235|  4.85k|    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
  236|  4.85k|    return boost::shared_ptr< T >( pt, pt2 );
  237|  4.85k|}
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEEC2Ev:
   69|  4.85k|    sp_ms_deleter() noexcept : initialized_( false )
   70|  4.85k|    {
   71|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEED2Ev:
   83|  4.85k|    {
   84|  4.85k|        destroy();
   85|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE7destroyEv:
   48|  9.70k|    {
   49|  9.70k|        if( initialized_ )
  ------------------
  |  Branch (49:13): [True: 4.85k, False: 4.85k]
  ------------------
   50|  4.85k|        {
   51|  4.85k|#if defined( __GNUC__ )
   52|       |
   53|       |            // fixes incorrect aliasing warning
   54|  4.85k|            T * p = reinterpret_cast< T* >( storage_.data_ );
   55|  4.85k|            p->~T();
   56|       |
   57|       |#else
   58|       |
   59|       |            reinterpret_cast< T* >( storage_.data_ )->~T();
   60|       |
   61|       |#endif
   62|       |
   63|  4.85k|            initialized_ = false;
   64|  4.85k|        }
   65|  9.70k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEEclEPS5_:
   88|  4.85k|    {
   89|  4.85k|        destroy();
   90|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE7addressEv:
   97|  4.85k|    {
   98|  4.85k|        return storage_.data_;
   99|  4.85k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE15set_initializedEv:
  102|  4.85k|    {
  103|  4.85k|        initialized_ = true;
  104|  4.85k|    }

_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_NS_6detail14sp_inplace_tagINS7_13sp_ms_deleterIS4_EEEEEEPT_T0_:
  292|  4.85k|    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, static_cast< D&& >( d ) )
  293|  4.85k|    {
  294|  4.85k|        boost::detail::sp_deleter_construct( this, p );
  295|  4.85k|    }
_ZN5boost6detail20sp_deleter_constructINS_5beast4test6detail19stream_service_implES5_EEvPNS_10shared_ptrIT_EEPT0_:
  224|  4.85k|{
  225|  4.85k|    boost::detail::sp_enable_shared_from_this( ppx, p, p );
  226|  4.85k|}
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEE29_internal_get_untyped_deleterEv:
  624|  4.85k|    {
  625|  4.85k|        return pn.get_untyped_deleter();
  626|  4.85k|    }
_ZN5boost6detail26sp_enable_shared_from_thisEz:
  189|  19.4k|{
  190|  19.4k|}
_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS0_IT_EEPS4_:
  347|  4.85k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  4.85k|    {
  349|  4.85k|    }
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_NS_6detail14sp_inplace_tagINS7_13sp_ms_deleterIS4_EEEEEEPT_T0_:
  292|  4.85k|    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, static_cast< D&& >( d ) )
  293|  4.85k|    {
  294|  4.85k|        boost::detail::sp_deleter_construct( this, p );
  295|  4.85k|    }
_ZN5boost6detail20sp_deleter_constructINS_5beast4test6detail12stream_stateES5_EEvPNS_10shared_ptrIT_EEPT0_:
  224|  4.85k|{
  225|  4.85k|    boost::detail::sp_enable_shared_from_this( ppx, p, p );
  226|  4.85k|}
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEE29_internal_get_untyped_deleterEv:
  624|  4.85k|    {
  625|  4.85k|        return pn.get_untyped_deleter();
  626|  4.85k|    }
_ZN5boost6detail21sp_assert_convertibleINS_5beast4test6detail19stream_service_implES5_EEvv:
  197|  4.85k|{
  198|  4.85k|    static_assert( sp_convertible< Y, T >::value, "incompatible pointer type" );
  199|  4.85k|}
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_EERKNS0_IT_EEPS4_:
  347|  4.85k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  4.85k|    {
  349|  4.85k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEptEv:
  549|  43.6k|    {
  550|  43.6k|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|  43.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  551|  43.6k|        return px;
  552|  43.6k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEE3getEv:
  563|  4.85k|    {
  564|  4.85k|        return px;
  565|  4.85k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEEptEv:
  549|   475k|    {
  550|   475k|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|   475k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  551|   475k|        return px;
  552|   475k|    }
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_EERKNS_8weak_ptrIT_EENS_6detail14sp_nothrow_tagE:
  330|  4.85k|    noexcept : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() )
  331|  4.85k|    {
  332|  4.85k|        if( !pn.empty() )
  ------------------
  |  Branch (332:13): [True: 0, False: 4.85k]
  ------------------
  333|      0|        {
  334|      0|            px = r.px;
  335|      0|        }
  336|  4.85k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEEcvbEv:
  568|  4.85k|    {
  569|  4.85k|        return px != 0;
  570|  4.85k|    }
_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS_8weak_ptrIT_EENS_6detail14sp_nothrow_tagE:
  330|  4.85k|    noexcept : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() )
  331|  4.85k|    {
  332|  4.85k|        if( !pn.empty() )
  ------------------
  |  Branch (332:13): [True: 4.85k, False: 0]
  ------------------
  333|  4.85k|        {
  334|  4.85k|            px = r.px;
  335|  4.85k|        }
  336|  4.85k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEcvbEv:
  568|  4.85k|    {
  569|  4.85k|        return px != 0;
  570|  4.85k|    }

_ZN5boost8weak_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS_10shared_ptrIT_EENS_6detail24sp_enable_if_convertibleIS8_S4_E4typeE:
  102|  4.85k|    noexcept : px( r.px ), pn( r.pn )
  103|  4.85k|    {
  104|  4.85k|        boost::detail::sp_assert_convertible< Y, T >();
  105|  4.85k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail19stream_service_implEEC2EOS5_:
   87|  4.85k|    noexcept : px( r.px ), pn( static_cast< boost::detail::weak_count && >( r.pn ) )
   88|  4.85k|    {
   89|  4.85k|        r.px = 0;
   90|  4.85k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEEC2Ev:
   35|  9.70k|    constexpr weak_ptr() noexcept : px(0), pn()
   36|  9.70k|    {
   37|  9.70k|    }
_ZNK5boost8weak_ptrINS_5beast4test6detail12stream_stateEE4lockEv:
  150|  4.85k|    {
  151|  4.85k|        return shared_ptr<T>( *this, boost::detail::sp_nothrow_tag() );
  152|  4.85k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEE5resetEv:
  175|  4.85k|    {
  176|  4.85k|        this_type().swap(*this);
  177|  4.85k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEE4swapERS5_:
  180|  4.85k|    {
  181|  4.85k|        std::swap(px, other.px);
  182|  4.85k|        pn.swap(other.pn);
  183|  4.85k|    }
_ZNK5boost8weak_ptrINS_5beast4test6detail19stream_service_implEE4lockEv:
  150|  4.85k|    {
  151|  4.85k|        return shared_ptr<T>( *this, boost::detail::sp_nothrow_tag() );
  152|  4.85k|    }

_ZN5boost6system6detail11failed_implEiRKNS0_14error_categoryE:
  166|   125k|{
  167|   125k|    if( cat.id_ == system_category_id || cat.id_ == generic_category_id )
  ------------------
  |  Branch (167:9): [True: 14.5k, False: 111k]
  |  Branch (167:42): [True: 0, False: 111k]
  ------------------
  168|  14.5k|    {
  169|  14.5k|        return ev != 0;
  170|  14.5k|    }
  171|   111k|    else
  172|   111k|    {
  173|   111k|        return cat.failed( ev );
  174|   111k|    }
  175|   125k|}
_ZN5boost6system14error_categoryC2Ey:
   91|      1|    explicit constexpr error_category( boost::ulong_long_type id ) noexcept: id_( id ), stdcat_(), sc_init_()
   92|      1|    {
   93|      1|    }
_ZN5boost6systemeqERKNS0_14error_categoryES3_:
  112|  18.8k|    {
  113|  18.8k|        return rhs.id_ == 0? &lhs == &rhs: lhs.id_ == rhs.id_;
  ------------------
  |  Branch (113:16): [True: 3.73k, False: 15.1k]
  ------------------
  114|  18.8k|    }
_ZNK5boost6system14error_category6failedEi:
  107|   111k|    {
  108|   111k|        return ev != 0;
  109|   111k|    }

_ZN5boost6system10error_codeC2Ev:
  112|   323k|        d1_(), lc_flags_( 0 )
  113|   323k|    {
  114|   323k|    }
_ZN5boost6system10error_codeC2EiRKNS0_14error_categoryE:
  117|   125k|        d1_(), lc_flags_( 2 + detail::failed_impl( val, cat ) )
  118|   125k|    {
  119|   125k|        d1_.val_ = val;
  120|   125k|        d1_.cat_ = &cat;
  121|   125k|    }
_ZNK5boost6system10error_codecvbEv:
  306|   546k|    {
  307|   546k|        return failed();
  308|   546k|    }
_ZNK5boost6system10error_code6failedEv:
  288|   594k|    {
  289|   594k|        if( lc_flags_ & 1 )
  ------------------
  |  Branch (289:13): [True: 25.2k, False: 569k]
  ------------------
  290|  25.2k|        {
  291|  25.2k|            if( lc_flags_ == 1 )
  ------------------
  |  Branch (291:17): [True: 0, False: 25.2k]
  ------------------
  292|      0|            {
  293|      0|                std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
  294|      0|                return ec.value() != 0;
  295|      0|            }
  296|       |
  297|  25.2k|            return true;
  298|  25.2k|        }
  299|   569k|        else
  300|   569k|        {
  301|   569k|            return false;
  302|   569k|        }
  303|   594k|    }
_ZNK5boost6system10error_code5valueEv:
  201|   177k|    {
  202|   177k|        if( lc_flags_ != 1 )
  ------------------
  |  Branch (202:13): [True: 177k, False: 0]
  ------------------
  203|   177k|        {
  204|   177k|            return d1_.val_;
  205|   177k|        }
  206|      0|        else
  207|      0|        {
  208|      0|            std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
  209|       |
  210|      0|            unsigned cv = static_cast<unsigned>( ec.value() );
  211|      0|            unsigned ch = static_cast<unsigned>( reinterpret_cast<boost::uintptr_t>( &ec.category() ) % 2097143 ); // 2^21-9, prime
  212|       |
  213|      0|            return static_cast<int>( cv + 1000 * ch );
  214|      0|        }
  215|   177k|    }
_ZNK5boost6system10error_code8categoryEv:
  218|  41.5k|    {
  219|  41.5k|        if( lc_flags_ == 0 )
  ------------------
  |  Branch (219:13): [True: 0, False: 41.5k]
  ------------------
  220|      0|        {
  221|      0|            return system_category();
  222|      0|        }
  223|  41.5k|        else if( lc_flags_ == 1 )
  ------------------
  |  Branch (223:18): [True: 0, False: 41.5k]
  ------------------
  224|      0|        {
  225|      0|            return detail::interop_category();
  226|      0|        }
  227|  41.5k|        else
  228|  41.5k|        {
  229|  41.5k|            return *d1_.cat_;
  230|  41.5k|        }
  231|  41.5k|    }
_ZN5boost6system10error_code6assignERKS1_PKNS_15source_locationE:
  181|  17.2k|    {
  182|  17.2k|        *this = error_code( ec, loc );
  183|  17.2k|    }
_ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE:
  140|  17.2k|        d1_(), lc_flags_( 0 )
  141|  17.2k|    {
  142|  17.2k|        *this = ec;
  143|       |
  144|  17.2k|        if( ec.lc_flags_ != 0 && ec.lc_flags_ != 1 )
  ------------------
  |  Branch (144:13): [True: 17.2k, False: 0]
  |  Branch (144:34): [True: 17.2k, False: 0]
  ------------------
  145|  17.2k|        {
  146|  17.2k|            lc_flags_ = ( loc? reinterpret_cast<boost::uintptr_t>( loc ): 2 ) | ( ec.lc_flags_ & 1 );
  ------------------
  |  Branch (146:27): [True: 17.2k, False: 0]
  ------------------
  147|  17.2k|        }
  148|  17.2k|    }
_ZN5boost6system10error_codeC2INS_5beast4http5errorEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  62.0k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  62.0k|    {
  136|  62.0k|        *this = make_error_code( e );
  137|  62.0k|    }
_ZN5boost6system10error_code5clearEv:
  194|  35.3k|    {
  195|  35.3k|        *this = error_code();
  196|  35.3k|    }
_ZN5boost6system10error_codeaSINS_5beast4http5errorEEERNSt3__19enable_ifIXsr18is_error_code_enumIT_EE5valueES1_E4typeES8_:
  188|  1.17k|    {
  189|  1.17k|        *this = make_error_code( val );
  190|  1.17k|        return *this;
  191|  1.17k|    }
_ZN5boost6systemneERKNS0_10error_codeES3_:
  392|  36.6k|    {
  393|  36.6k|        return !( lhs == rhs );
  394|  36.6k|    }
_ZN5boost6systemeqERKNS0_10error_codeES3_:
  351|  88.9k|    {
  352|  88.9k|        bool s1 = lhs.lc_flags_ == 1;
  353|  88.9k|        bool s2 = rhs.lc_flags_ == 1;
  354|       |
  355|  88.9k|        if( s1 != s2 ) return false;
  ------------------
  |  Branch (355:13): [True: 0, False: 88.9k]
  ------------------
  356|       |
  357|  88.9k|        if( s1 && s2 )
  ------------------
  |  Branch (357:13): [True: 0, False: 88.9k]
  |  Branch (357:19): [True: 0, False: 0]
  ------------------
  358|      0|        {
  359|      0|            std::error_code const& e1 = *reinterpret_cast<std::error_code const*>( lhs.d2_ );
  360|      0|            std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( rhs.d2_ );
  361|       |
  362|      0|            return e1 == e2;
  363|      0|        }
  364|  88.9k|        else
  365|  88.9k|        {
  366|  88.9k|            return lhs.value() == rhs.value() && lhs.category() == rhs.category();
  ------------------
  |  Branch (366:20): [True: 18.8k, False: 70.0k]
  |  Branch (366:50): [True: 18.8k, False: 0]
  ------------------
  367|  88.9k|        }
  368|  88.9k|    }
_ZN5boost6system10error_codeC2INS_4asio5error11misc_errorsEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  44.1k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  44.1k|    {
  136|  44.1k|        *this = make_error_code( e );
  137|  44.1k|    }
_ZN5boost6system10error_code6assignEiRKNS0_14error_categoryE:
  171|  3.73k|    {
  172|  3.73k|        *this = error_code( val, cat );
  173|  3.73k|    }

_ZN5boost6system15system_categoryEv:
   79|  14.5k|{
   80|  14.5k|    return detail::system_cat_holder<void>::instance;
   81|  14.5k|}

