import core.thread; import std.conv, std.stdio, std.string; import std.algorithm, std.array, std.bigint, std.container, std.math, std.range, std.regex; // Input class EOFException : Throwable { this() { super("EOF"); } } string[] tokens; string readToken() { for (; tokens.empty; ) { tokens = readln.split; if (stdin.eof) throw new EOFException; } auto token = tokens[0]; tokens.popFront; return token; } int readInt() { return to!int(readToken); } long readLong() { return to!long(readToken); } real readReal() { return to!real(readToken); } // chmin/chmax void chmin(T)(ref T t, in T f) { if (t > f) t = f; } void chmax(T)(ref T t, in T f) { if (t < f) t = f; } // Pair struct Pair(S, T) { S x; T y; int opCmp( const Pair p) const { return (x < p.x) ? -1 : (x > p.x) ? +1 : (y < p.y) ? -1 : (y > p.y) ? +1 : 0; } int opCmp(ref const Pair p) const { return (x < p.x) ? -1 : (x > p.x) ? +1 : (y < p.y) ? -1 : (y > p.y) ? +1 : 0; } string toString() const { return "(" ~ to!string(x) ~ ", " ~ to!string(y) ~ ")"; } } auto pair(S, T)(inout(S) x, inout(T) y) { return Pair!(S, T)(x, y); } // Array int binarySearch(T)(in T[] as, in bool delegate(T) test) { int low = -1, upp = as.length; for (; low + 1 < upp; ) { int mid = (low + upp) >> 1; (test(as[mid]) ? low : upp) = mid; } return upp; } int lowerBound(T)(in T[] as, in T val) { return as.binarySearch((T a) { return (a < val); }); } int upperBound(T)(in T[] as, in T val) { return as.binarySearch((T a) { return (a <= val); }); } T[] unique(T)(in T[] as) { T[] bs; foreach (a; as) if (bs.empty || bs[$ - 1] != a) bs ~= a; return bs; } immutable long MO = 10^^9 + 7; immutable long LIM = 20005; long mod(long x) { return x % MO; } /* $a $b $c [a0<=a<=a1] [b0<=b<=b1] [c0<=c<=c1] (1-[a=b]) (1-[a=c]) (1-[b=c]) */ long calc(long a0, long b0, long c0, long a1, long b1, long c1) { long res = 0; if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 2 + 2 * b1 - 2 * b0); if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))); if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * b0); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && c0 <= b0) res = mod(res + 2 - 2 * b0 + 2 * a1); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - c1 + c0))); if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1) res = mod(res + 2 - 2 * c0 + 2 * b1); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0); if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))); if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1) res = mod(res + 2 - 2 * c0 + 2 * a1); if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && b0 <= b1) res = mod(res + -1 + c0 + mod(b1 * mod(-1 + c0)) + mod(b0 * mod(1 - c0)) + mod(a1 * mod(-1 - b1 + b0))); if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && a0 <= b1 && b1 <= c1) res = mod(res + 2 + 2 * b1 - 2 * a0); if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0))); if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && a0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * a0); if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && b0 <= b1) res = mod(res + -1 - c1 + mod(b1 * mod(-1 - c1)) + mod(b0 * mod(1 + c1)) + mod(a0 * mod(1 + b1 - b0))); if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(a1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0))); if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1) res = mod(res + -1 + c0 - b1 + mod(a1 * mod(-1 + c0 - b1)) + mod(a0 * mod(1 - c0 + b1))); if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && b0 <= c1) res = mod(res + -1 - c1 + b0 + mod(a1 * mod(-1 - c1 + b0)) + mod(a0 * mod(1 + c1 - b0))); if (b0 <= a0 && c0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1) res = mod(res + 2 + 2 * a1 - 2 * a0); if (b0 <= a0 && a0 <= a1 && a1 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(a1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0))); if (c0 <= a0 && a0 <= a1 && a1 <= c1 && b0 <= b1) res = mod(res + -1 - b1 + b0 + mod(a1 * mod(-1 - b1 + b0)) + mod(a0 * mod(1 + b1 - b0))); if (a0 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + -1 - b1 + b0 + mod(a1 * mod(-1 - b1 + b0)) + mod(a0 * mod(1 + b1 - b0))); if (a0 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0)) + mod(a1 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0)))) + mod(a0 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))))); return res; } /* $a$b$c$d [a0<=a<=a1] [b0<=b<=b1] [c0<=c<=c1] [d0<=d<=d1] (1-[a=b]) (1-[a=c]) (1-[a=d]) (1-[b=c]) (1-[b=d]) (1-[c=d]) */ long calc(long a0, long b0, long c0, long d0, long a1, long b1, long c1, long d1) { long res = 0; if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))); if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + c0 <= d0 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b1 * mod(1 - d0 + c1)) + mod(b0 * mod(-1 + d0 - c1))); if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + d1 <= c1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b1 * mod(1 + d1 - c0)) + mod(b0 * mod(-1 - d1 + c0))); if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 - 6 * b1 + 6 * b0); if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 * d1 - 2 * d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + a0 <= b0 && 1 + b1 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 * c0)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))); if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && d0 <= b0 && b0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * b0); if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 - 2 * d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + a0 <= b0 && 1 + d1 <= a1 && 1 + d1 <= b1 && 1 + d1 <= c1 && c0 <= b0 && d0 <= b0 && b0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * b0); if (1 + a0 <= b0 && 1 + d1 <= a1 && 1 + d1 <= b1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * d1 + mod(c1 * mod(2 + 2 * d1)) + mod(c0 * mod(-2 - 2 * d1)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + a0 <= b0 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a1 && a1 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b0 * mod(-1 - d1 + d0)) + mod(a1 * mod(1 + d1 - d0))); if (1 + a0 <= b0 && 1 + c0 <= d0 && b0 <= a1 && a1 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b0 * mod(-1 + d0 - c1)) + mod(a1 * mod(1 - d0 + c1))); if (1 + a0 <= b0 && 1 + d1 <= c1 && b0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b0 * mod(-1 - d1 + c0)) + mod(a1 * mod(1 + d1 - c0))); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1 && c0 <= b0 && d0 <= b0) res = mod(res + -6 + 6 * b0 - 6 * a1); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && c0 <= b0 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b0 * mod(-2 - 2 * d1 + 2 * d0)) + mod(a1 * mod(2 + 2 * d1 - 2 * d0))); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= d1 && d0 <= b0 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b0 * mod(-2 - 2 * c1 + 2 * c0)) + mod(a1 * mod(2 + 2 * c1 - 2 * c0))); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b0 * mod(-1 - c1 + c0)) + mod(a1 * mod(1 + c1 - c0))); if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0))))); if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && b1 <= d1 && d0 <= c0) res = mod(res + -6 + 6 * c0 - 6 * b1); if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c0 * mod(-2 - 2 * d1 + 2 * d0)) + mod(b1 * mod(2 + 2 * d1 - 2 * d0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * c0); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 - 2 * d0)) + mod(c0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= d0 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 + c1 - c0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + d1 <= b1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 - c1 + c0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 * c0)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + a0 <= c0 && 1 + d1 <= a1 && 1 + b0 <= c0 && 1 + d1 <= b1 && 1 + d1 <= c1 && d0 <= c0 && c0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * c0); if (1 + a0 <= c0 && 1 + d1 <= a1 && 1 + d1 <= c1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * c0 + mod(b1 * mod(2 + 2 * d1 - 2 * c0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * c0))); if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1 && d0 <= c0) res = mod(res + -6 + 6 * c0 - 6 * a1); if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c0 * mod(-2 - 2 * d1 + 2 * d0)) + mod(a1 * mod(2 + 2 * d1 - 2 * d0))); if (1 + a0 <= c0 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a1 && a1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)) + mod(a1 * mod(1 + d1 - d0))); if (1 + a0 <= c0 && 1 + b0 <= d0 && c0 <= a1 && a1 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 - c0)) + mod(a1 * mod(1 - d0 + b1))); if (1 + a0 <= c0 && 1 + d1 <= b1 && c0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 + c0)) + mod(a1 * mod(1 + d1 - b0))); if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1 && d0 <= c0) res = mod(res + 2 - 2 * c0 + mod(b1 * mod(2 - 2 * c0)) + mod(b0 * mod(-2 + 2 * c0)) + mod(a1 * mod(2 + 2 * b1 - 2 * b0))); if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 - c0 + mod(b1 * mod(1 - c0)) + mod(b0 * mod(-1 + c0)) + mod(a1 * mod(1 + b1 - b0))); if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)))) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0))))); if (1 + a0 <= d0 && 1 + b1 <= a1 && 1 + b0 <= d0 && 1 + c0 <= d0 && d0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * b1); if (1 + a0 <= d0 && 1 + b1 <= a1 && 1 + b0 <= d0 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 - 2 * d0 + mod(c1 * mod(2 - 2 * d0)) + mod(c0 * mod(-2 + 2 * d0)) + mod(b1 * mod(2 + 2 * c1 - 2 * c0))); if (1 + a0 <= d0 && 1 + c1 <= a1 && 1 + b0 <= d0 && 1 + c1 <= b1 && 1 + c0 <= d0 && d0 <= c1 && c1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * c1); if (1 + a0 <= d0 && 1 + c1 <= a1 && 1 + c0 <= d0 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * c1 + mod(b1 * mod(2 - 2 * d0 + 2 * c1)) + mod(b0 * mod(-2 + 2 * d0 - 2 * c1))); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && 1 + c0 <= d0 && 1 + d1 <= c1 && d0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * d0); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 - 2 * d0)) + mod(c0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 * d1 - 2 * d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))); if (1 + a0 <= d0 && 1 + d1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + a0 <= d0 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a1 && a1 <= d1 && c0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(a1 * mod(1 + c1 - c0))); if (1 + a0 <= d0 && 1 + b0 <= c0 && d0 <= a1 && a1 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 - d0 + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 - d0)) + mod(a1 * mod(1 - c0 + b1))); if (1 + a0 <= d0 && 1 + b0 <= d0 && 1 + c0 <= d0 && d0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * a1); if (1 + a0 <= d0 && 1 + b0 <= d0 && d0 <= a1 && a1 <= b1 && a1 <= d1 && c0 <= c1) res = mod(res + 2 - 2 * d0 + mod(c1 * mod(2 - 2 * d0)) + mod(c0 * mod(-2 + 2 * d0)) + mod(a1 * mod(2 + 2 * c1 - 2 * c0))); if (1 + a0 <= d0 && 1 + c1 <= b1 && d0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(b0 * mod(-1 + d0)) + mod(a1 * mod(1 + c1 - b0))); if (1 + a0 <= d0 && 1 + c0 <= d0 && d0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1) res = mod(res + 2 - 2 * d0 + mod(b1 * mod(2 - 2 * d0)) + mod(b0 * mod(-2 + 2 * d0)) + mod(a1 * mod(2 + 2 * b1 - 2 * b0))); if (1 + a0 <= d0 && d0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 - d0 + mod(b1 * mod(1 - d0)) + mod(b0 * mod(-1 + d0)) + mod(a1 * mod(1 + b1 - b0))); if (1 + a0 <= d0 && d0 <= a1 && a1 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 * mod(-1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)))) + mod(b0 * mod(1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)))) + mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))))); if (1 + b1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a0 && a0 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0))); if (1 + b1 <= a1 && 1 + c0 <= d0 && b0 <= a0 && a0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b1 * mod(1 - d0 + c1)) + mod(a0 * mod(-1 + d0 - c1))); if (1 + b1 <= a1 && 1 + d1 <= c1 && b0 <= a0 && a0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b1 * mod(1 + d1 - c0)) + mod(a0 * mod(-1 - d1 + c0))); if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 - 6 * b1 + 6 * a0); if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && a0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 * d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + b1 <= a1 && b0 <= a0 && d0 <= a0 && a0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 * c0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(a0 * mod(-1 - c1 + c0))); if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + c1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a0 && a0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0))); if (1 + c1 <= a1 && 1 + b0 <= d0 && c0 <= a0 && a0 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(b1 * mod(1 + c1)) + mod(a0 * mod(-1 + d0 - b1))); if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * a0); if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && a0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + c1 <= a1 && 1 + d1 <= b1 && c0 <= a0 && a0 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(b0 * mod(-1 - c1)) + mod(a0 * mod(-1 - d1 + b0))); if (1 + c1 <= a1 && c0 <= a0 && d0 <= a0 && a0 <= c1 && b0 <= b1 && c1 <= d1) res = mod(res + 2 + 2 * c1 + mod(b1 * mod(2 + 2 * c1)) + mod(b0 * mod(-2 - 2 * c1)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0))); if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 + c1 + mod(b1 * mod(1 + c1)) + mod(b0 * mod(-1 - c1)) + mod(a0 * mod(-1 - b1 + b0))); if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))))); if (1 + d1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a0 && a0 <= d1 && c0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(a0 * mod(-1 - c1 + c0))); if (1 + d1 <= a1 && 1 + b0 <= c0 && d0 <= a0 && a0 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 + d1 + mod(c0 * mod(-1 - d1)) + mod(b1 * mod(1 + d1)) + mod(a0 * mod(-1 + c0 - b1))); if (1 + d1 <= a1 && 1 + c1 <= b1 && d0 <= a0 && a0 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(b0 * mod(-1 - d1)) + mod(a0 * mod(-1 - c1 + b0))); if (1 + d1 <= a1 && 1 + d1 <= b1 && 1 + d1 <= c1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * a0); if (1 + d1 <= a1 && 1 + d1 <= b1 && b0 <= a0 && d0 <= a0 && a0 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * d1 + mod(c1 * mod(2 + 2 * d1)) + mod(c0 * mod(-2 - 2 * d1)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + d1 <= a1 && 1 + d1 <= c1 && c0 <= a0 && d0 <= a0 && a0 <= d1 && b0 <= b1) res = mod(res + 2 + 2 * d1 + mod(b1 * mod(2 + 2 * d1)) + mod(b0 * mod(-2 - 2 * d1)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0))); if (1 + d1 <= a1 && d0 <= a0 && a0 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 + d1 + mod(b1 * mod(1 + d1)) + mod(b0 * mod(-1 - d1)) + mod(a0 * mod(-1 - b1 + b0))); if (1 + d1 <= a1 && d0 <= a0 && a0 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b1 * mod(-1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)))) + mod(b0 * mod(1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))))); if (1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(a1 * mod(1 + c1 - c0)) + mod(a0 * mod(-1 - c1 + c0))); if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(a1 * mod(2 + 2 * c1 - 2 * c0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0))); if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + b0 <= c0 && 1 + d1 <= b1 && 1 + d1 <= c1 && a0 <= a1 && d0 <= c0 && c0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * c0 + mod(a1 * mod(2 + 2 * d1 - 2 * c0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * c0))); if (1 + b0 <= c0 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 - c0 + b1 + mod(a1 * mod(1 - c0 + b1)) + mod(a0 * mod(-1 + c0 - b1))); if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1 && b1 <= d1 && d0 <= c0) res = mod(res + 2 - 2 * c0 + 2 * b1 + mod(a1 * mod(2 - 2 * c0 + 2 * b1)) + mod(a0 * mod(-2 + 2 * c0 - 2 * b1))); if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0))))); if (1 + b0 <= d0 && 1 + c1 <= b1 && 1 + c0 <= d0 && a0 <= a1 && d0 <= c1 && c1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * c1 + mod(a1 * mod(2 - 2 * d0 + 2 * c1)) + mod(a0 * mod(-2 + 2 * d0 - 2 * c1))); if (1 + b0 <= d0 && 1 + d1 <= b1 && 1 + c0 <= d0 && 1 + d1 <= c1 && a0 <= a1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(a1 * mod(2 + 2 * d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0))); if (1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(a1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0))); if (1 + b0 <= d0 && 1 + d1 <= b1 && a0 <= a1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (1 + b0 <= d0 && 1 + c0 <= d0 && a0 <= a1 && d0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * b1 + mod(a1 * mod(2 - 2 * d0 + 2 * b1)) + mod(a0 * mod(-2 + 2 * d0 - 2 * b1))); if (1 + b0 <= d0 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + b1 + mod(a1 * mod(1 - d0 + b1)) + mod(a0 * mod(-1 + d0 - b1))); if (1 + b0 <= d0 && a0 <= a1 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + -1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 * mod(-1 - c1 + c0)) + mod(a1 * mod(-1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 * mod(-1 - c1 + c0)))) + mod(a0 * mod(1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 + c1 - c0))))); if (1 + c1 <= b1 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 + c1 - b0 + mod(a1 * mod(1 + c1 - b0)) + mod(a0 * mod(-1 - c1 + b0))); if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * b0 + mod(a1 * mod(2 + 2 * c1 - 2 * b0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * b0))); if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))))); if (1 + d1 <= b1 && 1 + d1 <= c1 && a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * b0 + mod(a1 * mod(2 + 2 * d1 - 2 * b0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * b0))); if (1 + d1 <= b1 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 - b0 + mod(a1 * mod(1 + d1 - b0)) + mod(a0 * mod(-1 - d1 + b0))); if (1 + d1 <= b1 && a0 <= a1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + -1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 - c1 + c0))))); if (1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(a1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0))); if (1 + c0 <= d0 && 1 + d1 <= c1 && a0 <= a1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))))); if (1 + c0 <= d0 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(a1 * mod(1 - d0 + c1)) + mod(a0 * mod(-1 + d0 - c1))); if (1 + c0 <= d0 && a0 <= a1 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + -1 + d0 - c1 + mod(b1 * mod(-1 + d0 - c1)) + mod(b0 * mod(1 - d0 + c1)) + mod(a1 * mod(-1 + d0 - c1 + mod(b1 * mod(-1 + d0 - c1)) + mod(b0 * mod(1 - d0 + c1)))) + mod(a0 * mod(1 - d0 + c1 + mod(b1 * mod(1 - d0 + c1)) + mod(b0 * mod(-1 + d0 - c1))))); if (1 + d1 <= c1 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(a1 * mod(1 + d1 - c0)) + mod(a0 * mod(-1 - d1 + c0))); if (1 + d1 <= c1 && a0 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + -1 - d1 + c0 + mod(b1 * mod(-1 - d1 + c0)) + mod(b0 * mod(1 + d1 - c0)) + mod(a1 * mod(-1 - d1 + c0 + mod(b1 * mod(-1 - d1 + c0)) + mod(b0 * mod(1 + d1 - c0)))) + mod(a0 * mod(1 + d1 - c0 + mod(b1 * mod(1 + d1 - c0)) + mod(b0 * mod(-1 - d1 + c0))))); if (b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1) res = mod(res + -6 - 6 * a1 + 6 * a0); if (b0 <= a0 && c0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(a1 * mod(2 + 2 * d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0))); if (b0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(a1 * mod(2 + 2 * c1 - 2 * c0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0))); if (b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(a1 * mod(1 + c1 - c0)) + mod(a0 * mod(-1 - c1 + c0))); if (b0 <= a0 && a0 <= a1 && a1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))); if (c0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1) res = mod(res + 2 + 2 * b1 - 2 * b0 + mod(a1 * mod(2 + 2 * b1 - 2 * b0)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0))); if (c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 + b1 - b0 + mod(a1 * mod(1 + b1 - b0)) + mod(a0 * mod(-1 - b1 + b0))); if (c0 <= a0 && a0 <= a1 && a1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))))); if (d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 + b1 - b0 + mod(a1 * mod(1 + b1 - b0)) + mod(a0 * mod(-1 - b1 + b0))); if (d0 <= a0 && a0 <= a1 && a1 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))))); if (a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + 2 + 2 * b1 - 2 * b0 + mod(a1 * mod(2 + 2 * b1 - 2 * b0)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0))); if (a0 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0))))); if (a0 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))))); if (a0 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0))))); if (a0 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(b0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a1 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(b0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))))) + mod(a0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0))))))); return res; } long[7] A, B; void main(string[] args) { try { for (; ; ) { foreach (i; 0 .. 7) { A[i] = readLong; B[i] = readLong; } long ans; foreach (phase; 0 .. 2) { foreach (x; -LIM .. +LIM) { // max(0,2,4,6) = x // 1,3,5 >= x + 1 const res0 = calc( A[0], A[2], A[4], A[6], min(B[0], x), min(B[2], x), min(B[4], x), min(B[6], x) ); const res1 = calc( A[0], A[2], A[4], A[6], min(B[0], x - 1), min(B[2], x - 1), min(B[4], x - 1), min(B[6], x - 1) ); const res2 = calc( max(A[1], x + 1), max(A[3], x + 1), max(A[5], x + 1), B[1], B[3], B[5] ); (ans += (res0 - res1) * res2) %= MO; } A[] *= -1; B[] *= -1; swap(A, B); } ans = (ans % MO + MO) % MO; writeln(ans); // break; } } catch (EOFException) {} }