Поскольку заказчик кинул, выкладываю