#include <bits/stdc++.h>
using namespace std;
#define all(v) (v).begin(),(v).end()
int main() {
int n;
while (cin >> n) {
if (n == 0) {
cout << 0 << '\n';
continue;
}
vector<int> x1(n), x2(n), y1(n), y2(n);
vector<int> allx, ally;
for (int i = 0; i < n; i++) {
cin >> x1[i] >> y1[i] >> x2[i] >> y2[i];
allx.push_back(x1[i]);
allx.push_back(x2[i]);
ally.push_back(y1[i]);
ally.push_back(y2[i]);
}
sort(all(allx));
sort(all(ally));
allx.resize(unique(all(allx)) - allx.begin());
ally.resize(unique(all(ally)) - ally.begin());
int cntx = allx.size();
int cnty = ally.size();
vector<vector<int>> d(cntx + 1, vector<int>(cnty + 1));
for (int i = 0; i < n; i++) {
int i1 = lower_bound(all(allx), x1[i]) - allx.begin();
int i2 = lower_bound(all(allx), x2[i]) - allx.begin();
int j1 = lower_bound(all(ally), y1[i]) - ally.begin();
int j2 = lower_bound(all(ally), y2[i]) - ally.begin();
d[i1][j1]++;
d[i1][j2]--;
d[i2][j1]--;
d[i2][j2]++;
}
for (int i = 0; i <= cntx; i++) {
for (int j = 0; j <= cnty; j++) {
if (i > 0) d[i][j] += d[i - 1][j];
if (j > 0) d[i][j] += d[i][j - 1];
if (i > 0 && j > 0) d[i][j] -= d[i - 1][j - 1];
}
}
long long ans = 0;
for (int i = 0; i < cntx; i++) {
for (int j = 0; j < cnty; j++) {
if (d[i][j] > 0) {
long long dx = allx[i + 1] - allx[i];
long long dy = ally[j + 1] - ally[j];
ans += dx * dy;
}
}
}
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCh2KS5lbmQoKQoKaW50IG1haW4oKSB7CglpbnQgbjsKCXdoaWxlIChjaW4gPj4gbikgewoJCWlmIChuID09IDApIHsKCQkJY291dCA8PCAwIDw8ICdcbic7CgkJCWNvbnRpbnVlOwoJCX0KCQl2ZWN0b3I8aW50PiB4MShuKSwgeDIobiksIHkxKG4pLCB5MihuKTsKCQl2ZWN0b3I8aW50PiBhbGx4LCBhbGx5OwoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCWNpbiA+PiB4MVtpXSA+PiB5MVtpXSA+PiB4MltpXSA+PiB5MltpXTsKCQkJYWxseC5wdXNoX2JhY2soeDFbaV0pOwoJCQlhbGx4LnB1c2hfYmFjayh4MltpXSk7CgkJCWFsbHkucHVzaF9iYWNrKHkxW2ldKTsKCQkJYWxseS5wdXNoX2JhY2soeTJbaV0pOwoJCX0KCQlzb3J0KGFsbChhbGx4KSk7CgkJc29ydChhbGwoYWxseSkpOwoJCWFsbHgucmVzaXplKHVuaXF1ZShhbGwoYWxseCkpIC0gYWxseC5iZWdpbigpKTsKCQlhbGx5LnJlc2l6ZSh1bmlxdWUoYWxsKGFsbHkpKSAtIGFsbHkuYmVnaW4oKSk7CgkJaW50IGNudHggPSBhbGx4LnNpemUoKTsKCQlpbnQgY250eSA9IGFsbHkuc2l6ZSgpOwoJCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gZChjbnR4ICsgMSwgdmVjdG9yPGludD4oY250eSArIDEpKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCQlpbnQgaTEgPSBsb3dlcl9ib3VuZChhbGwoYWxseCksIHgxW2ldKSAtIGFsbHguYmVnaW4oKTsKCQkJaW50IGkyID0gbG93ZXJfYm91bmQoYWxsKGFsbHgpLCB4MltpXSkgLSBhbGx4LmJlZ2luKCk7CgkJCWludCBqMSA9IGxvd2VyX2JvdW5kKGFsbChhbGx5KSwgeTFbaV0pIC0gYWxseS5iZWdpbigpOwoJCQlpbnQgajIgPSBsb3dlcl9ib3VuZChhbGwoYWxseSksIHkyW2ldKSAtIGFsbHkuYmVnaW4oKTsKCQkJZFtpMV1bajFdKys7CgkJCWRbaTFdW2oyXS0tOwoJCQlkW2kyXVtqMV0tLTsKCQkJZFtpMl1bajJdKys7CgkJfQoJCWZvciAoaW50IGkgPSAwOyBpIDw9IGNudHg7IGkrKykgewoJCQlmb3IgKGludCBqID0gMDsgaiA8PSBjbnR5OyBqKyspIHsKCQkJCWlmIChpID4gMCkgZFtpXVtqXSArPSBkW2kgLSAxXVtqXTsKCQkJCWlmIChqID4gMCkgZFtpXVtqXSArPSBkW2ldW2ogLSAxXTsKCQkJCWlmIChpID4gMCAmJiBqID4gMCkgZFtpXVtqXSAtPSBkW2kgLSAxXVtqIC0gMV07CgkJCX0KCQl9CgkJbG9uZyBsb25nIGFucyA9IDA7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBjbnR4OyBpKyspIHsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjbnR5OyBqKyspIHsKCQkJCWlmIChkW2ldW2pdID4gMCkgewoJCQkJCWxvbmcgbG9uZyBkeCA9IGFsbHhbaSArIDFdIC0gYWxseFtpXTsKCQkJCQlsb25nIGxvbmcgZHkgPSBhbGx5W2ogKyAxXSAtIGFsbHlbal07CgkJCQkJYW5zICs9IGR4ICogZHk7CgkJCQl9CgkJCX0KCQl9CgkJY291dCA8PCBhbnMgPDwgJ1xuJzsKCX0KfQo=