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