Copyright (C) 1999-2015 KIRINON