//看看会不会爆int! #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define pb push_back #define mkp make_pair #define fi first #define se second #define FOR(i, l, r) for(int i = l; i <= r; i++) #define ROF(i, r, l) for(int i = r; i >= l; i--) #define all(a) a.begin(), a.end() int T; ll a, b, c, d; ll dfs(ll a, ll b, ll c, ll d, int i){ if(i < 0) return 0; ll aa = a & (1LL << i), bb = b & (1LL << i), cc = c & (1LL << i), dd = d & (1LL << i); if(aa == bb && cc == dd) return (aa ^ cc) + dfs(a - aa, b - bb, c - cc, d - dd, i - 1); if(aa == bb){ if(!aa) return (1LL << i) + dfs(a - aa, b - bb, 0, d - dd, i - 1); else return (1LL << i) + dfs(a - aa, b - bb, c - cc, (1LL << i) - 1, i - 1); }else if(cc == dd){ if(!cc) return (1LL << i) + dfs(0, b - bb, c - cc, d - dd, i - 1); else return (1LL << i) + dfs(a - aa, (1LL << i) - 1, c - cc, (1LL << i) - 1, i - 1); }else return (1LL << (i + 1)) - 1; } int main(){ cin >> T; while(T--){ scanf("%I64d%I64d%I64d%I64d", &a, &b, &c, &d); printf("%I64d\n", dfs(a, b, c, d, 59)); } return 0; } /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永无BUG */