text: import binascii
  import os
  
  
  class Utils:
      @staticmethod
      def random_hex_string(length: int):
          buffer = os.urandom(int(length / 2))
          return Utils.bytes_to_hex(buffer)
  
      @staticmethod
      def truncate_middle(s: str, length: int) -> str:
          if length <= 1:
              raise TypeError()
  
          first = length / 2
          result = s[:first]
          result += "..."
          result += s[len(s) - (length - first):]
          return result
  
      @staticmethod
      def split(s: str, c: str):
          return s.split(c)
  
      @staticmethod
      def to_byte_array(i: int) -> bytes:
          width = i.bit_length()
          width += 8 - ((width % 8) or 8)
          fmt = '%%0%dx' % (width // 4)
          if i == 0:
              return bytes([0])
          return binascii.unhexlify(fmt % i)
  
      @staticmethod
      def bytes_to_hex(buffer: bytes) -> str:
          return binascii.hexlify(buffer).decode()
  
      @staticmethod
      def hex_to_bytes(s: str) -> bytes:
          return binascii.unhexlify(s)
  