#include #include using namespace std; using ll = long long; #define rep(i, s, t) for (ll i = s; i < (ll)(t); i++) #define all(x) begin(x), end(x) template bool chmin(T& x, T y) { return x > y ? (x = y, true) : false; } template bool chmax(T& x, T y) { return x < y ? (x = y, true) : false; } void solve() { ll h, w, sx, sy, x, y; cin >> h >> w >> sx >> sy >> x >> y; sx--, sy--, x--, y--; ll ans = h * w * 2; if (sx != x && sy != y) { ans -= h + w; if (sx + sy == x + y) { if (x < sx) { // y > sy // rep(i, x + 1, h) { // int j = x + y - i; // [x+y-h+1, y) // [0,y) // } ans -= min(y, x - h - 1); } else { // x > sx, y < sy // rep(i, 0, x) { // int j = x + y - i; // [y + 1, x + y + 1) // [y + 1, w) // } ans -= min(x, w - y - 1); } } else { // rep(i, 0, h) { // int j = sx + sy - i; // [sx+sy-h+1, sx + sy + 1) // } ans -= min(sx + sy + 1, h + w - sx - sy - 1); } if (sx - sy == x - y) { if (sx < x) { // rep(i, 0, x) { // int j = i - x + y; // [-x+y, y) // [0, y) // } ans -= min(y, x); } else { // rep(i, x + 1, h) { // int j = i - x + y; // [y + 1, h -x + y) // [y + 1, w) // } ans -= min(h - x - 1, w - y - 1); } } else { // rep(i, 0, h) { // int j = i - sx + sy; // [-sx+sy, h-sx+sy) // } ans -= min(h - sx + sy, w + sx - sy); } cout << ans << '\n'; } else { ans -= min(h - sx + sy, w + sx - sy); ans -= min(sx + sy + 1, h + w - sx - sy - 1); if (y == sy) { swap(h, w); swap(sx, sy); swap(x, y); } if (sx < h - 1 - sx) { x = h - 1 - x; sx = h - 1 - sx; } assert(x == sx); if (y < sy) { y = w - 1 - y; sy = w - 1 - sy; } ans -= h; ans -= y; int y2 = sx + sy; int y3 = sx * 2 + sy; // cout << ans << " ; " << y2 << ' ' << y3 << ' ' << y << ' ' << w << // endl; if (y3 < w) { ans += w - 1 - y3; } else { y3 -= (y3 - w + 1) / 2 * 2; } // cout << ans << " ; " << y2 << ' ' << y3 << ' ' << y << ' ' << w << // endl; int m = y3 - max(y2, y); ans += m / 2; cout << ans << '\n'; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); int t = 1; cin >> t; while (t--) solve(); }