Contributed by Fabrizio Schiavi
Contributed by Karl Stefan Andersson
Contributed by TypeMates
Contributed by Florian Hardwig