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