Полный вариант под катом C: