code: func DecodeChannels(data []byte) ([]string, error) {
  	channels := []string{}
  	pos := 0
  	for pos < len(data) {
  		if pos+2 > len(data) {
  			return nil, fmt.Errorf("unable to decode size, pos=%v len=%v", pos, len(data))
  		}
  		cl := int(ByteOrder.Uint16(data[pos:]))
  		pos += encodedChannelLen
  		end := pos + cl
  		if end > len(data) {
  			return nil, fmt.Errorf("unable to decode channel, pos=%v len=%v max=%v (string=%v)",
  				pos, cl, len(data), string(data[pos:]))
  		}
  		c := string(data[pos:end])
  		channels = append(channels, c)
  		pos = end
  	}
  	return channels, nil
  }
docs: // DecodeChannels decodes from the given byte array the list of channel names
  // and return them as an array of strings.