// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTier.java
// public static SimpleTier createCompleteTier(int a, int b, int c)
// {
//     SimpleTier result = new SimpleTier(a, b, c);
//     result.keys_73516240 = -1;  //  Complete tier
//     result.size = 8;
//     return result;
// }


import cern.colt.map.OpenIntIntHashMap;
import cern.colt.map.OpenIntObjectHashMap;
import cern.colt.map.OpenLongObjectHashMap;
import static com.anjlab.sat3.SimpleTier.createCompleteTier;
import static java.lang.Boolean.parseBoolean;
import java.util.Comparator;
import java.util.Properties;
import cern.colt.list.ObjectArrayList;

        tiersHash2 = null;
        
        int varCount = variables.size();
        int tiersCount = varCount - 2;
        
        int[] variablesElements = ((SimplePermutation)variables).elements();
        for (int i = 0; i < varCount; i++)
        {
            int varName = variablesElements[i];
            if (!permutation.contains(varName))
            {
                permutation.add(varName);
            }
        }
        for (int i = 0; i < tiers.size(); i++)
        {
            ((ITier) tiers.get(i)).inverse();
        }
        int[] permutationElements = ((SimplePermutation)permutation).elements();
        SimpleTripletPermutation buffer = new SimpleTripletPermutation(1, 2, 3);
        for (int i = 0; i < tiersCount; i++)
        {
            int a = permutationElements[i];
            int b = permutationElements[i + 1];
            int c = permutationElements[i + 2];
            
            buffer.setCanonicalAttributes(a, b, c);
            
            if (!tiersHash3.containsKey(buffer.canonicalHashCode()))
            {

// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTier.java
// public static SimpleTier createCompleteTier(int a, int b, int c)
// {
//     SimpleTier result = new SimpleTier(a, b, c);
//     result.keys_73516240 = -1;  //  Complete tier
//     result.size = 8;
//     return result;
// }


// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleFormula.java
import cern.colt.map.OpenIntIntHashMap;
import cern.colt.map.OpenIntObjectHashMap;
import cern.colt.map.OpenLongObjectHashMap;
import static com.anjlab.sat3.SimpleTier.createCompleteTier;
import static java.lang.Boolean.parseBoolean;
import java.util.Comparator;
import java.util.Properties;
import cern.colt.list.ObjectArrayList;

        tiersHash2 = null;
        
        int varCount = variables.size();
        int tiersCount = varCount - 2;
        
        int[] variablesElements = ((SimplePermutation)variables).elements();
        for (int i = 0; i < varCount; i++)
        {
            int varName = variablesElements[i];
            if (!permutation.contains(varName))
            {
                permutation.add(varName);
            }
        }
        for (int i = 0; i < tiers.size(); i++)
        {
            ((ITier) tiers.get(i)).inverse();
        }
        int[] permutationElements = ((SimplePermutation)permutation).elements();
        SimpleTripletPermutation buffer = new SimpleTripletPermutation(1, 2, 3);
        for (int i = 0; i < tiersCount; i++)
        {
            int a = permutationElements[i];
            int b = permutationElements[i + 1];
            int c = permutationElements[i + 2];
            
            buffer.setCanonicalAttributes(a, b, c);
            
            if (!tiersHash3.containsKey(buffer.canonicalHashCode()))
            {

                addTier(createCompleteTier(a, b, c));
