... ....
.. ...
.. .,:!**!;:~,. .
. .~!!!!!!!!!!!!!;~, .
. .;!!!!!;;;!!!!!!!!!~ .
. ,!!;.. .....-;!!!~ .
:!! -!!;, .
. !!; -!!- .
. .!!~ !!~
. .!!- !!;
. .!!. :!!. .
~!!. -!!. .
. !!: ,!!. .
. :!!- .!! .
........ . ~!!;. .!!. .
. ... . .. ~!!!- .!!, .
. -::;::- . . :!!!, .!!: .
. ;!!!!!!!;. ...... -;!!!, :!! ..
. ;!!!;;;!!!!- ,!!!!;, ,!!; .
. :!!;, ,~!!!~--,,,-~!!!!;~. ~ .:!!;. .
. ,!!!. -!!!!!!!!!!!!;~, ! .;!!;- . ... ...
. .!!!. .:!!!!!!!!;, = :!!!; .. .. ..
. !!!, .~~~- =. -!!!;, ..... .~:-. .
. .;!!~ =. -;!!!;,, ,-;!!!!!;, .
. ~!!:. $- .-!!!!;:~~~:!!!!!!!!!!- .
. ,!!; $!. .~!!!!!!!!!!!-. .~!!!, .
. -!!- =- -;;;;;;;, ~!!; .
. ;!! . =- .. :!!-
. .!!~ .-:;;;;!!!:. =- ;!! .
. .!!. :===$$$$$$$$$=!. *, -*==**;~, -!!~ .
. !!. -====$$*~--~;====- !, ,!=$$$$$$$$$$$;. ,;!! .
. .!!~ ,;. -=$. ;:- ,=*. !. ,!!$$$!;;=$$$=$$=~ ~!!. .
. :!!~ .!$; -~. ;$- ... !.. .;~ ~$! ;$$*--:$=. ~!!~ .
. ,!!!: .=$~ ~$! .......;. ... .!- . ;$$; ~$: .;!~ .
. -!!!!. .==~ ,$$$ ....... .. .... . .=~ .!$=. -. ;!;.
. ,:!!!, .!=:---;$$$$. .... ..... .==~ ,;$*- :!!, .
. .~!!!. .-!$$$$$$$$. ... ............ .... ,$$$!;;;*=:, ,!!- .
.. :!!~ .,,~=!$$$,................. .... ,$$$$$*~,. ,!!, .
. ;!;, ~$$~.. .............. ,$=.~- ~!!, .
. -!!- .!$:................... .,$~ . .-!!;. .
. !!; .!$;. .................. .,$~ ....... ~;!!!~ .
~!!. .!$!. .................. ,$~................... ,;!!!!- .
. .!!. .!$*. ..................,,,-=:................... -!!!!~ .
. .!!, .!$*.................,,,,,,-=:.,,............... -!!!~, .
. .!!, .!$*...............,,,,,,,,,=:..,............... ~!!!- ..
. !!. .!$!.............,,,,,,,,,,,*;,,,............... ,!!!- .
. !!. ,*$-...........,,,,,,,,,,,,,;=,,,.............. :!!~ .
. .!!. ~$$...........,,,,,,,,,,,,,,:$~.,.............. ,;!; .
~!!. .!$!..........,,,,,,,,,,,,,,,-**.,............. -!!, .
. !!;. ,$$,..........,,,,,,,,,,,,,,,,;$,.............. -!! .
. !!- .!$:..........,,,,,,,,,,,,,,,,,,=*,............. :!! .
. :!!, ,$=- ........,,,,,,,,,,,,,,,,,,,;$;,............ ;!!
. .!!:. ,!$~ . .......,,,,,,,,,,,,,,,,,,,,==~............ .!!;
. ~!!~ .!$!. ...,,,,,,,,,,,,,,,,,,,,,~$;,........... .!!- .
.. -!!; ~$= .......,,,,,,,,,,,,,,,,,,,,,,!$,.......... !!. .
.. .~!!;, ,*$~ ..... .,,,,,,,,,,,,,,,,,,,,,,:$~.......... !! .
. -;!!;, !$$, .....:!!:-,,,,-;!!!:,,,,,,,.~=*.......... !!. .
. ;!!!;. !$$! . .,.:$$$$==***=$$$$$!-,.,,,.-*$,......... .!!. .
. :!!!;; $$$- :$!$$$$$$$$$$$$$$$$$$~,,,,.,*$!.......... .!!:
. :!!!:- ,$$*. ~$$$$$$$$$$$$$$$$$$$$-,,,,.,!$:.......... :!! .
. ,!!!, :$=- .=$$$$$$$$$$$$$$$$$$=,,,,...~$:.......... -!!~
. ,!!. !$*, .;$$$$$$$$$$$$$$$$$$:.,.,...,=!........... .;!! .
, ,!! =$!. .,.~=$$$$$$$$$$$$$$=;..,......==........... ~!!: ..
. ,!!. ::. ..,,,,,;$$$$$$$$$$$$!-,,,.,.....**........... ;!!~ .
. ,!!~ ;~ .....,,,,!$$$$$$$$$$;,.,,,.......==-......... ,!!!:, .
. ,;!; -$*, ........,,,-$$$$$$$$$*,,,,........,==-......... .!!!;- .
. ~!!. -=$$*,.........,..-=$$$$$$*,............:$$~........ .:!!!, .
. -!!~ ...!=$!,..........,,,,:=$$=;,............,:*$;........ ~!!: .
. ;!;. .....,=*;!~............,.;$$;,...........,!*=*~-....... ~!! .
. ~!!- .......=;$$$;.............:$!,,...........,$$$$*........ .!!. .
. !!!. . ......,!*$*...............:;~.............,*;!:...... ,!! .
-!!- ....~!;,-,.............................~~;~....... !!! .
. ;!!. . ...,,-~:.............................-;;-,...... -!!-
. -!!; -;;;;;;;- ...,=,..............................,~....... ;!!, .
. ~!!:. .-!!!!!!!!!!!~ ..~,............,......................... ~!!~ .
. .;!!!~;!!!!:~~~:;!!!!-. .~............,.................... .;!!, .
. .:!!!!!;-, ,,;!!!;- .............................. :!!~ .
. ,!!!- ..... .-!!!!- ........................... ,~~, ,!!! .
.. . .. :!!!~ ........................ .:!!!!!!!!;. .!!!.
.. . . -;!!: ..................... ,-;!!!!!!!!!!!!-. ,!!!- .
. .;!!- .................... .~;!!!!;-,---,~!!!;- -;!!~ .
.. .!!!, ................. ,;!!!!,. ,;!!!;;;!!!: .
. -!!~ . .............. ,!!!;~ ...... ;;!!!!!!- .
. :!!. .......... . ,!!!:. .. . ,::;:~. .
. .!!- . ,!!!~ .. .. . ..
. !!; :!!~ . .......
;!! -!!; .
;!! ~!!. .
:!! .!!; .
. :!! .!!, .
. ~!! -!! .
. ~!! ;!! .
. -!!, !!;
. ,!!;- !!~ .
. ~!!!!~. .. ...;!!, ,
. ~!!!!!!!!;;;;!!!!!: .
. ,-;!!!!!!!!!!!!!~. .
.. ..,~;!**!!;~. .
.. .
..... ..
....,............... ....... ..... ..... ... ..... .... .. ... ............. ....................................
.............................. .. .. ... . ..... ............ . ... .. .. ....................................,..
............... ....................... .... . ....,,~:;*=!:;;~,.. ......... ... . ............................,...
....................... ................ ... .....~*!$$==$=!!*=**~,...... ........ ...............................,...
................................. .... .... ..,-~;=*=$=$=$=!=*!=*;:-.. ......... ....................................
.. ............................ ................!!:$$===****::;;;!!:=*-. ......... ......... ...........................
...... ....................... .............. -:=*!=!!;::;*;~~~-~~::!=!:. ... ..........................................
......... .................... . .... . ......;:!~;;;::~~:~-,,,,,--;;=*!. .. ...................................,.....
........................... ....... ..... .,::~~::;~-~,-~....,..,,~~!**:~,.. . ........................................
.... ....................... ... .. .... .~*;::::;:--,,,.......,.-,~!$==:.............................................
.... .......... ............ .... .... .:!*!**~;!;~;~-,......-,..,-;==$*......... ...................................
........................ ............. ... !!=!=$!*!:~;:-,......,....,:!=#$~.... .... . ..........................,...
...... .. ......... ... .............. . ,!=$$*#$*=!::;,,...,......,,~!=#*~ . .. . ..............................
.......... ......... ......... ... ...... ~!*$#!##!*;:;-,......,,,,,,,~:=#=;,.... ... ..... ........................
...... ... ......... .... .......... .....:=#==#====*=!--,,,..,-,,-,-,::**$*,,...... ................. ................
... ........................... .. ..;=$$$@**=$!*!;----..,-~~~~~-:!=$$*:-.......... ...............................
.... ...................................~*!=**:*;=!=:!:~--,-;*=$*!-::*===#$!-..... ........... ....... ...............
...................... ...... .... .. ;*=$*;;!!##=!!*:--~~:;!*==!!!*!*!#$*; ..... ....... ........................
.......................... . .... .... . ~;!;!*;;*#=$=;;;~~:;*=*=!;::==;$##*:~ .... ... .... .........................
........................ . ...... .. ..:**=;!!;#!#*=!*;~::!;:!=$;~-!*@#$$*!:............... ..........................
..................... ....... ... ...-!*=!;;*!*##=*;;:~:*!!$$$!:--:$#$$#=*,.. .... ....... .........................
..................... .................,:==$*;*$:$$$=!::~~:;=$=!;:~,,,:=!=$!:... . ... ......... ......................
........................... ...........~;==$==*=*==$=*;:~~~~::~~;~-,,,~*!!=*~.. ............. ..........................
.......................... ........ ..-:!!!==$***=**==!:~---~~-~~-,-,,-;;;!=!... ..... .. .. .........................
..................... .. ...... .,:!=*!!*==**$$=$$*!:-,,-~~~---,,,-:=!**;,. ..... .. . .........................
....................... ....... ...-~!$*!;**===$$===*;~~---,----~~~,-~=***!.. ..... . .... .........................
............................. . ....,~;;***!;*!*;====**;:~-~,--~~~;:~~~~====;............ ............................ .
............................... ...,:!==!=!*!**!;=$$**=!;:~~-~:;;:~;!***$$=$:............ ............................ .
....................... ....... .,-~!!=$**!===**$##$!**!::::::;;;;~::*$#$$$*;...........................................
....... ............... .........~:;;;**!*;=*==$@@#=*;**;:::;;:;::::~;*#$=#=:... ........... ...........................
................ .. ..... .......-:!**;;;;!=:=$$@#@$=****;:;;;;::::~~;!$$*#=:~.............. ........... ...............
................ ....... .... .-;;;**!;!*!!!!!*#$@#$=**!!;::~~;;=**==#$=!#*;:....... ... ............................
..................... . .. ....,:!=$=**=!!*;!!;*=$##$**;:!;::::~:~:::**#$#=;:--,,... ...................................
............ ........ . . ....,~::;!$$=!=*$=$*=!@#*$**!*!;!!;~::~~-:$$$*$*:-,...... . ............ ....................
. ........................ ..,.-;!;!*!;$=*!;=#$*@!*;!!*=!;!;:::;~:;:!=$$$#!:~:--.... ........ ..... ... ...............
...... ............... ... .,-~:!*!*!:*!!=$=#$@@*#**:;;$=***;;;:-,:~~-;=@=!~~~,..,-...... .... ....................... .
............... ............,-~~;**!!*=***=#=$###$!!~~:;*=**!;;;:-,~-~;*##*;::----,,,,...... .........................
,...... .............. .,,,,,~;:;;!*====$=$$*==@$=!:;,,,~=$*;**;::~~::=#$$!;~~,-~,-,.,.... . . ... ..................
..................... ..,-,--~!;*=$**$$$$#$#=##@**!::-,,--:*$##***!***#$$**;~~:-~-,,,~-.... ... .......................
........ ..............,,~--::!!;*=$$#$**#$=$$$==;!;::-,-,-~;!*=$==$$#$##;!;!;~~--~--~~,......... ......................
....... ...........,,,,,~--:~;*===$$$=!*$$$=$$!!:!!:~~-,,,,,-~;;*=$$$#@$=!:;!~;~-------,.......... ....................
...................,~-~,,,~~:~!=$**$$$===##$=$=;:~;~-,-,,,.,,---~;****$#==**!!~~:~~-----,,,.............................
...................--~:~--~~:;*$=**====$$$$###$;~-::-,-,,,,,,-,,-~;!;;===$$=!::~~;;~---,--,,, ..........................
...................,,,~~~~~::;!***==$$=$#######=!~---,-..,,..,,,,~~!!;*!=#$=***!:!;~-~~-~:--,...........................
..................-,~---:::::;;;!===$###@@##$###$;-----,.....,,,,-;;!:**=$###$=$**!:::::~-~-,,.. ........ ..............
......... ..... .,-~:~::;:!:;!!***==$##$###@@@@@#$;;-,,,....,,,,--~~~;:!$=#@##=#$=*!!;;:::;~,,..........................
..... ...........,-;~:;~!;!;!*!*!*$$$#**$#@@#@@@@@$=*~--,....,,,-,,--;:;$=*$####$#$$=;::~;:~-,,-,. . .................
................,:~;!:;-!;;;!*:!*==$##*=$$@@#@@@$@#$$$!-,.....,,-,,,-~~:;*!!##@###@#==*;:;~~:-~~,-.. .. ...............
.......... .....~::;:;!;!*!*!!*!$$$=*=*=$$####@@#@@#*##!,,,,,--,.,--,~~;:::!*=#$@#@@$=*;:;::::--:~. ... ................
................~:~:;;;;!*;*:;;!#$$***;!*=$#@@@@@@@#*$*#!,,,,--,,,,,--:~;-!::!*@@@@@$*=*;:*:*~;:~:,... ................
...............,-;::!!;*::!;!*=====*!::;**!$@@@#$#@#$#!=#;,,,,,,,...~~~-,.~#=-;##@##$*#*;;;!=~:;~!-.. .................
............ ..--:!!*;:!#!!***;=*==*!!::!;*!#$@@#@@@##=*=$;-.....,,..-,,,*=#=$#@@@@@##@$;!*!!**:$-;,............. ....
................;;~*!!;$!!!;;*=$$!*=;;;:;*=**#@@@@$@@##=##*.........,..;$$@##=###@@@##@@$!!;*=:!;;;~ . .................
............ -~~;;;=#=$;:!**==*!;!!;!;~:;:*!##@=##@#=$=$$!,-,.,....,#=#$@$##@@@##@@##@$;:!!!!;!;:~-...................
.............. .~::;=!:**$=!!==!!;!*$;:;!*!:~*:#@$@##@@##$*=!.,,,...,=@=##@@#@@$##@@###@=:*!$=~*;*:!-...................
...... .........,:*!*:**===!*==*!;!!;~~~~::::!**#@@$@@@###$==~..,,,,$*#=@*##=@@@@@@@@@@#$=$*==;;*;:~--,.................
........ ........:;;=:!=*!*!!==*;:*!;;~~;;:!-;*!*$##$@@##$=*=*-.,,-:$$#*$$=$=@###@#####$##***!!:*~;*~-..................
.................:~;!*=!*!$**=!;!;!;;;~:::;:;;*;!*$###@#$@##=!:,,,-=#$=$;$*$=#@@@######@@#=!=!*;;;*;:-, ................
... .............,~!;*;!$;=*=;::!!;:!:~::;:;!;;*=*!*==######$!!:-,;*$$==**$#=$@@@@#$@@@@##==!!!*~!*;::, ................
.... .............:;!*!======::;;:~:;:;;;;::::;*$!=$=$$##$##$***!;#$#=#*!!$@#$@@@####@@@@@#$=;***!!*;~- ............. ..
...................-:!*!*$*=!;;;:~:::;;-~:::::;*=!==$=*=$=##$$#=*$####@@==$@###@####@@###@@$=**!==:*;:- ................
...................,~;!;*==*!!!;:;;:!!;~~;;;~;;:!=*$#$*===$#$$$=!**=$#@#@#@##$####@@@@#$#@#$=*=*!$;=;!,.................
....................;:=!=*==;;;;~:;;!*!;~:;;~!;:!=$=$#$$==#$$$$#==!*=#@$#$=########@@##$#@##=***;=!*!:,.................
....................-~***=;*!:*!;::;:;:;:~:;;:;*;;**=$$=*===####=$*=*=####$#$#$$#@@@#$$#@@##$$=**=*!*~-.................
.....................;:**==~:;*;;;::;~-:::;;;~;;*:**$$=*=$$==#$$##$*$===@@#@$$##@#@@#$##$$=#$=$$!$*!;;~.................
.....................--;=:=:;~:;;:::;:;::;!:;;;:=*!*=$$=$===*===#=$$##**=@#$*####@@#=*$$=#$##$!#!=!!;*~.................
... ...................~!!**!:~;!~:!;;:;~:!::;;;**=!!=$$=*!*=$=!$$##$$=*;=##$##$$@#=!*=*=$$$#$*$=**;*;..................
.......................,:*!*!!!::~:;:::::~:~;!!~:$*;;=#$*$$$$=**=#$$@$#$=!=$#@@##$$==**=$=*=@$$=$*!;;:..................
,.......................-;*!;*;:~~~~~~::::;:!*!;;$=*::=#$=##===**==$=##$#====$#@@@@$=**=$=!*$=#*@#;!;!..................
..................... .,-:::;*;---;~-~~:;-~;!!*;!##*$!*=!*!$$*==$$$@$$###**;*=*$##@###$*!*==$##*=*=*-,..................
................... ...-*:;:*!~,:~~,,~~~;~::~:-:*#==$*!*#*!*=#=!**#@###$*==*==**$===$#$##**$#$==*~=;,...................
................... ...--,~,!:...,,,,,---~-~~;*!:**$:*=*==*!*#$=$$=###=##$=$#$$==$==##$$#@@##$#;#*:=....................
,........... ........~,,-~=~......,.,,,-,,--*=~*$=$*$!!$#=!=#!=$####@##=$#$#=$$==$#$=$#@@$##@$!=*;....................
.. ................. ...~,~-;,....... .,,--~~~;=!~*==!*;!##=;:=@*$=$=#@@#*##$#=##$=$$=###@$$$$$!$#!;....................
..........................-,:............,--~~*:!,;:===!!$#$*=$@@==#@@#$#*$##$=$#@@#####@@##@*$*=$*.....................
............................, .......... .,..-,!;-~~!!#==*=$$==$#@$$#@#**@@#=*$#@#####=$@##=#!====~.....,,.......,......
...........................,~.... .........,..-~~-:;~!=$$$$#$**$#@@#@@@#=###$*$#####@@==#$=$$#;*=,......................
...........................,;.... ............,,,:,~~:!##$=$#===#$#@###$==$@$$$#######$=$==###!$-.......................
............ .... ...... ..-...... .. ..........,.,,~:=##$$#=**$*$##$@#=!##=##$$###@$$$$###$==;........................
............................., ...... .. .........,-:-!$##$====$=$$$=$@=$$$=#@$=#@#####$#$##**.........................
....................... .. .... ........ .. .. ..,-~,:*##=!**!*=*$=$#@#$=#=###=$@$$#$=$$=#@$*...................,.....
............................. ........... .. ..........-;*$=====;*==$@@@$#$$=#=$*$#$$##=$#!=$=*...................,.....
............................. .................. .......-;=#@$****$*#*$#$@#=$$#$=###$$$#=$$$=*~......................,..
..... .............. ........-.. .......... .... .... ..,~=$#**!*=$@$##=*=####$$$$$$$##$*=#=*,..................,......
...................... ...~.... ... ..... . . ....... ...~*=$**=$$##=#$==#####==##$$##$##==*,..................,......
...................... .....-*!~ ..... .. .... ............;#*==*$=*$!$==#$#@#=$=$##$$==!!*:;-.........................
.,...... ............. .... .....-~ ... ... .... ...........:==*;*!**$=~!==!!$$#=$#$=*=*!!!;-..........................
....................... ........,,...:-... .. ..... ... .....,,:$!-!=!!,,.!;,-~!*=!=$##=*!:-..................,,........
That doesn't look that good ;D
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@&&&%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@&@@&(...........,,,,,,,,**(&%/,,,,,(&&@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@&%@@/,//*..... .............................,*#@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@&#*.*,,..... ..,,*/////((///*,,.................,(&@@@@@@@@@@@@@@@@@
@@@@@@@@@#,,,,,.........,*/((((###((#####(/*,...............,.,/%@@@@@@@@@@@@@@@
@@@@@@@@%****,... ..,*/(((##(((#######%%##(/*,,,... ......,#@@@@@@@@@@@@@
@@@@@@@%,,,,. .,,*//((((((((############(/**,,.. . ...*#@@@@@@@@@@@
@@@@@@@(... .,,,*/(((#(((((############((/*,... . .../@@@@@@@@@@
@@@@@@@##*. ..,,,*/((##(((((((###########(**,,,.... .,%@@@@@@@@@
@@@@@@@*.. ..,,,*//((((///((((#######((((/*.,,,.... ..*&@@@@@@@@
@@@@@@%,.. .*/(((*,..,,***,*/(##(((/*,.,,,,,, ..#@@@@@@@@
@@@@@@&*,. ...... .*/(/,,,,,,***//***((((/,,.... #@@@@@@@
@@@@@@%,,.. .... ...,*(#(/,,,**//((**/(((((/,... .... ..... .,,#@@@@@@
@@@@@@%*,. ...**,.,(######(//((,..,///(((((/,.... ........... .,/&@@@@@@
@@@@@@&/... .,.,.,(##((###%((((/((####%##((/,..... ....... ,(%@@@@@@
@@@@@@&#,.. .,*,.,/(#(((###########%%%%%###(/*,.,,... . .,#%&@@@@@
@@@@@@%*... ..,.,*(#(((((((((############(((/,,..... ..... .,*/&@@@@@@
@@@@@@&*.. ...,/##//((((///((##((((((((((//*,,.. .... ..... .,/(%@@@@@@
@@@@@@@/... ...,,,,,,,*//(#(((((//*////////**,,...,,. .. . .*(&@@@@@@
@@@@&(,.. ......,*/(((((((((((((/////////**,,. .,*&@@@@@@
@@@@(*,... ...,,/(((((/////((##((((/((///**,,... ./%&@@@@@@@
@@@%*,,,. .....,.,***,*****/////(((((//**,,....,*, *%@@@@@@@@@
@@@#*,,... .,,,,,,**/(((((//////(((//***,,.,,/((/*,. ,%@@@@@@@@@
@@@%/,,,... ...,,*****//((((((((///****,,*/##%#(/*,,,.. .*&@@@@@@@
@@@@@@&&@#... .,*//((((((((((////***,,**(#%&&%#(((/****,.. ../%&@@@@@@
@@@@@@@@@/.... ..,,,***************/(#%&&&&&%#(((/((/***,,,.. .(&@@@@@@@
@@@@@@@@@(,,**,. .*(#/,.,,,...,,**/(#%%&&&&&&&&%(//#%#(****,......../@@@@@@@@
@@@@@@@@@@@(***,..*%&&@&@%,.......*((#%%&&&&&&&&&#((#%&&/*/(#*,....,,**(@@@@@@@@
@@@@@@@@@@@@&/**(&@@@@@@@%*,,,**,,/#%&&&&&&&&&&&###&@&&/*(&&#**********%@@@@@@@@
@@@@@@@@@@@@@@&&@@@@@@@@@&(****,*#&&&&&&&&&&@@@#/(&&&&(,(&&&/***,(&&%&&@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&@@@@@@@&#&@@@%(#&@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...,*,,,
. ./&&&&&&&&&&&%%%%%%%%##/.,(%%%%%/..
., (%((#&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#*
.*#&#%%&&&&&@@&&%%#(((((//(((#%%&&&&&&&&&&&&&&&&&%/.
*%%%%%&&&&&&&&&%#(////***//*****/(#%&&&&&&&&&&&&&&&%&%(,
,####%&&&@&&%#(///***//*******,,**/(#%%%&&&@@@@@@@@&&&&&&%*
,%%%%&@@@@&%%#((////////************/(##%%&&@@@@@@@@@@@&@&&&#*
/&&&@@@@@&%%%#(///**///*************//(#%&&&@@&@@@@@@@@@@@@&&&(
**#&@@@@&&%%%#(//**///////***********/(#%%%&&&&@@@@@@@@@@@@@@&%,
#&&@@@@@&&%%%#((////(((///*********///(#&%%%&&&&@@@@@@@@@@@@@&&#.
,%&&@@@@@@@@@@&#(///#%&&%%###%#(/**///(#%%%%%%%%@@@@@@@@@@@@@@@&&*
.#%&@@@@&&&&&&@%#(/(%%%%%%###((###////(%%&&&&@@@@@@@@@@@@@@@@@@@@@*
,%%&&@@&&&&@&&&%#/*/(%%%##((//##(/////(%&&&@@@@@@&&&&@@@&&&&&@@@&%%*
,#%&@@@&&%##%&%/******/((//%&&%(((/////(%&&&&@@&&&&&&&&&&&@@@@@@&%(.
.(&&&@@@&%&%&%/**//***,////(//****,***/(%&&&&&@@@@@&&&&&&&@@@@@@@%/,
.*%&&@@&%#%%%(**///***********,,,,,***/(#%&%%&&&@@@@@&@@@@@@@@@@&%*,.
,#%&&@@&&%&%#/*/////////*************//(%%&&&&&@@@@&&&&&@@@@@@@&%#(.
.#&&@@@@&&&%(**((////(((//**//////////((#%%&&@@&&&&@&&&&&@@@@@@&%(/,
(&&&@@@@&&&%%%%%%%#((/**////((#((((((((##%%&&&%%&@@@&&@@@@@@&@@&#/.
./%&&@@@@@@@&&&&&&%#(///////*/////(((((((((##%%&@@@@@@@@@@@@@@@@@@&%#.
/#%&&&@@@@@@@&&&%%(/////(((((//**////(//(((##%%&&&@@@@@@@@@@@@@@@&(,.
,#%%%&@@@@@@@@&&&&&%%%###%#####(((((/////((##%%&%&&%#%@@@@@@@@@@@@#,
*#%%&&&@@@@@@@@&%%%%%%##(/////((((((///((###%%&%%(//(#%&@@@@@@@@@@%,
,(%%%&&&@@@@@@@@&&%%%#####((////////(((####%%#(**,*/(#%%%&&@@@@@@@@&#.
.. *&&&@@@@@@@&%#((//////////((((###%%##/*,..,*///(####%&&@@@@@&&(,.
(&&&&@@@@@@@&&%%%###############(/*,.....,*///(//(###%%%&&@@@%/.
/%%##%&@@@@&#/*(%%%%%%&%%%##(/*,,........,/((*,*/####%&&&&&&&&(
/###%&&#,.. . ,%&&&&&&%#//*,,.........*/**,..(#(/*#%&&&&%%##/
.(##/. ,#%%%##%%(*,...........***. ..(#*..*##########,
.. ./####%#*.......... *(/..../%/...(###%/..,..
........ .*. ,/*.
.....
But the C++ example is colored ?
___________________________________________ \_ _____/\______ \_ _____/\_ _____/ | __) | _/| __)_ | __)_ | \ | | \| \ | \ \___ / |____|_ /_______ //_______ / \/ \/ \/ \/ __________ _____ __________________ _____ .____ \______ \/ _ \ / _____/\_ ___ \ / _ \ | | | ___/ /_\ \ \_____ \ / \ \/ / /_\ \| | | | / | \/ \\ \____/ | \ |___ |____| \____|__ /_______ / \______ /\____|__ /_______ \ \/ \/ \/ \/ \/
█████╗ ████╗ █████╗ ████╗ ████╗ ██╗
██╔═██╗██╔═██╗██╔══╝██╔══╝██╔═██╗██║
█████╔╝██████║█████╗██║ ██████║██║
██╔══╝ ██╔═██║╚══██║██║ ██╔═██║██║
██║ ██║ ██║█████║╚████╗██║ ██║█████╗
╚═╝ ╚═╝ ╚═╝╚════╝ ╚═══╝╚═╝ ╚═╝╚════╝
_/_/_/ _/_/ _/_/_/ _/_/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/_/ _/_/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/ _/ _/ _/_/_/_/ ____ ___ _____ _________ __ / __ \/ | / ___// ____/ | / / / /_/ / /| | \__ \/ / / /| | / / / ____/ ___ |___/ / /___/ ___ |/ /___ /_/ /_/ |_/____/\____/_/ |_/_____/ ____ _ ____ ____ _ _ | _ \ / \ / ___| / ___| / \ | | | |_) / _ \ \___ \| | / _ \ | | | __/ ___ \ ___) | |___ / ___ \| |___ |_| /_/ \_\____/ \____/_/ \_\_____| _ _ __ __ _ ___ ___ __ _| | | '_ \ / _` / __|/ __/ _` | | | |_) | (_| \__ \ (_| (_| | | | .__/ \__,_|___/\___\__,_|_| |_| __________ .__ \______ \____ ______ ____ _____ | | | ___/\__ \ / ___/_/ ___\ \__ \ | | | | / __ \_ \___ \ \ \___ / __ \_| |__ |____| (____ //____ > \___ >(____ /|____/ \/ \/ \/ \/ ██████╗ █████╗ ███████╗ ██████╗ █████╗ ██╗ ██╔══██╗██╔══██╗██╔════╝██╔════╝██╔══██╗██║ ██████╔╝███████║███████╗██║ ███████║██║ ██╔═══╝ ██╔══██║╚════██║██║ ██╔══██║██║ ██║ ██║ ██║███████║╚██████╗██║ ██║███████╗ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚══════╝ 8 888888888o .8. d888888o. ,o888888o. .8. 8 8888 8 8888 `88. .888. .`8888:' `88. 8888 `88. .888. 8 8888 8 8888 `88 :88888. 8.`8888. Y8 ,8 8888 `8. :88888. 8 8888 8 8888 ,88 . `88888. `8.`8888. 88 8888 . `88888. 8 8888 8 8888. ,88'.8. `88888. `8.`8888. 88 8888 .8. `88888. 8 8888 8 888888888P'.8`8. `88888. `8.`8888. 88 8888 .8`8. `88888. 8 8888 8 8888 .8' `8. `88888. `8.`8888. 88 8888 .8' `8. `88888. 8 8888 8 8888 .8' `8. `88888. 8b `8.`8888. `8 8888 .8' .8' `8. `88888. 8 8888 8 8888 .888888888. `88888. `8b. ;8.`8888 8888 ,88' .888888888. `88888. 8 8888 8 8888 .8' `8. `88888. `Y8888P ,88P' `8888888P' .8' `8. `88888. 8 888888888888 ______ __ | __ \.---.-.-----.----.---.-.| | | __/| _ |__ --| __| _ || | |___| |___._|_____|____|___._||__| 8888888b. 888 888 Y88b 888 888 888 888 888 d88P 8888b. .d8888b .d8888b 8888b. 888 8888888P" "88b 88K d88P" "88b 888 888 .d888888 "Y8888b. 888 .d888888 888 888 888 888 X88 Y88b. 888 888 888 888 "Y888888 88888P' "Y8888P "Y888888 888 ______ _ | ___ \ | | | |_/ /_ _ ___ ___ __ _| | | __/ _` / __|/ __/ _` | | | | | (_| \__ \ (_| (_| | | \_| \__,_|___/\___\__,_|_| ______ ______ ______ ______ ______ _ | | | \ | | | | / | | | | | | | | | | |__|_/ | |__| | '------. | | | |__| | | | _ |_| |_| |_| ____|_/ |_|____ |_| |_| |_|__|_| _____ _ | _ |___ ___ ___ ___| | | __| .'|_ -| _| .'| | |__| |__,|___|___|__,|_|
@lainz
+1
Some examples on this page (https://onefetch.dev).
There are some very WOW examples there :o !
Pascal logo must be at this level, minimum.
There are some very WOW examples there :o !
Yes. :)Pascal logo must be at this level, minimum.
I submitted (https://github.com/o2sh/onefetch/issues/872#issuecomment-1479760713) the proposition by KodeZwerg, in blue and white. I hope it will look nice. ;)
Thank you all for your very nice contributions.
So it is time to find one.
Maybe a base could be the triangle or pyramid ?
FPC has command line option -l (small L) which states: write logo, but does nothing. :(
Maybe a base could be the triangle or pyramid ?
Why not. I have had the same idea.
Pascal's Tetrahedron.
______ ___ ___
/\ _ \ /\_ \ /\_ \
\ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ __ ___ ____
\ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ /'__`\ /\__`\ /'___/
\ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \__/\ \L\ \\/ __ \/\____`\
\ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/\_\ \ __//\____/\/\____/
\/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/\/_/\ \ \/ \/___/ \/___/
/\____/ \ \_\
Version 4.4.5 \_/__/ \/_/
For me, the pascal triangle is not a symbol for the language pascal. My brain will not combine the two.
The soloution from Roland57 look better.
my 2 cents
I submitted (https://github.com/o2sh/onefetch/issues/872#issuecomment-1479760713) the proposition by KodeZwerg, in blue and white. I hope it will look nice. ;)You are welcomed.
And using only the word "Pascal", even with ascii art, shows, in my opinion, poor creativity of the language.I was more looking how others are doing, exemplary @ VisualStudio (https://marketplace.visualstudio.com/items?itemName=alefragnani.pascal).
.. that has nothing to do with poor creativity.
Anwer in the following program.
The ‑l option has been subject of the FPC logo (https://forum.lazarus.freepascal.org/index.php/topic,50320.msg366967.html) thread.FPC has command line option -l (small L) which states: write logo, but does nothing. :(I never understood what that options does. :-[
A simplified ASCII picture of Blaise Pascal will a good idea, but the question is, is the picture free for such a using.This is imaginably a poor idea as a picture of Blaise Pascal is already associated with the GNU Pascal Compiler (https://www.GNU-Pascal.de/). Well, it’s a combination of a gnu and BP.
A simplified ASCII picture of Blaise Pascal will a good idea, but the question is, is the picture free for such a using.This is imaginably a poor idea as a picture of Blaise Pascal is already associated with the GNU Pascal Compiler (https://www.GNU-Pascal.de/).
The ‑l option has been subject of the FPC logo (https://forum.lazarus.freepascal.org/index.php/topic,50320.msg366967.html) thread.
Wow!
I remade my little demo (https://forum.lazarus.freepascal.org/index.php/topic,62777.msg475019.html#msg475019), using BGRABitmap.
Huh, how did you do for the colors (in the forum-site)?Thats an effect of using forum's pascal code color highlighting. Colors would be different if I had chosen some other language.
Here is the full Pascal hexagon from:
https://en.wikipedia.org/wiki/Pascal%27s_theoremThe hexagon is coloured red within the ellipse.
{$mode fpc} uses ptcGraph, ptcCrt, SysUtils,math; Type Point=object x,y:double; End; Type _Line=object s,f:point; End; type aol=array of _Line; type aop=array of point; function equals(a,b:point;tol:double):boolean; var z:boolean=false; begin if (abs(a.x-b.x)<tol) and (abs(a.y-b.y)<tol) then z:=true;// -1 exit(z); end; procedure draw(L:_Line); begin line(trunc(L.s.x),trunc(L.s.y),trunc(L.f.x),trunc(L.f.y)); end; Function isleft(L:_Line;p:point):integer; begin exit (-sign((L.s.x-L.f.x)*(p.y-L.f.y)-(p.x-L.f.x)*(L.s.y-L.f.y))); End; Function intersects(L1:_Line;L2:_Line):boolean; begin If (isleft(L2,L1.s) = isleft(L2,L1.f)) Then exit (false); If (isleft(L1,L2.s) = isleft(L1,L2.f)) Then exit (false); exit(true); End; function intersections(l1:_Line;l2:_Line;var _out:point):boolean; var p1,p2,p3,p4:point; x12,x34,y12,y34:single; c:single; a,b,x,y:single; begin p1:=l1.s;p2:=l1.f;p3:=l2.s;p4:=l2.f; x12:=p1.x-p2.x;x34:=p3.x-p4.x;y12:=p1.y-p2.y;y34:=p3.y-p4.y; c:=x12 * y34 - y12 * x34; if (abs(c) < 0.01) then exit(false); a := p1.x * p2.y - p1.y * p2.x; b := p3.x * p4.y - p3.y * p4.x; x := (a * x34 - b * x12) / c; y := (a * y34 - b * y12) / c; _out.x:=x; _out.y:=y; exit(true) end; procedure ellipse(x,y:integer;rx:double;ry:double;var a:aop); const pi=4*arctan(1); var counter:int32; z:double=0; xp,yp:double; begin counter:=0; repeat xp:=x+rx*cos(z); yp:=y+ry*sin(z); counter:=counter+1; setlength(a,counter); a[counter-1].x:=xp; a[counter-1].y:=yp; putpixel(trunc(xp), trunc(yp),white); z:=z+0.05; until (z>2*pi); end; procedure setlines(a:aop;var ret:aop); var k,n,n1,n2,flag,m:integer; b:aop=nil; l:aol=nil; _out:point; centre:point; begin setcolor(blue); centre.x:=400; centre.y:=300; _out.x:=0; _out.y:=0; setlength(b,6); k:=10; for n :=0 to 5 do begin b[n]:=a[k]; fillellipse(trunc(a[k].x),trunc(a[k].y),4,4); k:=k+high(a) div 6; end; k:=0; for n1 :=0 to 4 do begin for n2 :=n1+1 to 5 do begin k:=k+1; setlength(l,k); L[k-1].s:=b[n1]; L[k-1].f:=b[n2]; end; end; k:=0; for n1 :=0 to high(l)-1 do begin for n2 :=n1+1 to high(l) do begin flag:=0; if (intersects(L[n1],L[n2])) then begin intersections(L[n1],L[n2],_out); flag:=1; for m :=0 to high(b) do begin if equals(_out,b[m],2) then begin flag:=0; break; end; end; end; if (flag=1) then begin draw(L[n1]); draw(l[n2]); if equals(_out,centre,40)=false then begin k:=k+1; setlength(ret,k); ret[k-1]:=_out; setcolor(white); fillellipse(trunc(_out.x), trunc(_out.y),2,2); setcolor(blue); end; end; end; end; end; procedure circulate(var p:aop); procedure swap(var a, b: point); var temp: point; begin temp := a; a := b; b := temp; end; var p1,p2:integer; c:point; begin c.x:=400; c.y:=300; For p1 := 0 To high(p)-1 do begin For p2 := p1 + 1 To high(p) do begin if arctan2(p[p1].y-c.y,p[p1].x-c.x)< arctan2(p[p2].y-c.y,p[p2].x-c.x) then begin swap (p[p1],p[p2]); end; end; end; end; procedure drawpascallines(ret:aop); var n:integer; begin circulate(ret); for n:=0 to high(ret)-1 do line(trunc(ret[n].x),trunc(ret[n].y),trunc(ret[n+1].x),trunc(ret[n+1].y)); line(trunc(ret[high(ret)].x),trunc(ret[high(ret)].y),trunc(ret[0].x),trunc(ret[0].y)); end; //main// var a:aop=nil; ret:aop=nil; gd, gm: SmallInt; ch:char; begin {========== set up graph =========} gd := D8bit; gm := m800x600; InitGraph(gd, gm, ''); if GraphResult <> grok then halt; setbkcolor(black); settextstyle(BoldFont,HorizDir,1); setwritemode(copyput); repeat ClearViewPort; setcolor(white); outtextxy(10,10,'Pascal hexagon demo'); outtextxy(10,40,'Space key to refresh -- esc key to end.'); ellipse(400,300,randomrange(100,300),randomrange(100,300),a); setlines(a,ret); setcolor(red); drawpascallines(ret); ch:=readkey; sleep(10); until (ord(ch)= 27); closegraph; end.
tested Win 10 64 bits.
I was randomly browsing and stumble on this Pascal logo. It does look great in comparison with other programing language logos.
Nice but the Pascal logo is in fact the fpc logo, not the Pascal language logo.
Nice but the Pascal logo is in fact the fpc logo, not the Pascal language logo.
That's my point. Fpc logo should became Pascal language logo from now on.
Are you able to answer to question "what Pascal language is?". No! I will tell you exactly what Pascal language is to day - it is Free Pascal.
Nice but the Pascal logo is in fact the fpc logo, not the Pascal language logo.
That's my point. Fpc logo should became Pascal language logo from now on.
Are you able to answer to question "what Pascal language is?". No! I will tell you exactly what Pascal language is to day - it is Free Pascal.
Free Pascal is a compiler not a language.
Nice but the Pascal logo is in fact the fpc logo, not the Pascal language logo.
That's my point. Fpc logo should became Pascal language logo from now on.
Are you able to answer to question "what Pascal language is?". No! I will tell you exactly what Pascal language is to day - it is Free Pascal.
Free Pascal is a compiler not a language.
There is no compiler without language. Even in general opposite is true, but not for Pascal. Pascal is whatever implementation of Pascal is in Free Pascal compiler.
@Fred vS Six points placed in regular distance on circle connected with six lines holds already well established associations. Meanwhile you are telling that no way Pascal language and compiler can have logos based on same animal? But Lazarus and Fpc can?
While GPC had a sketch of a gnu and Blaise Pascal, I do not associate FPC with some specific graphic. Lazarus obviously has its leopard. And as far as I see Delphi has various logos.
It's a Cheetah and the Cheetah alone is FPC's logo (just look at the main page (https://www.freepascal.org/)). Lazarus has it on a Greek column to reference Delphi.
There is no compiler without language. Even in general opposite is true, but not for Pascal. Pascal is whatever implementation of Pascal is in Free Pascal compiler.
AI is not listening to me :D
One popular symbol used to represent Pascal is the image of a stylized, crowned lion, which is often associated with the ETH Zurich, the university where Wirth created the language.
AI says:QuoteOne popular symbol used to represent Pascal is the image of a stylized, crowned lion, which is often associated with the ETH Zurich, the university where Wirth created the language.
I cannot find it. Is that logo somewhere online?
That's their modern logo. AI probably talks about early-eighties when there was no internet yet. Problem is that crowned lion is sooo popular and there are hundreds of projects / organizations using it.
That's their modern logo. AI probably talks about early-eighties when there was no internet yet. Problem is that crowned lion is sooo popular and there are hundreds of projects / organizations using it.
BTW, You can look with ISBN 978-0-13-022418-7 at Amazon, there is no Logo on the Book. I thinkit is a urban legend of ChatGPT.