val fibs = List(
  ArrayDef("mem", 30000),
  Assign("ptr", Num(15000)),
  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(11))),
  Assign("ptr", Aop("+", Var("ptr"), Num(1))),
  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
  Assign("ptr", Aop("+", Var("ptr"), Num(4))),
  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(44))),
  Assign("ptr", Aop("+", Var("ptr"), Num(1))),
  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(32))),
  Assign("ptr", Aop("-", Var("ptr"), Num(6))),
  While(
    Bop("!=", Ref("mem", Var("ptr")), Num(0)),
    List(
      Assign("ptr", Aop("+", Var("ptr"), Num(1))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("+", Var("ptr"), Num(6))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("-", Var("ptr"), Num(7))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(7))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("-", Var("ptr"), Num(7))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(7))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("-", Var("ptr"), Num(1))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
          While(
            Bop("!=", Ref("mem", Var("ptr")), Num(0)),
            List(
              AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("-", Var("ptr"), Num(1))),
              AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
              While(
                Bop("!=", Ref("mem", Var("ptr")), Num(0)),
                List(
                  Assign("ptr", Aop("+", Var("ptr"), Num(2))),
                  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
                  Assign("ptr", Aop("+", Var("ptr"), Num(1))),
                  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
                  Assign("ptr", Aop("-", Var("ptr"), Num(3))),
                  AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
                  Skip
                )
              ),
              Assign("ptr", Aop("+", Var("ptr"), Num(3))),
              While(
                Bop("!=", Ref("mem", Var("ptr")), Num(0)),
                List(
                  Assign("ptr", Aop("-", Var("ptr"), Num(3))),
                  AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
                  Assign("ptr", Aop("+", Var("ptr"), Num(3))),
                  AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
                  Skip
                )
              ),
              AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("-", Var("ptr"), Num(1))),
              While(
                Bop("!=", Ref("mem", Var("ptr")), Num(0)),
                List(
                  Assign("ptr", Aop("+", Var("ptr"), Num(1))),
                  AssignA("mem", Var("ptr"), Num(0)),
                  Assign("ptr", Aop("-", Var("ptr"), Num(1))),
                  AssignA("mem", Var("ptr"), Num(0)),
                  Skip
                )
              ),
              Assign("ptr", Aop("+", Var("ptr"), Num(1))),
              While(
                Bop("!=", Ref("mem", Var("ptr")), Num(0)),
                List(
                  Assign("ptr", Aop("-", Var("ptr"), Num(2))),
                  While(
                    Bop("!=", Ref("mem", Var("ptr")), Num(0)),
                    List(
                      Assign("ptr", Aop("+", Var("ptr"), Num(3))),
                      AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
                      Assign("ptr", Aop("-", Var("ptr"), Num(3))),
                      AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
                      Skip
                    )
                  ),
                  Assign("ptr", Aop("+", Var("ptr"), Num(2))),
                  AssignA("mem", Var("ptr"), Num(0)),
                  Skip
                )
              ),
              Assign("ptr", Aop("-", Var("ptr"), Num(2))),
              Skip
            )
          ),
          Assign("ptr", Aop("+", Var("ptr"), Num(3))),
          While(
            Bop("!=", Ref("mem", Var("ptr")), Num(0)),
            List(
              Assign("ptr", Aop("+", Var("ptr"), Num(2))),
              AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("+", Var("ptr"), Num(1))),
              AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("-", Var("ptr"), Num(3))),
              AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
              Skip
            )
          ),
          Assign("ptr", Aop("+", Var("ptr"), Num(3))),
          While(
            Bop("!=", Ref("mem", Var("ptr")), Num(0)),
            List(
              Assign("ptr", Aop("-", Var("ptr"), Num(3))),
              AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("+", Var("ptr"), Num(3))),
              AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
              Skip
            )
          ),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("-", Var("ptr"), Num(1))),
          While(
            Bop("!=", Ref("mem", Var("ptr")), Num(0)),
            List(
              Assign("ptr", Aop("+", Var("ptr"), Num(1))),
              AssignA("mem", Var("ptr"), Num(0)),
              Assign("ptr", Aop("-", Var("ptr"), Num(1))),
              AssignA("mem", Var("ptr"), Num(0)),
              Skip
            )
          ),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          While(
            Bop("!=", Ref("mem", Var("ptr")), Num(0)),
            List(
              Assign("ptr", Aop("-", Var("ptr"), Num(2))),
              AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
              Assign("ptr", Aop("+", Var("ptr"), Num(2))),
              AssignA("mem", Var("ptr"), Num(0)),
              Skip
            )
          ),
          Assign("ptr", Aop("-", Var("ptr"), Num(7))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(5))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(25))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(23))),
          Assign("x", Ref("mem", Var("ptr"))),
          Write("x"),
          AssignA("mem", Var("ptr"), Num(0)),
          Skip
        )
      ),
      AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
      Assign("ptr", Aop("-", Var("ptr"), Num(1))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("-", Var("ptr"), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(1))),
      AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(4))),
      AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(44))),
      Assign("x", Ref("mem", Var("ptr"))),
      Write("x"),
      AssignA("mem", Var("ptr"), Num(0)),
      Assign("ptr", Aop("-", Var("ptr"), Num(2))),
      Assign("ptr", Aop("-", Var("ptr"), Num(10))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("+", Var("ptr"), Num(3))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("-", Var("ptr"), Num(4))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(4))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("-", Var("ptr"), Num(4))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(4))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("-", Var("ptr"), Num(1))),
      AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("+", Var("ptr"), Num(2))),
          Assign("x", Ref("mem", Var("ptr"))),
          Write("x"),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          Assign("x", Ref("mem", Var("ptr"))),
          Write("x"),
          Assign("ptr", Aop("-", Var("ptr"), Num(3))),
          AssignA("mem", Var("ptr"), Num(0)),
          Skip
        )
      ),
      Assign("ptr", Aop("-", Var("ptr"), Num(2))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("+", Var("ptr"), Num(2))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("-", Var("ptr"), Num(3))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(3))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("-", Var("ptr"), Num(3))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(3))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("-", Var("ptr"), Num(2))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("-", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("+", Var("ptr"), Num(1))),
      While(
        Bop("!=", Ref("mem", Var("ptr")), Num(0)),
        List(
          Assign("ptr", Aop("-", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
          Assign("ptr", Aop("+", Var("ptr"), Num(1))),
          AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
          Skip
        )
      ),
      Assign("ptr", Aop("-", Var("ptr"), Num(3))),
      AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
      Skip
    )
  ),
  Skip
)