Modify the garage program to include a 3rd structure named engine. The engine is a member element of the automobile (vehicle) struct. The automobile (vehicle) struct is a member element of the garage struct. Your program should consist of 4 functions. 1. Populate garage - reads in the vehicle information from the input file. There maybe zero or more vehicles in each garage. 2. Display the garages to the output file. 3. Swap the chosen engine (only) with a vehicle in the neighbor's garage. Keep in mind there may be zero or more vehicles in either garage. 4. Display swapped garages to the output file. You should read in the vehicle information from the attached "garage-input-file.txt" from the default folder. Your program should prompt the user for a car engine to swap (not the entire car - just the engine). The program should swap the engine with another car in the neighbor's garage. NOTE: 1. Finally, the program should print the garage of cars and engine detail of each car (vehicle) before and after the swap. This output should be to an output file called "garage-output-file.txt" located in the default folder. 2. Failure to read from and write to the stated files in the stated locations will result in a 50% penalty. No Exceptions. 3. Failure to implement the engine struct ADT and include it as a member element in the automobile (vehicle) struct will result in a 25% penalty. No exceptions. 4. Failure to implement the specified modules will result in a 25% penalty. No exceptions. 5. Any evidence of cheating or plagiarism will result in 100% penalty. When completed, tested and ready. Upload your souce code ( .cpp) file only using the upload button in this assignment.