code: func (g *rfc4122Generator) getClockSequence() (uint64, uint16, error) {
  	var err error
  	g.clockSequenceOnce.Do(func() {
  		buf := make([]byte, 2)
  		if _, err = io.ReadFull(g.rand, buf); err != nil {
  			return
  		}
  		g.clockSequence = binary.BigEndian.Uint16(buf)
  	})
  	if err != nil {
  		return 0, 0, err
  	}
  
  	g.storageMutex.Lock()
  	defer g.storageMutex.Unlock()
  
  	timeNow := g.getEpoch()
  	// Clock didn't change since last UUID generation.
  	// Should increase clock sequence.
  	if timeNow <= g.lastTime {
  		g.clockSequence++
  	}
  	g.lastTime = timeNow
  
  	return timeNow, g.clockSequence, nil
  }
docs: // Returns epoch and clock sequence.