Author: Yury Yurevich <the.pythy@gmail.com>
Contributors:
 - Alexandr Zamaraev
 - Victor Safronovich
