ooooooooooooooooooooooooolloooooooooooooooooooooddoooddddddddddddddddddoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooololllllllllllllllloooooooooooooooooooooddooooooooolloollllllllooooooooooooollooooolllllllllllooooooolollllllllllllllllllloollllcccccccccc
ooooooooooooooooooooollloollloooooolooooooooooooooooodddddddddddddddddddddoooooooooooooooooooooooooooooooooooollloooooooooooooooooooooooooooolollllllllolllllllllolololoooooooooooooodooooooooooollllllllllooooooooooooooollloollllccllccclllooooolllllllllcclllllllllllllllllcccccccccc
ooooollooolooooollooooooddoooloooolooooooooooooooooooddododddoooooooddooddddddooolooooooooooooooooooooooooddooooodddddddooollllllloollllloloolllollloollllloooooddddoddooooooooooododoooooooooooolllllllooooooooooooooolllllllllllllllllccclllllllllllllccccccllcccllllllllllllccccccccc
oooooooooooooolloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooddddddoddooooooooodddddddddddddddddoddddoooolllllllllllllllooolllllllllooodoooodddddodooddoddddooooooooooooooooooooololoooollooooooolollllllllllllllolllcllllllllccccccccccccccclllllllllcccccccccccc
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollooooodddddddddddddoddddddddddoooooooooooooooooolllllllllllllllllllllooooddddddooooooodddddoddddoooooooooooololooooooooollllllllooooooollllllllloooollllllllllllllllcllccccccccccccclllllllcccccccc::cccl
llllolololoooollooooooooooooooooooooolllloloooooooooooooolloolooolllllllllllllllllllooooooooooddodddddddddooolllllllllllooooooooollllllllooooodoooodddddoooodddooooddddddddoooooooooooooollllollllllllllllllloooooooooolllllloooolllllllllllllllllllllllllllclllllllllllllllllccccccccll
lllllllloollloooooooooooolooooloollllllllllooooooooooooolloooolllllllcccccccclllllllllllloooooooooddddooooollllllllllllloddddooooollllllodddooddddddddoooooodddddodddddddoooooooooooooooooooooolllllllllllloloooooooooololllloolllllllllllllllllllllllllllllllllllllllllllllllllllccclll
ccllllooooooooooooooooolllllllllllllllllloooooollllllllllllllllcccccccc:::ccccccccllllllllooooooooooollllllllcllllllooooodddddddooooooooodooooddoddooooododddodddddooodooooooooooooooooooooooooooooooooooooooolloolllllllllllllllllllllllllllllllllllllllllclcccccclccccccccllccccccclll
llllllllllllllllllllllllllllllllllllllloollllllllllllllllllcccccc::::::::cccccccllllllllllllooollllllllllllllcllloooooooooooooododdooooodoodoooooooddodddoooooooooooooooooooooooooooooloooooooollllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccccc::::::::c:ccccccccccll
llllllccccccccccccccccccccccccccccllllllllllllllcccccllcccccc:::::::::ccccllllllllllllllllllllllllllllllllllllllllooooooooooooooooooooooooooooooooooooooooooooooooooooolooooooooollllllllllllllllllllllllllllllllllllllcclllccccccccccccccccccccc:c::::::::::::::::::::::::::ccccccccccl
cccccccccccccc::c::cccccccccclllllllclllllllccccccccccc:::::::::::::cccccllllccccccccllllllllllllllllllllllllllllllllllloooloooololllolllollooooololllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccclccccccccccccccccccccc::::::::cccccc:::::::::::;;:::::::::::::cccccccccc
:cccccccccccccccccccccccllllccccccccccccccccccc::::::::::;;;;;:ccccccclcclccclllcccclllllcccccccclllllllllllllllllllllllllllllllllllllllllccllllllllllllllllccccccccccccccccccccccccllllllllllllcllllcccccccccc:c:c::cc::::::::::::::::ccccccccclooollc:::::;;;;;;;;;;;;;:::::::::::::::
::c:::ccc:::ccc:cc::::ccccccc:c::::::::::::::::;;:::;::;::::::cccccccccccccclcccccccccllllccclclccccclllllllllllllllllllllllllllllcccccccccccccccccccccccccccc::::ccc::::::::::::cccclcclcllccc:cccccllcc:::::::cccccc::::;;::;:;;:;:clllollllllloooollclccccc:;;;;;;;;;;;;;;;;;::::;;::
::::::::::::::::::::;;;:::::::::;;;;;;;;;;;;;;;;;::ccc::::::::::::ccccccccc:ccccccc:cccccccccccccccccccccccccllllllllllllllllccccccccccccccccccccccccccc::::c:::::::::;;;;;;;;:;;::::::::::cccc:ccclllccc:::;;;;::::;;;;;;;,,;;;;;:::::;;;::::::::cccclllllllc;;;,;;;;;;;;;;;;;;;;;:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,;,,,,,,,,,,;;;;;;;:;:;;;;;;;::::::::::c:c::::::::::::::::::::cccc::::::clllllllllclccccccccccccllccccccc:::::::cccccc:::::ccc:;;;;;;;;;;;;;;;;;;;;;::ccc:::cc:ccclc:::;;;;;;;;,;;;,,,,,,,,,,,,,,,,;,,,;::cccccc::cclclc::ccccclc:cc;,,;;;;;;;;:;:cllllo
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::c:::::cccccccccccccc::c:::::cccccc:::::::::::cclllccc::;;:::;;;;;;;;;;;,,,,,,,,,;looddooc:clcc::::::::;,,,,,,,,,,,,,,;;;;;;:;::::cccclllllllllllcccc::cloooooddddol:,,,,::cccllllllllll
,',,,',,,,',,,,,',,,',',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::c:::::::::::::::::::::::;:::::::::::::::cccccc::cccc::;;;;:::c:::;;;:::::,,;:cooodooolllc:::;;;:;;;,,,,,,,,,,,;,;::ccc:::::cllllllllllllllllllcccccllclllloooolllcc:ccllcllllllllllcc
,,,,,,,,,,,,,,,,,,,,,,,,,,,,','''''''''',''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;,,;;;;:::::::;;;;;;;;;;;;;;:;;,,,,,;;;;;;;;;:::::;;;::::::::::;;;;;;,,,,,,,,,,,,,;;;;;;::::::::::cccccclllllllllllcccc:::::;,;;,,;;::;;,;;;,,,,;:ccccccccc;;,
,,,,,,,,,,,,,,,,,,,,,',,'''''''''''''''''''''''''''''''','',''',','''',',''''''''''''''''',,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;,,,,,,,,,,,,,,,,,,,,,;,;;;;;;;;;;;;;;;;;;::::::::::::::::;;;;,,,,,,,;;;;;;;;;,,,,''''''''',,,,',;::
,,,;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,''',,''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,',,,,',,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,'',,,,,',,'''''',,,,,,,,,,,,,,,,,,,,,,,',,,,',,,,,,,,,,,,,,,,'''''''''''''''''''''''''.......',;;
,,;,,,,,;;;;,,,,,;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::c:cc:ccccccccccccccc:cccccc:::::::::::;::::cc::::c:::;;;:::ccccllcllcccc:::::;;;;;;;;;;,;,,,,,,,,,',,',,,'''''''''''''''''''''''''''''''''''''''''''''.'........''.......'''''.'.............'...................
,,,,,,,,,,,,,,,,,,,,;;;;;;;::::::::::::::::cccccccccccccccccccccccccccccccccccccccccccccccccccccllcllllllllllllllllllllllllllllllllloooooooooooooooooooooooooooolcclooololooloooollllc:;;,,;;;;:::cccllc::;;;;;;;;,,,,,,'''.............................................................
,,,,,,,,,.,',,,,,,;;;,,,;,,;;;;;;;;;;;;;;;;;;;;;:::c:cccc::cccccccccccccccccccclcccllllllcllllllollllllllllllllllllllloooooooooooooooooooooooooooooodoodoooddddooooooddddooodooooloooooooolllcllodddddddddddolccloolc:;:::cccc:::;;:;;;;;;,,.'''.....................................'''
,,,,,.. .....''....'......,;;,,;;,,,,,,,,,,,;;;,,;;;::::;;;;;;::::::::ccc::;;::::::::::cccclcccllllllllllllllllllollooooolooollllooooooooooooooooooooooooooooooooooooollllllooolllolllcccccclcccllloooc:;;;:::;;;;;;:llllooooooooolc:;;';;;;;;;;;;;,,,,,;,,,,,,,',,,,,,,,,,,,,,,,,,
.. ..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::cccc:::ccccccccccccccccccccccccllllolllllllllllllllllllllllllllllllllllllllllllllllllooolllllloooooddooooooooooooooooooooooooc:;,,,,.,;;;;;;;;;;;,,,,,,,,,,,''''''''''''''''''''
. ...'.'.'''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,;;,;;;;;;;;;;;:;;;;;;;:::::::::::::cccccccccc:c:ccccccccclcllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcclllllloooooodddddddddddddoc:;;,,,,.,,,,,,,,,'''''''''...............'''.......
...'''''''''''''.','''''''''',,,,,,,,,,,'''''''''''''''''',',,,,,;;::;:::::::::::::::cc::::ccccccccccllllllllllccccccccccllcllclcllllcccccccclllllllllllcccccccllllllllllllooloooolllooooolllccc;':;,;,,,',,,,,'''''''''......'''..'''''',,''
..... .. .. .....'''..................................'''''',,,,,,,,,,,,',,,,,;;;;::cccccclcc:::;;:cccccccccccccccccccllllccclllllllllllccclllllllcclllllllllllllllllllllllllll:;lcclllllc:;;::;;;;;;,,'''''.............',,
. .................................................................,''','',,,,,;;;:::::::::::::::::::::::::::c:::cccccc::::;;;;;;;;;;;;;;;;;;;;;;::cccc:ccccc:,':::::,'.......'.'''........................
. .........................................'...',,;,,,',cc;'';,,,............................................................................. ..............................'''''',,,,,,,
.,''.,cccc,. .'...,,'....''...',;:,:lolc:lc:::c::,'';,'.......................'''.'................................ ......',;;;;:::::;'........'''''',,;;;;:;;;;:::::::::;:::;::;,,;;
. . .. .:;;:.'.....''.''.'',''...,''''',,;::;;;,;;:::;;;;;,,,''....'............ .............'',;:::;;;,,,,'''''''''',,,;;;;;;;;;:::ccccccccccccc::::;;::::::::
....... ..',,::::;:,:cccc;;'''.........''',,,,;;,,,,;,.'',,,..,,;;;'.'.........'''''''''''''''''.''....''''',',,,;;;;;;;:::::::::::::::::::::::::::::::c:::::::
.' . . ...',;:;:ccclcc:;,',,,,.....,,,,'',',,,;;;,,'.,:lollcc::;;;,,,,,,,'''''.'''.''.'''',,',,,,,,;;;;:::::::::ccc::c::::;,',',',:llllllllllclcccccc:::::;
.......... ......................'''............'.'.'''',';:;cdoc:llllllllcclllll; ,:;:::c::';;,::;:ccccc::;;;;;,,,,'''''''''',',,,,,;;;:::::ccccccccccccccc::::;,,''.... ....,',coloooooooollc:c:::;::;
. .,,,,,;;;;;;;;;;;;:;::;;;:;:::::::::;;;;;;;;;;;;;;,,';;:::::;,'oxxxcclcldddddddddddo,.,,:llllclcllc:c::;;;;;;;;;;,,,,,',,,,,,,,;;;;;;;;::::::::::::::::;:;:;;;:::::,'...... ............;loddddooollc::c;;;::,,'
:::c:::::::::::::::::::::::::::::::::cc:::::::::::ccccc::cllllccccccccccclllllllcclllcccc:::cc::::::;;;;;;;:;;;;;:::::::::::;ccc:;:;'..':xxxc;:;ccclll:;,';,'.;lllcllc:::::::;;;,,,,,,,;;;,,;;;;;;;;::;::::::::::::::::::::::cccccccccclc,..................'.,;cllooollll:::::;;:;;';,'
dddoooddddooooooooooodddooodddddddddddoododdoddoddddddddddddxdddddddddddddddddddddddxddddddxxdddddddddddddddodoooooooooooooocc::;cllc:;,;xkxklllc:,.',.',,;::;::;::;;c:;;;;;;;;;;,;;;;;;;;;;;;:;::::cccclccclcclcccccclccllccccclclc:clc,..:c,';............,:lllllllllc:;;:::;;;;;,;;'.
dddddddxddddddddddddddddddddddddddddddddddddddddddddddddddddddodddodddddddddddddddxdddddddxxxxxxxxxxxxxxxxxxxxxkkkkkkkxdddl;'.',cdkkxdxxxxkxxxxxko;;,:,,:,,,;::c,:;;;::;;:::;:::c:::::cccclollloooddododoodddooooollllloooooooooooddxxxxddddddddo:;,,::;::clllllccccc:;;:;;:;;,,;,,,',,,
xxxxxxxxxxxxdxddddddddxdxxxxddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxkxxxxxkxkxxkkxxxkkkkkkkkkkxxxxxo::cc;coxOxdxxxxxOxxkxxkkdl::;:;;;;:ccc,c:;;:cc:ccccccclllcllloolloooooooooodddddodoodddoooooooooodoooodooooooooooooooololllccccc:cc::::::;;,,,,,,,,,,,;,'''',,
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddxxxxdxxxxxddddddxxxdxxdxddxxxxxxxdddddxdxxxxxxxxxxxxxxkkxxxxxxxxxxdc;;:c::dxOkxdxkxxxOxxxxxxkxol:;:;;;,;:locclcc:cccccccccclclolllooollolololllloololoolloolccllolllcllllcccc:cc:::::::cccc::;;:;;,,,,;;,,,,,,,'''..'''.''.........
xxkkkxxkxxxkxxxxxxxxxxxxxxxxxxxxxxxxxddxxdxdddddddddddddddddddddddddddddddddddddddddddddddddddxdddddxxxd;;oddddddddddoc,;''...oxkOxddxxxxxOxxkkxxkkd:',,;,'',ccc;:cll:c:lc:cclclcclcolc:ccccccccccccc:ccccc:::::cc:::::c:;;:::;;;;;;;;;;,,,,,,,,,'''''''''......'......'................
kxkkkxxxxxxxxxxxxxxxxdxddddddddddddooddddooodddddddddoooddddodddoooddddoooooooooododdoododdddddddddddddolcdooooodol:;,..'''.;odxOkxddxxxxxOxxkxxxxkxoc;'...,;c:,,;:::;::c:c::c:c::;::c:;;::::;:;;::::::;::::::::;;:::;;;:::;;;;;;;;;,,,,,,,',,''',,,''''''''....'.........'.............
xxxxxxxxxxxxxxxxxxxdxxxxxxxddddddddddddooooooooooooooooddoooooooooooooolooooooodooooddoodooodddl.,ddddddllooooool:;:;,,,,,,:odxOkxddxxxxxxOxxkkxxxxOooc,',c:';;,;;:c::;;:c:;;;;;:;;;;::;,,;;::;;;;;;;:;;;;;:::::::;::::;;;;;;;;,,;;;;;;,,,,,,,,,,,,,,,,,,,,,',''''',,','''''''.....''''.
oooooooooodddddddddodoodoodoodddoooooooooolllloooooooodddddddoooooodooddddodddddddddddooooddddc.. ,ddddoclollol:;,;:;,'...,coxOOxxxxkkkxxkOxxkkxxxxkkol:'.;:;,'';,;,:::;;;:;;,;;;:;;;;;;,,,,;,;;,;;,;;;;;;,;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;,;,,;;,,,,,,,,'',,,,,'',''''''''''''''''.'.
ooooooddddddddddddodddddddddddddddddddxddddddddddxxxxdddodddxddddddddddddddddoooododododddddddoo;lcoooll;clc::;,''';;,'.,cxdkOOxxdxxxxxxxkOkkkkkxxxxkkdoc'';c;'.:c;,;;:;,;,,;;,;;;;;;:,,,,,;,,,,;;;,;;;;,,,;,,,,,,,;;;;;;;;;;;,;;;;,,,;;;;;;;,,,;,,,,,,,,,,,,',,,,,,,,,',,,,,,,,','''','
dddooooooddddddddddoodddddddddooddddodddddodxdddddddddxdxxxddddxo,'',odddddddxxdxxxxxxxxxxxddddd:dooollc,:;;''''.',','':lodkOOkxxxxkkkkxxOkkkkkkkxxxkkOxdl;',''',,;:c:::,,,;,;;,,,,,;,;,,',,,;''.,,,,,,,,,,,;;;;,;,,;;::::::::;;;,;;;;;;;;;;;;;;;;;;;;;;;;,;;;,;:;;;;;;,,;,;;;;,,,;;;;;;
ddddddddddddddddddddddddddddddddddxdxxxdddxdxxdddxxxxxdddxddxxxd. . .oxxxxxxxxxxkkxkxxxxxdddddo:occcc::;;,,,;,''.',;:codxk0OkxxxkkkkkkkxOkkkkkkkkkkkkOOkddl:'';:;;;:::,;;;,,,,,,,,,,,,,,,,''',''''''''''''''',,'... .'''',,,,,',',',',,,','',,;;;,,,,;;;;;;;,;;;;;;;,;;;;,,;;;,;,,,,,,,
dddddddddddxxdddxxxxxxxdxxxxxxxxxxxxxxxxxkxkkxkxxxxxxkkkxxddoodo. .llollccc;ccllllclolccc::;,......',;,''.'...;;:lloxkO0OkkxxkkOOOkkkxOkkkkkkkkxkkkkkOOxdo:,,',;'..'',:cc::,;,,,,,,,,,,,,,,,'''''''''''...''.. ...'''...'''''''..''.'........''''''''''''''.'.'.''''...''''.'''''
xxxxxkkxkkkkkxxkkxxkkkkkkkkkkkkkkkxxxxxkkkkkkkkxxxxxxkkkkkkkxkkkxl',lxkkxxddddooodollllc;,,,,'....'....''.....',clddxoxO00OkkxxkkOOOkkkkkOkkkkkkkkkxkkkkkOOxddl;...'''',',;,;;:;;;,....'',;::::::c::::ccccc:::::' ,::cc:;;;:::;:::::::::;;;;:;;;,,,,,,,,,'''''''''.'.'''............
dddddddddxxddxxxxxxxxkxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxkxxxxxx;lxxxxxxxxxxxxxxxxddolc:;;;,,,',,,,,,,;;:;;;;;cdxddkO00kkkxkkkkOOkkkkkkOOkkkkkkkkkkkkkkkOOkxddl:'...,::,',,;:cll;'.....,;:cccccccclllccccccccll:,.';ccc:cclc::::::::::;;;;:;::;;;;:;:;;;;,,,,''''',,,',,;,,,,,,,,,,,,,
ddddddxdddddxxdxxxxxxddddddxxdddxxxdddddddddxdddddddddxxxkxxxxxxxd,cddddddddooollllc::;;;;,;;,,,.,;;;;,,;::::cldxxdxkO0OkkxxxxkkkkkkkkkkkOOkkkkkkOkkkkkkkkkO0kxddoc;'..',;;;;',;;:;,'.....'',;:;:::::cc:cc:;:;;:;;;.;;;::;:;;;:;;;;;;;;;;,,,;,,;,;;,,,,,,;,,,,,''''','.''',,'''''''','''
xxxxxxxxxxxxxxdddddddddxdddddddoooooddoddooodddodxxddxxdxxxdxddddo,lxxdxxddoool::c:::;;;:;;;;,,,',''',,',;;:coxxxxkO00OkkkkkkkkOOOOkkkkkkOOkkkkkkOkkkkkkkkkkO0Okxdolc;'.';;;,,;,,,,;:;;;:;;'...,;::::cccccccccc::;,.:::::;::;::;:;;;;;;;;;;;;;:;;;;;,;;;,;;;;;,,;,,;,',,,,,;,,,',,,,,,,,
dxxxxxxddddddddxxxddxxxxdxdddoododdlooooodoxxxddddddddddxddooooddd,ldddooolcccc::;,,,;;,,,,,,,'',,,'.';::clddxxxkOO00OkkkkxkkkOOOOOkkkkkkOkkkkkkkkkkkkxkkkkkkk0Okkxddolc,,;;:;,';;,,;;;:,,,,.'.'..',;::::ccccc::::,.:;::::::::;;;;;;:::;;;:;;;;;;;:;;;;;;;;;;;;;;,,,,,;;;;;,',,,'''',,,,
xxxxxxxxxxxxxxxxdddddddxddxxxxxxdoddldddodloddodxdxxddddxxdddxdddd'lddoooc:;,::;,,'..,;,,;'.'..',::;,,;;ccoxdxxkOO0OOkkkkxkkkkOOOOOkkkkkk0OkkkkkkkkkkkkxkkkkkkkO0kkxdddol:;:ll::;'''.',,,'.'.......','';;:::c:::::''::;;;::::;::;:;;;;;,;;;;:;;;;;;;;;;;;;:;;;;,;;;;;;,,,,,,,,,;;,,,,',,
xxxxxxxxxxxxddddollodddddddxoddddoodldddodooddoododxooddxxxxdddddo.colllc::;;;,'',','',,','.;,,'''..';:odxxxxkkO00OkkkkkxkkkkOOOOkkkkkkkkOOkkkkkkkkkkkkxxkxkkkkkO0Okkxddo;'.;;:c,.....',,,,'. .......',;;;;:;.,::::;;;;;;;;;;;;;,,,;,;,;;;;;;;;,,,;;;;;;;;;;;;,;,;,,,,,,,,'',,,;;;;
ooooloodddcoc:ccc:cllooodoodoolcllcollolc:::clccoclol:clooooollooo.::::::;;;,,,,,',,,,''';;,,,;,;,'':odxdolokO00OkkkkkkkkkkkOOOOOkkkkkkkkkOkkkkkkkkkkkkkxxxkkkkkkkO0Okkxddolc;;,;:c:,''',','. .......'',,,.,::;;;;,,;;,,,;,,,,,,,,,,,,,,,;;,,,,,,,;::;,;,,,,;,;;,;,,,,,,;,;;;;;;
,;,;,;:,;,';;,''''',,;;;:lcc;:cc;c;;c:c:,......'',,cc,,:;::::::;::.;:;;;'',,,,',',,'',,',,',;;:c::codxdxxkkO00OkkkkkkkkkkkkkOOOOOkkkkkkkkOOkkkkkkkkkkkkkkkkxxkkkkkkkO0Okxddxolc,'.''.. '''.'',.. .............;:;;;;;;;;;:::;;;;;;;;;;;;;,;,;,,',,,,;;;,,,,',,;,,;;;,;,,,',,,,,',,
'..''.''........''''''',';:''.',;,,.;:,',...........,..,,;,,;;;,;;.;;::;,,',;,,,',,,;;,;:ccclc::loxxxxxkO00OOkkkkkkkkkkkkkkOOOOOkkkkkkkkkOOOOkkkkkkkkkOkkkkkkkkkkkkkkkO0OOkxxddolc;'...'.................'','','..........',;;::cc:::;:;;;;,;;,,;,,,,;;;;;;;,;;;:;;,;;;;;;;:;;;;;,,,,;;;
'......,,'..... ..'.'';',;,'.''.'.''',,,,.,',',;'.......,''',,,',.',;,,,,,,,,,,',;:::cl:cllodxdxxxkO000OkkkkkkkxkkkkkkOOOOOOOkkkkkkkkkkk00OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOkkxxdddl:,''......... ....,,,::::;''............',;c;;::;:;;,,,''',''.',,,,'',,,,,'::,,;,:;;;::::;;;::;,,;
','','..,,''.,,......,.:,.',,,','........''.,'','..... ..'.''''.',.''',,,;;;,;;;;;cloodooddddxxkkOO0OOkkkkkkkxxkxkkkkOOOOOOOOOkkkkkkkkkkk00k0OkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOkxxxxddoc;;'.. ......''''.......,,',.....',.'',.,,',,,'.'..''.....''..';;:,,,,',,,:;:;;,';::;;;:
,'',,..''..'''''',,..,',,'.,''.,'''.. ... .....'.......''',,,,,,;::cccllllc::cloddxkxxxxdxxxkkOOOOkkkkkkkkxxxxxxkkkkkOkOOOOOOkkkkkkkkkkkkKKkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOkkxxddo,.. .','''''..............'.,,;',,,,,,',','......''',....',';:,'',;;;,;;::;,;;:,,'''
...''.'........',,;''',c:;;;''',,,'.... .:ddddddxdxxxxxxxddoxxdl:,.........,;ldxkkkOOOOOkkkkkkxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkk0KkkOkkkkkkkkkkkkkkkkkkkkkkkxkxxxkkkkkkkkkkOOOOkkxdc,,,'.. ....'.'....''.......,,,,;,;''',''.','','.,....''.........'.,,,;;,''.','';,,;;',
.......'..... ....'..'.,;,,;',,','....... .',;,,,;;:;:;;;'...........,;:::ccclldkO000Okkkkkkkkxxxxxxdxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkk0KOOK0kkkkkkkkkkkkkkkkkkkkkkkkkxkkkkxxkkkkkkxkkOOOkkxxdolol:'...........'.''....'''''...',',..',...'..'.......'... . ................'',,;;;,
............ .............'''''...... .. ...,...,;:clodooodxkkkO000OOkkkxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxxkkkkk0KOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxxxxxxkkxkkkkkOOOOkxxdooooolc;'.....''......'','',''',c:,,......',. .. ...... ... .................'.
..............'. .... ............. .'..',cododdddddxxkO000OOkkkkkxxxxxxddxdxdddxxxxkkkkkkkkkkkkkkkkxxkkkxxxxkkkkk0KOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxkkO0OOkkkxdddoool;,'....'''.......';cllll:;;;,'....... ......... ... ........... ... .......
,',........ .. . ............ . ...',;cdddooddddxkkO000Okkkkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxxkkxxxkkkk0XOxkOOkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxkOOkkkxkkxxdoddool:;,'. ..,:llodddc;'...''.............. .... .. ... . ..
';;,'......... . .... .'....';,,,;coddxddooxxkkO000OkkkkkkkkxxxxxxxxxxxxxxxkkkkkkkkOOOkkkkOkkkkkkkkkkkkkkkkkkkkkxKXOxOXKkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxkkO0OOkkxxxxxdxdddol;,'':lolollllc:;,'','..',,................ ... .... ... .. .
,'''..... ...'.. ...',:::loodoooododxkkO000OkkkkkkkkxkxxxxxxxxxxxxxxxxkkkkkkkkOOkOkkkkOkkkkkkkkkkkkkkkkkkkkkkKXOokOOkkkkkkkkkkkkkkkkkxxkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxkxxxxxkkOOOOkkxkxxxddoodolll::;::::;;;::,,;;::c:;,.....,,''.. .............. .. . ....
',,'............ ....,::;,:llodooooodxxkkO000OkkkkkkkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkk0X0oxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxkOOOOkxxxxxxdddddodocc;;::::;;:;,,;,;,,,;;','......... ..'.'.'... .........
'''........ ....,:lolooddlllodxxkO0000OkkkkkkkxkxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkxkkxxkkkkkKXKddxkkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxkOOOOkxxxxxxxxdooooooccc:;,'..,,,;;,,,,'''.'..........'',;,.............
..... ........,;;c:cloloodddxxkO0000OkkkkkkxkxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkOkkkkkkkkkkkkkkkkkkkkkxxkxkkkkkkkkk0XKddxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxxxxxxxxxxddddxxdxxxxxxxxxxxxxkOOOkxxxxxxxddooooddollc;;;,,,;,,::;;........ .......,...,','..
. .....',,,::cccclooolodddxxkkkO000Okkxkkxxxxxxxxxxxxxddxxdxxxxdxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxkkkkkkkkkkx0XKddxkkkkkkxxxkxkkkkxxkxxxkkkkkkkkkkkkkkkkxkkxxxxxxxxxxxdddxddxxxxxxxxxxxxxxxxkO00Okxxxxxxxdoooloolooooc:'',;,........ . .. .....',;,,,,,.''
...,:c::::llollcloooodddxkxkkO0K0OkkxxxxxxxxxxxxxxxxxxxxxxxxxdxxxdxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxkkkkkkkkkkkKXXxod00KOkkkxxxxkkkkkkxkxxxxkkkkkkkkxkkkkkkkkxxxxxxxxxxxddddddddddddxxxxxxxxxxxxxxkOO0Okxxxxxxxdddooooddllcc:::;...... .....,,,;;;,:;;;'.'',
..';ccdlclllocoolllcllodxxxxkO0K0OkxxxxxxxxxxxxxxxxxxxxddxxxxxxxxddxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkkkkkxxxxxkkkkkkkkkKXXkdx0XX0kkkxxkxkkkkkkxxxxxkkkkxxxxxxxkkkxkkxxxkxxxxxxxxxxdxdddddodddddddxddxxxdxxxxxxkO00Okxxxxdxdddooolooooll::c:'......''.;;:cc:,,,,';'.'..
..,,cllodooolloooloxdddxxxkO0K0OkkxxkxkxxxxxxxxxxxdxxxxdxxxxxxxxxxxxxxkxkxkkkkkkkkkkkkkkkOkkkkkkkkkkkkkkkkxkkxxkxxxxkkkxkkkkKXXklxOXXKkxxxxxxkkkkkxkxxxxxxxxxxxxxxxxxxxxxxxxxddxdddxdddddddddddoooooodddddddxxxxxxxxxxdxO0OOkxxxxddxdddoooooolllocc:;''.''',;:,:::;;;,'....
..,:cllodoocododdododxxxxxkO0K0OkkxkxxkxxxxxxxxxxxxxxxxdddxxxxdxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxkxxxxxxxxxxxxxkxxxkKXXOooxOOOkkxxxxxxxxxxxkkxxxxxxxxxddxxxxxxxxxxxxxxxxdddddddddddddddoddodooodooddddddddddddddddxkO00kkxxxddddddoooolool:llcll::cl:,,,''''......,
...... .':cllll:lolldoododxxxxxkO0KK0OkxxxxxxxxxxxxxxxxxxdxxdxdddxxdxddxdxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxxkxkxxxxxxxxxxxxxxxxxkKXXkodxkkkkkkxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxdddddoooooooodddlllooooooodddddddddddxdddxkO00Okxdddddddddodololl:llllcc:,''.....'..'..
',;;:;clllloododdoooxdxxxxxkO0KK0OkxxxxxxxxxxxxxxxxdxxxdxdddxxxddxxxxxdxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxkxxxkxxkxxxxxxxxxxxkKXXOoodxxkkkkkxxxxxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddoodddddoooolllloooooddoddddddddddddddxkO0Okxdddddddodoolccoollccclc::;:,''....
coclldollodoodddxdxxxxxkO0KK0OkxxxxxxxxxxxxxxxdxdxxxxxdxdxxdxddxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxkxxxxxxxxkxxxxxxxxxxxxxkKXXOlodxkxkkkkxxkxxxxxxxxxxxxxxxdxxdxddxxxxxxxxxxxxxxxxxxxdddoooolooooooooooooooocllloooooooooooooooodddddkO00kxddddddddddooolll:cllllcc:c:,...
olcllloodxxdddxxxxxxO0KKKOkxxxxxxxxxxxxxxxxdddxxxxxxddddddxxxddxxxxxxxxxxxxkxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkKXKOooddxxkkxkkxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxxxxxddoddddddddddooooollolllllllloooooooooooooooooooodooooodddddxkO0Okxdooddooooooocc:clolllccllc:
loodoooddxxxxxkkk00K00kxxxxxxxxxxxxxxxxxxxxdxdxddddoddddddddxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxOKXX0doooddxxxxxxkxkxxxxxxxxxxdddddddxxxxxxddoodddddddoddddddddddddddooooooooooooooollooooooooooloooooooddoddoodddxk00Okddooooooooooooloolloolcl
ddoddxxxxxxkkOKKK0kkxxxxxxxxxxxxdxxxxxxdxxxxxxdddddddddxdddddxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxx0XXXKdolcdxxxxxxxkxkxxxxxxxxxxxxxxxdxxxxxxxxxxxxdxxxdddxxdxxxxxxdddddoddooooooooooooooooolllloooooooooooooooddooododddxO00Oxddoooodoolooolllclll
xxxxxxxxkO0KK0OkxxxxxxxxxxxxxxdxxxddxddddxdxdddddddddxdddddxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkxxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxOKXXKxol:lxxxxxkxxxxxxxxdddxxdddxxdxdddddddddddoddddddddddxxxxxxddddddddoooooooolllloololooollllloooooooooodddoooooooddodxkO00kxdoodooooooooooll
xxxkkO0KK0OkxxxxxxxxxxxxxxxdxxdxdxxxxxddddddddxdddxxdddddddxxxxxxxxxxkxkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxOKXXKxdlc;cddxxxxxxxxxxxdxxdxxxxxxxxxxxddddddddddxxdxddxxxxxxxxxxxxxxxxxdddoodooollllllllllllllolllllllllloolloolooooooooooodxkO0Okxdddooooooooo
kO0KK0OkxxxxxxxxxxxxxxxxddxxxddddddddddddddddddddddddddxxdxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxkkxxkkxxxxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxxxxOKXXKkdoc:lddddxxdxdxxxxxdddddxxxxxxdxxdddddddddxxxxxddddddddddodddddddoddooodooooooooolollllclllllllllllooolllllololloooooooddodxO00Okddooooood
K0OkxxxxxxxxxxxxxxxxxdxdddddddddodddddddddddddddddxdxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxdxdxxxxxxxxxxxxxxxxxxxxxxxxdOKXXXkddlcloddddxxxxxxxxxddxddxdxxdxxdddddddddddddxxdxxxxddxxxdddoddddddddooooooooooloooooollooolllllllclllollllllcllllooooooooooooodkO00Oxdoodd
xxxxxxxxxxxxxxxxxxdddddddddddddxdddddddddddddddddddddddddddxxxxxxxxxxkxkkkkkkkxkkxkkkxkkkxkkkkkkxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxxxxxxxxxxdxKKXKkoooolodddddxxxxddxxxdxxxxxxxdxxdddxddddddddxdxdddddxxdddddxddxddddddddoooooooollodoodlllloolllllllclllllccloclllclllllllllooloooloxOK0Oxoo
Final year project planning diagramFinal Year Project (FYP) Guide for Students
Introduction The fact that you have decided to read this behemoth of an article deserves admiration and tells me that you’re serious about your academics and career (or are procrastinating on something else). Give me the next 20 mins of your life and I’ll make you into a much more informed individual. Your Final Year Project (FYP) is one of the most important academic tasks in your degree. It can shape your future career, boost your portfolio, and improve your problem-solving skills. This guide will help you choose the right topic, advisor, tech stack, and strategy to ensure your FYP stands out. This guide mainly targets FASTians because of my experience, but the advice applies to any university. I’ve been through the process as a student, and now I see it from the other side as a lab instructor. So take my very opinionated advice with a grain of salt. ...