code: package com.puppycrawl.tools.checkstyle.checks.indentation.indentation; //indent:0 exp:0
  
  import java.util.Iterator;  //indent:0 exp:0
  
  /**                                                                           //indent:0 exp:0
   * This test-input is intended to be checked using following configuration:   //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   * arrayInitIndent = 4                                                        //indent:1 exp:1
   * basicOffset = 2                                                            //indent:1 exp:1
   * braceAdjustment = 0                                                        //indent:1 exp:1
   * caseIndent = 4                                                             //indent:1 exp:1
   * forceStrictCondition = false                                               //indent:1 exp:1
   * lineWrappingIndentation = 4                                                //indent:1 exp:1
   * tabWidth = 4                                                               //indent:1 exp:1
   * throwsIndent = 4                                                           //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   */                                                                           //indent:1 exp:1
  class InputIndentationClassesMethods  //indent:0 exp:0
      implements Runnable, Cloneable {  //indent:4 exp:4
  
    class InnerClass implements  //indent:2 exp:2
            Iterable<String>,  //indent:10 exp:>=6
               Cloneable {  //indent:13 exp:>=6
      @Override  //indent:4 exp:4
      public Iterator<String> iterator() {  //indent:4 exp:4
        return null;  //indent:6 exp:6
      }  //indent:4 exp:4
    }  //indent:2 exp:2
  
    class InnerClass2  //indent:2 exp:2
         extends  //indent:7 exp:>=6
           SecondClassWithLongLongLongLongName {  //indent:9 exp:>=6
      public InnerClass2(String string) {  //indent:4 exp:4
      }  //indent:4 exp:4
    }  //indent:2 exp:2
  
    @Override  //indent:2 exp:2
    public void run() {  //indent:2 exp:2
      SecondClassWithLongLongLongLongName anon =  //indent:4 exp:4
          new SecondClassWithLongLongLongLongName() {  //indent:8 exp:8
            @MyAnnotation2 //indent:10 exp:10
            String longLongLongLongLongMethodName() {  //indent:10 exp:10
              return "String";  //indent:12 exp:12
            }  //indent:10 exp:10
          };  //indent:8 exp:8
  
      SecondClassWithLongLongLongLongName anon2 = new  //indent:4 exp:4
            SecondClassWithLongLongLongLongName() {  //indent:10 exp:>=8
  
      };  //indent:4 exp:4
    }  //indent:2 exp:2
  } //indent:0 exp:0
  
  class SecondClassWithLongLongLongLongName  //indent:0 exp:0
      extends  //indent:4 exp:4
           InputIndentationClassesMethods{  //indent:9 exp:>=4
    private boolean conditionFirst(String longString, int //indent:2 exp:2
        integer, InnerClass someInstance) { //indent:6 exp:6
      return false; //indent:4 exp:4
    } //indent:2 exp:2
  
    private boolean conditionFirst1(String longString, int //indent:2 exp:2
        integer, InnerClass someInstance) //indent:6 exp:6
            throws Exception { //indent:10 exp:>=6
      return false; //indent:4 exp:4
    } //indent:2 exp:2
  }  //indent:0 exp:0
  
  @interface MyAnnotation2 {} //indent:0 exp:0
  
  @MyAnnotation2 //indent:0 exp:0
  class Foo {} //indent:0 exp:0
  