Characterizing Adaptation by Constraint