Author: Yin Huihe.