Generated code from  be5b38b2780f9fd10b072613882c9990418df267