public static PerClause readPerClause(DataInputStream s, ISourceContext context) throws IOException {
public static PerClause readPerClause(VersionedDataInputStream s, ISourceContext context) throws IOException {
	public static PerClause readPerClause(DataInputStream s, ISourceContext context) throws IOException {		Kind kind = Kind.read(s);		if (kind == SINGLETON) return PerSingleton.readPerClause(s, context);		else if (kind == PERCFLOW) return PerCflow.readPerClause(s, context);		else if (kind == PEROBJECT) return PerObject.readPerClause(s, context);		else if (kind == FROMSUPER) return PerFromSuper.readPerClause(s, context);					throw new BCException("unknown kind: " + kind);	}