Write a program that simulates a mini ATM. Requirements - Define a function named main - It has no formal parameters and does not need header documentation. - Create a local variable (inside main) named balance and assign it an initial value of 1500. - Use a while loop that repeats until the user enters an e or E for the menu choice. The loop condition is what terminates the loop. You could assign the empty string to a variable named choice just before the loop in order to get into the loop initially. Inside the loop: - Call the getMenuChoice() function (discussed below) to present the menu and get the customer's banking choice. The choice will be returned by this function and can be stored into a local variable named choice - Use a multi-branching if statement to process a customer choice of W, D, or B. You won't need to handle an E because the loop condition will terminate. - W Get the amount to withdraw. Respond with error messages if the amount entered is less than or equal to zero or if the amount is greater than the balance. See the sample runs for the error messages. Otherwise, deduct the withdraw amount from the balance and tell the user to take their amount purchased. Again see the output in the sample run-you are required to display a preceding S , 2 digits of precision, and automatically insert thousands separators. A properly constructed f -string must be used. - D Get the amount to deposit. Respond with an error message if the amount entered is 0 or negative. See the sample runs for the error message. Otherwise, add the deposited amount to the balance. - B Display the balance in the format shown in the sample run. You are required to display a preceding $ , 2 digits of precision, and automatically insert thousands separators. A properly constructed f -string must be used. After the loop terminates display the exit message shown in the sample run Insert at least two comments in main that describe chunks of code (use action verbs.) However, if performing the optional code modification described below, these comments aren't needed. - Define a function named getMenuChoice. It has no formal parameters and will present the menu exactly as shown in the sample run with beginning and ending lines of = symbols. It prompts the customer for a choice and returns that choice in uppercase form. The function header docs are provided below and are to be placed on the top of the getMenuChoice definition \# getMenuChoice presents a banking menu of choices \# @return The customer's menu choice as a single upper \# case letter. - Be sure to create a line of code that calls main() after the function definitions. - There will be no global variables. Any variables are created inside the functions. - Match the exact output shown below. Remember that input prompts are also part of the output. Note where a blank line is output. - Follow all coding style guidelines presented thus far. .