⚠️ Encyclopedia Dramatica is currently being restored by automated scripts ⚠️

There's been a lot of questions as to what's going on with the site and what comes next. So we have this (ordered) roadmap of what's being worked on and what's to come. This will be updated until the roadmap is complete as Æ has a lot of missing features and ideas that I'd like to fix in regards to its offerings before I implement big plans for the site's popularity and well-being in 2021.

Æ Roadmap

  • Content restoration (Mostly done, few things missing that will be restored sporadically)
  • Image restoration (Being run in background, nothing I can do cept wait)
  • Æ Imageboard (Currently being worked on)
  • Mediawiki upgrade and backend fixes
  • .onion domain for Tor-friendly editing and viewing
  • CSS overhaul (Fixing things like the videos on mobile, and overall a rehaul of the wiki's look to be more friendly to readers)
  • Paid bounty board for new articles (Won't be managed by me for legal reasons however I will ensure it runs smoothly)
  • Anonymous phone # service for those seeking ban evades from Twitter as well as a phone number not tied to their name (more details at launch)

  • Currently we are nearing our annual LLC renewal fee ($650) as well throwing the funds required for these other changes and aspects. If you would like to support Æ consider purchasing a copy of The Hustler's Bible or securing some Merch. Donating is also appreciated however I would rather give something back as per the two options above.

    If you have any questions you can join our public Telegram chat to DM me privately or @ me in chat.

    You can also email me via [email protected]

    Merch notes: Thank you to all who have purchased merch. We will ship late January or mid February depending on our provider's speed.

    Here's to setting the world on fire in 2021! - aediot



    LOL WUT/ASCII

    From Encyclopedia Dramatica
    Jump to navigation Jump to search
    <LOL WUT
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::;:::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;;:::::;;:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;::;;;;;;;;;;;;:;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;:,:;;;;;;;;;;;;;';;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;::,,:;;''''''''';;;;;';;:;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................................................``...........................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;:,:;'+++'''++'''';'';;:;;:::;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................````...........................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;:;'+++'''++';++';;;::;;;;;'';:;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................````...........................................
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;+;:'+++'''''';;;;;;''''''::;':;'::,;;,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................`````...........................................
    ,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;+':;+++''';;;;;'''+;++'''+'';:'';::,:,:;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................`````...........................................
    ,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+':;'''+';;;'+'++'+'++'''''+'''':;'';::,:,;:,,,,,,,,,,,,,,,,,:::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........................................................``.......................................
    ,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,:''::'''';;''++++'''''++++##+++''+';::;'''';:,::,,,,,,::::;;;;;;;;;;;;;;;;;;;:;:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................................................``.......................................
    ,,,.......,,,,,,,,,,,,,,,,,,,,,,,''::'''';:;'''';'+'++#########+++'';;:::'''':,,:::,::;;;:::::::::::;;;;::;;;;;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,.....................................................`.......................................
    ,,.........,,,,,,,,,,,,,,,,,,,,;+::;'';;;'+'''+''+#++###':::::'###+'';;:;:'';:;'''+'::,,,:::;;;;;;;;;;;;:::::::::;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....................................................``......................................
    ...........,,,,,,,,,,,,,,,,,,;+;:''';:;'+'''''''[email protected]##++',,,,,,,,;+##++'';';':;''';:,,,:::;;;;;;::::::::::::::::::::::::::;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................`..............````.....................................
    ...........,,,,,,,,,,,,,,,,:'+:;'';;;'''''''''+#@+++:,,,,,,,,,,,,,'##+++';;''';;:,:::;;;;;;;;;;::::::::::::::::::::::::::::::;;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................`````.........```````...................................
    ...........,,,,,,,,,,,,,,,''':'';;;''''''''[email protected]#+':,,,,,,,,,,,,,,,,'#+++''+';:::;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................`````........```````....................................
    ...........,,,,,,,,,,,,,:''::';;;;''''''+''#@+;,,,,,,,,,,,,,,,,:,,,:#+++++;:,:;;;::::;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................``````...`````````......................................
    ...........,,,,,,,,,,,,:+:::;;;;'''''''#+'@+,,,,,,,,,,,,,,,,,,,,,,,,'#+#':::;;;;;:::::::;;;;;;:::::::::::::::::::::::::::::::::::::::;;;;,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
    ...........,,,,,,,,,,,;+:;;'';''''''''+++#:,,,,,,,,,,,,,,,,,,,,,,,,,,#+;::::;;;;::::::::::;;;::::::::::::::::::::::::::::::::::::::::::;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
    ...........,,,,,,,,:';::''''+;'';''''+'#;.,,,,,,,,,,,,,,,,,,,,,,,,,,;+;,:::;;;:::::::::::;;:::::::::::::::::::::::::::::::::::::::::::::;:;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................````````````````````.....................................
    ...........,,,,,,,,',,:,'+;'''''''''+'#;,,,,,,,,,,,,,,,,,,,,,,,,,,,,+:,:::;;;;:::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................``````````````````........................................
    ...........,,,,,,,:':';:;''+'''''''''+,,,,,,,,,,,,,,,,,,,,,,,,,,,:,;::::::::;:::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................``````````````````........................................
    ...........,,,,,,,:++;':;;++''''+''++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;::::::::;:::;;:::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..............................``````````````````.........................................
    ..........,,,,,,,,:++;'+;;+''''''+'+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;:;;;;;:;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................``````````````````..........................................
    ..........,,,,,,,,,++;+++;''+'''++':,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;;;;;;:::;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:,,,,,,,,,,,,,,,..,,,,,,,,,,,,,...........................```````````````````...........................................
    ..........,,,,,,,,,'#'++#';'+'''+':,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::;;;;:::;:::;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:,,,,,,,,,,,,,.....,,,,,,,,,,,,,.......................```````````````````............................................
    ..........,,,,,,,,,'#''++#:;++'+';.,,,,,,,,,,,,,,,,,,,,,,,,,,,;::::::::;;::;;::;;::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::;:,,,,,,,,.........,,,,,,,,,,,,,.......................`````````````````..............................................
    ...........,,,,,,,,;#+'++#':++'+',,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,:::::::::;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::,::,,,,,,,:::::::::::::::,,.,...........,,,,,,,,,,,,,......................`````````````````...............................................
    ............,,,,,,,:#+;++#+:#+'',,,,,,,,,,,,,,,,,,,,,,,,,,,,:;:::::::::;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,::::::::::::::,.,...........,,,,,,,,,,,,................````..`````````````````................................................
    ............,,,,,,,,##;#+##:##+;,,,,,,,,,,,,,,,,,,,,,,,,,,,:;::::::::::;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,::::::::::::,.,,........,................,.........````````````````````````.................................................
    ............,,,,,,,,+#'#+##;+##,,,,,,,,,,,,,,,,,,,,,,,,,,,:;,:::::::::;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::,.......,.............................```````````````````````..................................................
    ..............,,,,,.:#+'+##''#',,,,,,,,,,,,,,,,,,,,,,,,,,:':::::::::::;;;;;;;;;;;::::::::::::::::::::::::::::::::,:::::::::::::::,,,,,,,,,,,,,,,,,,::::::::::,,.....,,............................`````````````````````.`................................................,,
    ................,.,,.##''##+;@:,,,,,,,,,,,,,,,,,,,,,,,,,:;;:::::::;;:;;;;;;;;;;;::::::::::::::::::::::::::::::::,,,::::::::::::::,,,,,,,,,,,,,,,,,,,,,::::::::,....,,............................`````````````````````.................................................,.,,
    ..................,,.'#+:;#';@;,,,,,,,,,,,,,,,,,,,,,,,,,;;:::::;;;;;;;;;;;;;;;::;:::::::::::::::::::::::::::::::,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.,.,..............................``````..``````````..................................................,,,,,
    .................,,,,,##;:'''@;,,,,,,,,,,,,,,,,,,,,,,,,;':::::;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.,...............................``````..``````...................................................,.,,,,,,
    ..................,,..'#'::;##,,,,,,,,,,,,,,,,,,,,,,,,:;:::::;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,,,..............................`````....````.................................................,,,,,,,,,,,
    ....................,,,##'+#@'..,,,,,,,,,,,,,,,,,,,,,,;;:::::;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,...............................````......................................................,,,,,,,,,,,,,,,
    .......................:#@#@#,,.,,,,,,,,,,,,,,,,,,,,.;'::::::;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::,.............................```.......................................................,,,,,,,,,,,,,,,,
    ......................,.,'++,.,.,,,,,,,,,,,,,,,,,,,,,';:;:::;;;;;;;;;;;;;;;;:::::;:::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,..............................`.......................................................,,,,,,,,,,,,,,,,,
    ......................,.,....,..,,,,,,,,,,,,,,,,,,,,;'::;::;;;;;;;;;;;;;;;;:;::;;;:::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,....................................................................................,,,,,,,,,,,,,,,,,,
    .......................,...,.,,,,,,,,,,,,,,,,,,,,,,,';:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,..................................................................................,,,,,,,,,,,,,,,,,,,
    ...................................,,,,,,,,,,,,,,,,;';;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::::::::::::::::::::::::::::::::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::...................................................................................,,,.,,,,,,,,,,,,,,
    ...................................,,,,,,,,,,,,,,,,'';;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::::::::::::::::::::::::,,,,::,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,::::::::..................................................................................,,,,,,,,,,,,,,,,,,
    ...................................,,,,,,,,,,,,,,,:';;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::::::::::::::::::::::::::::::,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,:::::::,.................................................................................,,,,,,,,,,,,,,,,,,
    ....................................,,,,,...,,,,,,;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,::::::::,................................................................................,,,,,,,,,,,,,,,,,,
    .....................................,.,.,..,,,,,.''';;;;;;;;;;;';;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,......,,,,,::::::::,..............................................................................,,,,,,,,,,,,,,,,,,,
    .................................,,.....,...,,,,,,'';;;;;;;;;;;';;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......,,,,,:::::::::.............................................................................,,,,,,,,,,,,,,,,,,,,
    ...............................................,.;'';;;;;;;;;;;';;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......,,,,,,::::::::,...........................................................................,,,,,,,,,,,,,,,,,,,,,
    ...............................................,.'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,:::::::::,............................................................,...........,,,,,,,,,,,,,,,,,,,,,,,
    ................................................,'''''';;;;;;';;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,....,,,,::::::::::........................................................................,,,,,,,,,,,,,,,,,,,,,,,
    ................................................,'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,::::::::::::....................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................:'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,....,,,,,,::::::::::,....................................................................,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................;'''''''';;;;;;;;;;;';';;;;;;;;;;;;::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,::::::::::...........................................................,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................;''''''';;;;;;';;;;;;';;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:,,,:,,,,,,,,,,,,,,,,,,,,,.......,,,,:::::::;:,.........................................................,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................''''''';';;;;;;;;;;;'';;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,.......,,,::::::::::,........................................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................''''''''''';;;;;;;;;''';;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,.....,,,,::::::::::::........................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................'''''';''''';;;;;;;;''';;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,....,,,,,,:::::::::::,......................................................,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................''';'''''''';;;;'';;''';;;;;;;;;;;;;:;::::::::::::::::::::,,,,:,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,:::::::::;:.......................................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................''''''''''';;;;''';;''';;;;;;;;;;;;;;;:::::::::::::::::::::,,,,,,,,,,,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,,:::::::::;;,......................................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................'''''';''';;;;;''';;''';;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,,,::::::::;::.....................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................;''''';;';;;;;;;;;;'''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::,,,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,:::::;:;;;,......................................,,............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................:''''';;;;;;;;;;;;;;'''';;;;;;;;;;;;;;;;;;;::::::::::::::::::,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,::::::::;;:...................................,,.......,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................,'''''';'';;;;;;;;;;'''';;;;;;;;;;;;;;;;;;::::::::::::::::::,,::,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,:::::::;;;...........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................,+''''';;';;;;;;;;;;;'''';;;;;;;;;;;;;;;;:::::::::::::::::::,::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,,,:::::::;;;:..........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................'''''';''';';;;;;;;;;''';;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,,,,::::::::;;:....................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................;'''''''''';;''';;;;;;''';;'';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........,,,,:::::::;;;,..................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................:+'''';''';;''''';;;;;''';;'';;;;;;;;;;;;;:::::;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........,,,:::::::;;;:..................................,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................,+''''''';;;''''';;;;;''';;';;;;;;;;;;;;;;;;::;;;;;;::::::::::::::::::::::::::,::,,,,,,::,,,,,,,,,,,,,,,,,,....,,,....,,,,::::::;;;;,.................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................;'''''';;;;;'';;;;;;;'''';'';;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,.....,,,,::::::;;;;,.................................,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................:''''''';';;;;;';;;;;''''';'';;;;;;;;;;;;;;;;;;;;:;:::::::::::,::::::::::::::::::::,,,,,,:,:,,,,,,,,,,,,,,,,,,,,,,...,,,,,:::::;;;;:.........,,,,....................,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................,,.''';''';''''';';;;;'''''';';;;;;;;;;;;;;;;;::::::::::::::::::::::,:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,,,,::::::;;;;,.......,,,,,....................,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................,.:+'''''';''';;'';;''''''''';;;;;;;;;;;;;;;;::::::::::::::::::::::,:::::::::::::::::,,,,,,,,:::,,,,,,,,,,,,,.........,,,,,::::::;;;;:.....,,,,,,,....................,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................,,;''''''''';'''';;;'''''''';;;;;;;;;;;;;;;:::::::::::::::::::::,:::::::::::::::::::,,,,,,,,::::,,,,,,,,,,...........,,,,,::::::;;;;:,,,,,,,,,,,,....................,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................,,,''+'''''''''''';;;;'''''';;;;;;;;;;;;;;:::;;::::::::::::::::::::::::::::::::::::::,,,,,,,:::::,,,,,,,,,,...........,,,,,:::::;;;;;,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................,,.:''+''''';'''''';;;''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::,,,,,,,::::::,,,,,,,,.............,,,,:::::;;;;;,...,...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...................................................,,.:+'''''''''''''';'''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::,,,,,,,....,...,,,,,,,,,,::::;;;;;:...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .....................................................,,;'++'''''''''''''''''''''';;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:,,,,,,,,..,....,,,,,,,,,,::::;;;;;;............,..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .....................................................,,,'+++''''''''''''''''''''';;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,......,,,.,,,,,,:::::;;;;;,,...........,,....,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ......................................................,.:+++++'''''''''''''''''''';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,:,,,,,,,,,.......,,,,,,,,,:::::;;;;;,............,,,..,,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .......................................................,,:+'+++''''''''''''''''''';;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,:::,,,,,,,,,........,,,,,,,:::::;;;;;,...........,,,,,,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..........................................................:'+++'''''''';''''''''''';;;;;;;;;;;;::::::;::::::::::::::::::::::::::::::::::::,,::,,,,:::::::,,,,,,.......,,,,,:,,:::::;;;;;:...........,,.,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .........................................................,.,'+'+++'''''''''''';;';;;;;;;;;;;;;;;;::;;::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,,,.......,,,,,::,::::::;;;;:........,,,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ........................................................,.,..:'+++'''';''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,:::::::::::::::,,,,..,,,,,,,:::::::::::;;;:,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ............................................................,.,;+++''''''''''';;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,:::::::::::::;;;,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .........................................................,..,.,,:'++''''''''''';;;''';;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::::::::::;;;,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...............................................................,.:+'+'''''''''';;;'''';;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,:::::::::;;;:,.........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..............................................................,,,.;++''''''''''';;;''';;;;;;;;;;;;;;;:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::;;;:..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...............................................................,,,.;++'''''''''';;;;'';;;;;;;;;;;;;;;:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,::::::::;;;:.,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................................................................,,++'''''''''';;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,::::::::;;;,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................................,..+'+'''''''''';;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::::;;;,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................................,..''+'''''''''';;;;;;;;;;;;;;;;;::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::;;;,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ....................................................................''''''''''''';;;;;;;;;;;;;;;;:::;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::,,:::::;;;:,,,,,,,..........,..,,,,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ....................................................................'''''''''''''';;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,:::::::::::;;;:.,,,,,,..,......,...,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................................,.,,''''+''''''''''';;;;;;;;;;;;;;;;:;::::;:::::::::::::::::::::::::::::::::::::;;;;::::::::::::,,,,,,,,,,,,,,::::,:::;;;;:,,,,,................,,,,,,,.,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...................................................................:''''+''''''''''';;;;;;;;;;;;;;::::::::;::::::::::::::::::::::::::::::::::::;;;::;:::::::::,,,,,,,,,,,,,,,,,:::::::;:;;:,,,,,................,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...................................................................;'''''''''''''''';;;;;;;;;;;;;;::;;;:;;;;::::::::::::::::::::::::::::::::;;;:::::::::::::,,,,,,,,,,,,,,,,,,,,:::;;:;:;;;,,,,,................,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................................,.,''''''''''''''''';;;;;;;;;;;;;;::;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;:;:::::,,,::::,,,,,,,,,,,,,,,,,,,,::;;;;:;;;,,,,,....,,,,........,,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...............................................................,..:''''''+''''''''''';;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::::::::::;;;;;;:;:;;:;:::,,,,,,::::;:::::::,,,,,,,.,,,:::;;;;;;;,,,,,,,..............,,,,................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ...............................................................,,,;'''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;:;;;;;;::,,,,,,:;::::;::::::::::,,,.,,,,,::;;;;;;,,,,,,,...............,,,..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .................................................................;''';;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;::::::::::;;:::::::;;;;;;;;;:;;;:::::,,,,,,:::;;;;;;:;;;;;;;;;::::,.,,,,::;;;;;:,,,,,,,.......................................,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,
    ................................................................:'''';;'''';'''''''''';;;;;;;;;;;;;;;;;;;;;;;:;;:::::;;:::::::;;;;;;;;;;;;;::::::,,:::;;;;;;;;;;'''';;'''';;:;::,,,,,:::;;;:,,,,,,,,................................................,,,,,,,,,,,,,,,,,,,,,,,
    ...............................................................,''''';''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;'''''''+++''''''''';;;:,.,,:::;;;,,,,,,,,....,,,............................................,,,,,,,,,,,,,,,,,,,,
    .............................................................,,'''';;';'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:::::::;;::;;;;;'''''';;;'''';;;:::;'''';;;,,,,,:;;;,,,,,,,,,,,,,,,.............................................,,,,,,,,,,,,,,,,,,,
    ..............................................................;''';';';;''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::;;;;;;'''''';;;;;;;;;;;:,,,,,:;''+'';,,,,,,;;:,,,,,,,,,,,,,,...................................................,,,,,,,,,,,,,
    .............................................................;'';;;''';;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;''''++';;:::::,:;;:......,,;''+''':,,,,:;:,,,,,,,,,,,,,,.....................................................,,,,,,,,,,,
    ..........................................................,.;'';;;''';;'''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;';''+'+'';;::,,....::,........,:'''++';,,.,:;,,,,,,,...............................................................,.,,,,,,
    ...........................................................:';;;;;''';;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;';''++''''';;:,.......,,..........,;;::;+';,,,,;:,,,,,,...........................................................,...,...,,,,
    ..........................................................,';;';;''';;';'''';''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;::::;;;;;;';'+'''';;;';,......`...,...........;,...:+'':,,:;,,,,,........................................................................
    .........................................................,;;;;;;;'';;;;;;;;;'''';'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;;;'''''++''';::::;,,......`...:........```;,...`;'+':,,;;,,,.........................................................................
    ......................``................................,;;;;;;;;';;;;;;'';;;;;;;;;'';'';;;;;;;;;;;;;;;;;;;;;;;;;::;::::;;;;;;::::;;;;;;;''''''';:,,,,,::.`.....``.`:.........``;,..`.:;''':::;.,..........................................................................
    ....................````................................;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;:;;;::::::;;;;::::;;;;';'''''''';:,....,:;.......``..:.........``;....`;.:;''::',...........................................................................
    ...................``````..............................;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::::;;:::::;;;';''+'';;;'':,...`..,;.....``....;,......````',...`;`..''',;:...........................................................................
    ..................```````.............................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;:::::;;;'''++'';:::;',....`..,',.....``.,:;,.....`````+,..``;```;:';:;...........................................................................
    ................````.................................;;;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;;;;;;:;;::;;;;:::::;::::::::::::;;;;''+++';;:,,.,;........:#':......,;+++:.....`.`.+:.```;``.',:';;...........................................................................
    ................```................................,;;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;;:::::::::::::::::::::::::::;;;;;;''++;:;;:,...:;,,....`,+++++'''+'+++++#+++'''++#+',```;`.`'`:++;...........................................................................
    .............```````````````......................,;;;;;;;;;;;;;;;;;;;:::,,,:::::::::::::::::::::::::::::::::::::::::::::;;;'';'++;:::::,....,+',....;+++##+##+++++++++++++++++++#++#+#;``;`:'':...........................................................................
    ............````````````````.....................:';;;;;;;;;;;;;;;;;:::,,,,,,,,,::::::::::::::::::::::::::::::::::::::::;;;';;'++'::,,:;,....:#++##########+####++++++++++++#+++######++,,;`;'',...........................................................................
    .............``````````````````.................:';;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::;;;'';'++';',,..:;:,,,:+#+##+++++++#++++++##+++#+++++++++++++''+#+''+.'':............................................................................
    .............```````````````````...............;';;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::;;;'''''+';:;'...`:''''++++++++++++++#++++++++++++++++++++++++++++++'++'+:,............................................................................
    .............`````````````````````............';;;;;;;;;;;;;;;;;;;:::,,,.,,,,,,,,,,,,,,,::::,:::::::::::::::::::::;;;;''++++';::;+....;++++++++++++#+++++++++++++++++++++++++++++++++++++++#+..........................................................`...`...............
    .............```````````````````````.........;;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::;;;;'''+++'':,,,;#',:'+++++++++++++++##++++++++''+++++++++++++++++++++++++;;;.........................................................`..``................
    ........`````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;::::;;;;;''++++';':,,,'+'+++++++++++++++++++++++++'+'''''''++++''+++++++++++++++'::......................................................``.`.,,.``..............
    .......`````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;::::;;;;;;''+++';;;+';:;+++++++++++''''''''++++++++''''++'''''+'';;;'+++++++++++++;:,.....................................................````...,.``..............
    ....```````````````````````````````.......';;;;;;;;;;;;;;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::;;;;;;''++++;::;++++++++++++++''''''''''';;'+++'''++''''''';';;'';;'++#+++++++++;:,.....................................................````.....````............
    .....`````````````````````````````.......;';;;;;;;;;;;;;;;;;;;;;;;::,,,,,,,::::,,,,,,,,,,::::::::::::::;;;;;;;'''++++''++#+++++++++++++''''''''';;;;;;;'+++++++''';;;;:::;;;,;;'++++++'+++;:,.....................................................````...,.`````...........
    ...```````````````````````````````......:';;;;;;;;;;;;;;;;;;;;;;;:::,,::::::::::,,:,,,,,,,:::::::::::;;;;;;;'''+++++++++++++++++++++''''+'''''';;;;;;;;;;''+'''';;;;::::::::;,;;;+:;++++''',;....................................................``````.`..`````...........
    ...```````````````````````````````..`..:';;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::,::::::::::::;;;;;;;;''+++#++++++++++++++'''''''''''''''';;;;;;:::;;;;++''';:;::::::::::::;;+';'+#''+:'...................................................```````.``.`````...........
    ...````````````````````````````````...,';;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;'''++++++++++++++++'''''''''''''''''';;;;;;::,,,::;;'++'';;:::::::::::::;;++,.:+;';;...................................................```````. `.``````..........
    ...`````````````````````````````.``..,';;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;:::::::::::::::::::::;;;;;'''+#+++++++++++++''''''''''''';;''';;;;;;;;:::::::::;;;'+'';:::,:,::::::,::;'.,..;;;;,.................................................```````..`..```````....```..
    ...``````````````````````````````.`..';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;:::::::::::::::::::;;;;;;''+##+++++++++++++''+'''''''''''''';;;;;;;:;;:::::,:,,::;;''';;::,:,,,:::::,.;;+':,,`.,:,..............................................`````````.....````````````````
    ...```````````````````````````````..;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;:::;::::::::::::;;;;;;''''+##++++++++++++'''''''''''''''''''';';;;::;;:::,:,,:::,::;''';;:,,,:::::::::::::;':..::;..............................................`````````.....````````````````
    ...``````````````````````````````.`:';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::::'';;:;;;;;;;::;;;;;;;''''+#+++++++++++++#++++'''''''''''';;;''''';;;;:;;::,,:,:::::::;;'';:::::::::::::,:::,;+;:` .,...........................................```````````.....````````````````
    ..````````````````````````````````:';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::::::'';;;;;;;;;;;;;;;'''''+#++'''+++++++++++++++''''''''''''''';;;;'';;;;;:::::,:::::::::;;';;:::::::::;;;:::.,;';, `.,..........................................````````````.....````````````````
    ..```````````````````````````````.'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::'+;;';';;'';''''''+##+++:....,++''++++++++++'+''''''''''''';;;;;;;;;;::::::::::::::::;;;;;::::::::::::,,,:;++``.,,.....................................`````````````````.....````````````````
    ..```````````````````````````.```;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;++'';''''''''+###+';';,.....:;....'+++++++++++'''''''''''';;;;;;;;;;:::::::::::::::::;;;;::::::::::,,,,;:'+,,:,,....................................``````````````````.....````````````````
    ..``````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::;'+++++####++++''';;;:,,,.,',.....;+'::'+++++++'''''''''';;;;;;;;;;;;;;;:::::::::::::;;;::::::::,,,,:::'+,`,;:;,..................................```````````````````...,,.```````````````
    ..``````````````````````````.```'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::::;;'+'';:,,::;''+'':,,,,,',,....:+....,+++++++'''''''''';;;;;;;;;;;;;;;;;;;;;;:::::;;::::::::,,,,,:;'',  `;:;',..............................``````````````````````...,,.```````````````
    ```````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::;;;:::::::::::::,,,,::;;'';::;',,,..,:'.....;+;;''++++'''';;';;;;:;;;;;;;;;;;;;;;;;::::::::;:::::,,,,::;+';```.:;;;;,.........................``````````````````````````..,,,.```````````````
    ```````````````````````````````;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::;;;;;;;;;;;:::::::,,,,,:;''';::,.,,;'.....:;,...:'+++''';'';';;;;:;;:::::::::;;:::::::::::::,,,,,::;'':``,`..:;;:;;.........................``````````````````````````,.,,,.`````````````..
    ``````````````````````````````,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::;;;;;;;;;;;;;:;;::::,,,,:'';::,,,;;....,::....,:++++++''''''';;;;;;::::,,,,,,:::::::,,,,,,::,,:;'':` ``:.`.:;;::;,............``````````````````````````````````````,..,,.``````````.....
    ``````````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;::;;;;;;::;::::::'';:::';,...,::..`..,;....:''''''''';;;;;;::::,,,,,,,,,,,,,,,::,::;;'':`  `.:,..;'::;;:...........```````````````````````````````````````,.,,,.``````....,,,,,
    ```````````````````````````.`,'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;:::;'':;':,...,;:..`..,'..````:'''+'''';;;;;;:::::::::::::::::::::;'':,,:```..:,..''::::;..`.....``````````````````````````````````````````,,,,,.````...,,,,,,,,
    `````````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;:;;;''''::...,;:,.`..,'.......:+':,`.,:;'';;;;:::::::::::::;;;;;';,``` :.....::.,''::::;,.......``````````````````````````````````````````,,,,,.`...,,,,,,,,,,,
    ````````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:;;;'+':,..,;:,``..,;.````...;.```````,''';;;;;;;;;;;;';;;:;'':`  ```:,....::.:'':::;;:`.....```````````````````````````````````````````.,,,,,.,,,,,,,,,,,,,,
    ````````````````````````````;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;:;:;'+':,:;:,``.,::.`````..:........,:+':....:'+''';.`````,',`````.,,....:;,:'':::;::`....````````````````````````````````````````````.,,,,,,,,,,,,,,,,,,,,
    ``````````````````````````.`';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;;;''';;:,`..,;,.`````..:...```...:':` `` ``.'++```````.;,`````.,:,...:','';:::;;;..``````````````````````````````````````````.``...,,,,,,,,,,,,,,,,,,,,
    ```````````````````````````:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;:;'+':,...,',.`````..;...`````.,;,..``````.';``````..:,`````..:,..,:';++::::;;;..``````````````````````````````````````.......,,,,,,,,,,,,,,,,,,,,,,,
    ```````````````````````````';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;::::::::::::;'+';,..,'...````..;...`````.,'..........;,........:,````...;,.,,;'+'',::;::;.`.`````````````````````````````````..,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ````````````````````````.`,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;:;'+':,;',,...```.;...``````,'.`````....',`.......,:``.`.`.;..,,''+':::::::;.`.````````````````````````````````.,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,
    ``````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;'';'';'';;;;;;;;;;;::::;;;:;;;;;::;++''',,......,:..```````,'.`````....',`.......,:``..``.;,..:++;,,,:;:::;...``````````````````````````````.,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,
    `````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;;:;'++':,,.....::..```````,'.`````...`':`........:.`.....;,.,'+;,,,::;:::;.```````````````````````````````.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ````````````````````````.,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;';;;;;;;';;;;;;;;;;;::::;::::;;;;::'++;,.....::...``````:'.`````.`.`;:`........:,``...,;:,''::,,,::;:::;.````````````````````````````..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ````````````````````````.:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;:::::::::;;;;:::;'+;,..,;;....`````:'.`````.`..;:`.......,::``...,;;'':,,,,,::;:::'``````````````````````````...,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,
    `````````````````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::::::::::;:;::;'+;,:';.....````;'.`````.`..;;...```..,;;``.`.,+'::,,,,,::::::;:`````````````````````.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,
    ````````````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;::::::::::;;;;::'+'';.........;;,`..```...;;...```..,;'````,;;:,,,,,,:::::::'.``````````````````.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .......`````````````````.';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;::;;;;::::::::::::::;;::;;';,.......;;.```````..;;,````..,::;,`.:;:,,,,,,,:::::::;'`.``````....,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ............`````````...,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;:::;:::::::::::::::::::;::;';,,,.,;;...````...;;:``.`.,:;:;;;';:,,,,,,,,:::::::';``````..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,
    ........................:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::::::::;:;:::::;;';;;;:..`...,.,;;;,.,,,:;;;'+':,,,,,,,,:::;::::;',```..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:,::::,,,,,,
    ........................;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;::::::::;:;:;;:;;''',.....,,;;;;;:::;;'+';:,,,,,,,,,:::::::::';`..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:::,,,,,,,
    ........................';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;:,,:::;:::;;;;;::;;;'';;;;;;;';;''+';:,,,,,,,,,,,:::::::::'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,
    ........................';;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;::;::;;;::;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::,,::,,::::;;;;;;::;;;;''''++';:::,,,,,,,,,,,,:::::::::;':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    .......................,';;;';;;';;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;::::::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::,,,,,::::::;;::;;;;;;;;:::::,,,,,,,,,,,,,,:::::::::;'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ..................,...,,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;:::;::;;;;;:;::::::;:;;;:;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::,,,,::,,,::,,,:;;::::;::,,,,,,,,,,,,,,,::::::::::;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,:::
    ..................,...:,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::;;:::;;::::::::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::,,,:,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;''',:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::
    ..................,,.,:,';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;::;:;;;;:::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;;'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::
    ,.....,,..,...,...,:.:,,';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:::;;;;;;:::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;'''''::,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::
    ,,,...,,,.,..,,,,,,:,:,:';;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;;;;;:;:::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,,,,,,,,,:::::::::::::::;''''''':,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::
    ,,,...,,,.,.,,,,..,,::,:';;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::;:::;;;;;:;;::::::::::::::::;;;;;;;;;;;;;;;';';;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::;''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::
    ,,,,.,:,,,,,,,,,,,,,::,:';;;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;:;:::::::;;;;;::::::::::::::::::;;;;;;;;;;;;;;;;;';';;;;;;;;;::::::::::::::::::::::::::::::::::::::;;''';'';;''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::
    ,:,,,,:,:,,,,:,,,,,,::,:';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;::::;;;::::::::::::::::::::;;;;;;;;;;;;;;';;;;;;;;''''';;;;:::::::::::::::::::::::::::::::::;''''''';;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,::::::::::::::::::
    ,:,,,,:,,,,,,::,,,,,::,:';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::::;;;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;';;''''''';;;;:;;:::::::::::::::::::::;;;'''''''';;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;:::::::
    ,:::,,:,:,:,:::,,,,,::,:';;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;::::;;;;;:::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;'''''''''''''';;:::::::::::::::;;:;;''''''';;;;;;;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,::::::::::::::::::::::::
    :::::::::::,:::,,,:,::::';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::;;;;;;;;::::;;;;;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'''''''''''''';;;;;;;;;;;;;;;;;'''''''';;;;;;;;;;;;;'':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;::::
    ::::::::::::::::::::::::';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;;;;;;;;:::;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;;'''''''''''''''''';;;;;;;;;'''''''';'';;;;;;;;;;;;;;'',,,,,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,::::::::::::::::::::;::::
    ::::::::::::::::::::::::'';;;'''';;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;:::;;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;''''''''';;''''';'''''''''''''''';;;;;;;;;;;;;;;;;;;'':,..........,,,,,,,,,,,,,,,,,,,,,,,,,:::,,::,,,,,,::::::::::::::::::::::::::
    ::::::::::::::::::::::::';;;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;:;;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;''''';;;;;''''''''''''''''''';'';;;;;;;;::;;;;;;;''.....```....,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::
    ::::::::::::::::::::::::'';;;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;::::;;;;;;;:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;';'''''''''''''';;;;;;;:;;;;;:::;;;;;;'',`........,.....,,,,,,,,,,,,,,,,,,,,,::::::,,::::::::::::::::::::::::::;::::
    ::;::::::;::::::::::::::'';;'';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;:::::;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;''''''';;;;;;;;:::::;;;:::::;;;'';,,,,,....,,.,,,.......,,,,,,,,,,,,::,::::::::::::::::::::::::::::::::::;::::
    ::;::::::;::::::::::::::'';;'';'';;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;::::::;;;'';:::::,,,,,,,,,,,,,,,..........,,,,,,::::::::::::::::::::::::::::::::::;:::::
    ::;;:;:::;;:::::::;:::::;';''';';;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::::::::::::::::::::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;;''::,,,,,,,,,,,,,,,,,,,,,,,,..........,,,,:::::::::::::::::::::::::::::::::::::
    :::;;;;::;;:::::::;::::;;'';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;:::::::::::::::::::::::::::::::::::::::::;;:;;;;;::;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;'':::,,,,,,,,,,,,,,,,,,,,,,,,,..,,..,.....,,,,,::::::::::::::::::::::::::;;::::
    :;:;;;;;;:;;;;:::;;;:;:;;'';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;:;;::::;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........,,,,::::::::::::::::::::::;::::
    :::;;;;;;:;;;;:::;;;:;:;;';''''';;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;:::::;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::;::;;;;;;;;;:;:::::::::::::::::::::;;;;;';,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,,...........,,,,:::::::::::::::;;::::
    :::;;;;;;::;;;;::;;;:::;;''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;::::::::::::::::::::::;;;;;';,:,,,,,,,,,,,,,,,,:::::::::::,::::::::::::::,,,,..........,,,,:::::::::;;;:::
    ;::;;;;;;;;;;;;;:;;;:::;;'';'''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;:::::;:::;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::::::::;;;;';':::::,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::,,.......,,:::::::::;::;:::
    ;:;;:;;;;;;;;;;:::;;;;:;;;';'''''';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::;:;::::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::::::::::::::::::::::::;;;;;;';:::,:,,,,,,,,,:,,,:::::::::::::::::::::::::::::::,,,.....,,:::::::::::::::;:::
    ;:;;:;;;;;:;:;::::;;;;:;:;''''''';;;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::;;;;;;';::,:,::,:,,,,::::::::::::::::::::::::::::,,,,.........,:::::::::::::::::::;;:;
    ;:;;:;;::;;;::::::;;;;:::;'''''''''';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;;::;::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::;;;;;;';:::,,::::::,,:::::::::::::::::::::::,,,...........,,,::::::::::::::::::::::;::
    ::;::;;;:;;;::::::;;:::::;'';''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;::::::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::::::,,,,,::::::::::::::::::,,,,:::::::::::::::::;;;;;''::,:,:::::::,::::::::::::::::::,,,......`......,,,:::::::::::::::::::::::::;:::
    ;:;:::;;::;;:::::::::::::;''''''''''';;;;';;;;;;;;;;;;;;;;;;;;;;;;:;:::::;:;;;::::::::::::;;:;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,::::::::::::::,,,,,,,,,,,,::::::::::;;;;;'':::::,:,::::::::::::::::::,,.............,,,,:::::::::::::::::::::::::::::::::;
    ::;::::::::;:::::::::::::;;';'''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:;;;;:::::::::::;;;;;;;;;:::::::::::::::::::::::::::::::::::,,,,,,,,,,,,:::::::::::::,,,,,,,,,,,,,:::::::::;;;;;';::::::::,,::::::::::,,,...........,.,,,,:::::::::::::::::::::::::::::::::::::::
    :;::::;:::;:::::;:;::::::;;';'''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:::::::::::;;;;;;;;;:;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,::::::::::,,,,,,,,,,,,,,,:::::::::;;;;'';:::,::::::::,,,,,,................,,,,:::::::::::::::::::::::::::::::::::::::::
    :;:::::;::;:::::;::;:::;;;;'';''''''';';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;:::;;;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,,,:::::::::;;;;'';:::,:,:::::,,,..............,..,,,,,:,::::::::,:::::::::::::::::::::::::::,:::,
    ::;::::;::;::;::;:::;::;;;:'';'''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:::::::::::::;:;::::::;:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,:::::::,,,,,,,,,,,,,,,,::::::::;;;';''::::,,:::::::,,,..........,,,,,,,,,,,,,::::::::::::::::::::::::::,:::::::::::::,
    ::;::;:;:::::;::::::;::;;::;'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;::::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,:::::::::;;'''';,,,:,:::::::::,,,,,,,,,.,,,,,,,,:,,,,,,,,,:::,:::::::::,,::::::::::::::::::::::,
    ::;::;;;;:;;::::::::;;;;;;;;'';''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::;;;:::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,::::::::;;;'''';,,::,,:::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,::::,,::,,,,:::::::::,,::;;:::::::,::,,
    ;:;::;:;;:;;::.,::;:;;;;;;;:'';''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;::::;::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;;;''''':::,:,::,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;,;:,::::::::::,
    ;;;;;:;:;;:;::,,..;::;;;;;:;;';'';'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::;;;;''''':::,,,:,,:,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,....,.,,,,,,,,,,,,,,,,,,:::,,,,,::::::::
    ;;;;;:;;:;::..,,,::::;;;;;;;;''''';''';'';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,::::::::;;;;;'''';,::,:,,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....................:;......,,,,,,,,
    :;;;;::;::;..,,,,..::;;;;;;;;;'''';''';'';'''';;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;:::::::::::;;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,:::::::;;;;;;'''';,:,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................:;,.............
    ;;;;;;::;:;:;,,,.:,:;;;;;;;;;;''''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,::::,,,,,,,,::::::::;;;;;''''':::,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....::,.............
    ;;;;;;::::;;;,:,.::::';;;;;;;;''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;::;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,:,,::::::::,,,,,::::::::;;;;;''''';:::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,;:....``.......
    ;;;;;::,,::;;;;:,::::;;;;;;;;;;+''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;::::::::::::;;;;::;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::::,,,::::::::;;;;;'''''';:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,......,:;...````````..
    :;;;:,,,,,::;;;;;;::.,;;;;;;;;:''''''''';''''';;;;;;';;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;;;;:::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,:::::::::::::,::::::::::;;;;;'''''':::;::::::::::,,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........::,..````````..
    :;;;;;,.:.,:;:;;;;::.`,,.:;;;;;'+''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::::::;;;;;;;::::::::::::::::::::::::::::::::::,,,,,,,,,,,,::::::::::::::::::::::::::;;;;''''''':::;:::::::::,::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................:::..`.```..`.`
    ;;;;;::.::,;;;;:;,,:,...,:;;;;;;+;'+''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;::::;;;;;::;:::::::::::::::::::::::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::;;;''''''';::;::::;::::::::,:,,,,,,:,::,,,,,,,,,,,,,,,,,,,,....................:::......``.`..
    ;;;;;;;:;:;;;;;::```,,,:,.,;;;;;++'''''''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::::;;;::;::::::::::::::::::::::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::;;;;''''''':::;:::;:::::,::,:,,:,,:::::::::,,,,,,,,:,,,,........................,::.......`.`.`
    ;:;;;;;;;;;;;;;;:.`,:.,,,.,;;;;;;+'''+'''''';''';'';;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;:;::::;;:::;;;;::;;::::::::::::::::::::::::::::::::::::,,,,,,,::::::::::::::::::::::::::;;;;;'''''''::;':::;::;;:::::,::,,,,,,:,:::::,,,,:,,,..................`````.....:::....```.`...
    ;;;;;;;;;;;;;;;;;;::``,`.;;;;;;;;+'''+'''''';'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;::;:::::::::::::::;::::::::::::::::::,:::::::::::::::::::::::::::::;;;;;;;''''''';;;';:;;:;;;::::::::,,,,:::,:::::,,,,....................``````......:::...`````.,.,
    :;;;;;;;;;;;;;;;;;;...;`..;;;;;;;'+'+'''''''';;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;:;;::::::::::::::;;;;:::::::::::::::::,,:::::::::::::::::::::::::;;;;;;;'''''''';;;;;;;;;;;:;:,:::,:,:,:::::,:,,,,..............`...`.````````......,::,...`....,,,,
    ;;;;;';;;;'';;;;;;;:,;';,:;;;;;;;;++'''''''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;:::::::::::;:;;;;;;;::::::::::::::::::::::::::::::::::::::::;;;;;;';''''''+;'';;;;';;;;;;:,;:::::::::,,,,,,,...............``.````.`.``````.....,::::.....,,,,,,,
    ;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;+'+''+'''''''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;:::::::::::;:;;;;;;;:::::::::::::::::::::::::::::::::::::::;;;;;;;''''''''+;'';;;;;;;:;;;:;;:::::,,,,,,,..................````````.`.``````....,:::;,...,,,,,,,,,
    ;;;;;;;';;;;;;;;;;;;;;;';;;;:;;;;;;'''';''''+'''';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;:::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::::::;;;;;;;''''';''+';'''';;:;::;;::;;::,:,,,,,................````````````..`.`````....,::::::.,,,,,,,,,,,
    ;;;;;;;;;';;;;;;;;;';';'';;;;;;;;;;;''+;''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;::::::::::::;;;;;;;;;:;;;:::::::::::::::::::::::::::::::;;;;;;;;;'''''''++'''''';;;;:;;;:;;::;::,.:...............````````````..``,..``.`.`...:::::,,,,,,,,,,,,.,
    ;;;;;;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;';+;+'''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;:;;;;::;;;:;::::::::::::;;;;;;;;::;;;::::::::::::::::::::::::::::::;;;;;;;;;''''''''+'''';;;;;;;;;;;;;;:::::.:,,,,..........``````````.```..``,..``.``...,::::,,.,,,,,,,,,,..
    ;;;;;;;;;;;;;;'''';;;'';';;;::;;;;;;;;';+''+'''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;;;;:::::::::;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;''''''''''+';;;;;;;;;;;;;;;;;;;;:;:,:..:........`````````````..``..``,,..,,....,.;::,,,.,,,,,,,,,...
    ;;;;;;;;;;;;;;;;''';;';;;;;;;;;;;;;;;;';+;'''''''';''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;'''''''''++';;;;;;;;;;;;;;;;;;;;:;:;,.::.....````````````````..``....,,.,,`.,,.,,::,,,,.,,,,,,,,,,,,
    ;:;;;;;;;;;;;;;;;;'';;;;';;;;;;;;;;'';;'';'++'+''''''''';;;;;;;;;;;;'';;;;;;;;;;;:;;;;;;;;;;;;;;;;::::;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;'''''''''++''';;;;;;;;;;;;;;;;;;;;;:;,:;:.,:.````````.``.``````..``.,.,,,,..,,.,,,,:,,::,,,,,,,,,,,::
    :;;;;;;;;;;;;:;;;;;;;;'''''''';;;';'';;;;;+''++'''''''''';;;;;;;;;;''';;;'';;;;;::;;;;;;;;;;;;;;;;:::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::::;;;;;;;;;;'''''''''++';;;;;;;;;;;;;;;;;;;;;;;;;;;;;:,:,```````..```.``````....,,.,,,,.:,,,,,,,:,,,:,,,,,,,,,,,,,
    :;;;;;;;;;;;;:;;';;;';''';;;;'';;';;;;;';;+'+++''''''''';;;;;;';;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;:::;;;;;;;;'''''''''''++';''';;;;;;;;;;;;;;;;;;;;;;;;;;,,;,````````````.``..`.`,,.,,.,,,,,,,,,,,,,:.,,,,,,,,,,,,,:,,
    ;;:;;;;;;;;;;::;';;;;;;';'';;;;;;';;';;;''''+++'''''''''''';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;:;;;;;;;;;''''''''''''++''+'';;;;;;;;;;;;;;;;;;;;;;;;;;;,::``,`.`.,`.```,```...`.,,,,,,,,,,,,,,,,,,:,,,,:,,,,,,,:::::
    ;;:;;;;;:;;;;;:;;;;;;;;;;;;;;;;;;;'''';'''''+++;''''''''''';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;:;;:;:;;;;;;;''''''''''++++''''''';';;;;;;;;;;;;;;;;;;;;;;::::.,,...`:`.```.``..,.,,,,,,,,,,,,,,,,,,,,,,,::;::::::::::::
    ::;;;;:;:;;;;::;;;;;;;;;;;;;;;;;;;;;'+';';'''+';''+''''''''';''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;'''''''''''+++++''''';;''';;;;;;;;;;;;;::;;;;;;;;:::...,.;.````.`.,.,,..,,,,,,,,,,,,,,,,,,,:,:::::::::::::::
    ::;;;:;;::;;;::;;;;;;;;;;;;;;;;;;;'';;';''';''';'+''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';''''''''''+++++''''''''''';;;;;;;;;;;;;;;;;;;;;;:::;,,,::`;.``....`..,,,,,,,,.,,,,,,,,,,::,::,:::::,,::::::::
    ::;::;;;::;;;;::;;;;;;;;;;;;;;;;;'';;'''''''''';;+'+';''''''''''';;;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''+++++'''''''''''';;;;;;;;;;;;;;;;::::;;;;;;::;;:,;,``:..,`,,,,,,,,,,,,,::,:,,,:::::::,::::,,:,::::::
    ::;::;;;::;;;;;:::;;;;;;;;;;;';;;';;';;'''';;'+;;+++;;';''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;':;;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++++'+'+'''''';';;;;;;;;';';;;,..,:,;:;;;;;;:;;;:;:,.;`,:.,,,,,,,,,,,:,:::,,::,:::::::::,,,,::::::::
    ::;::;;:;;;;:;;::;;;;;;;;;;;;;;;;;;;;''''''';'';;''+;;''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++'+'''''''''''''';;;;;;;;;;;;:,,,,,:,,:;:;;;;;;';:;;.;,,,,,:,,,,,,,,:,,,,:,,,,,,::::::::::::::::::::
    ;:::::;;:;;:;;::;;;;:;;;;;:';:;;';;;'';'';;';;'';;'';;+++''''''''''''';;'''';;;;;;;;;;;;';;;;;';;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''++++++''''''''''''''';;;;;;;;;;;;;;:..,,,,:;;;;;;;';:;;;::,,:,;,,,,,:::::::,,,,,,,,::::::::::::::::::::
    ;:::::;::;;;;:;:;;;;;;;;;;:;;:;;';;;''';;;;;';;';;;;;;++'''''''''''''''''''''';;';;;;;;;;'';;';';;;;;;;''';';';';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''';;;;'''''''''''+++++++++'''+'''''''''';;;;;;;;;;;;;;;;..,.:.::;;;:;::';,';';;,:;,;,,:,:;:::;,:::::::::::::,:::::::::::::::
    ;:::;;;::;;:;:;;;;;;;;;;;;;;':;;';''''''';;'';;';;;;:'+;+'''''''';;'''''''''''''''';;;;;;;''';;;;;;';';'''''';''';;;;;;;;;;;;;;;;'';;;;;;;;;'''''';;'''''''''++++++++''''''''''''''';';;;;;;;;;;';';;;;,;:,;::;:.,:::,:':;;';;:;;:;:,;,;;:::;:::::::::,:::,,:::::::::::::::
    :;;::;::;;,.,:;;;;;;:;;;;;;:':;;''''';;'';;';;;;;;';;';'+''++''''';;'''''''''''''''''';;;''''';;'''''''''''';;'''';;;;;;;;;;;;;;;;;;';;''''''''''''''''''++++++++++''''''''''''';''''';;;;;;;;;;;;';;;;;;;;;;;,.,..,,,;;;;;';',;;:;:,';':;::':::;:,,,::::::::::::::::::::::
    ;;;::;;::,...::;;;;;;;;;;;;;;;;;;';;;;;'''';;;;;;:';;;;+';;;'+++'';;'''''''''''''''';''';'''''';'''''''''''';'''''''''''';;';;;;;;'';'''''''''''''''''++++++++++''''''''''''';'';'''''''';;;;;;;;;'';;;;;;;;;;::,.:.:,:;;;;';':';;';:''::;:;':::;::::::::::::::::::::::::::
    :;;;;;;::....,;:,:;;;;;;;:;';;;;;';;;;;;'''';;;;';;';;;;:;;;;'+'++';;''''''''''''''';'''';''''';''''';'''''''''''''''''''''''''''''''''''''''''''''''+++++++++'''''''''''''''';';'''''';;;;;;;;;;;;;';;;;;;;;;;;,,',:;;;;;;;;;;';;';;''::':;':::':::;;:::::::::::::::::::::
    .:;;:;;:,....,;..,;;;;;;;;:'';'';;;;;;;;;'''';;;';;';;;;'';';;'';++;:'+'';;''''''''';'''''''''';;'''';''''';;'''''''''''''''''''''''''''''''''''+''+++++++'+'''''''''''''''''';;;;''''';;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;'''';'';;:':;'::;;:::;;::::::::::;::::::::::
    ..:;,,::.....,:...;;::;;;';;;;'';;;;;;;;;;''';;;'';;;;;;+';+;;;';;+;;;+'';;'''';;;'':';''''';'';;''''''''''';''''''''''''''''''''''''''''''''+++++++++++++'''''''''''';''''''';;;;;''';;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;'''';'';;;';;'::';:::;;:::;:::::::::;;:::;::
    .`.:,,,,.....,,,..,...;;;;;';''';;;;;;;;;;''';;;'';';;;;;';'';;;;;;'';'';;;;+''';;;':'';'+''''';;''';'''''''''''''''';''''''''+++''+''+'+++++++++++++'''+''';'''''''''''''''''';;;''';;;;;;;;;;;;;;;:;;;;;;;;;;;;;''';;;;;;;;;;;'';''';;;';;'::';;;;;;::;;;:;;:::::::;;::::
    .`..,,,......,,,......;;:,:';';';;;;;;;;;;;;;;;''';;;;;;;;;;;;;;;;;';;;;;;;;'';;;;;':;';;''''';;;;'';''';;';'''''''''';''+''++''+;++'+++++++++++++++'+++'''';''''''''''''''''''';;;';;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;';''';;;;';;';;';;;;:;::';::;;:;;:::;::;;;;
    ,...`.,,......,,......,....;';:;;;;'';;;;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';':;'';;;;;+:';;+';;;';';;''++'''+++;;++;;++''+;++;++++;++++++++++'''''''';''''''''''''''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';';;;';'';;'';'':;:;;;:';::;;::::::::;;
    .,.....,......,,...........;:..,:;';;;;;;;';;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::';:;;;;'';;;+';';;;+;'+++'''++++;;++;;++;'';'';'+';'++++++'++'';;''''';''''''''''''''';'''';;;;;;;;;;;;;;;:;;;;;;::::;::;;;;;;;;;;;;;;;;;;;;'';';;'';'';'''''':':;;:;';::;;;::::::;;:
    .,,....,,....,,,....`............,:;;;;;;;';';;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::';;;;;;'+;;:+';';;;';+++''''++++;;;+;;'';'';'';+';;'++'+++++''';;;''';;';''';';;'''''';'''';;;;;;;;;;;;;;;;;;;;;;::::,,:;;;;;;;;;;;;;;';;;;''';';';';'';'';;'':';';;';';:';:::::::;;;
    ,..,....,....,,,.........`........:;;;;;;;;;;;;;';';;;;;;;;;';;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;''';;;;;';;;;'''''''';;''+;;'';';;'';'';';;;'+'++''''''';;;''';';;'';;';;''''''''';;;;;;;;;;;;;;;;;;;;;;,::,,,,.,;;;;;;;;;'''';;;;;;;'';';;;';''''';;'';;;';;';';:';:;;::::;;;
    .,,.,,,.,,...,,,....`............,;;;;;;;;;;';;;''';;;;;;;;';';;;;;;;;;;:;;:::;;;;;;;:;::;;;:;;;;;;';;;;;;';'';;''';;;';;;;;;+;';;';'';;'++'''''';'''';;;';;';;''';';;;';'';;;;;;;;';;;;;;;';;;;;;;;:::.,,:,,,,;;;;;;;;;''';;''';;;';'';;';'''';;''';';';';;'':';:;;;;;;;;;
    ..,,,,,::::::::,...`...........,::,,,;;;;;;;;;;;''';;;;;;;;';;;;;;;;;:;;;;;;:::;;:;;::;::;;;:;;';::;'':;;';;';;;+'+';;;;;;;;;+;;;;';';;''+''''''';;''';;;;;;;;;'';;;;;;'''';;';;;';;;;;;;;;';;;::;;;'::,.....:;;;;;;';;;';'';;';;;'';';;;';;;''''''';';;;';;'';';:':;;;;;;;
    ..,,,::,,`..,,,,..........`...,......:;;;;;;;;;;;;;;;;;;;;;;++#@@@@#+';;;;;;;:::;;;;:::::::::::;::::;':;;;;;';;;;;;'+':;;:;;;;';;;'';;;;'';';;''';;;'';';;;:;;;;;;;;;;;''';;;'';;;:;;;::;;;;::::::;;;:::.,,:;:;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;';';;;;;;;;;';
    ,,,,:...,.,,,,,@@@@@@@@@@@@@@........:;;;;;;;;;;;;;;;;;;;#@@#;,`  `.;#@@#;:;;;:::;;;;:::#@@@@@@@@@@@@@@;;;;;;';;;;;;;'';;;;;;;;;;;;;;@@@@@@@@@@@@@;;'';';;'#@@@@@@@@@@@;''';;;;;#@@@@@@@@@@#;@@@@@@@@@@@@@@@;;;;;;';;@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@''';;';':;;';
    ,,,:,,,,,.:::;,@            @.......:;;;';;;;;;;;;;;';;@@;              ;@@;;;;::;:;;:::@             @;;:;;'';;;;';;;;;:;;;;;;;;;;;;@           ;#;;';';;;@          @;''';;;;;@         :#;@             @;';;;;;;;@         @;@                            ;';;;';;':';;
    .,:,,,:,,;;::::@            @.,..,,,;;;;';;;;;;;;;;;'#@,                  ,@#:;;::::::::@             @;;;;;;;;;;;;;;;:;;;;;';;;;;;;;@           `@;;;;;;;'@          ++;'';;;;;@         #+;@             @;;;';;;;;@         @:@                            ;';'';;'':';;
    .;,,::;::;:;,,,@            @...,,:;;;;;;';;;;;;;;;;@#                      [email protected];:::::;;::@             @;;;;;;;;;';;;;;;;:;;;';;;;;;;;#:           @;;;;;;;#'          [email protected]'';;;;;'#         @;;@             @;;;;;;;;;@         @:@                            ;';'''''';';;
    .:,:;:;;;:::,,,@            @,:;;'';;;;;;';;;;;;;;;@:                        ,@;:;:::::;@             @;;;;;;;;;;;;;;;;;;::;';;;;;;;''#           @;;;;;;;@.           @''';;;;#,        `@;;@             @;;;;;;;;;@         @:@                            ;''''''';'';'
    ..::;,,.:;,.,,,@            @;'';'';;;;;';';;;;;;;@:                          [email protected]::;:;;:;@             @:;;;;;;;;;;;;;;;;;;:;;;;;;;;;;:@           '+;;;;;;@            @;;;;;;;@         ;#;;@             @:;';;;;;;@         @:@                            ;'''''''''';;
    .,:;;,,..;..,,,@            @;;';;;;;;;';;;;;;;;;@;                            ,@:::;;:;@             @;;;;;;;:;;;;;;;;;;;;:;;;;;;;;;;@           [email protected];;;;;;@            +#';;;;;@         @;;;@             @:;;;;;;;;@         @:@                            ;''''''';';;'
    .:,,::......,,,@            @;;;;;;;;;;':....,:;##                              ;#,;;;:;@             @;;:;;;;:;;;;;;;;;;;;;:;;;;;;;;;#;           @;;:;;++            [email protected];';;:'#         @:;;@             @;;;;;;;;;@         @:@                            ;''''''''';''
    .,,:::.,....::,@            @;';;'';;;;;.......:@                                @';;;;;@             @;;;;;;;:;;;;;;;;;;;;;:;;;;;;;;;'@           @;;;;;@.             @;;;;:#:        `@:;;@             @;;;;;;;;;@         @:@                            ;'''''';'';''
    ....::......::[email protected]            @;'';''';';:..`[email protected],              :#@'`             `@:::;;@             @;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;@           ++;;;;@              @;;;;;@         '+;;;@             @;;;;;;;;:@         @:@                            ''''''';'''''
    ````.....,.,:,,@            @,;';;';'';:..`[email protected]             `@#';[email protected]'             @':;;;@             @;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;:@`          ,@;;;;@              ++;;;;@         @;:;;@             @;;;;;;;;:@         @;@@@@@@@@@            @@@@@@@@';''''';'''''
    .```.,..,,,,:,;@            @..,;';'''',..`...#;             @;;;;;;@:            [email protected]:::;@             @;;;;:;;;;;;;;:;';;:;;;;;;;;;;;;;#'           @:;:'+              `@;;;'#         @;;;;@             @;;;;;;;;:@         @;;;;;;;;:@            @;;;;;;;;''''''''''';
    ..`..::,:,,,';[email protected]            @....:';;''..``[email protected]             @+:;;;;;;@             @:;;:@             @;;;;;;;;;;;;;;;;;'::;::;;:;;;;;;;@           @;;:@,               @:;;#:        [email protected];;;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;';;''';''''''''''''
    ,,,,:::'+;::+#[email protected]            @`....:''';..``..:@             @,,,,:;;;@:            +';;;@             @:;;;;;;;;;;;;;';''::;:;:::;;;;;;;@           #';;@                @;:;@         ++:;;;@             @;;;;;;:::@         @;;;;;;;;;@            @;';;'';;;'''''''''''
    ;::;;'++++++#[email protected]            @``....:'';..``..+:            ;#,.,,.,:;'#            ,#;;;@             @::';;;;;;;;;;;':'';::;;;;::::;;;;@.          :#::@                '#;:@         @;;;;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;'''''''''''
    ######+++'++#[email protected]            @```.`..:';..``[email protected]`            @,......,;;@             @;;;@             @;;;;;:;;;;;;;';:'';;;';;;;;;;;;;;+'           @;'#                `@;;@         @;;;;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;';;;''''''''';
    '''+#+++++##+#[email protected]            @```..`..;;..``[email protected]             @`.......::@             @;;;@             @:;;;;;;;;;;;;';;';;;;';;;;;;;;:;;;@           @;#,                 @;#;        ,#:;;;;@             @;;;;;;;;:@         @;;;;;;;;;@            @;;;;;;';;;''''''''''
    '';'+#####[email protected]            @.```.``..:..`.`[email protected]             @.......,.,@             @:;;@             @;;';;;;;;;';;';;'';;'';;;;;';:;::;@           @'@                  @;@         #';;;;;@             @;;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;';';;'''''
    ''';;'+###+#++;@            @..```.`.....`.`[email protected]             @.....,..,:@             @;;;@             @;;;'';;;;;;;:.:;';';'';;;;';:;;:;;@,          :#@                  '[email protected]         @;;;;;;@             @;;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;;;;'''''
    ''''';;'++#+++,@            @...``..`....`.`[email protected]             @...,,,,;;;@             @;;;@             @;';;';;;:...,;::';'''';;;'';:;;:;;'+          `@#        :         `@@         @;;;:;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;;'';''''
    '''''''''++++';@            @....``..`...`.`[email protected]             @.,,,.,,.,;@             @;;;@             @''';';;:.``.,;;,;;;;;;;;'';;:;:;;::@           @:        #          @;        :#;;;;;;@             @:;;;:;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;''''''''
    '''''''''+++'''@            @,....``.`...`.`[email protected]             @,,......,[email protected]             @;;;@             @;';:;;;.``...:,,;;;;;';''';;;;:;;:;@           @        ,@          @`        @';;;;;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;''';;'';
    ''''''''''++'';@            @::...``.`...`.`[email protected]             @........,,@             @;;;@             @:;:,:';:::..,..`.:;;;;'''';;;:;;;;:@,          ;        #@          '         @::;;;;;@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;''';;;;;
    +++''''''+#+'',@            @.;;...`.....`[email protected]             @........,[email protected]             @;;'@             @:,,,:;;;':.:..`.`.;;;'''';;';;;;'';+#          `        @#:         `        `@:;::;;;@             @;;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;;;;';;;;;;'
    +++++'''''#+'',@            @.`;;,.`..`[email protected]             @[email protected]             @;;;@             @::,..,;;';';..`...;;'''';;';;;;;;';;@                   @'#                  ;#:;;;;;:@             @:;;;;;;;:@         @;;;;;;;;;@            @;;;;;;;;;'''';;;;;''
    '''+++''''#+'+,@            @...,:[email protected]             @[email protected]             @;;;@             @,;,..,;;'''+:,::::';'''';';;;;;:;;;'@                  ,@:@                  @;;;;;;;:@             @:;:;;;;;;@         @;;;;;;;;;@            @;;;;;;;;''''';';;;''
    +';''+++''#+'+,@            @...``..........,@.            @:,.,,..,,:@            ,#;;;@             @:,..:;;;'';+;;';;;;;'';;;';;';;;;;;;#:                 ++;@                  @;;;::;;;@             @:;;;;;;;;#         @;;;;;;;;;@            @;'';;;;'''''';';;'';
    ++''''++++##'+;@            @`....`...,..,..,+'            :#,,,..,,,+;            #+;;;@             @,,.`.;;;'';';;;;;;;;;;;;'';;'';;;;'''#                 @;;#:                `@;;:;;;;;@             @;;;;;;;;'+         @;;;;;;;;;@            @;';;;;;''''''''''';;
    ++++''''++##+'[email protected]            @``....`..,,.,,,:,@             @,..,,,,,@`            @;;;;@             @,.,::';;;'''';'';';;;;;;;'';;;;';;'';@                 @;;'#                '+;;;;;;;;@             @;;;;;;;;#'         @;;;;;;;;;@            @;;;;;;''''''''';;;';
    ''#++''''+#++''@            @.``...``.,,..:[email protected]             +#,,,,,.'#            [email protected];;;;@             @;.,;';;;;';;;:;;;';;;;;;;'';';;;;;;''@`               [email protected];;;@                @:;;;;;;;;@`            @';;;''''@`         @;;;;;;;''@            @;;';;';''';''''';';,
    +'+++++';'##++'@            @@@@@@@@@@@@@@@##.++             @+,...'@`            #+;;;;@             @@@@@@@@@@@@@@@@;:';;;;;;'';;';;;;;;';#;               '+;;;@                @;;;:;;;;;#,            [email protected]';;;;'@'          @;;;;;;;;'@            @;'';;'''''''';''':,,
    +'''++++''+#++'@                            @::@              #@@@@#`            `@';;;;@                            @:;;;;;;;;'';;';;;;;;'';@               @;;;;#:              [email protected];;;;;;;;;++             [email protected]@@@@@,           @;;;;;;;;;@            @;'';;''''''''''';,;:
    #++''++++'+##;,@                            @;:++                                @+'';;;@                            @;;;;;;;;;';;;;;;;;;;;';@               @;;;;;@              ++;;;;;;;;;;@                               :#;;;;;;'';@            @;''';'''''''''''''::
    +##++++'+'++;,[email protected]                            @:,,@.                              ;@;';;;;@                            @;;;;;;;;;';';;;';;;;;';@`             `@;;;;;@              @;;;;;;;;;;;@                               @';;;;;;;;;@            @'';';'''''';'''''';;
    +++####+''+':,[email protected]                            @,:.,@                             `@';'';;;@                            @'';;;;;;';'';;;;';;;;;;#'             '#;;;;;@              @;;;;;;;;;';++                             `@+;;;;;;;;;@            @'';;''''''''''''''';
    '++++++##+++:.,@                            @::,.'@                            @+';'';;;@                            @;;';;;;;;;;;;:;;;:;;;;;;@             @';;;;;#;            :#;;;;;;;;;;;;@.                            @+'+;;;''';;@            @'';;''';'''';'''''';
    +++++++###+++;,@                            @,:,,;[email protected]                         `@+'''';;;;@                            @;';;;;;';';;;;;;;::;;;;:@             @;;;;;;'@            #';;;;;;;;;;;;'@`                          [email protected];;'';;;;';;@            @;'';''';;'''''''''';
    +++++++++++###'@                            @.;,:',;@`                      [email protected]+';;';;;;;@                            @''';;'';;;;;;;;;;;;;;;;;@.           `@;;;;:;;@            @;;;;;;;;;;;;;;[email protected]`                        [email protected];;;;';''';;;@            @;'';''';;'''';';''';
    +''''++++++###[email protected]                            @::.,::.:@'                    [email protected]''''''';;;;@                            @;;;;'';;;;;;;;;;;;;;;;;:+'           ;#;;;;;;;@`           @;;;;;;;;;;;;;;;'@;                      @#;;;;;'':;;'''@            @:'';'';;;''''';;''';
    ''+'''''+++##'[email protected]                            @;:,,::,;;#@:                ;@#''''''''''';@                            @:;;;;;;;;;';;;;;;;;;;;;:;@           @';;;;;;;#;          ;#;;;;;;;;;;;;;;;;;@@:                 `[email protected]+,;;;:;;'';';';@            @;;;;;';;;;'''';;;'';
    +''''''++++##'+#                           `@:;::':;;;;;#@#,          ,#@@''''''''''''';@`                           #;:;;;;;;;;;;;;;;;;;;;;;;;@          `@;;;;;;;;'#          @';;;;;;';;;;;;;;';''@@#:`          `'@@#;;,;;;::;:'+''''@`          `@;;;;;;';;'';''';;'';
    '''''''+#+++#'[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@;:;;;',;:;;:;,'#@@@@@@@@@@#:,;'''''''''''''''@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:;;;:;;;;;;;;;;;;;;;;;;;;[email protected]@@@@@@@@@@+;;;;;;;;;#@@@@@@@@@@#;;;;;;';;'';;;;;;';';;'#@@@@@@@@@@@@#+':';:::;:,:';+'';;'@@@@@@@@@@@@;;;;;;;';;'';;;';;;;;
    '''''''+#++++'#+''+++#+''+,...```....,..:'''''';';;;:,:'':;,;:,..........,;''''''''''''''':,.::;;::;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;'''++++'';:;';;:;;;''';;;;';''';:;;::;;::;''+;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;;;;;
    '''''''++++++'#++'++#++''.....``......`.:';;'+';;::';::+''':,,,..```.......:;'''''''';'';,..,:,:;,:.:;;;;;;;';;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;;'';''';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;+';;#;:''#':;;:;;:;+;''''''';';;':';::;;:::;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;';;;;
    ''''''++#++#+'#++'''+++:.....`......``..;,`.,;+';::+',,'++;......``````.....:''''''''''';,,;:.:.,.,:,,;;;;;'';;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;'';;;'';;''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;++''+;+#';+;::''::::;'''''''';;';':';::;;;::;;;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ''''''++#++#+'#++'''+'.............``...``..`,+''''+',';'',:::,,.............:'''''';;;';;;;.,:.,,.;:,,;;;;';;;;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;;;;';;'';;;;;;:;;;;;;;;:;;;;;;;;;;;;';#++'+;;#+;:;''''';;;''''''''';';;';';;,;;;,::;;'';'';;;;;;;;;;;;;;;;;;;;;;;;;;;;';;;