S88X@    @@XX@@@                            @         @   @X@@SSXXXXXSSXSXXXXXXSX@@XXXXX@XXXXX@XXXSSXXSX@@@@@@@@@X@XX@@X@@@@@@X@XX@ @XXXXXXSSSSSS8OOOOOOO&OOO&O&&&&&&&O&OO&O&O
                  @8OS@   @@XXSXS8                            @@        @@ @XXXXXSSSSXXXSSSXSX@XXSX@@XXXXXXSXXXXXXXXSXXXSX  @X@@@ @@@@@@@@@@@X@XXX@@@@XXXXSSSSSS8OOOO&&&&&&&O&&O&&&&&&OO&&OOO&O8
                   888@  @@@SOOO88                            @@        @@@X@XXXSXSSSSSXSSSXSS@XXXXXXXXXSXXSXXXXXX@XXXX@@@ @ @@   @@@  @@@@@@XXXXXX@@@XSSSSSS8OOOOOOO&&&&&&&&OO&&&&&&OOOOOOOOOOS
                   X88@@@@XSX8&OSO                            @@ @@@  @@@@@XXXSSXSXXXSSSSSSSSXXXXXXXXXXXSXXXSXSX@@@@@ @@   @@ @@ @@X@@@@@@@XX@@XXXXXXSSS8888OOOOOO&&&&&&&&&&&&O**&OOOOOO&&OOO8S8
                   @OS@@@ X&X@O8SS                          @@@@@ @@@@@  X@@XSSXSSXXXXSSSSSXXXXXXX@XXXXSXXXXXXX@@@@            @@@X@@XXXX@@XXX@@XSSSS888OO8OOOOO&&&&&&&&&&&&&&&&O88SS88O&OOOO8SS
                    S@@@   XO@                                @@ @@@@@@  @@@XSSSXSSSXSSSSSXXX@XXX@XXXXSSXXXX@@@@        @       @X@@  @@SX@XXXXXSSS88OOOOOOO&&&&&&&OO&&&&&&&&OO88S88S88888OO888S
                    @@@     @@                              @@@@@@@@ @@  @@@@SSSSSSSXSSSXXXXX@XXXXXXXXXX@@@@@@                   @@@ @ @XX@XXXXS888OOOOOO&&&&O&OOO88O&&&&&&&O888SSS8888SSS88SSSS
                                                            @@@@@    @@  @@@XSXSSSSSXSXXXXX@@@@XXXXXX@X@@@@@@         @ @        @     @@SX@XSSO8O8O8OOOOOOOOOOOOOO&&&&OOOO88888S8S88SSSS88S8SSS
                                                         @ @@@@@ @    @ @@@@@XSXSSSSSXXXXXXX@@X@XXX@@@@@@@@@@        @@@@@     @  @@   @@@XSSSSSOO8OOOOOOOSS88OOOOOOO8888OOO88888SS8SSSSSSSSSSSS
                                                         @  @   @     @@@@X@XSSSSSSXSXXXXXX@@@XXXX@@@@@@@@@@         XX    @             @  XS@SOOSOOO8888SS88OOSS8O8888OO&88888S88S8S888S8SSSS8
                                                        @@@@          @@@@X@XSSSSXXXXSSSXX@@X@X@X@@@@@@@@@@         @@@  @@@@@@    @@@  @ @ @X X888SOOS88S888OO88888S88OO8O8888S8S888888S88SSSSS
                                                       @@       @     @@@@X@XXXXXXXXSSSXXX@@@@@@@@@@@@@X@@@             @@@ @X@X@    @@X@  @ @@ @SSXS8SO8S88S88S888SS88OO8O88SS88SS8S88SSSSSSS88
                                                        @       @     @ @@XXXX@XXXXSSXSXXXX@@@@@@@@@@@@@X@@           @      @@SXSXXXX@@@@@   @@ @@@XSS88S8SS88888SSS8OOO8888888SSSSSSSSSSSSSSS8
                                                                @         X@XXXXXXXSXSSSXX@@ @@@@@@@@@@@@   @         @@     @XXSXSSXX@@X@@@@  @   @@XXS888SSS8888S88O&&&O88888SS8SSSSSSSS88S888
                                                                       @@XXXXXXX@@@XSSXX@@@@@@@@@@@@@@@@     @        @XXX@@  @@XXXX  @@XX@X@@ @     @XXSS88S8888888OO&&OO8S8SSSSSSSSSSSSSS88SS8
                                                       @   @@   @    @@@XXXXXX@@@@@XSSSX@@@@@@@@@@@@@@                   @@XX@X@@XX@@  @@S@@@@@@      @XSSSS88S888OOOO&O88888S88SSSSSSSSSS888888
                                                @         @@        @@XXXXXX@@@@@@ @SXXX@@@@@@@@@@@@           @            @X@XXX@@X@@XXXX@X@@X@      @XXXSSSSS88888888S8888S8888SSSSS888O&&&&O
                                                           @       @@X@XXX@@@ @  @@@XXXX@@@@@@@@@@@            XX@@   @@@ @ @@@XXXXXXXX@XXXXX@@X@@ @ @  @ @XXS88888888SS88SS88SS888SSS8O&&&&&&&O
                                                                @@@X@@X@@@@@@@@@ @ @XXX@@@@@@@@@@@@             XX@@@  XXXXXXSXXSSSX@SSSXXSXXXX@XX@    @ @ @XSS8S8O88888888S88S888888O&&&&&&&O&&
                                                               @@X@@XX@ @@@@@ @ @@@@SXXX@@@@@@@@@@               @X@@XXXSSXSSOSS8O88SS8S888SSSSSXSX@    @ @@@SSSSOOO88888888888O&&&&&&&&&&&&&&&&
                                                              @X@@@@X@@@@@  @ @ @@@@XXXX@@@@@@@@@@@@X@       @@@XXSXXXXXSSSS8&OO&*OO&O&O&&&OOOOO88SX@@  @@@@@XSS8OO888O88888O&&&&&&&&&&&&&&&&&&O
                                                            @X@@@@X@@@ @@@  @  @@@@@XXXXX@@@@@@@@@@X@@@@     @XXXXXXXSSSS88O&**&;:**;;;;;;;*****&O8SX@@  @@@@XS888OO88OO&OO&&&&&&&&&&&O&&&&&&&&O
                                                       @@@@@@@@X@@@@@@@ @  @ @@@@@@@XXXXXXX@@     @@     @XX@ @XXXSSSS888O&&*;;:::::-:::::;;;;;;;*&8SXX@@@@@@XSOOOO&&&&&&&&*&&&&&&&&&&&&&&&&&&O&
                                                      @@@@@@  @X@@@@@@@@@@ @ @  @ @@XSSSSXX@@@@  @@@@ @@@@@XXSXXSSSS888OO&;::::---------:::;;;;;;;*&8SXX@@@@@@S8O&&&&&&&&&&&&&&&&&&&&&&O&O&&&O&O
                                                    @@@@@@    @X@@@@ @@ @@ @@@@@@@@XXXXSSX@XX@@@@@@@@@XXXXXXXSSSXSSS8OOO*;:------------:::::;;;;;;*&OSXX@X@@@@@8OOO&O&O&&&&&&&&&&&&&O&&&O&&&&OOO
                                                   @@@@@       @@@@@ @ @ @@@@@@@@@XXXSSXXXXXX@    @@XXX@@XXXXSSS88OO&O&&;:------·-··-----:::::;;;;*&&8SX@X@@@@@SOOOOOO&OO&&&OOO&O&&O&&&&&&OOOO8S
                                                 @@@@@         @@@@@  @ @@@ @ @@@@XXXSXXXXXX@@   SXXSX @XXXXSS8OO&*;:;;::-·-----·--·-·--:-::::;:;;;*&O8XXX@@@@@@SOOOOOOOOO&&O&&&&&&&O&&&OOOO888S
                                                @@              @@@@ @ @@@@ @@XX@XXXXXXSSXXX@@  XXXX@@ @@SSS8OO&*:::--·--·-··-····-·------::::::;;;*&OO8XX@@@@@@X8OOO&&&&O&&&&&&&OOOOOOOOOOO888S
                                          @                       @@@ @@ @@@XXXXXXXXXXSSSXSX@   X@XX @@XXS88O&*;:::---·-···········-·-----::::::;;;;*&O8SX@@@@@@@S&&&&&&&&&&&&&&&O8O&&&*&&O88888
                                                                @@ @X@ @@XXXXXXXXXXXXXSSSS8SX@@X@@X@@@XXS88O&*;;:::--···-·-······-·-------:-:::::;;;;&OOSSX@@@ @@XO&&&&&&&&&&&&O888O&****&&88888
                                                               @@   @@@@XXSSSSSXXXXXXSSSS88XSXXXXXX@ @XSS8O&**:::----···-··-·····-----:::-::-:::::;;**&88SX@@ @ @@8&&&&&&&&&O&OO88OOO&*&&&O8S888
                                               @               @@@X@@@XSSSXXXSXXXXXXXXSSS88SSXXX@S   XSS88O&*;:::------··--······------:-::-::::::;;**&O8SX@@@ @@@SO&&&&*&&&O&O&OOOO&*&&&&O8888S
                                     @   @    @               @XXXXXXXSSSSSSXSSXXSSXXXSSS88SSXSSX@   SSS8OO&*;::-:--·····-······----------::::::::;;;**OSSX@@@ @@ SO&*&*&&&OO&OOOOOO&&*&&OO8888S
                                         @                   @XXXXXSXSSXSSSSSSSSSSSSXXSSS8O88SSS@    SSS8OO&;;:::-------·-····-·---------:-:::::::;;;;&O8SX@@@  @@X8&&**&*&OOOOOOOOOO&*&OOO8888S
                                                           @@XXXXXXXXXXS8888S88OSSSSSSSSS8OO888S@    XS8OO&*;;::::----·-·-····-------------:-:::::;;;;*&OOSX@ @   @S8O&*&&&OOO8O8OO8S8OO&OO8888S
                                         @               @XXXXXXXXXXSSSS88OOOOOOO88SSSS8SOOOOOO8X    XX8OO&*;;::::-:--·-·-----·---··-···------:::;:;;;*&O88SX@ @ @@XS8&&&&&OOOO888O8S88O&OO8888S
                                         @            @@X@@X@XXXXXXXSSSSS888OOO&&&&OSSS888OOOOO8X    XS8OO*;;;:::::---··----···-··········---:::::;;;;;&OS8SSS@ @ @XSSO*&&OOOO88S8S88S8&&O888S8S
                                         @         @@@@@@@@@@@@X@XXXXSSSS8888OO&&&*&&OO88O88OOO8@    XS8O&*;;;:;::::---··················---::::::::;;;*&O888S@@ @@@SS&*&&&OO888888O8SO*&O8888S8
                                               @@@@@@@@@@@@@@XXXSSSSSS8O&&&&&&&&&&&***&&O8SSOOO8     XS8O&*;;;;:;::---··········,·······--::::;;;::;:;;**&8888S@ @@@S8*&&&O&&O8888OO88O**O888S88
                                         @    @@@@@@@@@@@ @@@@XXXX@XSSS88OOO&&&&&***;;**&8XX88SS     XS8O**;;;;;:::--··········,,,,,····--:;::;***;;;:;**;&888S@@@@@SS&&&&OO&O888OOOOO&*&O88SS8S
                                            @@@@@@@     @@@       @@XX@XSS8OO&&**&***;;;;&OSSS8X     @S8&***;;;:::--·········,,,,,·,··-:::::::::;;*&&;;;***&OSSS@@@@SSO*&&&&OO8SOOOOO8O&&O88SS8S
                                          @@@@@ @@@       @   @@ @ @@@@@@XSSOO&&*:;**&**;;*&OO8X     XS8O&**;;;::--·····,,,,,,,,,·--;**;;;;;:::::::*&&;;****&8SSX@@@XSO*&&&OO888OO8O88O&&888888S
                                          @@@    @      @@@   X@ @   @X@@@@XSS8&*;:-:;*&&*;*&O8S     XS8&&**;;::--···,,,,,,,,,,···::*;;**:-·----::::;****;***OSSS@@@XSO*&&&OO88OO8OO88O*&O88888S
                                        @@@@@         @@@@X@ @@    @@ XX@XXSS888O*;::::*&O&**&8S     XS8&&**;;:--····,,,,,,,,,·-----::::-······-:::::;*******&8SS@@@@S8&&&&O88OOOOOOO8O&&88888SS
                                        @ @@@          XXXX@X@@     @@@XXXXXSSOOOO&;::::*&&O&&&S     XS8O&*;;:::-····,,,,,,,,,···-·············--::::::;**;**&OSSX@@XS8&&&&O8OOOO8OO88O&O8888SSS
                                       @@   @        @@XXXXXX@@@    @@X@SSSSSS8O&&O&*;::;*&&&&*&X    XS8&&*;;::-······,,,,,,,,·················---::::::;*;*&&8SS@X@XS8&&&OO8OOOO8OO88S8O888SSSS
                                                    @XXSSSXXX@@@    @XXXS8SSS8O8O&***&**;*&&&O&*&@   XS8O&;;;:::::::-····,,,,,,··········-----::::::;:-::;*;*&OSX@XXXX8&&&OO8OOOOO888SXX888SSSSX
                                                  @XX@@SXSSXX@ @X@  @SS8SS888O&&*&&**&****&&&&O&*O   @X8O&**;;;*&***;::··,,,,,,,······--::-:::;::;;::::--:*;*&&S@@XX8O&&&&&O8OOO8O888SSXS8S8S888
                                                 XSSX@XSSSSXS@ XSSX  SS&OSSS8O&&**;*&*OO&&&&O&&O&*S  @X8O&O&*&O&*:;;:::-····,,,······-::::;O&SX8O&&*;::--:;***&8@@XO*;&&&&&&8S88888SS8S8OOO&OOOO
                                                XSSS@ XSSXSSSX@X88XX X8&*&8SSOO*&;;:*OOOOOO&&O&&&*&  @X8OOO&&&*::-····::-···········-:::;;8X8XX8OOO&*;;:::;;**&8XXO::*&&&&&OOS8888OOOOO&&O&OOOOO
                                               XSSSS  @SSXSSXS@X88SX@S8**;&8S8O**;:::;O88888&&O&&&*S  X8OOO&*:-·······-:::--········-:;&;:*OO&*;:::;;::;::;;**&OSS;:;&;;&&&OOOOO&OOOOO&&&&&O&&OO
                                              XS8S8@  @SSXSSSSXX8O8S@XO*;;;O8OO&*;:::::&OS8S8OO8&O&&  @S8O&;:-·········-;;::-------··:**;;::-··-·--:::::;:;***&&88::;**:*&&&&&&O&OO&&&&&&&OOOOOO
                                             @S88OS@   SSSX8SSXX8OOSX@O*;::*88O&*;--::::*OSSS8&OO&O*8 @S8O&::-·--·······:*;::-:::::-·:::::--·,··--:::::::;;;**&&OO:;:;*;*O&&&&O&O&&O&OOOOOOO&O&O
                                            @XS&8OS@   @8SSSSS8S8&&SSX8*;::;&8O&*::-----:;OSXXSOOO&&&  S8O*:::::::--::-·:&*;::::::-:-·-:::--·---::::::::::;;**&&OO;;:;*;;O&&&&O&OOOOOOOOOOOOOOOO
                                            XSOO8OX@    SSSS88888&*8SX8*::-::OOO*;:------:;&SXXSO8&&&S S8&;::;;:::;;;;:::&*;:::::::-:::-:::---:;;;;;::::::;;*&&&&O*:::;;;&O&&OO&OOOOOO888O8888OO
                                           @SO&OOO@     @8S8S8OOOO&O8X8&::--:*O&&*:·-·---::;OSXXSOO&&8 SO&;;;;&O8X8SO:&*;&*;:::::::-::::::::::;;;::::::::::;;*&&&O*;::;;;OOO8OOO8888888SS8888S88
                                           X8&OOO8 @    @888O8O&O&*O8S8&:····:O&&&:-···---::*O8X@SO&&&@SO&**&O&OSS8&;:-:;&*;:::::::::::::::::::::::::::::::;;*&&&8&:---;&8SSS88S8S88SSSSS88S88S8
                                          @SO&8OOX@@    @SOO88OO&***888&:-···-&8**;····----::*8OX@8O&&SS***888&;*;-···-:*&*;:::::::::::::::::-:-::-::::;:::;;*&&&OO;:--:&SS8SS8SS8888S888SSS888S
                                          @SOOO&OX@@   @@SOOO8O&O;*;&88*:-····;&**;····-----::&OOXS8O&OS*;&S8*;:::----:;&&;:::::;;:------------------::::::;;;*&&&O*:::;OS88888888888888SSS8888S
                                          XOOOO&O@@@@ @XSXOOO8O&O;;;&OO&:·····:*;*;-··-·----:::&OSX88&OS**OO;::::::--:;*&&;::::::;::-·,,·········------::::;;;*&&O8*;:*;O88888888888888888888SS8
                                          SO&OO*O@@XX@X@OX8&&88O&;;:*O&&:····,-**;;-···----:::::&8SS8&OS***;:::::-:::;;&&*;::::::;;::-···············---::::;;*&&&8&;;*;8888888888S88888888888S8
                                         XOO&OO&8XXXXXX@OOX&*O8O&*::;O&*:·,····:;:;:·-··----:-:;;&8X8O&S&;;:::::;:;;;;*&&;::--:::;;;;;:-···············--::;;;;&&&O&::;&8888888888SSSS88888888SS
                                        @OOO&O8&8SXXSSSX8&8O*&OOO*;:;*;*:······::::;·-····---:::;*OSS8*8&;;::;;;;;;:::;&&;:----:::;;;;;;-··-·····,,,···--:::;;;&&&OO:::*8888888888SS8888888888S8
                                        X*&&&O8&O8XS8S8S8*&8&*&*&*:--:::-······--:-:·····--·-::*&&&8SS&O&;;;**;:::::--;&&;:--·----:::::;:-··-····,,,····-:::;;;*&&OO:::;888888888888S8888888S88S
                                        8**O&O8&&8S888888**&&;&;*;:----·-·········-········-:;*;*&&8SS&O&**;;;::----··;&*:-··,··-··-·--:;-···--···,,····--:::;;*&&OO;:;;8888888888888888888S8S88
                                        O;&O*O8*OSX88OO88*;;&*;;;::-······,,·,,···········-;;;:-::;*8XO&&**;;::---···-*&*:-·,,,--······:;:····--··,····---::;;;**&OO&:;*O888888888S8S88S888S8888
                                       @&;*&*8S&OSS8OO&&O;*:;;;;::--······,,,,,,·········:*;-----:::&S8&&*;;::--·····:&*;;:·····-:*;:--::--····-:·······--:::;;**&OO&;;&88888888SS888S8888888888
                                       X&**&*SS&OSSOO&&&&;*;;::::-----····,,,,,,·········:;-·---:::;*O8&&*;::--···,,·;*:;*:-····:&&:-:::---·····-:-·····--:::;;**&OOO:;OSS8S88S8S88888888888SS88
                                       X**&&*XX&8XS8O&&&*;*;:::::::---···,,,,,,·,···-···-;:-···-:;;;*&8O&*;:---···,·-;*::*&:--·:::--:::-------···---····---:::;**&&OO;OS8SS8888888S8888888888888
                                       X&*O&*XX&SXX8OO&&***;;:::::::::::::-·,,·····--·-·---···--:;;;*&O8&*;:---··,··-;;;::**:::::-·---:-:-:::---···:-····--:::;*&&&O8SXS88S8888888888888888888SS
                                       X&*OO*XX&S@X8O&&***;;;::;;;::-···:;;:·······-------·----::****&O8&*;:--··,,··-:;;;;;*;;::-····----:-:-:--····::····-:::;;**OO8SXSS88S8S888S8888888888888S
                                       @**OO&XXOX@@8O&&****;;;**;:·.,..,··::--·····------·-::::;&&O&&&&O&*;:---····--:::;;*;;;:-·····-·-------·-····-:-···--:::;*&&O88SSS8SS88888888888888888888
                                       @&*OO&@XOX@XSO&&&****;*&:-·,,..,····-----····:-::··:;;*OXSOSS8O&OO*;:---···-·-::;;;:::::--·····-·-·-----······-:····-:::;**&O88S88SS8888888888888888888S8
                                        &*OOO@@SX @SO&&*&*****;:-·..,···----·-:--···-:::·-:*8SSX*;&SSO&OO*;:--···---:::;;;::::----------::::::-:-·-···-····-:::;**&OO88888SS888888888S8888888888
                                        &;OOO@@X@ @S&&&&&***&*:--·····--:;:::--:--··-::;·:;*&SX8OOO&&*&&O*;:--··----:::;:::::::::---:-:::::;;;;;:::-··-····-:::;**&O8O8888S8S8S8888SS88888888888
                                        &*O8O@ @@  XO&&&*&**&;:::--·---::;;;::--:----:;;-;*;**;;*;;:;:;;&&;:---·---:::;:::::;;;;::----:::*;*;;**&*&:-·-····-:::;*&&OOOO88S88SSSSSSSSSSSSS8888888
                                        &*OO8@ @@  @8&&&*&*&&::::::---:******;:-:::---;;:::::--:::::::::**;::-·----::;;;;*;;****;::-;;;*;:::::::;*&;----···-::;;**&O8OOOO8OOO888888O8888888OOO88
                                        &*O8S@      S&&&&*&&*;;;;:::;*&8SOO&*;:-;::::::;;:----:::::-::::;**::------::;**&*******;;;;:;:-:··--·:-:*;:··-···--::;;*&&O8OOOO&O&&&&&OOOOOOOOOOOOOOOO
                                        &*OSS@      SO&&&&&&;;;;;;*&8XOS8;*&&*:-;;::::::;;:-----:::::::;;**::------:;*&&&&*&&**;;;:·,··,··,··,-·;&-···-···---::;**&O88OOOOOO&OOOOOOOOOOOOOOOOOOO
                                        &*OSX@     @OO&&&&&*;**;;*OXX@XXO;*&*;::;;;::::::;;--·--:-::::::;;*:---···-:*&&88O*;;;:··-,..,,.·,.···-:&:····-···--:::;**OOOOOOOO&O&O&OOOOOOOOOOOOOOOOO
                                        &*OSX      XOO&&*******;*SX8OSSOO&*;::::;;;::::::;;:--·----:-::::;*;---····:&&;&&&::::·,,·,,.,,,,·.:::&&;-········---:;**&&OOOOOOOOOO&O&OOOOO&O&OOOOOOOO
                                        O*OS@      SOO&&********O8SOO&;:::::::-:;;;::-::::;;:--·----:-::::**:-:····-;&;*&&-:--·..,,..,··-&;*8OO*:-·······---::;;*&&&OOOOOOOOOOOO&&&OOO&OOOOOO8O8
                                        S;OS@      SOO&&********&&**;:·---:::--:;;::::-:::;;:---··---:--::;&:---···--;**;;:-···...·,,·&;**&OO&*;-········---::;**&&&&OOOOOOOOOOOOOOOOOOOOOOO8888
                                        S;&SX      XOO&&&**;;;**;;:::--·--:--·-:;;:::---::;;::-····----:-::&;:--····-:*&&&;--::·-:;;***;*;O&**;--·······-----:;**&*&&&OOOOOOOOOOOOOOOOOOOO888888
                                        S*&X@      @8O&&&&*;;;;;::--:-··----··-:::::::---:;;;:-·····----:::*&;---···--:*O8O*OS8&*****;*&&*****:-·-······----::;**&**&&&&OOOOOOOOO&&OOO&OOO888888
                                        X*&X@      @8O&&&*&*;;;::----·----------::::::::--:;*;:-····-----::;&*:-:···--:;&OOO8O&***;;***&*****:--········----::;*****&&&&O&*&O&;::;*&*OOO8O888888
                                8       @*&X        SOO&&*&*;;::----·-:----·---:-::;:::--:::;*;::-·------:::&&:-:-··---;*&&O&&&&;*****;:;;;*;---········---::;;******&&&OO&:;:--:;&*;&88OO888888
                                S@       &&X        XO&&&&&&;;:::--··--------···-:;;;:-----:;;;:::-------:::&8;:-:-··--:*&&&***;*;;;:::-::;:-·-········----::;;***;****&&OO;-----;;*::&8OO888888
                                @       @&O@        XOOO&&&&;;;::--····--·-·-··-:;;*:--···-::;;::::----:-::;*X8::::-·-::;&&&****;;;;:;:-::-··--········---:::;***;;*****&OO&;·:·:;**::;8OO888888
                                @       @OO@        @8OOOO&&*;::::--··-··-····-:;;;;;:-·,·--:;;;:::::::::::;*S@&;:::--:::*&&****;*;;;::-·············----:-::;**;;;;;***&&OO&;**&:;;:-;O*8888888
                                @        OO          XOOOO&&*;;::::-··········:;;::::--·,·::;;:;:-::;:::::;;*O@X*::::::::;****;;*::::-······-·······---::-::;**;*;;;;;***&OOOO*O&-;;--;*-*888888
                                @        O8        @@@8OOO&&*;;::::--·,,,,···::;:::-::::---:::::::::;;;::::;*OS X*;;;::::;;;;:::::---··············----:::::;***;;::;;*;*&OO&O&O:-;:-:*;--O8888S
                                         OX       @8X@8OOOO&**;;:::-··,,,,··-:::;:::::;;::;::::;;;;::;:::::;*&S  X*;;;::::;;;;::::::--··············--:::::;***;:;:::;;;**&&O&O&·:*:-:&--:*88888
                                         S@       &OSXS8OOO&**;;::::-·,,,··-::-:;;:::::;;;::-::::;;::::::::;*OX   S&**;::::;;;::-:::---·············--:::::;**;;:::::;;;**&&&&O:·:;--;&---;*O888
                                @        X       S:*O888OOOO&*;;;::--·····--:-··:-:-----::---::::;;;:-:---:;&OX    S&*&;;::;;::::::----······-·····---::::;***;:::::::;;;**&&O*··:;--;*-:-*::O88
                                X        @       &::&888OOOO&*;;;:::--···--::·--------···----::;;*&*::-·-::;*O@     S&&&;::::;:::::--:--···--·····-·::::::;;*;;::::::::;;;*&&&:··;:·-;;--:*;-;O8
                                @        @      X;**&OO88OOO&*;;;:::------::------:--····----;*&OO&;------:;&8@      S&&*;:::;;;::-:-----··--······-::::::***;::::::::::;;**&*···;-··;;--:;;::;8
                               @S        @@      &*&;*O8OOOO&*;;;::::----:::-:--::-:-··,·--:***:&O&;---·-::;&8XX      8&&;:;;:;::::----····---·--·--::::;;**;;:::::::::::;;*&:·,:;···;;·--;;:-:&
                                S        @@      S&&;:*8OOOO&**;;;::::-:::::::::::---···-:***:··*O*;---·--;*&SSS@      8O&*:;;;;::---··-···-····-·--::;;;;*;;:::::::::::::;;;···;:···*:··-*;:--;
                               @&        @        &&;;;O8OOO&*;;;;;::::::;:::::::-:::;***&*:··,-;O*:---·-:;*OSSSS@      8O;;;;;::--··-··-·····-·---::;;;;**;:::-:-:-::::::;;:···;-···*:·--;;---;
                               @&        @        S&*:;*88OOO**;;;;::::::;::::;;**;**:*:·:-,.·-*&&*::-·--:;&8XSSSS@     @8&*;;:;---·············--::;;;;**;:::-:-:-::::::::;··,·;···-&-·--;;-·-:
                                @        @@        S*:*;OS8OO&*;;;;;:::::;::;*;*;*:::,··.,·..·;*&&*;:-·--:*&SXXXSXX       8&;;;:--············---::;;;;**;;:::------::::::;:·,.:;···:O-·--;;-··:
                                         @          &;*:*8S8O&*;;;;;:::::::;&&*:····-,,·,.,,·:*&&**;:---:;*&SXXXSXXX      @8**:::--···-·······-::;;;;;***;::::-:---::-::::;-,.,::···;&--··;;···:
                                                    @&&*&SS8O&**;;;;:::--::;;&&&;;;·;-···,::;*&*&*;;;:--:;*OXXXXXXXXX      @O*;::--·--·--··---::;;;*****;;::-------:-:-:-:;,,.·:-···;*····;:···;
                                O        @@           SSX SSO&&;;:;;::----:::;*&&&*&:::·::;****&**;;;:-:;;&SXXXXXXXXX@      @O*;::----------:::;*;;****;;::::-:----------;:.,.·:·,·,;;,,,·;-···*
                                O                     O@@ @S8&&*;:;;::--·-::-:;**&&&:;;:***;;****:;;::-:;;OS@XXXXXXXXS@       O*;;:--:::::::;;**;*;***;;:::::----------::*·.,.-:,,,,;:,,,·:·,·,*
                                S          @         O*S@@ X8O&*;::;;:--·-----::********::::;**;::::::::;*8XXXXXXXXXXXX        S&*;;:::;;;;********&*;:::::------·-----·;;,..,:-,,.,;·,.,-:·,,·&
                                                     :·O@SX S8&&;::;;::------::::;;**;:··-:;*;::::;::;::;OSXX@XXXXXXXXXX        X8&&&*&*&&*******&&*;::::::-----·---·--:&·...·:·...:;,,.·:-,,,-&
                                           @         O·O@SX@XSO&*;;:;;::------:::::::;:-·::::-::::::;;;**SXX@X@@XXXXXXXX@        @SO&&&&**&*&***&**;::::::-:------·--·-:&,...·-,..,;·,.,-:,,,,:*
                                               @     @SSO8 XXS8O&*;;:;:::------::::::-:::::::-:::::::;;;OXXX@@@@XXXXXXXXXX@     &O@88OO&&&*&&&&&*;;::::::-:---·-·-·-·-·&:...,:·,..:;,,.,--,,,,;;
                                              @@     X8@SOO8@XSO&*;;;;;;::------:::::-----:::--::::::;**XX88XX@XXX@XXXXXXXXXX  O,:O88OOO&&&&&**;;;::::::::---·---·-·--:*,...·-,..,;·...·:·,,.,*:
                                            @@@@     8S@O88O8SX8O&*;;:;;;::------:-::------:---::::::;*8@8OOS8SXSSX@XXXXXXXXX O:,;:O88O&&&**;*;;::::::::-----·-·-·-·--;;....-·...·;,,..·:·.,,·*·
                               X@          @ @@X@    8OO&&XOO&SS8O&;;;:;;;::---------:------·-::-::::;O@S88S88SSS888SXXXXXXX X&·,*·O8OO&&**;;;;:::::::-:----·--·-·--::&,...·-,...;-...,:-,,.,-*,
                               S@          @   @@   @S&O&8X8;*O8S8&&*::;;;;::----:-----···-·----::::;&XS8S888SSS8OO&*OS8OXX  S:·-*-OSOOO&**;;;:::::::::::----·--·-·:-;:....-·...,;·...,:·.,.,:;,
                               @           @@        XXXO@@O;;;O888O&;;:::;;:::::-----····------::::;OX8S88SSSSO&&&&&&&8;&@  *·,;*-;OOOO&&*;;;;:::::::::----·-·-·-:-·&,...·:,...:;....-:·,,.,;:,
                                                    @S@XS&SOO;;O8888O&*;:::;;::::::--·-····------::;*8SS8SSSSS8O&**&*;OXO;X@S-··;;--OS&O&&**;;:;:::::::::----·-·::·,:*....·-,...;-.,..::,,,,·*·,
                                                     @@SS*O8@&;@X8OOOO&*;;;:;;:::::---·····-·---:::;OXS8SSS8OO&**&*&*:8SXS&S&·--*--:SS&O&&&**;;;::;::::::----·-::-.,*·....:·...,*,...,:-,,,.-;,,
                                                        @XS8X&;8@S&OOOO&&*;;;;;;;;:::---------:-:;;&O8SOO8OO&**&&*;&&*SXSO&S;-::*·:;X8OO&&&**;;;;:::::::-:---::-··.·;,...·-,...-;....·:·.,.,;:,,
                                                         SOX8;;*S8OO&&&O&&*;;;;***;;::-----:::::;;8O;*8&&*&O&*&OO*;**&XXO;8S;;-::-:&SOO&&&****;;;;::::::::-::::·-,.;:...,--....;:....-:,...,;-,,
                                                       S@@*8O;;:;8SO&&&&&&&***;;*&&*;;::::::::;*OSS&:;88O8O;;;;&SXSSSSS8:*8&:;:·-·-OS*OO&****;*;:;:::::::-:::--:-·-*,...,:·...,*·.,.,:-,...·*,.,
                                                     @ SX8S***;:::;;;&&&&&&&****;;*&O&**;;;;**OOS@@*;:&8O8 S;;;:OSXXSOO*:&O:·*;;:-,&&;;O&&*;;;;;;:::::::::::-::·,.-*·...·:,...·*....·:·...,-*,,,
                                                     @@8@X@O*8*O*:;S;O8&&&&&&&&&&**&&&OOOOOOOOSOO@8OO*;O8X @*;O;:SX8O&;;**O;:&;-;**;-;;O&**;*;;;:;::::::;-··::·,.·-·:,.,··....;:....-:·....;:,,,
                                                    XS@XOSS&*&;88-O@S:88&*&&&&&&&&*&&&&&&OOOO&XO&O88@X;S@ @X8;OS:;SO&;;;&:O:***-::;·,:;*&&;;;;;;:::::::;-.,;-·..·-,..:·.:·...,*,...,::,...,*-.,,
                                                    @S @SS&;*S&;O**@XS;;*&**&&&&&&&&&*****&&OOS8OO@SSOO@X@SXXOO S&O8;-;&*-*:;;S**;:-.·*;;***;;;:;:::::*:..:;,..·-·...-;:-·...·*....,-·,...·*,..,
                                                        SX@*&8X**O;*SS*:-*&**************&&OOO*&8X88&;&OX@SX@8&@S8O&--*O-:*:;;S*:&;;::**::;;;;:::;:::;&,.::,,.·-··,.,:-::....;:....·:·....-;,.,·
                                                      @8S8XOSS@OOX;--;;-::************&*&&&OO8O8OS@OO8XS@X8SXSO88O&*-:&*·;*;::&·-::*::*;;-·--:::::::-;*·;;,,,·····-,,:,.:-...;·....·-,....;;.,,·
                                                     @SO8@S8XS@8;&:::8S::-;;;********&&&&&&&OSO8OO8*8S@   SOSS8O&***·:&;-;::-**,-:,*;::;;:-·,····,·,.;*;-,,···,,*·:.--,,,::.,*,....--,....*-..,,
                                                      S@SX@@XS&*8;::;X@O--&S;;;;******&&&&OOO8OSSOSOO8@X@  @SOOO&:**:;&--*;:-&-·-;·;*;;-::-······,,,,*··,,·-·..,;·;.--,.,··::;,...·:·....·&,.,,,
                                                      XXXOX88SO;XO*8;SXX*-;S*;;**;**&&*&&&&&SS&@X@ O*&S8&@ XOOOO;-**:;*·;;;-:&···;·;:;;:-:-·······,,,&-,,,,··...;-:,-·,.·,.:O:....-:·.,..:*,..,,
                                                      @&OS S8O*;OXS@OOO*X;-OX&****&&***&&&&OSO&@ XXSSOOS&SS&OOO*:-**:&--*;:-**··-;-;·:;;:-·········,·;;;.,.·-...;·,,:,.,·..·::·..,--,,,..;:,.,,.
                                                       S;S   O&*:OX8O;OS@8::OO;***&&&*&&&&&O8O*XXSSOSS*OSSO&OO&*:-**:*·;*;--O-·,:*::·-:;*:···,·····,,;;;...·:·,,;:.··,.·..,:·,-:.,:-....,*·..,,,
                                                        S8  @S*&;:*&---&S8&O·;****&**&*&&&&OOOOSSS&8XSO*SX&&O&;*-:;-*:·;;:-:&···:*::·-::*;,·,,,·,,·,,;*;,..,--,,::.·,.··..·:·.,·:::·,,..-*,,.,,,
                                                         @@@S@OX8;:::-;:;O*8--:;*&*&**&&&&&8XSOOX8OOO&O&OSOOO;;*:;::&··;;--**··-;;;:,·::;*·,,,····,,,-&&:...·:,,:···,.;·.,·:·,,,-O;·....;;,,,,,,
                                                         @O8@S*SSO*::;SO:;::;&;::&&*&&&&&&&8@8O*SS&*S8O&*OOOO:;*:;·;;·-;;-:8-·,::*;:,,--;*:,·,,,···,·,*;*.,.·:,·-,-,,·*,,,--,.,.;;·-·...;:,,.,,,
                                                          S*@8&X8OS*-;SOO;:-;XXO-;O&&&&&&&OSO&XS8S8&@SSOO*OO*:;*;:-*-·:*:-*O···:;*;-,·:-:;;-········,·*·*,..,:·-·,-,,:*,.,:-,,.,;:.,-·.,&·,,,,·,
                                                           O8 OO@OO8;:*O;:;::S8S&·*&&&&&&&&8OO@S X&&XS8&X8OO;:;&;·:*·-;;--8*··-;;;*:,·-:-;;:··········&·*-..·::·,··,,::,,·:·,,.,*·,..---&·,,,·-,
                                                           @&OO;8@OXO*-*O;-;:X*;S:;&&*&&&&OSSOSO8XS&S@8&S8OO;:*&-·*:--*:-;8;··-;;;*-·,::-;-;-,········O::;.,·:;,,-,,,*·.,·:·,,,,*·..,,**;,,,,··,
                                                            S*8X*&OOO&;::;·;8OOO@;-&O&&&&&&OSS@O;S8&*8@@@S&O;:&;·:*:-:;:-&O-··:;*;*-,,;;:;·-;·········*;·*.,·;:.··,,,;·.,-:,,,.-&,,..,*:·,,,.·-,
                                                            @8S O:;:*OOO&*::X&;OX*·:SO&&&*;SSS@8O8O&OOX@XS*O;;&:·;*--;;:;O&··-;:*:&-··;;:;··;·,·······;*·*,,·;,,:·,.·*,,,-:,,,.:*,.,.·*-,,,,·--,
                                                            @X@O;&S*;*8&8SS;*S::&;::OS&&&;*S&SSO8XOOXSSS&S*O:*;--&:-:*:-*O*··-;:*:&:··;::;-·;:,·······:O,*·,:;.·:,,.-*,,,:-,,,,:;,,..-*·,,.,::·,
                                                             @XO;*@8&****;OS;;;:-;XS;SO&*:8S&O*;*S&OXSS@SXOO;*:-;&:-;;:;O&;··:;:*:*:··*::*-··;,·······-O·*··;:,:-,,.:;,,·:-,,,.;:,.,,:*·,,,,::,,
                                                             XS 8:&S:;:*S8XX&;*O:;XX8*SO&*@X;S8O&O&&S88X8@O&*;--&;::*;:**O:··;::*:*:·,*:·;:··*·,······-*:*·-;··:·,,.;:,,·:·,,,,*-,,..:*,,,,·::,,
                                                             XOS@O&O;;:*8O*&:OS8;:SS8OOS;&S*O8SX8OS&SS@O&SO&&::;O::*;:;&*O:·-;::*-*:··*:·;:·-*········-*;*·;:,-:·,,.;-,,·;·,,,·*·,,.,;*·,,,·::·,
                                                             @8OOSX*;::;8;·;;X@8O;XX&@O&O;;SX8SS88@S8S@SOOS8*;;O*;;*;:***&:·:;-;*:*;··;;·;;--*-·······;*:;·*-·::·,,,*·,·-:,,,,·&·,,.,**,,,,·::··