Make Shipping Software Painless
Make Shipping Software Painless
Indent gives you a team of purpose-built AI agents that review code, fix errors, query data, and respond to incidents, so you can stay focused on building as fast as you can.
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
Indent is building a suite of AI tools designed to genuinely help developers get things done, faster, with less friction, and more clarity. The mission is pretty simple: reduce the mental overhead that comes with modern software development. That means helping with everything from writing and reviewing code, to understanding data, to managing infrastructure and responding to incidents.
Instead of chasing one-off tools, Indent is building a unified, context-aware system that feels like an extra teammate, one that understands how your stack works, how your team works, and how to actually be helpful. It’s not about replacing devs, it’s about freeing them up to focus on what matters.
Agents for the entire dev lifecycle
Agents for the entire dev lifecycle
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”

Kevin Chu
Business unit lead / ViewSonic
.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..
********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********
.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..
********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********