Кросспост для алчущих. Он просто мног, поэтому под катом