input: Write a function to simulate a simple ATM machine using Python. The function should include the definition of an `Account` class with methods `__init__`, `deposit`, and `withdrawal`. Additionally, provide the definition of an `ATM` class with methods `__init__`, `createAccount`, `deposit`, `withdrawal`, and `printBalance`. The function should then create an instance of the `ATM` class and perform various operations like creating accounts, depositing money, withdrawing money, and printing balances. The function should return True if all operations are successful, otherwise False.
  
  assert simulate_atm([["createAccount", "John", 1000], ["createAccount", "Alice", 500], ["deposit", "John", 200], ["withdrawal", "Alice", 100], ["printBalance", "John"]])==True
  assert simulate_atm([["createAccount", "Bob", 300], ["deposit", "Bob", 100], ["printBalance", "Bob"]])==True
  assert simulate_atm([["createAccount", "Eve", 200], ["withdrawal", "Eve", 300]])==False
output: def simulate_atm(operations):
      class Account:
          def __init__(self, name, balance):
              self.name = name
              self.balance = balance
          
          def deposit(self, amount):
              self.balance += amount
          
          def withdrawal(self, amount):
              if self.balance >= amount:
                  self.balance -= amount
                  return True
              return False
      
      class ATM:
          def __init__(self):
              self.accounts = {}
          
          def createAccount(self, name, balance):
              if name not in self.accounts:
                  self.accounts[name] = Account(name, balance)
                  return True
              return False
          
          def deposit(self, name, amount):
              if name in self.accounts:
                  self.accounts[name].deposit(amount)
                  return True
              return False
          
          def withdrawal(self, name, amount):
              if name in self.accounts:
                  return self.accounts[name].withdrawal(amount)
              return False
          
          def printBalance(self, name):
              if name in self.accounts:
                  return True
              return False
      
      atm = ATM()
      for op in operations:
          if op[0] == "createAccount":
              if not atm.createAccount(op[1], op[2]):
                  return False
          elif op[0] == "deposit":
              if not atm.deposit(op[1], op[2]):
                  return False
          elif op[0] == "withdrawal":
              if not atm.withdrawal(op[1], op[2]):
                  return False
          elif op[0] == "printBalance":
              if not atm.printBalance(op[1]):
                  return False
      return True