Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors.