BufferedReader reader = new BufferedReader(new InputStreamReader(input, "ascii"));
readMetadata(reader);
// internal var name -> original var name
OpenIntIntHashMap internalToOriginalMap = new OpenIntIntHashMap();
// original var name -> internal var name
OpenIntIntHashMap sourceIndices = new OpenIntIntHashMap();
IntArrayList sourceValues = readSourceValues(reader, sourceIndices);
for (int originalVarName : sourceIndices.keys().elements())
{
internalToOriginalMap.put(sourceIndices.get(originalVarName), originalVarName);
}
IntArrayList values = new IntArrayList();
for (int i = 0; i < sourceValues.size(); i++)
{
int sourceVar = sourceValues.get(i);
if (sourceVar != 0)
{
int sign = sourceVar > 0 ? 1 : -1;
int var = sign * sourceIndices.get(Math.abs(sourceVar));
values.add(var);
}
else
{
if(!values.isEmpty())