Copyright (c) 2004-2020 Satoshi Suzuki All rights Reserved