Copyright (C) Madeline.