I want to write a simple web app that has the following characteristics and functionality:

1. There is a text box with a submit/download button
2. the user inputs a valid username and presses submit/download
3. The pressing of this button triggers the downloading of a .pgn file to their local machine

There are three main files for the app to work:

1. the .html file
2. the main javascript file
3. the userAgents.js file which holds a list of user agents that will be called in the main javascript file


The following is a simple outline of how the web app should work:

There are 4 main functions:

1. a function that makes a single call one time to one endpoint, `https://api.chess.com/pub/player/${username from the text box}/games/archives`, to retreive a list of urls links used in the following function 2.
2. a function that asynchronously makes get requests using that list of download links returned from function 1.
3. a function that concatenates the results of the responses (chess games) of those requests (in .pgn format) 
4. a function that triggers the download to save the concatenated results of function 3. the user's local machine.

Note that:

- you can use as many functions as required to accomplish the what the above functions accomplish and fulfill the characteristics and functionality of the web app.
- all functions that make get requests implement JSONp
- No api key is required at any point 
- random user agents selected from the userAgents.js file must be applied to each get request 
- each url in the list of urls returned from the request to the endpoint "https://api.chess.com/pub/player/${username from the text box}/games/archives", must have a "/.pgn" appended to it prior to making subsequent asynchronous requests. For example, if the list of games returned from a get request to "https://api.chess.com/pub/player/${username from the text box}/games/archives" returns a list of urls, ["https://api.chess.com/pub/player/hippodrunkimus/games/2023/03", "https://api.chess.com/pub/player/hippodrunkimus/games/2023/04"], then the url, "https://api.chess.com/pub/player/hippodrunkimus/games/2023/03" should look like "https://api.chess.com/pub/player/hippodrunkimus/games/2023/03/.pgn?callback=myExampleJavascriptFunction". 
