.. . . . .. . ..- .           . .. .. .. . .. . ..
. -:.-.'.'.-: .. .'         -/, - -- -- --.'.-: -.
 .-. ..- -.` - --           :`    :`.:`.:- ..` .'-`
 -: -- .':.`.':.'            .     . .. ..'.-:- .:`
 :. :`..-.-- .. .  vL:   .L/77'     -- -- . -.`. .-
 .-: .. ..` :.--  |^?H|  {P"`8b    .':.':- :: : -.`
 .-.- -- -:. ..': |.-`L\\]| `iM     . .. :. .. :- -
 -- .:`.: ..-- ..  8L6$6$kRccR!    - -- -. -- -.` :
 :`.-. .-- .: :.  |T%kR8811$S$$     `.:`.-`.:`.-:.
- ..`. .`.'.. .-: .Z:/ZZ$?77Sb\  \7. . -.'.. .. .-:
 '.-- -`.-.- -.`  :FkZ%%$)Z8HMMb ``   `...- -- - -.
`. :.':. :. ':. -.dMH68886MMMRMMb     - -. ':.':.'.
- -. -. -.-`.   .MMMMMMHMMMHMMMMM?      `.`. .. ..-
 ':. '-:.- '-  .8HHM9M9HRMMMHRHRMH,        -- -- .`
` .-`.-.-.'.   |8MMMMMMMMMMMMMHHHH8,- .    ':.':- :
 :.` .-.- .  '?MMMMRMMMHMMHMMMMMMMHH, ..     .. .-.
 .-`.-- .'  ',MMM9MMMHMMMMHMHMM6MMMMH ' -    -- -`.
 .:. : :-  ',MMMMMMRMHMMHMMMMHMMMRMMM:   :    ': :.
. .-: ..  - 8MMMMHMMMHMMMMMHMMM6MMMMM|        ` ..
 . : .-   \ HMMHMMMMRMMRMMMMMHMMMRMMM|  -     `. -`
- :.- - ,,::HMMMHMHMRMMMMRMMMMMMHMMRM| -  . .  -: :
 -. .'i$S88+:LHMMMMMRMRMMMMMHMMMMMRH8:      -o/- ..
 :.-,:88%kkFk\ :#M6MMMMMMHMMMMHMMH\$F:.    v8$$`. -
,$$Z$F88$88888\  "*HM6MMMMMMHMMMMS}8Z$$|/SZ8881\-:.
LF188Z8HZ88F8H87.  |MMMHMMHMMMHMM8?$$Z$$Z$kH$Z8Zq,.
iS888$888111888$cvdMMM9MMMMM9MMH"'!?Z8Z8D81$8$FFFSDi
i$Z8Skk8888$8888$8?#MMMMMHMHH"'   :8{1$$FF8981888%'
%$$87Z8\$888$S88Z//.``"""`       .?/)F888Z$8$$'':.
 :``:/?Z?%%8\8T%$(L.             -:SZ$\\S$)`'.:- .'
-.'.- .-.:':'|?\\:-..- .-.-- :- -`::/||//`. :. .: :
    '       '  '      '   ` '  '`  `  ' `