str << [geometry.length,
            geometry.reduce(0) { |a, e| a + e.length }
          ].pack('V2')
          # last element of the previous array is dropped
          str << geometry.reduce([0]) do |a, e|