A query like 

```
sequence by user.name with maxspan=90m
![ authentication where ... ]
[ authentication where ...]
![ authentication where ... ]
[ authentication where ... ]
![ authentication where ... ]
```

can result in a NullPointerException

```
java.lang.NullPointerException: Cannot invoke "org.elasticsearch.xpack.eql.execution.sequence.Match.ordinal()" because the return value of "org.elasticsearch.xpack.eql.execution.sequence.Sequence.matchAt(int)" is null
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.prepareQueryForMissingEvents(TumblingWindow.java:313)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.checkMissingEvents(TumblingWindow.java:219)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.payload(TumblingWindow.java:717)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.completeBaseCriterion(TumblingWindow.java:499)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.baseCriterion(TumblingWindow.java:405)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.lambda$advance$6(TumblingWindow.java:356)
```
x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/execution/sequence/Sequence.java
}
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        Sequence other = (Sequence) obj;
        return Objects.equals(currentStage, other.currentStage) && Objects.equals(key, other.key);
    }
    @Override
    public String toString() {
        int stages = matches.length;
        int numberOfDigits = stages > 100 ? 3 : stages > 10 ? 2 : 1;
        NumberFormat nf = NumberFormat.getIntegerInstance(Locale.ROOT);
        nf.setMinimumIntegerDigits(numberOfDigits);
        StringBuilder sb = new StringBuilder();
        sb.append(format(null, "[Seq<{}>[{}/{}]]", key, nf.format(currentStage), nf.format(stages - 1)));
        for (int i = 0; i < matches.length; i++) {
            sb.append(format(null, "\n [{}]={{}}", nf.format(i), matches[i]));
        }
        return sb.toString();
    }
    public Match matchAt(int stage) {
        return matches[stage];
    }
}