#include <iostream>
#include <complex>
#include <cmath>
#define EPS 0.00000001
using namespace std;

typedef complex<long double> point;

long double dot(point a,point b){
	return (a*conj(b)).real();
}

int main(void){
	point a[4];
	long double x,y;
	while(cin>>x>>y){
		a[0]=point(x,y);
		cin>>x>>y;
		a[1]=point(x,y);
		cin>>x>>y;
		a[2]=point(x,y);
		cin>>x>>y;
		a[3]=point(x,y);
		point l1=a[1]-a[0];
		point l2=a[3]-a[2];
		if(fabs(l1.real())<EPS&&fabs(l1.imag())<EPS){
			cout<<"NO"<<endl;
			continue;
		}
		if(fabs(l2.real())<EPS&&fabs(l2.imag())<EPS){
			cout<<"NO"<<endl;
			continue;
		}
		if(fabs(dot(a[1]-a[0],a[3]-a[2])<EPS))cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
}