public List<StartAndEnd> findEachPairOf(PassportState startState, PassportState endState) {
        ArrayList<StartAndEnd> items = new ArrayList<>();

        StartAndEnd currentPair = null;

        try (Unlocker ignored = lock()) {
            for (PassportItem item : history) {

                if (item.getState() == startState) {
                    if (currentPair == null) {
                        currentPair = new StartAndEnd();
                        currentPair.startTime = item.getTime();
                    }
                } else if (item.getState() == endState) {
                    if (currentPair != null) {
                        currentPair.endTime = item.getTime();
                        items.add(currentPair);
                        currentPair = null;
                    }
                }
            }
        }

        return items;
    }
NOTE: This is NOT nanos since epoch. It's just since an arbitrary point in time. So only use relatively.
zuul-core/src/main/java/com/netflix/zuul/passport/CurrentPassport.java