A chess board consists of an 8x8 grid, where each square is identified by a letter and number denoting the column and row, respectively. For example, 04 denotes the square located on the 3rd column from the left and the 4th row from the bottom. A bishop can move along the chess board only in a diagonal fashion, as illustrated in the figure below. Any white square along any of the arrows constitutes a valid move. a b c d e f g h - NWA en La b c d e f g h The method numBishopMoves in the class BishopMoves (see attached file BishopMoves.java) attempts to count the number of valid squares the bishop may move to, given the current position of the bishop as a a b c d e f g h The method numBishopMoves in the class BishopMoves (see attached file BishopMoves.java) attempts to count the number of valid squares the bishop may move to, given the current position of the bishop as a string, such as "c4" or "C4" (letter can be either lowercase or uppercase). Additionally, it attempts to print to the console the letter and number denoting each valid square, such as D5. Unfortunately, the method contains several mistakes and does not perform its intended purpose. Correct the method by changing as few lines of code as possible (it should be possible to correct it by changing only 5 lines). A portion of your grade will be based on how many lines you changed! Your corrected method should not output any squares more than once. No duplicate squares should be counted either in the return value for your method. Submit your source code in a file named Bishop Moves Correct.java! Do not include a main() method in your submission! (Either place the main() method in another class, which you don't submit, or delete it from the class BishopMoves). Additional practice problems from the textbook: 5133.5.43 (consider unordered combinations, e.g. output only 1 2, not 1 2 and 2 1), 6.2.6.14.6.17.6.18.6.23.6.28. 6.30. 6.31