func Parse(input []byte) (text []byte, list List) {
	m := parse.Bytes(input)
	text = m.Text
	if len(m.List) > 0 {
		list = make(List, len(m.List))
		for i, v := range m.List {
			list[i] = string(v)
		}
	}
	m.Release()
	return text, list
}
func Parse(input []byte) (text []byte, list List) {
	m := parse.Bytes(input)
	text = m.Text
	if len(m.List) > 0 {
		list = make(List, len(m.List))
		for i, v := range m.List {
			list[i] = string(v)
		}
	}
	m.Release()
	return text, list
}
// Parse parses the input and reports the message text,
// and the list of key/value pairs.
//
// The text slice, if non-nil, points to the same backing
// array as input.