@Override
	public void restoreBase64(Reader input,char[] buffer,WeightFactory wfactory,IDFLookup idflookup,int[] decode) throws IOException {
		ArrayList<HashEntry> hashlist = new ArrayList<HashEntry>();
		int returned;
		do {
			returned = input.read(buffer,0,112);
			for(int i=0;i<returned;i+=7) {
				HashEntry entry = new HashEntry();
				if (!entry.restoreBase64(buffer, i, decode, wfactory, idflookup))
					throw new IOException("Bad base64 encoding of LSHCosine vector");
				hashlist.add(entry);
			}
		} while( returned == 112);
		hash = new HashEntry[hashlist.size()];
		hashlist.toArray(hash);
		calcLength();
	}
Assuming -feature- is sorted and -hash- is empty, count the features and populate -hash- and -tf-
For every unique feature, look up its idf via -idflookup-
@param feature is the list of sorted hash features
@param wfactory is the WeightFactory used to decide feature weights
@param idflookup is the IDFLookup used to decide relative frequency of individual features
Ghidra/Framework/Generic/src/main/java/generic/lsh/vector/LSHCosineVector.java