Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΠ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. Write a program that can be used to download data from multiple sources and protocols to local disk. The list of sources will be given as input in the form of urls (e.g. http://my.file.com/file, ftp://other.file.com/other, sftp://and.also.this/ending etc) The program should download all the sources, to a configurable location (file name should be uniquely determined from the URL) and then exit. In your code, please consider: * The program should be operating system agnostic * The program should extensible to support different protocols * Some sources might very big (more than memory) * Some sources might be very slow, while others might be fast * Some sources might fail in the middle of a download * We don't want to have partial data in the final location in any case. * Please also include tests (unit tests, integration tests) * Note that this is an exercise in Software development, so small details do matter You can implement the code in Scala, Java, Python. Also, please include the instruction document on how to execute and test; any format should be okay. Please refrain from posting the questions and/or solutions to any public server.