code: func ParseUUID(s string) UUID {
  	if len(s) == 36+9 {
  		if strings.ToLower(s[:9]) != "urn:uuid:" {
  			return nil
  		}
  		s = s[9:]
  	} else if len(s) != 36 {
  		return nil
  	}
  	if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {
  		return nil
  	}
  	uuid := make([]byte, 16)
  	for i, x := range []int{
  		0, 2, 4, 6,
  		9, 11,
  		14, 16,
  		19, 21,
  		24, 26, 28, 30, 32, 34} {
  		var v int64
  		var err error
  		if v, err = strconv.ParseInt(s[x:x+2], 16, 16); err != nil {
  			return nil
  		}
  		uuid[i] = byte(v)
  	}
  	return uuid
  }
docs: //
  // ParseUUID - parse the string to produce a UUID
  //