import java.io.*;
import java.lang.reflect.*;
import java.util.*;
final double x, y;
public Point(double x,
double y
) { this.x = x;
this.y = y;
}
public double getX() {
return this.x;
}
public double getY() {
return this.y;
}
public boolean equals
(Object o
) { return this.x == p.getX() && this.y == p.getY();
}
}
public class Main {
public static void main
(String[] args
) {
System.
out.
println(p.
equals(q
));
try {
Field f
= Field.
class.
getDeclaredField("modifiers");
f.setAccessible(true);
x.setAccessible(true);
y.setAccessible(true);
f.
setInt(x, x.
getModifiers() & ~
Modifier.
FINAL); f.
setInt(y, y.
getModifiers() & ~
Modifier.
FINAL);
x.set(p, 0);
y.set(p, 1);
x.set(q, 2);
y.set(q, 3);
System.
out.
println("We are having some issues"); return;
}
System.
out.
println(p.
equals(q
)); }
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CmltcG9ydCBqYXZhLnV0aWwuKjsKCmNsYXNzIFBvaW50IHsKCWZpbmFsIGRvdWJsZSB4LCB5OwoJCglwdWJsaWMgUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5KSB7CgkJdGhpcy54ID0geDsKCQl0aGlzLnkgPSB5OwoJfQoJCglwdWJsaWMgZG91YmxlIGdldFgoKSB7CgkJcmV0dXJuIHRoaXMueDsKCX0KCQoJcHVibGljIGRvdWJsZSBnZXRZKCkgewoJCXJldHVybiB0aGlzLnk7Cgl9CgkKCXB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgewoJCVBvaW50IHAgPSAoUG9pbnQpbzsKCQlyZXR1cm4gdGhpcy54ID09IHAuZ2V0WCgpICYmIHRoaXMueSA9PSBwLmdldFkoKTsKCX0KfQoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVBvaW50IHAgPSBuZXcgUG9pbnQoMSwyKTsKCQlQb2ludCBxID0gbmV3IFBvaW50KDEsMik7CgkJCgkJU3lzdGVtLm91dC5wcmludGxuKHAgPT0gcSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHAuZXF1YWxzKHEpKTsKCQkKCQl0cnkgewoJCQlGaWVsZCBmID0gRmllbGQuY2xhc3MuZ2V0RGVjbGFyZWRGaWVsZCgibW9kaWZpZXJzIik7CgkJCUZpZWxkIHggPSBQb2ludC5jbGFzcy5nZXREZWNsYXJlZEZpZWxkKCJ4Iik7CgkJCUZpZWxkIHkgPSBQb2ludC5jbGFzcy5nZXREZWNsYXJlZEZpZWxkKCJ5Iik7CgkJCQoJCQlmLnNldEFjY2Vzc2libGUodHJ1ZSk7CgkJCXguc2V0QWNjZXNzaWJsZSh0cnVlKTsKCQkJeS5zZXRBY2Nlc3NpYmxlKHRydWUpOwoJCQlmLnNldEludCh4LCB4LmdldE1vZGlmaWVycygpICYgfk1vZGlmaWVyLkZJTkFMKTsKCQkJZi5zZXRJbnQoeSwgeS5nZXRNb2RpZmllcnMoKSAmIH5Nb2RpZmllci5GSU5BTCk7CgkJCQoJCQl4LnNldChwLCAwKTsKCQkJeS5zZXQocCwgMSk7CgkJCXguc2V0KHEsIDIpOwoJCQl5LnNldChxLCAzKTsKCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIldlIGFyZSBoYXZpbmcgc29tZSBpc3N1ZXMiKTsKCQkJcmV0dXJuOwoJCX0KCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4ocCA9PSBxKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ocC5lcXVhbHMocSkpOwoJfQp9