- std::string wtoa(const std::wstring& input) { 
-     std::string r(WideCharToMultiByte(CP_UTF8, 0, input.c_str(), input.size(), 0, 0, 0, 0), 0); 
-     WideCharToMultiByte(CP_UTF8, 0, input.c_str(), input.size(), &r[0], r.size(), 0, 0); 
-     return r; 
- } 
- std::wstring atow(const std::string& input) { 
-     std::wstring r(MultiByteToWideChar(CP_UTF8, 0, input.c_str(), input.size(), 0, 0), 0); 
-     MultiByteToWideChar(CP_UTF8, 0, input.c_str(), input.size(), &r[0], r.size()); 
-     return r; 
- } 
				c3RkOjpzdHJpbmcgd3RvYShjb25zdCBzdGQ6OndzdHJpbmcmIGlucHV0KSB7CiAgICBzdGQ6OnN0cmluZyByKFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfVVRGOCwgMCwgaW5wdXQuY19zdHIoKSwgaW5wdXQuc2l6ZSgpLCAwLCAwLCAwLCAwKSwgMCk7CiAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX1VURjgsIDAsIGlucHV0LmNfc3RyKCksIGlucHV0LnNpemUoKSwgJnJbMF0sIHIuc2l6ZSgpLCAwLCAwKTsKICAgIHJldHVybiByOwp9CnN0ZDo6d3N0cmluZyBhdG93KGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dCkgewogICAgc3RkOjp3c3RyaW5nIHIoTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9VVEY4LCAwLCBpbnB1dC5jX3N0cigpLCBpbnB1dC5zaXplKCksIDAsIDApLCAwKTsKICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfVVRGOCwgMCwgaW5wdXQuY19zdHIoKSwgaW5wdXQuc2l6ZSgpLCAmclswXSwgci5zaXplKCkpOwogICAgcmV0dXJuIHI7Cn0=