# File lib/ttfunk/table/kern/format0.rb, line 40
        def recode(mapping)
          subset = []
          pairs.each do |(left, right), value|
            if mapping[left] && mapping[right]
              subset << [mapping[left], mapping[right], value]
            end
          end

          return nil if subset.empty?

          num_pairs = subset.length
          search_range = 2 * 2 ** (Math.log(num_pairs) / Math.log(2)).to_i
          entry_selector = (Math.log(search_range / 2) / Math.log(2)).to_i
          range_shift = (2 * num_pairs) - search_range

          [attributes[:version], num_pairs * 6 + 14, attributes[:coverage],
            num_pairs, search_range, entry_selector, range_shift, subset].
            flatten.pack("n*")
        end