Подготовлено нашим внутренним волшебником Solidity @0xf4d3