Написано, вроде не очень, но пока дописал до последней точки пробрало до слез.

читать дальше