code: func (o *Generator) NewV2(idType SystemId) UUID {
  	o.read()
  
  	id := UUID{}
  
  	var osId uint32
  
  	switch idType {
  	case SystemIdUser:
  		osId = uint32(os.Getuid())
  	case SystemIdGroup:
  		osId = uint32(os.Getgid())
  	case SystemIdEffectiveUser:
  		osId = uint32(os.Geteuid())
  	case SystemIdEffectiveGroup:
  		osId = uint32(os.Getegid())
  	case SystemIdCallerProcess:
  		osId = uint32(os.Getpid())
  	case SystemIdCallerProcessParent:
  		osId = uint32(os.Getppid())
  	}
  
  	makeUuid(&id,
  		osId,
  		uint16(o.Timestamp>>32),
  		uint16(o.Timestamp>>48),
  		uint16(o.Sequence),
  		o.Node)
  
  	id[9] = byte(idType)
  	id.setRFC4122Version(VersionTwo)
  	return id
  }
docs: // NewV2 generates a new DCE version 2 UUID based on a 60 bit timestamp, node id
  // and the id of the given Id type.