Contributed by Christoffer Leka
Contributed by Adelina Shaydullina
Contributed by Yury Ostromentsky
Contributed by Florian Hardwig