#include <iostream> 
using  namespace  std; 
 
struct  Medium { 
	Medium( )  {  std:: cout  <<  "Medium ctor\n " ;  } 
	Medium( const  Medium&  rhs)  {  std:: cout  <<  "Medium copy ctor\n " ;  } 
	Medium&  operator= ( const  Medium&  rhs)  {  std:: cout  <<  "Medium operator=\n " ;  } 
} ; 
 
class  Wrapper { 
	Medium medium; 
public : 
	void  set_state( Medium medium) 
	{ 
		this- > medium =  medium; 
	} 
} ; 
 
int  main( )  { 
	std:: cout  <<  "*Creating w\n " ; 
	Wrapper w; 
	std:: cout  <<  "*creating Medium\n " ; 
	Medium m; 
	std:: cout  <<  "*calling set_state\n " ; 
	w.set_state ( m) ; 
	std:: cout  <<  "*calling set_State(Medium())\n " ; 
	w.set_state ( Medium( ) ) ; 
} 
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE1lZGl1bSB7CglNZWRpdW0oKSB7IHN0ZDo6Y291dCA8PCAiTWVkaXVtIGN0b3JcbiI7IH0KCU1lZGl1bShjb25zdCBNZWRpdW0mIHJocykgeyBzdGQ6OmNvdXQgPDwgIk1lZGl1bSBjb3B5IGN0b3JcbiI7IH0KCU1lZGl1bSYgb3BlcmF0b3I9KGNvbnN0IE1lZGl1bSYgcmhzKSB7IHN0ZDo6Y291dCA8PCAiTWVkaXVtIG9wZXJhdG9yPVxuIjsgfQp9OwoKY2xhc3MgV3JhcHBlciB7CglNZWRpdW0gbWVkaXVtOwpwdWJsaWM6Cgl2b2lkIHNldF9zdGF0ZShNZWRpdW0gbWVkaXVtKQoJewoJCXRoaXMtPm1lZGl1bSA9IG1lZGl1bTsKCX0KfTsKCmludCBtYWluKCkgewoJc3RkOjpjb3V0IDw8ICIqQ3JlYXRpbmcgd1xuIjsKCVdyYXBwZXIgdzsKCXN0ZDo6Y291dCA8PCAiKmNyZWF0aW5nIE1lZGl1bVxuIjsKCU1lZGl1bSBtOwoJc3RkOjpjb3V0IDw8ICIqY2FsbGluZyBzZXRfc3RhdGVcbiI7Cgl3LnNldF9zdGF0ZShtKTsKCXN0ZDo6Y291dCA8PCAiKmNhbGxpbmcgc2V0X1N0YXRlKE1lZGl1bSgpKVxuIjsKCXcuc2V0X3N0YXRlKE1lZGl1bSgpKTsKfQ==