          if (thneed->record & THNEED_VERBOSE_DEBUG) {
            hexdump((uint32_t *)prop->value, prop->sizebytes);
            if (prop->type == KGSL_PROP_PWR_CONSTRAINT) {
              struct kgsl_device_constraint *constraint = (struct kgsl_device_constraint *)prop->value;
              hexdump((uint32_t *)constraint->data, constraint->size);
            }
          }
        }
      } else if (request == IOCTL_KGSL_DRAWCTXT_CREATE || request == IOCTL_KGSL_DRAWCTXT_DESTROY) {
        // this happens
 
</s> remove           hexdump((uint32_t *)prop->value, prop->sizebytes);
 </s> add           hexdump((uint8_t *)prop->value, prop->sizebytes); </s> remove   for (int i = 0; i < len/4; i++) {
    if (i != 0 && (i%0x10) == 0) printf("\n");
    printf("%8x ", d[i]);
  }
  printf("\n");
 </s> add   printf("%s\n", util::hexdump(d, len).c_str()); </s> remove inline void sleep_for(const int milliseconds) {
  std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
 </s> add std::string hexdump(const uint8_t* in, const size_t size); </s> remove std::string tohex(const uint8_t *buf, size_t buf_size) {
  std::unique_ptr<char[]> hexbuf(new char[buf_size * 2 + 1]);
  for (size_t i = 0; i < buf_size; i++) {
    sprintf(&hexbuf[i * 2], "%02x", buf[i]);
 </s> add std::string hexdump(const uint8_t* in, const size_t size) {
  std::stringstream ss;
  ss << std::hex << std::setfill('0');
  for (size_t i = 0; i < size; i++) {
    ss << std::setw(2) << static_cast<unsigned int>(in[i]); </s> remove   std::stringstream ss;
  for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) {
    ss << std::hex << std::setw(2) << std::setfill('0') << (int)hash[i];
  }
  return ss.str();
 </s> add   return util::hexdump(hash, SHA256_DIGEST_LENGTH);
            hexdump((uint8_t *)constraint->data, constraint->size);
          if (thneed->record & THNEED_VERBOSE_DEBUG) {
            hexdump((uint32_t *)prop->value, prop->sizebytes);
            if (prop->type == KGSL_PROP_PWR_CONSTRAINT) {
              struct kgsl_device_constraint *constraint = (struct kgsl_device_constraint *)prop->value;
            hexdump((uint8_t *)constraint->data, constraint->size);
            }
          }
        }
      } else if (request == IOCTL_KGSL_DRAWCTXT_CREATE || request == IOCTL_KGSL_DRAWCTXT_DESTROY) {
        // this happens
keep keep keep keep replace keep keep keep keep keep
 util: remove function to_hex (#22792) 
selfdrive/modeld/thneed/thneed.cc