func_code_string: #include <bits/stdc++.h>   using namespace std;   long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }   const int N = 1e3 + 10;   const double eps = 1e-5;   int n;   struct Tarr {     long long tarr[N][N];     Tarr() {       for (int i = 0; i < N; i++) {         for (int j = 0; j < N; j++) {           tarr[i][j] = 0;         }       }     }     static int lowbit(int x) { return x & -x; }     void add(int x, int y, long long val) {       while (x <= n) {         int p = y;         while (p <= n) {           tarr[x][p] ^= val;           p += lowbit(p);         }         x += lowbit(x);       }     }     long long query(int x, int y) {       long long res = 0;       while (x) {         int p = y;         while (p) {           res ^= tarr[x][p];           p -= lowbit(p);         }         x -= lowbit(x);       }       return res;     }   };   Tarr an, ai, aj, aij;   long long query(int x, int y) {     return (((x + 1) * (y + 1) % 2) * an.query(x, y)) ^            (((x + 1) % 2) * ai.query(x, y)) ^ (((y + 1) % 2) * aj.query(x, y)) ^            aij.query(x, y);   }   long long query(int x1, int y1, int x2, int y2) {     return query(x2, y2) ^ query(x1 - 1, y2) ^ query(x2, y1 - 1) ^            query(x1 - 1, y1 - 1);   }   void add(int x, int y, long long val) {     an.add(x, y, val);     ai.add(x, y, (y % 2) * val);     aj.add(x, y, (x % 2) * val);     aij.add(x, y, (x * y % 2) * val);   }   void add(int x1, int y1, int x2, int y2, long long val) {     add(x1, y1, val);     add(x1, y2 + 1, val);     add(x2 + 1, y1, val);     add(x2 + 1, y2 + 1, val);   }   int main() {     std::ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int m;     cin >> n >> m;     for (int i = 1; i <= m; i++) {       int op;       cin >> op;       if (op == 2) {         int x1, y1, x2, y2;         long long v;         cin >> x1 >> y1 >> x2 >> y2 >> v;         add(x1, y1, x2, y2, v);       } else {         int x1, y1, x2, y2;         cin >> x1 >> y1 >> x2 >> y2;         cout << query(x1, y1, x2, y2) <<   n ;       }     }   }   