//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//


public class Anonymous {

    private int count = 0;


    public Anonymous() {
    }

    public Object produce() {
        ++this.count;
        final int var1 = this.count;
        return new Object() {
            public String toString() {
                return "anonymous_" + var1;
            }
        };
    }
}
