code: func unmarshalRecipients(buf []byte) []string {
  	m := make(map[string]struct{}, 5)
  	scanner := bufio.NewScanner(bytes.NewReader(buf))
  
  	for scanner.Scan() {
  		line := strings.TrimSpace(scanner.Text())
  		if line != "" {
  			// deduplicate
  			m[line] = struct{}{}
  		}
  	}
  
  	lst := make([]string, 0, len(m))
  	for k := range m {
  		lst = append(lst, k)
  	}
  	// sort
  	sort.Strings(lst)
  
  	return lst
  }
docs: // unmarshal Recipients line by line from a io.Reader.