* *
* All functions are explained below. There are two versions of each *
* funtction. The first is the normal one, the function with the *
* *
* All functions are explained below. There are two versions of each *
* funtction. The first is the normal one, the function with the *