Generated code from  49187a81d1cc58a446a0b7d06ad37e26c29bef39