Copyright (C) 2005-2025 by Ivan Bondarev, Stanislav Mikhalkovich