-----~shhhDDBDBDDhs==+<<<<<<<<<<szzzszhzDDhDDDBBBDzshDhDDDDh
-----~szhhBDBBDDzs=+<<<<(<((((<<+=ss==shhhhhDBBBDDz<(<+=szhh
----~<hhDhBDBDhzs=++<<(<((((((((<=+s=<+=zDDBDBBBDBDs((<(((<<
----~<hzhzDDDhzss=+<<<(((~~((((((+<=s++<+szDBDBBDDBD+<((<(((
-----=hDhhDDDzss==+<<(((((~~~~(~~<<==+<<<+=zDDBDBBBB=+(<((<<
~--~~szhhDDDDzz==+<(<(~~~~~~~~~~~(<=+<(<<++=zDBDBBBBs+((<<<<
+++++zhhhDhhhzs=++<((((~~~~~--~~~<<=<((((<++=zDBBBBBDz<<((<(
====zhDhhhDzhh=++<<(((~~~~~~----~(++<(~<<<++==hBBBBBBz<<<((<
==s=DDDDhDhhzs==+<(((~~~~~-~-~-~((++<~((<<<++=zDBDBBBBs<(<<<
==shDDDBDDhzzss=<<((((~~~~~~~--~+<<<(((((<<++=shDBDBBBD<(<<<
==sDDhDBBDDzzs=+<<(((~~~(~~~~~<==+((~(((<<<++==zDBDBBBB+<<((
==sDDzBBDDDhhs=+<<(((~(~~(((<=zz<(~~~(((<<<<++=zDDDBBBBs+<<<
=shDhDBBDDDDzs++<(((((~~~<++=+<~~~~~(~((((<+++=sDDDDBBBhssss
+=DDDBBBDDDDss+<<((((~~~~~~~~~(~~-~~~~((~(<<++=szDBhBBBBssss
==DDBBBBBBDzs=++<(((~~~~~~~---~-~---~(<<<(<<<++ssDDhBBBDzs==
==DDBBBBDDhss+=<<<(((((<<<((~~--~~((~<=sss=======zDhDBBBzsss
+sDDDBBBDDDz=++<(<+<+<+==+=+((~-~((+<+szzzzsssssszDDDBBDzsss
+shDBBBDDhhz=+<<+++===sssss=+(~(~~(<+=zzszzsszzzzzzDDDBDssss
=shDDBDDDDzs=+++=s=<<<===<(<=+(~~~(<<++<++====zzzhhDDDBh==ss
==zDDDDDDDhs=+++=+<~<<((((~~<++(<<ss==<<<<(<++szzhDDDDDD==ss
+=sDDDDBhhzs=<+++=+(~--((<<~~<=sDszhDs++(sz===szzzBDBDDh==ss
++sDDDDBDDs=++++=s<((<<(<<+(~<=hz<(+Ds=<=zhzhssszzhDBBDz===s
++sDDDDBDDzs=sz=s=<<=ss((~<<~(+z+<(<ss=<=zz=szzs=sszBBDzs===
=+sDBBDBDDhhzzhzz===<=s=<~<<(<+s+<((+z<++<+==ss=+++sDBBhs===
++=hBBDBBDhzsss==z==+<=+<((((<==+<~~<ss<<+++++==+=+shDBzss==
++=hDBBBBDz+<(((+s=<<<<~((((((==+(((~+s=<((<<<+=s=+=zDDhsss=
+++zDBBBDh=+(((((+s=<(~(~~~~(<+++<(~((+s=<(((<=s+<+shDhsss==
++=zDDDDDz=+<((<<~++<(~~~~-~~<<++~(~~(<+=ssss=+<<<==zDhsssss
+===DzzhDz=+<<((((~(<<~~~~(<(<<+<(~~-~<<((((((((<<+=shhzzsss
++++hzzhhz=++<<(~(~~~(((<<((((<=((~~((<=((~(~((<(<+=shDhzzss
++++shzDhzs+<<(((~~~--~-~-~~~(++<<<<(<=+~~~(((((<+++shDhzsss
+<++sDhDhs=++<(~~~~~~~-~-~~~~~+(+hs((+s+~~~~~((<<<+=shhhzsss
<<++sDhDhs==+<((~~~~~~~------(<<<==<<++<~~~~~~((<++=szhhhzs=
++++=DhDDz=++<(((~~~~-~----~-~<+<+<(<+=+~~~~~~(<++==shDhzs==
+<++shhhDz=++<(((~~(~~---'---~(=s=<((+ss+(--~~(<+===shDDhs==
+<+==hhhhz=++<<(((~(~~--'-~-(+szhz=+<=zhz=(~~((<+=sszhhDhs==
<+++=hhhDhs=++<<((((~~~---~(=shhhhssszzhhhs<~~(<<=sszhhhh===
+++==zhhDhzs+<<<(<(~~~~---~=zzhhzzzzzzzzzhhs+((<+=sshDhhhs==
+=++=hhhhhhz=+<<<(((~~~--~<zhzzzzhs=sszzzhzzz=(<+ssshDDDhsss
+=++shDDhDhzs=+<<<((~~--~(szzzzsshs+=szhzhzzzs=<+sszhDDDhzss
+<+==hhDDhhhzs+++<(((~-~(+zzssss==+++==ssszzzzz<+=szhDDDhzss
<<<+shhDDhhhzz=+++<(<(~~+=ss=+==s+<=ss=s+=ssszz=+=shDDDDhhs=
<++=shDDDhhhhzs==++<<~~(====++==s======+=====zzs=szhDDDDDhss
++<+sDDDDhhhhzzs===+<((+ss=+++==+++<<<<++=+++sss=szhhDDDDhss
++<+shDDhDDhhzhzs=+=++<+=s+<<++<+(((<(<++++++=ssszzDDDDDDhss
+<<+shDDhDDDhhzzzs===+<+==+((<<<<<<<<+++++=++=szszhDDDDDDhzs
<<+=szDDhDDDhhhzhzss==++s=+((((((<++sszs+==+=sszzhhDDDDDDzss
<++=ssDDDDDDDDDhhszss=====<(<(<+++=shzzz====shhhhhDhDDDDhzss
+====zDDDDDDDDhhhzzssssss==<<<<+==szzzzzssszzhDDDDDDDDDDhzss
+=++=zDDDDhDDDhhhzzszssssss+++<===szzzhhzzzhhDDDDDDDDDDDhzss