::://///////////////////////////////////////:::::::::::/::::::::::::::::::::::::::::--://:-::--------::::::::://///++oooooo++ooooooooooo+oooooooooooooooooooooossoooooooooooosssssssyyyyyyyyhyyyyyyyyyyy
:::::://////////////////////////////////////::::::::::::::--:::::::::::::::::::::::::::::-::::::-::::::////:://///////++++++ooooooooooooooooooooooooooooooooooosssoooooooooooossssssyyyyyyyyyyyyyyyyyyyy
//:::://///////////////////////////:////////:::::::::::::------:::::::::::::::::::::::---:::-:::::::::::///:://///////////++++++oooooooooooooooooo+ooooooooooooooooooooooooooossssssyyyyyyyyyyyhyyyyyyyh
:////://:::::::::://////////////://:::::////////::::::::::---:::::::::::::::::::::::::--:::::::::::::////++++////////////+++++++++++ooooooooooooooooooooooooooooooooooooooooooooooosssyyyyyyyyhyyyyyyyhh
:////://:::::::::://////////////://:::::////////::::::::::::::::::----:::::::--::::::::://+oo+////++ooshdmmdhso+o+++++++++/////////+++++oooooooooooooooooooooooooossossooooooooooooosssyyyyyyyyyyyyyyyyy
:////://:::::::::://////////////://:::::////////::::::::::::::----------::::::::://++osyhmmNNNNNmmNNNNMMMMMMMMNNNNmmmmmmmhs++++++++++++++++++++oooooooooooooooooooooooooooooooooooosssssyyyyyyyyyyyyyyyy
:://:://////////////////////////:://///////////////::::::::::::::::::::::://://+shmNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdhhdhysoossooo+ooo+++oooooooooooooooooooooo++oooooossssssyyyyyyysyyyyyyyyyyyy
////////////////////////////////:://///////////////:::::::::::::::/+syyyyyyyhdmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNmdysoooo++oooooooooooooooooooo++++oooosssyyyyyyyyyyyyyyyyyyyhhyyy
//////////////////::////////////::////////////////:::::::://++oyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmdhyoooooooooooooooooooooooo+oooooossssyyyyyyyyyyyyyyyyyyyyyyy
//////////////////::::://///::::::///////////////:::::/+osyhmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmyoo+ooooooooooooooooooooooooooossssssyyyyyyyyyyyyyyyyyyyyy
///////////:////////////////::::::////////////:::::/+ohmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhysoooooooooooooooooooooooooossssssyyyyyyyyyyyyyyyyyyyyh
///////////:////////////////::::::////////:::::::/ohmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNdysoo+oooooooosssoooooooooossssssyyyyyyyyyyyyyyyyyyyy
///////////://///////////////////////////:::///ohmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmhsoooooooosssssooooooooooosssssssyyyyyyyyyyyyyyyyyy
///////////:///////:::////////////////::://+oydNMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdysooooooooossssooooooooooooossssyyyyyyyyyyyyyyyyy
///////////::://////:://::::::::::///:::/ohdNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMNNmNNmmmNNNNNMNmNMMMNNNMMMMMNNNNNNNNMNMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMNhyooooooooossssoooooooooooossssyyyyyyyyhyyyysyyy
///////////:::://///://////:::://://::+sdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNmddhhhyyddhdmdhddmmmNmNmmmmmdhhdmmNNmmNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNhyoooooossssooooooooosssssssyyyyyyyyyyyyyyyyyy
::://///////////////://::::///://///+ydNMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmdhysssoosyyso++//+osooso++osssyysosssysooyhdddhdmmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdsooooooooosoooooooossssssyyyyyyyyyyyyyyyyyyh
////////////////////://:/:/::::///+smNMMMMMMMMMMMMMMMMMMMMMMMMNmdhyo++//:---..-://:-..---:----------::-.-//:-:/++oooosyyhhdddmNNNNNmmmddmddddmmNNMMMMMMMMMMNhsoooooooosooooooooosssssyyyyyyyyyyhyyyyyyyy
/////////////////////////////:://odNMMMMMMMMMMMMMMMMMMMMMMMNmhso/::----...........`````...```````````````...`.-::::--:::::///+osssoossooosssssyyhdmNMMMMMMMMNdysssooosoooo+oooosssssssyyyyyyyyyyyyyyyyhh
/////::////::://///////////////+smMMMMMMMMMMMMMMMMMMMMMMNmhs+:::-................``````...````````````````.....-..-...-.........--::://:::////++++oydmMMMMMMMNmhssooooooo+++ooosssssssyyyyyyyyyyyyyyyyyy
///::::////::::///////////////+ymMMMMMMMMMMMMMMMMMMMMMNdy+/------................``````...`````````````````..-..`.................----------:::::://+ohNMMMMMMMmhysssoooo++oooossssyyyyyyyyyyyyyyyyyyyyy
::::::::::::::::::://////////+smMMMMMMMMMMMMMMMMMMMMNmho::------................````````..`````````````````....```..--.............--..-::----:::-:////shNMMMMMMNmhssooooo+oooossssyyyyyyyyyyyyyyyyyyyhh
::::::/::::/::::::://///////+smNMMMMMMMMMMMMMMMMNNmmdyo/---.................````````````..``````````.``````...````...-........``...--..--------::-::/:://sdmMMMMMMNdyssoooooooossssyyyyyyyyyyyyyyyyyyyhh
////////:://:::::://::://///odMMMMMMMMMMMMMMMMMMmmdhs/:-.--...............``````````````````````````````````.```..```........``.......--------------:::::/+sdNMMMMMMmhysssssosssssssyyyyyyyyyyyyyyyyyyyy
////////////////////:://///+hNMMMMMMMMMMMMMMMMMNmdy+:..-..-................````````````````````````````````````...````.......``........--------------::::://oymMMMMMMmhyssssssssssssyyyyyyyyyyyyyyyyyyyy
////////////////////:://://smMMMMMMMMMMMMMMMMMMNdyo/::::---.....................``````````````````````````...............``............----------::-:::::://++sdNMMMMMmhsssssssssssyyyyyyyyyyyyyyyyyyyyh
////////:://////////:://:/+dMMMMMMMMMMMMMMMMMMMNdyo+/::------....................```````````````````````````.......``....```.`.........----------::-::--:://+++sdNMMMMMmhyysssssssyyyyyyyyyyyyyyyyyyyyyh
///////::://////////////:/smMMMMMMMMMMMMMMMMMMMNmdyo+:--------..............``````````````````````````````````````.````....```.............---------::-:::::///+ohNMMMMMmhssssssssyyyyyyyyyyyyyyyyyyyyyy
/////////////////////////+hNMMMMMMMMMMMMMMMMMMMmdyo//:--------...............````````````````````````````````````````````......``..........------------:::::////+smNMMMMMmysyyysssyyyyyyyyyyyyyyyyyysyyy
/////////////////////////odMMMMMMMMMMMMMMMMMMMMmhyo///::--::----..............``````````````````````````````````````````...................----...----:--:::////+ohmNMMMMNhhhyyyyssyyyyyyyyyyyyyyyyyyyyy
/////+//////////////////+sNMMMMMMMMMMMMMMMMMMMNdso+++//::::------.-----------....```````````..```..``````...```````````......................--.------::-::://++osyhNMMMMMmhyyyyyyssssyyyyyyyyyyyyyyyyyy
//////////////////////::+hNMMMMMMMMMMMMMMMMMNmyoooo+/////:::------------:::::---.......```...........``````........````.......................-------:::-::////++oydmNMMMMNdyssyyysssyyyyyyyyyyyyyyyyyyh
//////////::////////////odMMMMMMMMMMMMMMMMMNmhssyso+ooo++/::-------------:::::---.......````........``..```............``..`...................-------::::://///+oydNNMMMMMNhsyyyysyyyyyyyyyyyyyyyyyyyyy
//////////////////::/:/+yNMMMMMMMMMMMMMMMMNdddhdhyoosoo++/::::------------:::---....................``.````...........``````..```.............-------:::--:://///oshmNMMMMMNhyyssssyyyyyyyyyyyyyyyyyyyyy
/////////////////////:/+hNMMMMMMMMMMMMMMMMmddmmdysyysso+//::::------------:::---...............``.......``......```..````````...`....```......-------::::::////++++sdNMMMMMNhyysssyyyyyyyyyyyyyyyyyyyyyy
///////////////////////odMMMMMMMMMMMMMMMMMNmdmmhyyyyyyo+::::::------------::::::-----............................`````````......`.............----:::::::::///+++++shNMMMMMNhssssssyyyyyyyyyyyyyyyyyyhhh
+////+////////////////+yMMMMMMMMMMMMMMMMMMNNmddddyyhhss+///::-------::----:::///:----.--..........``...``......................................----::::::/:////++ooshmNMMMMNdsssssssyyyyyyyyyyyyyyyyyhhh
//////////////+///////smMMMMMMMMMMMMMMMMMMMNmddmdhhhysyo+//:::::::-::::---:::://:-------.-..-....```...``..........-.........................---------:::/:////+++osymNMMMMMdsssssssssyyyyyyyyyyyyyyyyyy
//////////////++/+://+yNMMMMMMMMMMMMMMMMMMMNmmmmdhdddyso+/::::::::--::::::::::::::-----...........`................-.....``...............------------:///+oso++oossydmMMMMNhssssssssssyyyyyyyyyyyyyyyyy
//////////////+//+:///yNMMMMMMMMMMMMMMMMMMNNmmmmddddhso+//::::::::::::::::::::::::----.........-.......---......----.....``............---::---:::-:::/++oshddysoosyyyhmMMNhsossssssssyyyyyyyyyyyyyyyyhh
//////////////////////sNMMMMMMMMMMMMMMMMMMNddhhdmdyssoo+//::::::::///:::::::::::::---.......---------------.....--.--...```.....--------://+/++oooosyyyhhddddmmdhyyhyyymMMdooosssssssssssyyyyyyyyyyyyyyh
//////////////+///:://sNMMMMMMMMMMMMMMMMMMNdhyhdhs+//+++/////////::::::--::///://///:://++oooooooo+////::::::::----:::-.....-----:::://+oyhdddmNNNNNNNNNNmmmdddddmddhyydMMhoooossssssssssyyyyyyyyyyyyyyh
//////////////////:///ohMMMMMMMMMMMMMMMMMMNmdhhys++ooo++//////////:::::::/+sssssyhyssyddmNNNNNNNNmmdhyso+++++++//////:-------::://+oooydmNNNMMMMMMMMMMMMMMMMNmdddmmmdyydMms+ooossssssssssssyyyyyyyyyyyyy
//////////////////////+ohNMMMMMMMMMMMMMMMMNmmddyo+++++++//+/+++////////+oyddhhyydmmmNNMMMMMMMMMMMMMMMNNmdhyyyssoo+++/:::::://+++oyhddmNMMMMMMMMMMMMMMMMMMMMMMMMNmmmmmdhdNho+ooosssssssssssyyyyyyyyyyyyyy
///////////////////:/+//odMMMMMMMMMMMMMMMMNNmmmho+/+//++//++o++++++/++osyhddddddmNMMMMMMMMMMMMMMMMMMMMMMNNmmmdhyssoo+/////++oooydNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNmhmmsooooosssssssssyyyyyyyyyyyyyyyy
////////////////////////+yNMMMMMMMMMMMMMMMMNNNmhs++//////++ooo++++ooosyhhddmNNNMMNMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmhsso+//++++osyhmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNmdmmsooooosssssssssyyyyyyyyyyyyyyyy
////////////////////////+smMMMMMMMMMMMMMMMMMMNNdso+/+/////++oo++ossyyyhdmmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMNdysso+/++++oyhmMMMMMNNNmNMMMMMMMMNNmmmmNNMMMMMMMMNNNNmdddysoooosssssssssssssyyyyyyyyyyyy
////////////////////::::/odMMMMMMMMMMMMMMMMMMMNdys+/+/////+++++oyhdmmmmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMmysoo+osssosydmNMMMNNmmNMMMMMMMMMMMNmmddmmMMMMMMMMNmddhmNmdsoosssssssssyyssssyyyyyyyyyyy
//////+/////////////::::/+smMMMMMMMMMMMMMMMMMMNmhs+///////++oooshmNNMMNMMMMMMMMMMMMNmmmNMMMMMMMMMMMMMMMMMMMMMMMMNdhhdmNNNNmddmNMMMMMNNMMMMMMMMMMMMMMMNNNNNNNMMMNNMMNddmNMMNhoooosssssssssssssssyyyyyyyyy
//////++////////////////:/+hMMMMMMMMMMMMMMMMMMNmds++///////+ooosyhdmNMMMMMMMMMMMNNmNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMmdyymMMMMMddNMMMMMNMMMMMMMMMMMMMMMNddmMMNMNmNNNNNMMNNNMMMNdsososssssssssyyyyyyyyyyyyyyy
////////////////////////:/+yNMMMMMMMMMMMMMMMMMMMNNmmddddhhdddddddddmNMMMMMMMMMNNNNMMMMMMMMMMMMhydNMMMMMNmmddNMMMMMMNNmdhhddmMMMMMMMNMMMMmmMMMMMMMMMdooydNNMMNNNmmNMMMMMNNNMNhooossssyyyyyyyyyyyyyyyyyyyy
////////////://///++//////:+hNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdydNMMMMMMNh/:+dNNmNNdysooyNMMMMmy/-...--:sdMMMMNmNMMMNmmmNNNNmdhysyydmNNNmNNdddMMMMMMNNMMmsoossssssyyyyyyyyyyyyyyyyyy
//////////////////////+/+/:/+yNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNMMMMMMMMNdddhho+ohmNmmdhs+/oydmmmmdhssooyNMMmy:.`.```....:yNMMmdmmNNMNNmmddhhhhddmmmmmmmddddmhNMMMMNmmNNmysssssssssssysssssyyyyyyyyy
/////////////////////+oo+///://+shdmmmNNMMMMMMMMMMMMMMMMMMMMNMNmdhhyssshmMMMdoyhdhhdddddysyhyyhhdmdhhhhyoosohNMm+-`.`.``.....--sNMNmmmNNmmmmddddhhdddddddddddddmhyNMNhs++sdmdysoossyyyysssssssssyyyyyyyy
//////////////////+/+yddmmmdyo:-.-:/++osydmmNmmdhhyssyyhhdmmNNmmdhhs+//+odMMmssyhyyhhhdmmdhhhhhyhyysssooooosdMm+.....````....--:yNNddddhyssssyyyhhyyhyhhhhhhhhyy/yMms+++sdNNhssooosssssssssyssssyyyyyyyy
//////////////+///+oymMMMMMMMNds/------:/+ossysso+////////+osyyhhhhyso+o+smMMmhhhyssoosyyssssssooooo+//://+hNNs-.......``....--:/hNdyyso+/////+/+++ooosssssss++-+Nh+/++oydNmhsooooossssssssyyyyyyyyyyyyy
//////////////////+sdMMMMNNmdhhdho/:----:://+ooo+//////::::///+oosssso+oooymMNmhhysoosoooo+++o++++//::/::/yNNs-.......`..``...--:/yNh+///:///::::://+oosso+/::-+dy//++osydNmysoossssssssysyyyyyyyyyyyyyy
//////////////////+ohNMNmdhs+//+yhs/--:-:://+o++++//+///://::::///////+++++ohNNdyssooo++++///////::::://:/mmo.`.......``````.`-:/::ymdo/:::/:::::--:/++o++/---sdo:://+ossymdsoooooosssssyyyyyyysyyyyyyyy
//////////////////+ohmmhyys+/:--:/++///:/++++oo+++++++/////:::::::----::::///odNhooooo+++////:::::::/+/:odh/.```...--.```````..-::--odmy/:--:/:----:/+o+/:/+yhs:-:::/+os++yhsooooooooosssyyysssssyyyyyyy
://///////////////++sddhsso+:-.`...:+o+++o++oooo+++o+++o+++////::-----------::/sdmmmhyso////:::://+ssyhdy+.`..`.-----............-::-/sddysoo+////+oosyyhddho/:::////++o//+oo+ooo++oosssssssssssyyyyyyyh
://///////////////++oyhyoss+:-.`...-oyso++++oooso+osoooooo++///::------.-----:-/ooydmmmmddhyyyhhdmmNmhs:......--::::-............-:/::/+oyhmNNNmNNNNmmdys+/::::::////+++/:/++++++++ossssssssssssyyyyyyyy
//////////////////++osyyooo/-..-:/oymmys+//++osssssyyssssoo+////:-::--:::::-:::---::+sydmmNmmmmdhys/-...---..---:::---..```..`....://///:--:+syhhdhyo/:---:---::://+++ooo+/++++oooooossssssssssyyyyyhyyy
//////:////:///////+++oso+/:::/ohmNMMMms/:/++ossyyssyyyyssoo+///:--:::::-::----.---..-::://:----...`.--:--....---------..`........-/+/::/:---.-.-------.----:::////+++oyys+++++ooosossssssyyyyyyyyyhhhhh
//////:::::://////:/+o+o++/:/oyhmMMMMNms::/oossyyysssyyyssooo+//::::://:::::------..........```.`..:////::-..---//:////:-----::--:+sso+//+//:-----.......---:::////+++oyhyo++oooooossssssyysyyysyyyyhhhh
::::::::::::///:::/:/+++++//+yhdmNmdyso/--/oosyhhyssssyyssoooo+//:://////::::--:-----..........---/ooo+++/-----:oosyhddhsoo+oooosyddhyo+ooso/::::----------::::////++ooyhyo++oooooosssssssssyyysyyyyhhhh
:::::::::::://:::::://+o+++/+syhdhs+:-::-./osssyhyssssssssossso+++/++//////:::---------.....--:/+osyo++oso/////+ydmmmmddhhhhhddmmmmmdhyssyso+////:-------:::::////++oosyyso+oossoooosssssssssyysyyyyhhhh
//////:::::::::::::::/oo//o/:+oss+/-.`-:--:+yyyyyyyyssoooooossoooo+++///////::---------.----:/+osyys+/:/+ssyyhhdmNMMMNNdhdmNMMMNNNMMMNmhysso+++///:::::::://////+++osssssooooossooossssssssssyyyyyyhhhhy
//////:::::::::::::::///++++/://++/:.`.-:::/syyhyyyysssoooosoosooo+++++/////::::--::::--::::/+syyys+:::-:-/sdNMMMMMMMMMMMMMMMNNNNNNNmhso+oo++////+/////////+++++osssyso++++oooooooossssssyyyyyyyyyyyyyyy
//////////////::::::::://+/++/::///:-..---:/oyhhyysssssoo+osoosoosoosoo+++///:::----::::://++ssys+/:--.....-/shdmmmNNMMMMMMMNmdhhyyyssoo+o++/////++++++++++oo++oosyyyo++++ooooooooosssyyyyyyyyyyyyyyyhhh
/////////////////:::::::/++/+so/::::-..---:/+yhhysssosssoooossooossssso++////::::::::::::/++osso/:--.......----://+oshmNNNmmddhyssyyssooooo++//////+++++osooooosssyhs++/+++++oooooosssyyyssssyyyyyyyyyhh
/////////::://///::::::::/++/+syo/::-------:+oyhhysssossoooooossooossoo++++//:::::/::///++oooo/:--...........-.----:::+ooossyyyhyysssooooooo++//////++++osssssssssyyo//////+oooooooosssssssssyyyyyyyyyyy
/////////////////:::::::::/++/:/++++/:-----://oyhhsssoooooooooooooossooooo++///////////++++///:---....```...........-::::://+oooo++oo+++++++/+++oo++oo+osyyyyyyyyyyso++//+++ossssssssssssyyyssyyyyssssyy
///////////////::::::::::::/+o/:-:://///:----:+syyyyssooooooooooooossooooo++++/++//++//++//:::--.....................-------:///::://://::///++oossssooosyyyyyyyyhhyso+++++oossssssssssssyyyyyysssyyyyyy
//////////////////:::/::::://+o+/:---:::-----:+ssyhyssooosssoosssooossssooooo+++++o+++++///::::--..-------....``.......---...-----:::://:::/+oooossssoossyyyyyhyhyhdmhsoooooossoossssssssyyyssssyyyyyhhy
+////+///////////////////::://+oo+/::::------/ydhhysysssssssoosssssosyssoo++++ooooo+oo+/++//////:::::--:::--...-://////::-----::/+osssso+++oosyyyyyysssssyyyyyyyyyhmNNmdhyssssooosssssssssyysssssyyyyyyy
++//++//+////////////////::://///+o++/:::-::odNMmdhyyssyssssoossssssssssssoo+++oooo++oo+o+////+++oo++///////+ssyyyyyhhhhysoooosyhhhhhdddddhyyhddddhyyyyssyhhhyyyyyyyyhdhhyssssoooosssssssssssyyyssyyyyyy
++//////////+/////////////////////+osyssssydmMMMNdyyhysssssooooooosoooosssooooooo++++++oo+++oosyhddhyyyyhhmmNNmmdddddddmmmmmmmmmmmmmNNNNMMMNNNNNNmdddhhyyyyyyyyyyyysooossssssoooooossssssossssssssyyyyyy
++++//////++////////////////////////++syhhmMMMMMMdyyyyyyssssoooooo++ooooooooooo+++++/+++ooossyhmNNMMMMMMMMMMMMNNNNNNNNMMMMMMMMMNNNNNNNNMMNNMMMMMMmddhhhyyysyyyysyyysoooooooooooooooooooooooossssssssysss
/////+++////+//+////////////////////////+odMMMMMNmhhyyyyssssssooo+++++++++oooo++++++/+++ossyyhdmmmdddmdmddyso++//++++////++o++++++++ooosyyyhhdhddddddhhhyyyyyyssyhyooooooooooooooooooooooooooossssssssss
+////++/////+//+//////////////////++++++++hNMMMMNdhhhhhhyyssssooooo++oo++++++++++++++++oosssssyso/::://///++/-------......-..-----:::////+oyyyssyhhddddhhhhhyyyyyhsoooooooooooooooooooooooosooossssssssy
+++++++++++++//+/++++++++//+++++++++++++++ymMMMNmyhddhhhhhyyyysooooooooo+++oooooooooooooo++++++/::::-:://+++++++//::::-:::-:::::::/:/oosyhhhhyssyyhhhddhhhhhyyyhhhsoooooossssssoooooooooooosoosoosssssyy
++++++++++++/+++++++++++++++++++++++++++++ohNmhsooydmmdddhhyyssssooooosooo++ooooosssooooooo++//:::::::::/+++++++++++++///::::/++++oossssyhhhyyyyyyyhddddhhhhhyhhhhoosoooooooooooooooooooooooooooosssssyy
+++++++++++++++++++++++++++++++++++++++++++ydyo+++shdmmdhhhhyysssoooooooooooooossssssooooooo+//:::///////+oossssssoossssssssssyyyyhhhhhhhhyyyyyyyyyhhdddhhhhhhhdhs+ooooooooosoooooooooooooooooooossssssy
+++/++++++++++++++++++++++++++++++++++++++/syso++++shmmmddhhyyyyssoooooooooosssssoossssoooooo+/////////+++ooshddmNNNNMMMMMMMMMMMMMMMNmmmdyyyssyyssyhhdhhhhyhyhhdyo+ooosooooossooooooooooooooooooooooosss
+++++++++++++++++++++++++++++++++++++++++ooyhyo+///+shmmmdddhhhyssssoooooosssssssoossooo+ooo++++++++///////+osyhdNNNNNNNNMMMMMNNNNNNmdddhyyyssysssyhhdhhhhyhhhhyooooossooooooooooosooossssssssssssssosss
++++++++ooooo++++++++++++++++++++++++o++shmNNhoo+//+oyhdmmdddhyyyysosssoooooossssssssooossssoooo++++//+///:://++++oooooosyyyyyyyyyyyyyyyssssssyyyyhdhdhhhhhhhhhsooooossssssssoosssssssssssssyssssssssssy
ooooooooooo+o++++++++++o+++++++ooooo++sdNMMmo/+o++//+osyddmdddhhhdyyyyysssssssssssssssoosssssoso+/////////:--::-----------::---::///+o++ooooosyyyyhddhdhhhhddhsossoosssssssssssssssssssyyssssssssssssssy
+oo++oooooo+o++++++++++o+++oo++++oooshNMMMNs..:+++/:/+osyhdmmddmdddhhhhyyyyysssyyyyyyssssssssooo+////::::--.....................----::://++oossyyhhdddddmdddyyssssssssssssyyssssssyyyyyyyyyyyyssyyyyyyyy
ooo+ooooooo+o+++++++++++++++++++++oymNMMMNy:``./+++///++ooydmmmmmmmddddddhhhhyhhhyyyyyyyyyssoo+++///::---.....`````````````.```..-.-.-://++oosyhhdddddmmmdhsssssssssssssssyysssssyyssyyyyysssyyssyyyyyyy
oooooooooo++++++++++++++++++++++oohNMMMMMh:````.-///////+++oshddmmmmmmmmmdddddddhhhdhyyyyysso+++///:-----.....`````````..`........---://++oosyyhddddmmmmdysossossssssssyssyysssssyyyysyyysssssssssyyyyyy
ooooooooo+++++++++++++++++++++++ydNMMMMMMs.`````.-://///////+oyhhhdmmmmNNmmmmmmmmmmmmddddhyysooo+///:::::--.....-....-------:-------::+ooosyhhddmmmNNmdysooosssssssssssyssssssssssyyyyyyyyyyyyyyyyyyyyyy
ooooooooooooooooo+++++++o+++ooohNMMMMMMMMy.```````.:////://///+osyhhdddmmNNNNNMMMMMMNNNmmdddhhyssoo+o++////:::::::::://///////://///++osyhhddmNNNNNmhysossssssyyssssssyyssyyssyysyyyyyyyyyyyyyyyyyyyyhyy
oooooooooooo+++oo+++++++o+++osdNMMMMMMMNMd/.```.```.-:/:::://///+osyyhhhdmmmNNMMMMMMMMMMNNNNNmddhhyysssssssooo+ooooooosssoooooooooosyyhhdmmNNNMMNdyssssssssssyyyysyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhh
ooooooooooooooooo++++o++o++shmMMMMMMMMMNMNy:`````````.-:::::://///+oossyhdddmmmNNNMMMMMMMMMMMMNNNmmmmdddddddddddddddhhddddddhdddhhhddmNNNNNMMMNdyssssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhyyyyhhhyyyyyyhyyy
sssoooooooooooooo+++++ooooymNMMMMMMMMMMMMMNy-``````````..---:://////+oosyhhhddddmmmNNNMMMMMMMMMMMMMMMMMNNNNNNNMMMMMMNNNNMNNNNNNNNNNNMMMMMMMMNdyssssyyssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhyyyyyyyhyyy
ossooooooooo+++++++++++oshNMMMMMMMMMMMMMMMMNy:````````````..--::::::/++osssyyhhddddmmmNNNMMMMMMMNNMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdhsosssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhyyyyyyyy
ossoooooooooo++++++oooosmNMMMMMMMMMMMMMMMMMMNy/``````````````..---::://++oosssyhhhdddmmNNNMMMMMNNNMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmdysssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
oooooooooooooooo++oooydmMMMMMMMMMMMMMMMMMMMMMMd+.```````````````..-:::://++ooosyyyhhddmmmNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNmdhyydmddddhhhhhhhyyyyyyyyyyyyyyyyyyyyyyhhyyyyyyyyyyyhhyyyyhhhhhh
ssssssoooooooooooosshmMMMMMMMMMMMMMMMMMMMMMMMMMNs:..```````````````.--::://+++osssyhhhddmmmNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNmmmhysymMMMMMNNNNNNNNmmdddhhhhhyyhhhhhhhhyhhhhhyyyyyyhhhhhyyyhhhhhhh
ssssssssssssooossyhmNMMMMMMMMMMMMMMMMMMMMMMMMMMMNd/.`````````````````...-::///++oosyyyhhdddmmmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNmmmddddhyssdMMMMMMMMMMMMMMMMMMNNNNNmdmddhhhhhhhhhhhhhhyyyyhhhhhhyyhhhhyyy
yssssssssssssyhdmNMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMmo-`..`````````````````..--:://++oossyyyhddddmNNMMMMMMMMMMMMMMMMMMMMMNNNNmdddddhhhyysoshNMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmmmdddhhhhhhyyyyyhhhhhyyyyyhhhhh
ysssssssssyydmNMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMMMMMMNh/.``````````````````````..-:/+++++ooosyyhhdddmmNNNNNMMMMMMMNNNmmmmmdddhyyyyyysssooohNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmmmddhhyyyyhyyhhhyyyyyyhhh
ysssssyyhmNNMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMMMMMMMmy:.```````````````````````...-:/++oooooossyyhhdddddmmmmmmmddddhdhhyyhysyyysssssssymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmddhhhhhyyhyyyyyyyyyy
syyyhdmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMMMMMMMNNd+-.`````````````````````````.--:/+ooooosssyyyyyyyhhhhhhhhhhhyhyyyyyysyyyyyyssyosNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmdddhhhhhhyyyyyy
yhmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMNNNNNMMMMMMMMMMMMNdo..```````````````````````````.-:/+oooosssssssssyyyyhyyyyyyyysyyyyyyyyyyyyo+-:dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmmmmddhhhhh
NMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNMMMMMMMMMMMMMMMNh+-`````````````````````````````..-:+oossssssosssysyyyyyyyyyyyyyyyyyysyso-..:dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmdd
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMMMMMMMMMMNh/.```````````````````````````````.-:/+oosssssssyyyyyyyssyyyyyhhyyyyho:``.-hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMNNMMMMMMMMMNy/.`````````````````````````````````..-:+ooooossyysssssssyyyhhyyhmh/.``.-yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMNMMMMMMMMMMMms:.```````````````````````````````````..-/oosssssssssssyyhhyhhNm/``.`.-sNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NMMMNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMMMMMMNNMMMMMNmo-`````````````````````````````````````..-/+osssyyyyyyyyyhmNd+.``...-oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNMNNNNNNNMMNMMMMMMMMMMMNMMMMMMMMMNNNMMMMMMMMMMMMMMMMNMMMMMMMMMMMNMNh+-````````````````````````````````````````.:/+ssyyyssydNNh/````.`..+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNNNNMMMMMNMMMMMMNMMNNNMMMMMNNNMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMNmy/.`````````````````````````````````````````.-/+ssyymNms-`````.`..+mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNNNMMMMMNNMMMMMMMMNMMMNNNMMMMMMNNNMMMMMMMNNMMMMMMMMMMMMNNNNNMNNNNdo-````````````````````````````````````````.``.-:omNy/.````````../mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMNNMMNNNNNNMNNNNMNMMMMMMNNNNNNMMMMMMMMNMMMMNNMNMMMNNMMMNNNMNNMNNNNNmmmNNh/.````````````````````````````````````````````.:/:::.````````.:hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MNNNNNMNNNMMMNNNNNNNNNMMMNNNNMNNNMMMMMMMMMNMMMMMMMMNMMMNNNNNMMNNNmmmNmmmNNmy:.```````````````````````````````````````````.+mNmh+.``````.-yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMNNNNMMNNMMMMNNNNNNNNNNMMNNNMNNNNNNNNNNNNMMMMNNMNNNNMMNNNNNNNNNNNmmmmmNNmNNdo-.````````````````````````````````````````.:dMMMMNh/.``.``-yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMNNNNNMMMNNMMNNNNNmNNNNNMMNNNmmNNmNNmNmmNNNNNNNNNmNNMNNNNNNMNNNNNNmmmmmNmmmNNd+.`.`````````````````````````````````````.sNMMMMMMmo-.`..-sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMNNNNNNNMMMMNNMNNNNNNMMMNNmmNmmmmmNNNNNmmNNNNNNNmmmNNMMNNNNNNNmmmmNNNNNmmNNNy:`.```````````````````````````````````.+NMMNNMMMMMh/...-oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMNMMMMMNNNNNNMNNNNmNNNMMNmmNNNNNNNNNNmmmNmNNNmmmmdmNNNNNNNNNNNmmNNNNmmmmNNMNh/```````````````````````````````````.+mMMMMMMMMMMMd:...+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMNNNMMMNNNNMMMNNmmmmmmNMMNNNNmNNNNmmmNNmmNNNNNNNmmNNNNNNNNNNNNNNNmNNmmmNMMMNMm+-``.`````````````````````````````.+mMMMMMMMMMMMMMh:../NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMNNNMNNNNNNmmNMMMNNmmNNNNmmNNNNNNmmmNNNNNmNNNmNNmNNNNNNNmmNNNNNMMNNNNNh:..`````````````````````````````/dMMMMMMMMMMMMMMMy-./NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMNMMMMNNMMMMMMNNNMNNMNmNNmdmMMNNmmmNNmmNNNmmmmNmmmNNNNmNNNNNNmmNNNNNNNmmmmNNMMNNNMMMmo.``````````````````````````.`:dMMMMMMMMMMMMMMMMNs-/mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MNNMMMMNNMMNMMMNNNNNNNNmmmmmNNMNNNmNNmmNNNNNmmmmNmmmNNNNNNNMNNmNNNmmNNNNNNNNMMMNNNMMMMNy-.````````````````````````.:hMNNMMMMMMMMMMMMMMMh::mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM