Generated code from  6ba22116610a4e8a058b252553bb283676d80a6b