def retrieve_blob(address)
      unless address > 0
        PEROBS.log.fatal "Blob retrieval address must be larger than 0, " +
          "not #{address}"
      end

      begin
        if (offset = address_to_offset(address)) >= @f.size
          PEROBS.log.fatal "Cannot retrieve blob at address #{address} " +
            "of EquiBlobsFile #{@file_name}. Address is beyond end of file."
        end

        @f.seek(address_to_offset(address))
        if (marker = read_char) != 2
          PEROBS.log.fatal "Cannot retrieve blob at address #{address} " +
            "of EquiBlobsFile #{@file_name}. Blob is " +
            (marker == 0 ? 'empty' : marker == 1 ? 'reserved' : 'corrupted') +
            '.'
        end
        bytes = @f.read(@entry_bytes)
      rescue IOError => e
        PEROBS.log.fatal "Cannot retrieve blob at adress #{address} " +
          "of EquiBlobsFile #{@file_name}: " + e.message
      end

      bytes
    end
def retrieve_blob(address)
      unless address > 0
        PEROBS.log.fatal "Blob retrieval address must be larger than 0, " +
          "not #{address}"
      end

      begin
        if (offset = address_to_offset(address)) >= @f.size
          PEROBS.log.fatal "Cannot retrieve blob at address #{address} " +
            "of EquiBlobsFile #{@file_name}. Address is beyond end of file."
        end

        @f.seek(address_to_offset(address))
        if (marker = read_char) != 2
          PEROBS.log.fatal "Cannot retrieve blob at address #{address} " +
            "of EquiBlobsFile #{@file_name}. Blob is " +
            (marker == 0 ? 'empty' : marker == 1 ? 'reserved' : 'corrupted') +
            '.'
        end
        bytes = @f.read(@entry_bytes)
      rescue IOError => e
        PEROBS.log.fatal "Cannot retrieve blob at adress #{address} " +
          "of EquiBlobsFile #{@file_name}: " + e.message
      end

      bytes
    end
Retrieve a blob from the given address.
 @param address [Integer] Address to store the blob
 @return [String] blob bytes