#include <bits/stdc++.h>
using namespace std;
template <typename P, typename Q>
ostream& operator<<(ostream& os, pair<P, Q> p) {
  os << "(" << p.first << "," << p.second << ")";
  return os;
}
int main(int argc, char* argv[]) {
  long long int a, b, c;
  while (cin >> a >> b >> c) {
    long long int x, y, z;
    cin >> x >> y >> z;
    long long int free = 0;
    if (x < a) {
      int removed = (a - x) / 2 * 2;
      if (0 <= removed) {
        a -= removed;
        free += removed / 2;
      }
    }
    if (y < b) {
      int removed = (b - y) / 2 * 2;
      if (0 <= removed) {
        b -= removed;
        free += removed / 2;
      }
    }
    if (z < c) {
      int removed = (c - z) / 2 * 2;
      if (0 <= removed) {
        c -= removed;
        free += removed / 2;
      }
    }
    long long int less = 0;
    less += max(0LL, x - a);
    less += max(0LL, y - b);
    less += max(0LL, z - c);
    cout << (less <= free ? "Yes" : "No") << endl;
  }
  return 0;
}
