Generated code from  ea820e0c18903b7f2fb19dea8c585bf039b27f46