#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("unroll-loops")
using namespace std;
template <class A>
istream& operator>>(istream& in, vector<A>& a) {
  for (A& i : a) in >> i;
  return in;
}
template <class A>
istream& operator>>(istream& in, vector<vector<A>>& a) {
  for (auto& i : a)
    for (auto& j : i) in >> j;
  return in;
}
template <class A>
ostream& operator<<(ostream& in, vector<A>& a) {
  for (A& i : a) in << i << ' ';
  in << endl;
  return in;
}
template <class A>
ostream& operator<<(ostream& in, vector<vector<A>>& a) {
  for (auto& i : a) {
    for (auto& j : i) in << j << ' ';
    in << endl;
  }
  return in;
}
const long long MOD = 1e9 + 7;
const long long INF = 1e9 + 7;
long long power(long long x, long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = (res * x) % MOD;
    y >>= 1;
    x = (x * x) % MOD;
  }
  return (res % MOD);
}
void solve() {
  int x1, y1, x2, y2;
  cin >> x1 >> y1 >> x2 >> y2;
  if (x1 != x2 && y1 != y2 && abs(x1 - x2) != abs(y1 - y2))
    cout << -1 << endl;
  else {
    if (x1 == x2) {
      cout << x1 + abs(y1 - y2) << " " << y1 << " " << x2 + abs(y1 - y2) << " "
           << y2 << "\n";
    } else if (y1 == y2) {
      cout << x1 << " " << y1 + abs(x1 - x2) << " " << x2 << " "
           << y2 + abs(x1 - x2) << "\n";
    } else {
      cout << x1 << " " << y2 << " " << x2 << " " << y1 << "\n";
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long tc = 1;
  for (long long t = 1; t <= tc; t++) {
    solve();
  }
}
