code: func readFieldPaths(r *reader) []*fieldPath {
  	fp := newFieldPath()
  
  	node, next := huffTree, huffTree
  
  	paths := []*fieldPath{}
  
  	for !fp.done {
  		if r.readBits(1) == 1 {
  			next = node.Right()
  		} else {
  			next = node.Left()
  		}
  
  		if next.IsLeaf() {
  			node = huffTree
  			fieldPathTable[next.Value()].fn(r, fp)
  			if !fp.done {
  				paths = append(paths, fp.copy())
  			}
  		} else {
  			node = next
  		}
  	}
  
  	fp.release()
  
  	return paths
  }
docs: // readFieldPaths reads a new slice of fieldPath values from the given reader