#include <stdint.h>
class C64 {
uint64_t Value;
public:
C64 () : Value (0) { }
operator uint64_t () const { return Value; }
operator int64_t () const { return Value; }
void operator = (uint64_t S) { Value = S; }
void operator = (int64_t S) { Value = S; }
void operator = (int S) { Value = S; }
void operator = (unsigned int S) { Value = S; }
};
bool operator== (C64 a, int b) {
return (int64_t)a == b;
}
bool operator== (int a, C64 b) {
return b == a;
}
void f () {
C64 c;
int i = 0;
unsigned int ui = 0;
bool b = (c == 0);
c = i;
c = ui;
}
int main() {
f();
}
I2luY2x1ZGUgPHN0ZGludC5oPgoKY2xhc3MgQzY0IHsKCiAgdWludDY0X3QgVmFsdWU7CgogIHB1YmxpYzoKCiAgQzY0ICgpIDogVmFsdWUgKDApIHsgfQoKICBvcGVyYXRvciB1aW50NjRfdCAoKSBjb25zdCB7IHJldHVybiBWYWx1ZTsgfQogIG9wZXJhdG9yIGludDY0X3QgKCkgY29uc3QgeyByZXR1cm4gVmFsdWU7IH0KICB2b2lkIG9wZXJhdG9yID0gKHVpbnQ2NF90IFMpIHsgVmFsdWUgPSBTOyB9CiAgdm9pZCBvcGVyYXRvciA9IChpbnQ2NF90IFMpIHsgVmFsdWUgPSBTOyB9CiAgdm9pZCBvcGVyYXRvciA9IChpbnQgUykgeyBWYWx1ZSA9IFM7IH0KICB2b2lkIG9wZXJhdG9yID0gKHVuc2lnbmVkIGludCBTKSB7IFZhbHVlID0gUzsgfQp9OwoKYm9vbCBvcGVyYXRvcj09IChDNjQgYSwgaW50IGIpIHsKCXJldHVybiAoaW50NjRfdClhID09IGI7Cn0KCmJvb2wgb3BlcmF0b3I9PSAoaW50IGEsIEM2NCBiKSB7CglyZXR1cm4gYiA9PSBhOwp9Cgp2b2lkIGYgKCkgewoKICBDNjQgYzsKCiAgaW50IGkgPSAwOwogIHVuc2lnbmVkIGludCB1aSA9IDA7CgogIGJvb2wgYiA9IChjID09IDApOwoKICBjID0gaTsKICBjID0gdWk7Cgp9CgppbnQgbWFpbigpIHsKCWYoKTsKfQ==