Generated code from  c10f2c3e0d13664677f3787445409c2cff948331