http://www.cnblogs.com/skyseraph/archive/2012/03/31/2427593.html
http://www.cnblogs.com/lingyunhu/p/3621057.html
http://www.blog.chinaunix.net/uid-23602891-id-3333295.html