code: func EncodeReverseOrderVarUint64(number uint64) []byte {
  	bytes := make([]byte, 8)
  	binary.BigEndian.PutUint64(bytes, math.MaxUint64-number)
  	numFFBytes := 0
  	for _, b := range bytes {
  		if b != 0xff {
  			break
  		}
  		numFFBytes++
  	}
  	size := 8 - numFFBytes
  	encodedBytes := make([]byte, size+1)
  	encodedBytes[0] = proto.EncodeVarint(uint64(numFFBytes))[0]
  	copy(encodedBytes[1:], bytes[numFFBytes:])
  	return encodedBytes
  }
docs: // EncodeReverseOrderVarUint64 returns a byte-representation for a uint64 number such that
  // the number is first subtracted from MaxUint64 and then all the leading 0xff bytes
  // are trimmed and replaced by the number of such trimmed bytes. This helps in reducing the size.
  // In the byte order comparison this encoding ensures that EncodeReverseOrderVarUint64(A) > EncodeReverseOrderVarUint64(B),
  // If B > A