,,..................................iii++***ii*i*i;;i;;,........,,,,,,,,,,.`,,,,,,,,,,,,,,,,,,,,i+######++**i*++*ii****ii***;:,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;*nnnnnz+++#z##+###+,,,,,,,,,,,,,,,::::,.;::::::::::::::::::;zxxMMMxnnzzzz##z#**####+++#z*::::::::::::::::::::::;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ixxxx###+#zzzz#+zz+;,,,,,,,,,,,,,,,,:::,.;;:::::::::::::::::*nMMMMxxnnnzzz#zz#**##z#+*##z+::::::::::::::::::::::;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:xMxnz+zzz++#zzz#+#++:,,,,,,,,,,,,,,,,,:,.;;:::::::::::::::::+xMMxxxnnz##z+#nz##*#zz+**#zn+::::::::::::::::::::::;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,izxxxn++###++#+#z##++#i,,,,,,,,,,,,,,,,,:,.;::::::::::::::::::nMMxxxxxnz++++nzzz#+#zz++#znnz;:::::::::::::::::::::;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+MMxnz#+++#zn#**#z+*i+#:,,,,,,,,,,,,,,,,,,.;:::::::::::::::::*Mxxxxxxxn###+z###z#+#z#++#znnni::::::::::::::::::::::;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:nMxnz++;++#nxn#++++*i+#i,,,,,,,,,,,,,,,,,,.::::::::::::::::::#xxxxxxxnnnz++++##z++##+++#nnnxz:::::::::::::::::::::::;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:nxnnn#;i***#nnz+i*+*i+z+,,,,,,,,,,,,,,,,,,.::::::::::::::::::zxxxxxxnnzz++*+zz#z+*#z#++zznnnn*::::::::::::::::::::::;
,,,,,,,,,,,,,,,,,,.........,,,,,*xxxn#+++*+*znz#*;;ii*+zz;,,,,,,,,,,,,,,,,,.:::::::::::::::::;nxxxxxnnz#**++#####*+zz+#+znnnnnni:::::::::::::::::::::;
,,,,,,,,,,,,,,.................,#xnnznzz*i*+zz#++ii*##+zz+,,,,,,,,,,,,,,,,,.:::::::::::::::::innxxxxnz#*i**+#+*++ii++**##znzznn+:::::::::::::::::::::;
,,,,,,,,,,,,,,,.,,.,,,,,....,,,,zxnxxnzz#*i+nz+iiiii*++###,,,,,,,,,,,,,,,,,.:::::::::::::::::+xnxxxnz++i**i*+****i;iii*+##zzzzn*::::::::::::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,....,,nnxxnnnn+i;+nz+i;iiii++###,,,,,,,,,,,,,,,,,.:::::::::::::::::znxxxxn#++**i;i***i*ii;i**+#+#zzzzz;:::::::::::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,:nxxxzxxz+;;#z+*i;i****+#z#,,,,,,,,,,,,,,,,,.:::::::::::::::::+xxxxnn##*+*iii**ii*ii;i++++#+#zzzn+;::::::::::::::::::::
,,,,,,,,,,,,,,,,,,,,..........,;nxxxxxxn+i*#z+;;:;;*+++zz+,,,,,,,,,,,,,,,,,.:::::::::::::::::#xxMxnnz##+**ii+**i*i;ii+##+*++#zzz+::::::::::::::::::::;
,,,,,,,,,,,,,,,,,,,,,.,..,.,..,*nxxxxxnz*;*#+i;;iii*+##zzi,,,,,,,,,,,,,,,,,.:::::::::::::::::zxMMxnzzz#+*iii****i;iii*##++*+####;:::::::::::::::::::;;
,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,zxxxxMxnz+i*+*;;;*++++#zz#:,,,,,,,,,,,,,,,,,.;;;::::::::::::::zxMMxnzzz#+*ii**i**iii+**###+##+ii*;:::::::::::::::::;;;;
,,,,,,.,,......................innxxxnnziiiii;****++####z:,,,,,,,,,,,,,,,,,.;;;;;::::::::::::zxMMxnnnz#**iii;ii+*i*+++#++##zi*zi;::::::::::::;;;;;;;;;
,,,,,,,,.....,,................:nnxMxxn+;;;;;i*+#***##z#z;,,,,,,,,,,,,,,,,,.;;;;;;;;;;;;;;;;;zxMxxnnnz#++*i;iii#+++#+#z++#z#i;ii;;;;;;;;;;;;;;;;;;;;;;
,,,,,..,.......................,nnxMxx#ii;;;i+#z#+**###zz*,,,,,,,,,,,,,,,,,.i;;;;;;;;;;;;;;;;#xMMxxnnnz#+*;;i;i#+##z##z###z#i#+i;;;;;;;;;;;;;;;;;;;;ii
,,,,,,.........................,nnnxxz*ii*ii*+zzz#**zzzz#i,,,,,,,,,,,,,,,,,.iiiiiiiiiiii;iii;+xMMxxxxnz#*ii*i;i++##zzzzz##++*i+i;i;;;;;iiiiiiiiiiiiiii
,,,,,,.........................:nznnnz+**iiii+#zz+i*zzzz+i,,,,,,,,,,,,,,,,,.iiiiiiiiiiiiiiiii*MMxxxxnnz+ii*i;;i*++zzzzz###*i*#*iii**iiiiiiiiiiiiiiiii*
,,,,,..........................;zznnnz+**i;ii*#z#+i*zzz+*i,,,,,,,,,,,,,,,,,,*******iiiiiiii*i*xMxxxxnz#*iii;;;;;**#zzz###+i::i;;izMM+*i**ii***********
,,,,,..........................,#zz+zn+**i;;i****ii*#z#+*,,,,,,,,,,,,,,,,,,,******************nMMxxxn#+*ii;;;;;;ii*###++*i::ii;;;izn++*i************++
,,,,............................:zz+*##i*i;;;;;::::;++*:;,,,,,,,,,,,,,,,,,,,+*+***************#xxxxxz+**iii;;;;;;;i*+***i;:;;;;;:;i#+#++*******+++++++
,,,,,...........................:zz####iii;::::,::::ii::,,,,,,,,,,,,,,,,,,,,+++****************#xxxnz#+*iiii;;;;::;;ii;i;::;*ii;::*#####++++++++++++++
,,,,,...........................:nnxnxMz++z#i;:::::;;:::,,,,,,,,,,,,,,,,,,,,++++******++*******+#xxnz##+***iii;;:::::;;;;::;zi;::i##########+++++++++#
,,,,,...........................:nnnxxxx#+xMn+i;;::;;;:,,,,,,,,,,,,,,,,,,,,,+++++++++++++++++++*+nxnnzz#++**ii;:::::::::::;;+;;:;+######+#++#+++++++##
,,,,............................:n#+#nnz*:*xxxz*;:;;*i:,,,,,,,,,,,,,,,,,,,,,+++++++++++++++++++++#nxnnz#+++*i;::::::::::;;;;;;;;+########+++++++++####
,,,,............................:z+i;iz#:::i**;::;;;++i,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++nnxnn#+#++*;;:::::::::;;;;;;;*####z####+++++++++####
,,,,............................,z#*i+n*::;i;::::;;:*+++i:,,,,,,,,,,,,,,,,,,++++++++++++++++++++++nxnnxz***#zi:i;::::::;;;;;;;+####zz######++++++#####
,,,,...........................,*nz#*zn*::;#i;::;;;:++++++*:,,,,,,,,,,,,,,,,++++++++++++++++++++++znz#zzz#znn*i;i;::::;;;;;i;*####znz######++++++#####
,,,,.........................,;nWMnnnnnz*;:*n*;;;;;;++++++++*,,,,,,,,,,,,,,,+++++++++++++++++++++++zz*;;+xMMx+i;i;;::;;;;;iii#z##znn#######+++++++####
,,,,.......................,:zMMWWMnxnnnzi:ix#*iii;+++++++++++:,,,,,,,,,,,,,++++++++++++++++++++++++n#i;::+xWzi;;i;;;;;;;ii*#z###nnzz#z####+++++#+####
,,,,.....................,,*xMMWWWWMxxMn#++#xnz++*++++++++++++*,,,,,,,,,,,,,#+++++++++++++++++++++++zxz+i;::*z+;:;i;;;;;ii+##z##zznz#z####++++++######
,,,,...................,.,#MMMMWWWWWWnnxn#*nxnz#+#+++++++++++++i,,,,,,,,,,,,#+++++++++++++++++++++++#xxxzi;:::i;::iiiiiii*z#z##znzzzzz####++++++##+###
,,,,..,................,,zMMMMMWWWWWWMnnn+izn###++++++++#+++++++:,,,,,,,,,,,###+++++++++++++++++++++#xxnz*i;;;;;:::*++**+##z###n#n#zz#####++++++##+###
,,,,..,..............,,,#xMMMMMWWWWWWWWMxzzn#+++++++++++#++#++++*,,,,,,,,,,,####++++++++++++++++++++#nxn*iii;;;;:::izz###zz###zn#nzn######++++++######
,,,,.........,,.,,.....*xMMMMMMWWWWWWWWWWMMz++++++++++++#++#+++++;,,,,,,,,,,######++++++++++++++++++#zxn+iiii;;;::::xxz##zz###x#zznz####+++++++++#####
,,,,,,...............,:xMxzxMMMMWWWWMMMMMMz##+++++#+++++##+z+++++*,,,,,,,,,,##########+#######++++++#zxn#+**ii;;::::#znxzn###nn#nzn#z##++++++++++++###
,,,,,,,,,,,,,,,,,,,,,,zxxxznMMMMMWMWMMMMn#++##+++++#++++##+z++++++;,,,,,,,,,###################+##+##zxz#+++**i;;:::izzzxx###x#znnzz####+++++++++++##z
,,,,,,,,,,,,,,,,,,,,,*xzzzn#nxxMMMMMMnz##++++##++++++++++z+z++++++*,,,,,,,,,#########################zxxnz##+**i;;::;#zzMx##nx#zzMn##z#z#++++++#+++##z
::,,,,,,,,,,,,,,,,,,:nxznzx+##x#nnzzz+++##++++##+++++++++z##+#+++++:,,,,::,,#########################nMxnnz##+**i;;::;#zMz##xz#nzWz#######+++++#+++##z
::::::,,:,,,,,,,,,,,*xxzzzx#+#x+##+#z++++#+++++#+++++++#+#####+++++i,:::::,,#########################xMMxnnzz#++*i;:::;zx##zx#znxM#####++##++++#+#+#zz
::::::::::::::::::::znxznznn+#x+##++z+++++#++++##++++++++#####++++++:::::::,#########################xMMMMxxnz#++*i;:::;#n#nz##zMx######+##++++++#+#zz
;;;;;::::::::::::::ixzxzn#nx#+x###++z+++++##+#++#+++++++++####++++++i::::;::#########################MMMMWWWMxn##+*i;:::;#xzz##nWnzz######+++++++++#zz
i;;;;;;;;;;;;;;;;;;#nzMzx#zxz#zz+####++++++#+##+##++++++#++###++++++*;;;;;:,########################zMWMMMWWMWxnzz+*i;:::;+z###xWxnz####++++++++++##zz
iiiiii;;;;;;;;;;;;ixzzMzn##zx#xn+#####+++++#+#####+######++####++++++i;;;;;,########################zMWMMMMnnWMxxnz+*i;:::;i###MWMnz###++++++++++++#zz
iiiiiiiiiiiiiiiiii+xzzMzzz+#nzxx+#####+++++##+###########++####++++++*iiii;,########################nWWMMMx#zWMMxnn#+*i;:::;i*#xWMxz##+++++++++++++#zz
*iiiiiiiiiiiiiiiiinxz#xz#n###nxM#######++++##+###########++#z##+++++++i***i,########################nWWMMMxzzMMMMxnz#+i;;:::;;i#MWxz##+++++++++++++#zz
**iiiiiiiiiiiiiii#xxz#xn#n####MM#############+##z##+#####+#z###+++++++****i,########################xMMWMMMzzMMMMMxnn#*i;;:::;;;i+zz#++++++++++++++#zz
****iiiiiiiiiiiiizxnn#zx##zz##MWx############++###########zn###+++++++***+i,#######################zxMMWMMMnzMMMMMMxxn#*i;;:::;;;;i*z#+**++++####++#zz
******iiiiiiiii*i*nnz##zn+####WWM###########z++#####z####zzz###++++****+++*:z######################zxMMWWMWxzxMMMMMWxnz#*i;;::::;;;;i*;;:::;i#MMMx##zz
**********i*******zzz###n####zWMx##+######+#z++######z###znz###++++*++++++*:z#z###################zznMMMWMMMnxMMMMMWMnnz+*i;;;:::;;;;*i;;::;;;MWMx##zz
*******************#z########xMxxn#++++###++z#+######z###nnn###++*i+++++++*:zzzz###########zzzzzzzzzznMMMMMxznxMMMWMxznnz+*i;;:::::;;;*;;:;;;*nzz#+#zz
*******************+z#######zMMMMxxn#+++###+#z+#####+##+#xxnz###*;;+++++++*:zzzz#############zzzzzzzzznxMMWMnxMMMMWMnznnnz+*i;;;:::::;ii;:;;;+####+#zz
+******************#nz#####+xWMxxMMMMxz+++#++##+#+####+++xxxz#*;::;+++++++*:zzzzzzzzzzzzzzzzzzzzzzzzzzzzxMWWMxMWWWWMMnnxnnz+*ii;;;;::;;i;;;;i+####+#zz
+******************z+++#####MMMxxxxMxMxn#++++##+##+++++++xMnz*;;::;++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzxMWWMMMWWMWWMnxMnn#+*iii;;;;:;;;:;;*#####+zzz
+******************z*i;;***zMMMxxxnzznnxn+++++#++####++++MMnz+;:::;++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzxMMWWWWWWMWWWMMWxnz#+**ii;;;;;;;;;;+##++#+zzz
++++**************+z*;;:;;;xMMMxnznnz#zzx#++++#++++++++++MWn+i;:::;++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzxMMWWWWWMWWWWWWWWMnz#+**ii;;;;;;;;*xn##+++zzz
++++++++**********+z*;::::iMMznnzzznn###z#+++++++++++++++xM#i;::::;++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzznxMMWWWWWMWWWWWWWWWMzz#+**ii;;;;;;;*zxnz##+zzz
++++++++*********++z+i;:::;#xz+zz##########zznxxxxxnz#+++xn*;;::::*++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzznxMMWWWWMWWWWWWWWWWWMz##++*ii;;;;ii+##zznz###z
+++++++++++*+++++++zz*;::::*nn###znnnnnxnnz#####+++##zz##x+i;::::;+++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzxMMWWWMMWWWWWWWWWWWWWnz#+**i;;;ii+####zzn##+z
+++++++++++****++++zn+i;:::;+nz##zznnxnnnzz#+++##+++###zxz*;:::::i+++++++#*:zzzzzzzzzzzzzzzzzzzzzzzzzzznnxMMMWWMMWWWWWWWWWWWWWWxz##+*iiii+n######zz###
+++++++++++++**++*++nz*;::::;znz##++++####znn#+++#+++++nx+;;::::;*++++++##*:zzzzzzzzzzzzzzzzzzzzzzzzzzznxxxMMWWWWWWWWWWWWWWWWWWWMn##++**+zzz#+###zzz##
++++++++++++**+++**+zn#i;::::izz#z##+++++#+#znz#+++++++xzi;:::::i++++++###*:zzzzzzzzzzzzzzzzzzzzzzzzzzznxxxMMMW@WWWWWWWWWWWWWWWWWWxz#+++###z#+########
+++++++++++++++++++++zz*i;::::*##############++###++++zn*;:::::;++++++####*:zzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxMMWW@WWWWWWWWWWWWWWWWWM##########++####zzn
++++++++++++++++++++++nz*;;::::iii*++#*++#++zzz#+++++#n+;::::;;*+++++#####*:zzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxMMWW@@WWWWWWWWWWWWWWWWn##########++#####zn
++++++++++++++++++++++#nz*i;::::;:;;:;:::::;:;+##z###n#;;:::;;*++++#######*:zzzzzzzzzzzzzzzzzzzzzzzzzzzxxxxxxMMWWWWWWWWWWWWWWWWWWx###########+#######z
+++++++++++++++++++++++#nz+i;;::;:;;:::;:::::::::;;inzi;::::;i++##########+:zzzzzzzzzzzzzzzzzzzzzzzzzzznnxxxxMWMMnxWWWWWWMWWWWMMMz###########+#######z
++++++++++++++++++++++++#nn#*;;:::;;;::i*i:::;::::;#z*;::::;*#############+:zzzzzzzzzzzzzzzzzzzzzzzzzzzz+*+nMMxnnxxMMMWWWMMWWWMMMMxxxnz#########+*i;iz
#++++++++++++++++++++++++#nnz+i;::;i;;;znnz+*;::::*#i:::::;i+############z+:zzzzzzzzzzzzzzzzzzzzzzzzzxn+*;*xMxnnnnxMMMMMMMMMMn##zzznMxxnnnzzz+i;;;;:;z
###++++++++++++++++++++++znxnz+i;:;iii;izxnnz;::::::::::;i;:+############z+:zzzzzzzzzzzzzzzzzzzzzzzznnMzi;zMxxxnnnxMxMxxxxxxnzzzz#*i*+##+#+*i;::;:::;z
#####+++++++++++++++++++#znnnnn#*iii*i;ixxxzz*:,:,:::::;i;::+############z+:zzzzzzzzzzzzzzzzzzzzzzn#xMWMMnMxnnxxnnnxMMxxnznz#+*;;;;;;;;i;;;;;:::;;::;n
############+++++++++++#nnnnnnnnz#**ii*xWxnzz#*::::::;i*;,,,+###########zz+:zzzzzzzzzzzzzzzzzzzzznxxMxMMxnxnnnnxi#xxxMn++;i;;;;;;;;;;;;;;;;;;::;;:::;n
#######################nnnnnnnn+zn+*i:#MWxxi*nz;::::;i*;::,,+###########zz+:zzzzzzzzzzzzzzzzzzzzzznxnnxMxxxxnnnz:izxxx+i;iii;;;;;;;;;;;;;;;;;::;::::;#
#######################nnnnnxx#;#xn+i:zWWMx++zzi:::;ii;;;:,,+#########zzzz+:zzzzzzzzzzzzzzzzzzzzz#znnz#x+xxxnnn::;;nMx+i;;ii;;;;;;;;:;;;;;;;;;;;;:;;;;
zz####################zznnnxxxn#nxnz*:n@WMMi+nn;,:;i;;;;;::,+#########zzzz+:zzzzzzzzzzzzzzzzzzzzzznnnnznznxnnnx;;;;+#x+ii;ii;;;;;;i;:;;;;;;;;;;;;;;;;;
zz##################znznnnnnnxxxxxxn#;n@WMMi+nz::;i;::::;;:,+#########zzzz+:zzzzzzzzzzzzzzzzzzzzzzz##nnnxxxnxxx*;;:;inii*;*i;;;;;;i;;;i;;;;;::;;;;:;;;
zzz##################znnnnnnnnnxxxxnzizW@MMi#n+,:i;:::::;;::+########zzzzz+:zzzzzzzzzzzzzzzzzzzzzzzz#znnxMMxxxn#:::;*ni;*iii;;;;;;;;::;i;:;;::;;;;:;:;
zzzz#################zz#znnnnnnxxxxxn##M@MMi#zi:;;:::::::;::*#######zzzzzz+:zzzzzzzzzzzzzzzzzzzzzzzzz#nnxWWnnWM#:;;;+zi;i**i;;;;;;;;::;*;;;;;;;;;;:;:;
zzzz#################z##nnznnnnxxxxxxnzxWMxi#z;:;:::::::::::i#######zzzzzz+:zzzzzzzzzzzzzzzzzzzzzzzzz#znzMWxnMMz:i*+#n*;i+*i;;;ii;;;::;*;;;;;;;;;;:;:;
zzzz####################nzzznnnxxxxxxnxxMxxiz+:;::::::::::::;#######zzzzzz+:zzzzzzzzzzzzzzzzzzzzzzzzzz#nznWWMxMn*#nnzn*;;*+i;;;ii;;;;:;*;;;;;;;;;;:;:;
zzzzz#z###z#############nzznnnnxxxxxxxxxMxxiz;;:::::::::::::;######zzzzzzz+:nzzzzzzzzzzzzzzzzzzzzzzzzz##nnxWMxMMxxxxnn+;;*+*i;iii;;;;;;ii;;;;;;;;;;;;;
zzzzzzzzz############z##zzznnnnxxxxxxxxxxxxizi;::::::::::::::######zzzzzzz+:nnzzzzzzzzzzzzzzzzzzzzzzzzz#nnnMWMxxMxxxnz#i;i*i;;iii;;;;;;ii;;;;;;;;;;;;;
zzzzzzzzzzzzzz#zz###z##znzznnnnnnnnnnxxxxxxin;;:;;:::::::::::##z#zzzzzzzzz+:nnzzzzzzzzzzzzzzzzzzzzzzzzzz#nzxMM#*nMnxx##i;**i;ii*i;;;;;;ii;;;;;;;;;;;;;
zzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnn+znxnnxxin;;;;;:::::::::::##zzzzzzzzzzz+:nnnnzzzzzzzzzzzzzzzzzzzzzzzz#znnxxx;ixxnxz**;iii;ii*;;;;;;;ii;;;;;;;;;;;;;
zzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnz*znz##xn*n;;;;i:::::::::::#zzzzzzzzzzzz+:nnnnnzzzzzzzzzzzzzzzzzzzzzzzz#nnnxx#;#xnxx*i;ii;;i*i;:;;;;;;i;;;;;;;;;;;;;
zzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnnnn#*izxn+n;;;;*;::::::::::+zzzzzzzzzzzz+:nnnnnzzzzzzzzzzzzzzzzzzzzzzzz#znnnxx+#nnnxzi;ii;;i*i;:;;;;;;ii;;;;;;;;;;;;
zzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnnn+:::#xn+n;;;ii;:::;::::::+zzzzzzzzzzzz+:nnnnnnnzzzzzzzzzzzzzzzzzzzzzzz#nnnxxx++znxn+;iiii**i;;;;;;;;ii;;;;;;;;;;;;
zzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnz+;:::+Mn#n;;;**;::;;;:::::+zzzzzzzzzzzz+:nnnnnnnnzzzzzzzzzzzzzzzzzzzzzz#znznxx+;#znxzi*i;i*+i;;;;;;;;;i;;;;;;;;;;;i
zzzzzzzzzzzzzzzzzzzzzzzznz#znnnnnz;:::::#Mn#n;;i**;::;;;;::::+zzzzzzzzzzzn#:nnnnnnnnnzzzzzzzzzzzzzzzzzzzzzz#nnnxxn*iz#zn***ii*+i;;;;;;;;;;;;;;;;;;;;;i
nzzzzzzzzzzzzzzzzzzzzzznnzzznnnnn#;::::;#Mz#z;iii*;::;:;;::::*zzzzzzzzzzzn#:nnnnnnnnnnnnnnzzzzzzzzzzzzzzzzzzznznxx+++n*n#**ii*#;;;;;;;;;;;;;;;;;;;;;;*
nzzzzzzzzzzzzzzzzzzzzzznnnzznnnnn*::::::zMzzziiii*;::;;;;::::izzzzzzzzzzzn#:nnnnnnnnnnnnnnnnnzzzzzzzzzzzzzzzzznzxx#izn#+z+*ii*z;;;;;;;;;;;;;;;;;;;;;;*
nzzzzzzzzzzzzzzzzzzzzzznnnzznnnnn;::::::#xn#ziii*i;::;;:;:::;;zzzzzzzznzzn#:nnnnnnnnnnnnnnnnnnzzzzzzzzzzzzzzzznnnxn;+xn+##*ii#z;;;;;;;;;;;;;;;;;;;;;;*
nnzzzzzzzzzzzzzzzzzz##zznnzznnnnz;::::::+xxzziii+i;;::::::::;;zzzzzzznnnnn#:nnnnnnnnnnnnnnnnnnnzzzzzzzzzzzzzzznnznniinxn+z+*in#;;;;;;;;;;;;;;;;;;;;;;i