import java.util.*; import java.util.zip.*; import java.util.List; import java.util.regex.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.concurrent.locks.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.table.*; import java.io.*; import java.net.*; import java.lang.reflect.*; import java.lang.ref.*; import java.lang.management.*; import java.security.*; import java.security.spec.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.imageio.*; import java.math.*; // Physical temporal pattern loop - an action in the real world class main { static class PTPL implements IFieldsToList { static String _fieldOrder = "actors actions results continuations previousEvents whoWantsThis whoDoesntTantThis"; Object actors; Object actions; Object results; Object continuations; Object previousEvents; Object whoWantsThis; Object whoDoesntTantThis; PTPL() {} PTPL(Object actors, Object actions, Object results, Object continuations, Object previousEvents, Object whoWantsThis, Object whoDoesntTantThis) { this.whoDoesntTantThis = whoDoesntTantThis; this.whoWantsThis = whoWantsThis; this.previousEvents = previousEvents; this.continuations = continuations; this.results = results; this.actions = actions; this.actors = actors;} public String toString() { return "PTPL(" + actors + ", " + actions + ", " + results + ", " + continuations + ", " + previousEvents + ", " + whoWantsThis + ", " + whoDoesntTantThis + ")"; } public boolean equals(Object o) { if (!(o instanceof PTPL)) return false; PTPL x = (PTPL) o; return eq(actors, x.actors) && eq(actions, x.actions) && eq(results, x.results) && eq(continuations, x.continuations) && eq(previousEvents, x.previousEvents) && eq(whoWantsThis, x.whoWantsThis) && eq(whoDoesntTantThis, x.whoDoesntTantThis); } public int hashCode() { int h = 2466560; h = boostHashCombine(h, _hashCode(actors)); h = boostHashCombine(h, _hashCode(actions)); h = boostHashCombine(h, _hashCode(results)); h = boostHashCombine(h, _hashCode(continuations)); h = boostHashCombine(h, _hashCode(previousEvents)); h = boostHashCombine(h, _hashCode(whoWantsThis)); h = boostHashCombine(h, _hashCode(whoDoesntTantThis)); return h; } public Object[] _fieldsToList() { return new Object[] {actors, actions, results, continuations, previousEvents, whoWantsThis, whoDoesntTantThis}; } } static boolean eq(Object a, Object b) { return a == b || (a == null ? b == null : b != null && a.equals(b)); } static int boostHashCombine(int a, int b) { return a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2)); } static int _hashCode(Object a) { return a == null ? 0 : a.hashCode(); } static String str(Object o) { return o == null ? "null" : o.toString(); } static String str(char[] c) { return new String(c); } static interface IFieldsToList { Object[] _fieldsToList(); } }