Contributed by Kirill Gluschenko
Contributed by Zoran Pungerčar
Contributed by Nguyen Gobber
Contributed by Jono Lewarne
Contributed by Yevgeniy Anfalov
Contributed by Pavel Kedich