// Path: src/omr/QuestionGroup.java
// public enum Orientation {
// 	VERTICAL("vertical"), HORIZONTAL("horizontal"), STUDENT_NUMBER("student-number"), CHECK_LETTER("check-letter");
//     	
// 	private String name;
// 	private Orientation(String name) {
// 		this.name = name;
// 	}
//     	
// 	@Override
//     public String toString() {
// 		return this.name;
// 	}
// };


import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.AbstractList;
import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;
import javax.imageio.ImageIO;
import omr.QuestionGroup.Orientation;
import org.imgscalr.Scalr;
                    if (choices[row][col] == 0 && (overrideChoices == null || overrideChoices[row][col] == 0)) {
                        this.answersValid = false;
                        return;
                    }
                }
            }
        }

        this.answersValid = true;
    }

    /**
     * Returns the selected alternatives as a string.
     *
     * @param group    Question group
     * @param question Number of the question in the group [0,n].
     * @return e.g. "AC", null if choices have not been calculated by calling analyze().
     */
    public String getChoices(QuestionGroup group, int question) {
        if (this.choices == null) {
            return null;
        }

        int[][] choices = this.choices.get(group);
        if (choices == null) {
            return null;
        }

        String result = "";

// Path: src/omr/QuestionGroup.java
// public enum Orientation {
// 	VERTICAL("vertical"), HORIZONTAL("horizontal"), STUDENT_NUMBER("student-number"), CHECK_LETTER("check-letter");
//     	
// 	private String name;
// 	private Orientation(String name) {
// 		this.name = name;
// 	}
//     	
// 	@Override
//     public String toString() {
// 		return this.name;
// 	}
// };


// Path: src/omr/Sheet.java
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.AbstractList;
import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;
import javax.imageio.ImageIO;
import omr.QuestionGroup.Orientation;
import org.imgscalr.Scalr;

                    if (choices[row][col] == 0 && (overrideChoices == null || overrideChoices[row][col] == 0)) {
                        this.answersValid = false;
                        return;
                    }
                }
            }
        }

        this.answersValid = true;
    }

    /**
     * Returns the selected alternatives as a string.
     *
     * @param group    Question group
     * @param question Number of the question in the group [0,n].
     * @return e.g. "AC", null if choices have not been calculated by calling analyze().
     */
    public String getChoices(QuestionGroup group, int question) {
        if (this.choices == null) {
            return null;
        }

        int[][] choices = this.choices.get(group);
        if (choices == null) {
            return null;
        }

        String result = "";

        if (group.getOrientation() == Orientation.CHECK_LETTER) {