|
Индивидуальное задание - Текстовая графика ASCII ART
ASCII art (от англ. ASCII artwork) — форма изобразительного искусства, использующая символы ASCII на моноширинном экране компьютерного терминала (терминальный сервер) или принтера для представления изображений. При создании такого изображения используется палитра, состоящая из буквенных, цифровых символов и символов знаков пунктуации из числа 95 символов таблицы ASCII. По причине высокой вероятности различий в представлении на системах с национальными вариантами таблицы остальные 160 символов, как правило, не используются.
___
,o88888
,o8888888'
,:o:o:oooo. ,8O88Pd8888"
,.::.::o:ooooOoOoO. ,oO8O8Pd888'"
,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"
, ..:.::o:ooOoOOOO8OOOOo.FdO8O8"
, ..:.::o:ooOoOO8O888O8O,COCOO"
, . ..:.::o:ooOoOOOO8OOOOCOCO"
. ..:.::o:ooOoOoOO8O8OCCCC"o
. ..:.::o:ooooOoCoCCC"o:o
. ..:.::o:o:,cooooCo"oo:o:
` . . ..:.:cocoooo"'o:o:::'
.` . ..::ccccoc"'o:o:o:::'
:.:. ,c:cccc"':.:.:.:.:.'
..:.:"'`::::c:"'..:.:.:.:.:.'
...:.'.:.::::"' . . . . .'
.. . ....:."' ` . . . ''
. . . ...."'
.. . ."'
.
|
Предтечи
Близкие к аски-арту изображения начали появляться в XIX веке. Одним из их проявлений стал фигурный текст в поэзии — каллиграммы. Общеизвестным примером может стать поэзия Гийома Аполлинера, активно использовавшего каллиграммы в своих стихах. Ещё один общеизвестный пример — творчество Льюиса Кэрролла (например, в произведении «Алиса в стране чудес»).
С изобретением печатной машинки в середине XIX в. создание изображений с помощью литер стало восприниматься как вид искусства. В 1890-х годах производители печатных машинок и агентства по найму и обучению секретарш устраивали конкурсы на самый быстрый набор текста, а также на самый лучший рисунок, созданный с помощью машинки. Один из наиболее ранних сохранившихся примеров такого искусства — рисунок бабочки, созданный в 1898 г. Флорой Стэйсси и опубликованный в журнале «Pitman’s Phonetic Journal» от 15 октября 1898 г. Картинка составлена из множества скобок, дефисов, звёздочек, точек и нескольких прописных букв «o».
|
История
Аски-арт зародился в середине 1980-х на платформах Amiga и Commodore 64. Развитие же этот вид компьютерного искусства получил в среде демомейкеров. Стандартный шрифт компьютера Amiga содержал очень высокие символы «/» и «\», из которых, располагая их в разных строках, можно было составить совершенно ровные непрерывные линии. Чаще всего такими линиями изображались названия групп, чем и объясняется, что говоря об аски-арте, говорят прежде всего именно о шрифтах. В самом начале шрифты были чёткие, хорошочитаемые. Позднее шрифты усложнялись, делались интереснее. Так впервые заговорили о школах «Oldskool» и «Newskool».
Платформу PC искусство текстового режима облюбовало с появлением нового стандарта ANSI, давшему реальное преимущество перед Amiga. ANSI позволял задавать цвет символу, что в совокупности с имеющимися в таблице символов блоками, породило новое мощное ответвление — ANSI art. Первой арт-группой, показавшей изобразительные возможности на высоком уровне, стала Aces of ANSI Art (A.A.A.) За которой потянулись последователи.
И только уже позже, было замечено, что если использовать символ, почти полностью заполняющий ячейку (например $), а к нему добавить менее плотный символ — то таким образом можно сглаживать общую форму (этот приём получил название «антиалиасинг» (от англ. antialiasing)). Так, в конечном итоге, зародилась современная школа рисования ASCII.
К середине девяностых сцена полностью сформировалась, главными направлениями рисования в текстовом режиме стали ASCII scene, ANSI scene и Amiga style (который часто называют oldskool).
|
.
T
( )
<===>
F|J
===
J|||F
F|||J
/\/ \/\
F+++++J
J{}{|}{}F .
. F{}{|}{}J T
. T J{}{}|{}{}F ;;
T /|\F/\/\|/\/\J . ,;;;;.
/:\ .'/|\\:=========F T ./;;;;;;\
./:/:/. ///|||\\\"""""""" /x\T\;;;;;;/
//:/:/:/\ \\\\|////..[ ]...xXXXx.|====|
\:/:/:/:T7 :.:.:.:.:||[ ]|/xXXXXXx\|||||
::.:.:.:A. `;:;:;:;'=== ==\XXXXXXX/=====.
`;""::/xxx\.|,|,|,| ( ) ( )| | | |.=..=.|
:. :`\xxx/(_)(_)(_) _ _ | | | |'-''-'|
:T-'-.:"":|"""""""|/ \ / \|=====|======|
.A."""||_|| ,. .. || | | |/\/\/\/ | | ||
:;:////\:::.'.| || || ||-| |-|/\/\/\+|+| | |
;:;;\////::::,='======='=============/\/\=====.
:;:::;""":::::;:|__..,__|============/||\|\====|
:::::;|=:::;:;::|,;::::: |========| |
::l42::::::(}:::::;::::::_________|========|___|__
|
,%%%,
,%%%` %==--
,%%`( '|
,%%@ /\_/
,%.-"""--%%% "@@__
%%/ |__`\
.%'\ | \ / //
,%' > .'----\ | [/
< <<` ||
`\\\ ||
)\\ )\
^^^^^^^^"""^^^^^^""^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
Формат и распространение
Традиционной формой распространения аски-арт картин является так называемый артпак (от англ. art package) — архив файлов работ, включающий в себя обычно файл описание file id.diz и .nfo файл группы, выпустивший артпак. Артпаку всегда присваивается порядковый номер, а именуется он обычно по имени группы. Например, группа Mimic, выпустив свой 82-ой артпак, называет его Mimic#82
|
ASCII-анимации
ASCII-анимация является одним из направлений аски-арта. В этом направлении рисуются наборы ASCII-картинок, при пролистывании которых получаются мультики. Обычно высота картинки выбирается равной стандартной высоте программы просмотрщика текста, под которую он оптимизируется. При этом смена кадров производится нажатием клавиши Page Down.
Также на PC в среде DOS возможен вывод ASCII-анимации из BAT-файлов через драйвер ANSI.SYS с использованием Esc-последовательностей. Этот метод не получил широкого распространения из-за того, что он требует загрузки драйвера, который редко используется по назначению и занимает место в памяти.
Известны также анимационные ролики, реализованные посредством протокола telnet. Наиболее известным среди них является ASCII-версия IV эпизода космической саги «Звёздные войны».
|
,....
,,'' ""-.
.--,,' "",
,. ,' .-, ... `
,' ,' .-" P ``. : .,.
,'".' : , ,--;-, `.," `.
,' : : ' : : ` '-, `.
, , : : : t. ', : ` `
,' : `. : : `"'`. : : :
: : :`. `. ,' : : :
`. ` : `. `-,...( .,' , ,'
: : : `. ' " ,' :
`. ,", `. "----' ,' ,
`", `,. `, .' :
: `, "-,.,. ,,' ,
` `,. :'---"' ,'
t `-....-td ,'
"-. "-,,....,-"
,,-,. .. `.. : ,.''"----"",...
,'""' "" `-. . `T-.. ..-`).,,' `.
,"' `" t ,( `"""" ,' ' ' , `"`
: --. , ` `. :: ,. : : ,'' .'
( `"), `. -. `. `, .' , , ,'`""- :
: ,...t,`,.' ` `,:`,. ' ,' ,",--t ,'
` `. `. , `", ' :, : ,.'' "-- ,'
`, : ,' `, `,` t :: : ,.: .'
` -,..---"`'"''. : ,'`,`. :: ,"'`"-,... ,,'
`, :`'"' `,t :`.,", ' ,'
t ,.-`---,.. : t )' '-`-..... -''
`. ,""""""' : ``. `,", .'
`"`-. ' `, :`,..,.,'""""
`-,...-,.,' ", `, '
", `,.
: `,.. ,.
"""-t.``'`-.. ,...,
``-.. `""""' ,
`""---....'
|
,,########################################,,
.*##############################################*
,*####*:::*########***::::::::**######:::*###########,
.*####: *#####*. :*###,.#######*,####*.
*####: *#####* .###########* ,####*
.*####: ,#######, ##########* :####*
*####. :#########*, ,,,,,,,,. ,####:
####* ,##############****************:,, .####*
:####*#####################################**, *####.
*############################################*, :####:
.#############################################*,####*
:#####:*****#####################################.
*####: .,,,:*****###########,
.*####, *######*
.####* :*#######* ,#####*
*###############*,,,,,,,,::**######,
*##############################:
*####*****##########**#####*
.####*. :####*
:####* .#####,
*####: *####:
.*####, *####*
:####*####*
*######,
*##,
|
Автоматизация
Существуют различные компьютерные программы для создания ASCII-графики. Их можно поделить на две группы. Первая представляет из себя некое подобие графических редакторов, только в текстовом режиме. Во вторую группу входят программы, конвертирующие графическое изображение в ASCII-графику.
Вывод видео в аски-арте
В мультимедийном проигрывателе MPlayer существует поддержка aalib, позволяющая выводить видео в режиме ASCII. В оболочке для мультимедийного проигрывателя XINE, xine-ui также присутствует возможность смотреть видео в ASCII (для этого видео запускается через отдельную команду aaxine).
|
Пример конвертации изображения
Я нашёл в Интернете интересную программку ASCII Pic. Эта программа преобразует картинки в ASCII. Она имеет несколько настроек, относительно размера и яркости выводимых ASCII изображений. Программа доступна по адресу http://softsearch.ru/programs/219-674-ascii-pic-download.shtml . Я её скачал, запустил и преобразовал своё фото, что из этого получилось вы можете увидеть ниже.
Оригинальное фото
|
.---
-:###///,-. -.-.
//##XXXXX%#/=/;//#/
,://#%#//#%%%%##/=:#%/.
-///#%%###$X%XX$X###X#/--/:#/- --
--/##X###XX##XXXXXXXXXX#/###%#//////.
//#XXX#HH#X###XXXXXXX####XX$$XX%#/////---
/#XX#XXHHH##XXXX###HHHHHHHXX#XX$X%###%/:/-
/#XX#XX#HH#X$XXX#HHHHHH#@@H#HHXXX$XXXX%##//.
/#XXXXXX#@#X##HXX##@@@@#@@@HHHHXXX$$$X%%%%#/-.
../MXXXXXXX#XX#@@@#X#@@@@H@@@##H@#XXXXXX%%%%%%#:-
//##XX#XXXXXX#@@@@#X#@HHHH@@@##@#X##XX#HX$XXXX%#;/-
//MXXXXX%%XX#@@@@@@X#@H@H@@@@@H###H#####XXX##X$X%/:/-
//#%X%%XXXXXX##HH@H##@###H@@@@@#X##X#H#XXXXX##XXX+#///-.
::#XX%X$X$XXXXX#H@##@##XXXH@@@@##HX$X#HHH###H#XXX%%%%#///.
,/#XXXXX$$$$XX$XHH##@HXXXX#HH@@##H#XXX#HHHH@@#X%%XXXXX%##//.
#XXXXX#X$$XXXXX##X#@@H####HH@@@@@HHH#XHH@@H@#XXXXX$XXX%##////-
/XXXXXX$$XXXXXXX#H#H######H@@@@@H#HHH##@@@@@#X#XXXXXXX%+##++##/,
/#X$%X$$XXXXX#XXX###XXXX#H@@@@@@#X#HH@H@@@@#X#XXXXXXX$X%X%+%%%#//
/#XX%%XXXXXXX####H#XXX###H@@@@HHH##@@@HH@@@#XXXXXX##XXX$X%%XX$X#//-
;#$XXX$XXXXXXX##HHH#XXX##HH@@@@@###M#@@@@@@#XXXXXXX##XX$%%%%X#XXX##/-
:#X$$$XXXX#HHX#H##XXXXXXX#H@@@@@@###@@H@@@@H#X$XXX#XXX$$%%%XXX#H#$%#/:.
-#XX$$XXX#HHH#HHH##XX##XXX#HH@@@@@@HH@@@@@@H#XXX#HH#XX$XXX%%XXXX#XX%#///
-#XXXXXX##HHHHHH#HHHHH#XX$$XX##XXXXXHHH@@@@H#XXX#H##X#XXX$XXM#XXXXX%%#///
,#XXXXX$#HHHHHHHHH###XXXXX$%%XXXXXXXX#HHHHH#X$XX###XXXXXX$XX#@HH#XX$X%#///.
-#XXX#XXX#HHHHHHH#XXXX$XXXXXX%$$$$XXXX#HHHHHHX#H#XXXXXXXXXXX#HH###X$$XX#///-.
./XXX#HXX#HHHHHHH#X%X$$$XX%%%%%XXXXXXXHHHHHHHH#HH##XXXX$X%%XXX##XH#X$XX$X////.
/#XXX##X#HHHHHHH#$XX$X%%%%%%%%%%X$XXXX#HHHHHHHH##XXXXXX$%%XX$XXX##XXX$$XX##//-
:#XXXXXX#HHHHHHH#XX%%%%%%%++++%X$$XXXXXX#######XXXXXXX$$$%%%%XXXXX#X$%X$$X+%//-.
-#XXXXXXHHHHHHH##X%++%%%%%+++++%%X$$$$$$XXXXXXXXXXXX$$$$$X%%%%%X$$XXX$X%X%%%XX//-
./#XXXXX#HHHHHHHHXX#+%%%%%%++++%%%%X$X$XXX$$$$X$$$X$X%$$$$X%%%%%X$$XXXX%%%%+XX%#//.
//X$XXXHHHHHHHHH#X%++%%%##///##/####%%%%%%$$$$$$$XX%%XX$$X%%%%%%%X$$XXX+%%%%XX%#//-
,/#X$X##HHHHHHHH#X%#+%%%#//;;;/://:://##%%%XX$$$$$X%%%XX$X%%%%+%%%X$$X$%+%%%%X$%#;/-
-/XX$XX###HHHHH#XX###+#///;;/:::/-//:///#+%%%XXX%%%%%XXX%%%%%+++%%X$$$X%%%%%%XX%#///-
-#XX$XXXX#H@@HXX%/;/##///;;:::=/---/::://#%%%%%%%%%%%X%%%%%%+##+%%%X$X%%%%%%%XX%#/:=-
:#$$$XXX#HH@@#XX#/////:::::::=/---/=:::/;/#+%%%%%%%%%X%+%%%+#//+++%%%%%%%%%%%$X####/-
/$XX$XXXHHHHHXX%//;;/:::=====----==::://;/#++%%%%%%%%++%%%+#///#+++%%+%%%%%%%%#%XX#/-.
./XXXXXXXH#X##XX#//:::::====/-//-/=:::/;;/#+++++%%%%%%%%%%++#/////#++%%%%%+%%%#/%%%#//-
-/XX$XXX#HH#XX$#//:::::======/=====:::/;//######+++%%%%%+#++///////#+%%%%++%++//+%%%#//
/#$$XXXX##H#XXX#;/:::::============:::/;;///////#++++++#//+#/////##%%%%%+++%%+///#%%%+#-
/%$$XXXXX#HHXX%/;::=:::===========//==:/;;////////#++##/###//////+%X$X%#/#+%%++#/#%%%#//
./XXXXXXXXXHH#X+//::=============/---/-////;///////###///#////////#%%%%%##/+%%%%##%%%#///
./X%XXXX###HH#X#//::===========/-----,-/=::/;;;;//////;////////;;;//#+++#//%%%%%#+%X%////
.#%XXXXXHHX#H#X+//::=========/---,,,--,-/==::/;;;///////;;//////;;;;///////+%X$%+++###///
./%$XXX#HH#X#XX#/;::========/---,,....-,/=/=:::://://=:::://;;//;;/:/;///;/%X$XX+#/#%#///
/%$XXX#HH###XX#//::======-/----,,...--,/=/-/==///----/==:::/;;;;;/:::/::/#%XX$X+##+%#//-
-#$X###HHHH#XX#;;:::====/------,,---,,,-=---//--,,,--/====::::////:=-,/:/#%X$$X%##++///-
./XXHHHH@HHXX%#;;:::===///-------------/=/---------/========:::::::=---//#%X$$X%++%#/:/,
-#XHHHH@HH#X%/;/::::::===///////-////=::==//=/////=============::=/-.-//#%X$$X%++#//:/-
/X#HHHHHH#$#/;/:///////:::::::::::::::::=======::::::::::::======-,.--/#%X$$X%%+#/:/-.
;$X#HHHHH#X#/;;#%%XX%###MMM/////////////:::::::////::////::::::://-.--/#%X$$$%%#/;:/-.
/$X#HHHHH#X#;/#XXXXXXXXXXXXXXXX####////;;;;;;;/////////////////////-.-;#%%$$$%%///:/-.
/#X#H@@HH#X/;/XXXXXX##H@@HH@@@#XXXX%%+#///////###+##%%$$XXXXXXX%%#//,-:/+%X$$%+///:--.
-#XX@@@HH#%/;#XXX#XX###HH@@@@@HH##X$X%%++##%%%XXX$XXX#####XXXXX$$X#//-//#%%$$%+#;/:/-.
-/XXH@@@H#%/;#XXXXXXXXXXXX##HHH###XXX$X%%%%%XXXX##H@@@@@HH####XXXXX%//=//+%$X%+#;:::-.
./X#H@@@H#%//#X$$$$$$$$XXXXX##XXXXXXXX$X%%%XXXX##HH@@@@@@HHHH#XXXX$%#/=:/+%$X%#//:/:-.
/X#@@@@H#%/#%%X$$$$$$$$XXXX##XXXXXXXX$X%%%XXXX#####HH###XXXXXXXXX$%#/=:/#X$$%#///;:/.
.;X#@@@HHM#;/%%%%$X$XXXXX#HHHHH#XXX$$$X%+%%XXXXXXXX#XXXXXXXX$$$$$$X%/////#XXX%#/////;
./#XHHHHH##;/+%%%$XXXXX#@@@@@@HH#XXX$X%#/##%XXXXX##HHHH###XXXXX$$X%+/////#$$%%+/:////
//X#HHH#X#;/#+%X$XXX#HH@@@#@@HHHXXX$X#////#%$X##HHHH@@@@@H#XXXX$X%+///-:#X$%%#////;/.
,/XX#XXXX#;;/#%X$X#H#XX@@@#@H#HH#XX$%#/:=:/#XXHHHHHH@@@@@@H#XXXXX%+//-,/MX$%+#/;##//.
/#XXXX$X#;:;#%XXXXXX$X#@@@@##HH#X$$%/://///XX##HH##H@@@@@##XXXX$%+/:--/MX$X+#//##//
/#XXXXXX#/://#%%%%$XX%X#MMXX##XXX$X#/=--/:/#XX#HH#XH@@@@#XXX#XXXX%//-.;#XXX%#//+#/-
/#$XXXXX#/:::////##++%%%%%$XXX$$$X%/:=-,-:/#XXXXXXXX##H#XXXX$XXXX%//-.;MX$%%//#%/-
/#XXXXX#/::::::/;/#+%%%%%XXXXXX%#//:/-,-=:/%XXXXXXXXXXXXXX#//#+%+/:-.;MXX%#//%#/
.#X$XXXM/:::==::///##++####/##//:::=/-,-=:/#XXXXXXXX$$$$X%+##//////-.;#%%#//##/.
/XXXXX#:::=====:://///////::=====:==-,-=::/#%%XXX$$$$$$X%%+#/;;;//-.;/%#/:////-
:#XXXX/::=========::::::=/----======-,-=/-://###%%%%%%%%%++////:/-..-////////-
:#XXXX/::=====--/=======/---/=======-,-/--///;;///########//;::/-. ./////:/
:#XXXX/::=====/========/----=======/-,----/:/;;///;;/;////;;/:/-. -/;#//
/#XXXX/::::=====/-///----//======/--,-,----//;;:::://;;;//::::/,. -/#+/,
-M%XXX/:::======/---------//=::=/----------/:;;/::::::::::::::/,. ./#+/.
-/+%%%/:::::=====/--------/=:::=/--,..----,-:;;/::::====:::::=/-- ./##/
./#+##/::::::::===-------/=:/:=/----..-//---////:======:::::::=-,. .///;
//#/#/:::::::::==/-----//=:/:=/////-//==/- -///::=====::::::::/-- .-
-//////:::::::===//--====:::==://:::://////--:;/::====::::::::=--.
-/////;::::::::=======::::::://####//#####///:;;::===:::::::===--. .
-///;//::::::=======::::://##%%%%%%%XX%%%#//;;:::::::::::::==--. ..
;///;////:::::====::::::/#%X##XXX$$$$$XX%/;;;/::::://;;/:::=--. .
,//;;;;;;/:::::::::::=:/%X#H#XX$$$X##H#X##/;;;;//;;;;;;//:=--. .
-//;;;;;:::::::::::==/%XXXXXXX$X#H##XXX%///;;;;;;;;;;;;:=/- ..
-//;;;;/::::::::::////#XXXXXXXXXH#XXXXXX/;/;;;;;;///;;;::--
-;////;:::/:::::==-//:#%$XXXXXXX#XXXXXXX#;/;;;////////;/:--
//////;;;;;:::::==/==:/#X$$XXXXX#XXXXXXX#/;;;///////////:-.
:###///;;;;;;//:::::::/;##%%XXXXXXXXXXXX$%///////#+++////:-
///###//;;;;;;;;////;;;;/;/##XXXXXXXXXXXX%##/#//#++++#////-
.//####/////;;;;////;;;/:::::/#XXXX$$X$$XXX++++++++++++#///-
-#%##++#////;//##/////::=///=/##X%%%%##%%%%%%%%%++%%%+////-
,///#+++//////#++++///::///M/////#XX%#///#%%X%%%++%%++//:-. --
./#/++++#////#%%%%%+//###%++%####X$$XXX###%$$$X%%++++#///- .;/-
/##+++++#//#%%XX$X%XXX$XXXXXXXXXXXXXXXXXXXXXX$$%+++#//:/- -//
-//#+%++###+%XXX###XX######X##############@#XX$X%#/#//=-- -:-
-//#%%+++++%$X#H@HHHH@@HHHHH@@HH@@@@@@H@@@H#X$X%#//;//-.-//-
-#%%%++++XXXHH###XXX#M##H@@HHHHH#########XX$$%#/;::/-.-//.
/%%%%%++%XXXXX$XX%##M###XXXXXXXXX$XXXXXXX$$$%+//:=---/#@/.
/#%%%%%%%X$XXX%%++#/////#++%%%%%%X$$$XXX%X$X%+//:/--/#XX#/
.--/::/. /#%%%%%%%%%%%##+%%%%####%++++%%%XX$$$$X%%%X$%+//:/--/###X: .
-//;///;///// /#XXX%%%%%%%%+//#+%%%XXXX%%%XXX$$$$$$$X%%%X$$%#//:/--/##HX/ .//,
-///;////##%+#;-;/#X##$X%%%%XXX%#//#%X$$$$$$$$$XX$XXX$$X%%%X$$$%#/:://--/#HX/.-///.
.-//##M#/#+++%%+##XXX#H#$$X%%%$$X%+//#%X$$XXXXXX##XXXXX$X%%X$$$$X%/;:://-,/#HX/-/##/-
-/////#%%%++%%%XXXX##XX#@#$$$%%X$$X%%++++%XXXX##HHHHXXXXX$%%%X$$$$%%/;:/.-/-/##X/,/##//. ,.
,//:/=/#+%%%%%%%X$X#H@#XX#@#XX$XXX$$$X%++#+%X$XXX#HHH#XXXXXX%%%%$$$X%#;;/- -:-/#HX;/#%%%#/ .//-,. ..
/##///:/+##%%XXX$$XX#H@#$X#@#$%X$$$$$X%%++//#%XXXX##HH#XXXX$X%%%%XX%%#/;// .//-/##X/#X$XXX/..;///;- ...
-###/:/://###%XX$$$$XX##XX$X#@@XXX$$$$$%%%++////#%XXXXXXXXXX$X%+%%%%%+##///- ///-/##XXXXXXXX#,.;/#+#/--.----..
./#%#///-://##/#X$$$XXXXXX%%$X#@@X$X$$$$$X%%%+//;//////MM####%##+###+++#///:--./#/-/#H#XXXXX$%M--/#%+#///,-/=/....--
--//////-.-:/#///#%$XXXXX#X%%%$XX#@#X$X$$X$$%%%+#/;/::::/;;;;;;///////##////:=/-/#X///#H#XXXXX$XM/;/#%+#////-=:/- ---..
---.... .-//+#/#++XXXXXX#X++%X$$XH@X$$$$$XXXX%++#/////;//////////#####/////::-/#X$///$HHHXXXX$$#//#%%+###//::::/-.----- .
.-.--------,---//#+##++%XXXX##X#+%%$XXH@#X$$$$XXX$X%%%+##///######//##+%%%#///;;/:/##X%/:##@H#XXXXXXX#/##+++++#//;;///--.--,-. ./;/
---,-//=::://////://++%%%%XXXX##$#+%X$$XH@HXX$$$$XXXX$XX%%%++%%%%++++%%%XXX%+////;//###X#//##@H#XXXXXXXXX$$XXX%%%#///#%##/////- -,://.
-/--//=://;/////:==://+%%%%%%XXXX#%/+%$$$X#@@#X$$$$XXXXXX$XX%%%XXXXX%XXX$$$XX%#/////###H#X#;#X@@#XXXXXXXXXXXXXXX$$X%#/+%X$%/////. .-///
,/:///::/;/////////////#+%%XX%%%$$XX#/%%X$$X#@@H#X$$$$XXXXXXXXX$$$XXXX$$XXXXXXX##;//#%X#@H#X#;##@@#XXXXX#XX$$XXXXX$$$X%+%X$X%+#//- .--
:////:::/;//////#%%%+####+%X$X%#+%%XX#/%%%$$$XH@@#XX$$$$XXX##XXXXXXXXXXXXXXX#XX#/://#XX#@@@#X#/X#@@@@#XXX#XXXXXXXXXXXXX%+%XXX%%#/-- .
. ///:/:::///###//#%%%%XX%%%XXXXX%//#%XX/#%%%XX$XHHHH#XX$$$$$XXXXH##########HH##X#/::/#XX#H@@@#X##X#@@@@@HHHH#XXXXXXXXXXXXX%%XXXX#/-.
. ////==:/;//++###%XX%%X$$$$$XX$$X%#//+X#/#+%%XXXX#H@@H#X$$$$$XXXXX###HHHHHHHH#X%//:::/XX#HH@@#X#/##@@@@@@HHHH#X$$XXXXXXX##XXX$X%#. .
////:::///##/##%XX$X%X$$$$XX$$XX$%#/##+#/#%%%$$$$XHH@@#XX$$$$$$XXXXXXX#HHHHH#XX#/::=/###HH@@@##//X#@@@@@@HH@#XXXXXXXXXX####XX$X#- .-;--
.///####$######/#+%X$%X$$$X$$XX$$X%%%X%#///#+%%%%X$XHH@@H#XXX$$$$$XXXXXX######XXX#/:=/##H#HH@@H##//X@@@@@@@@@@#XX%%%X$XX#HH#X#XX#-. ./:=/-
-;//#XX##H#XX%###%%%%%$XXXX$$$XX$X++%X%+#####%%%%%%XX#HH@@H#XXX$$$$$$XXXXXX#XXXX$%/::/###HHH@@HH#M:##H@@@@@@@@@#X$X%%%X$X#H#XXXX#/- -/:=/-
. ---///#XX#@@@#X$$X%%%%%XXXXXXXXX$%+#%XX%%%%#/#%%%%%%XXXH@@@@#XXXXX$$$$$XXXXXXXXXX$%/;/##HHHH@@@H#X##X#@@@@@@@@@@#X$$%%+%XXXXX#XX#/. -/://-.
. -//-//://%X#@@@##X$XX%X$$XXXXXX$X%%+#X##X%%#/;#+%X%%%XX#H@@@@H#XXXX$$$$$$$XXXXXXXX$%##X#HHHHH@@HX#X#X#HH@@@@@@@@@HXX$X%X$$XXXXX$#////,,/////-,-. .
. .////:////+%XX#@@@#$X$X%X$XX$##XX%%%+%X##$%%#:///+%%%+%XX#HHH@@HXXXXXX$$$$$XXXXXXXXXX$X#HHHHH@@HH##XXX#HH@@@@@@@@@#XX$XXXXXXXXX$X####///////,,,-. ...
,///////#+%%X$X#@@@#XXX$XXXXXXXX%++%%%X##$%#/:///++++++X$XHHHH@@#XXXXXX$X$XXXXXXXXXXXXHHHHHHH@HHHH#XX###HH@@@@@@@@HHXX$XXXXXX$X%%+#+++%#//---,,- ---
-/////##+%%%%%X$#@@@#XXXX%XXXXXX%#%%%%XXX$XM:///#+%%%+%%XX#HHH@@H#XXXXXXXXX$$XXXXXXXX#HHHHH@@@HHHHXXX##XX#H@@@@@@HH##XXXXXXX$$X%%+%%%%#//------- ---.
.-/--///+%%%%%%%XXX#@@@#X%X$XX%#+%%%%%%X$XXX/=////#+++#/#XX#HHHH@@H#XXXXXXXXXXXXXXXXX##HHHH@@@HHHH##XX##XXXXH@@@@@@HH#XXXXXXX$$X%%%%%%#//;/:///-- ----.
.,-.-//#+++%%%%%%%X$#@@@#XXX%###+%%%%%%X$XX#//:///+++++#%XX#HH#H@@HH#XXXXXXXXXXXXXXXX#HHHH@@@@HHHHXXXX##XXXXH@@@@@@HH#XXXXXXX$X%%X$X%#/////:::=/, -///-.
--.-///#++++%%%%%%%%XX#@H#X%%++#/#%%%%%X$XX#/:/;//#%%%++%X$X#H#H@@@HH#XXXXXXXXXXXXX##HHHHH@@@H@@@#XX+#XXX$$X#@@@@@@HH##XXXXXXX%%%$$%+#####//::=/, -/=/--
--.-///#++++%+++%%%%%+XX#HH#X%%#////%%%X$$XXM://///+%%%+++%%X#HHHH@@@H##XXXXXXXXXXXXHHHHH@@@@@@#M###X##XXX$$$#@@@@@HHH##$XXXX%+%%XXX%+%%%%#//;:=/- -/==/---....
.---/://++%%%%++#++%++++%X##H#XX#//;#%%%X$$XX##//##X$X$X%+%%%%XXXX#@@@HHH#XXXXXXXXXXXHHHH@@@@@H@#MMM###/%X$$$$#@@@@@HH#XXXXXX%%%%%%%%%%X$$%++//:=-. -:::/-,,,--.
...-////#+++++++++#///#+++%XX#H#XX#//#%%%%$XX#XX%%%XXXXXXXXX$X%XXXX#@@@@HHH#XXXXXXXXXXHHHH@@@@HH@#MM#M#M#%XX$$$X@@@@@HHH#XXX$%%%%%%%%+%XXXX%++#/:=-. .;:/:/,,-///.
..-////#++##++++++#////##+++%X##XX%+//+++%X$X##XXX$%%XXXXXXXXX%%XXXX#@@@@HHHHXXXXXXXXXHHH@@@@@H@#MMM#MM#XXXXXX$XH@@@@HHH#XXX$%%%%%%%+%XXXXX%+++//:/. ./:/:-,-////-
.-/://#++#///////////////#+#+%XXXXX++#+++%%$$X##H#XXXXXXX#####X%XXXXX#@@@HHHHH#XXXXXX#HH@@@@@H@@MMM@MMM###XX$$$XH@@@@@HHXXX$XX%%%%%+%XXXX$X%%%+////. -:::/-/////-
--/:://####//////;//////;;//#+++%XX$%%+++++%XXXX#H#X$XX###MMMM#X%X$$XX#@@@@HHHHH#####HHH@@@@@@@@MMMM#MMMM@HX$$$$XH@@@@HHH#XX$X%%%%%%%XXXXX$XXX%+#///- -:::--:////-
/;/:;/####//;///;;;;///;;;;//#+++%%X%%++++%%%$$XHH#$X####M###M#X%X$$$XX#@@@@HHHHHHHHHHHH@@H@@H@#MMM#MMMMM@HX$$$$XH@@@@@HH#X$$$X%%%%%XX##X$$$$$%%+#//- -/:/-//////.
####//#/////////;/;/://;;;;;//####/#%%+##+%%%XXXH#$$##MMMMMM#M#X%%%X$$X#@@@@@HHHHHHHHH@HH@HHH@#MMMM@MMMMM#@#$$$XXH@@@@@HH#X$$$X%%%XXX#HXX$$XX$%%%+//- -//--:////---..
XXXX$$%##//////;;;;/:::://;;;///////#%+#/#%%%$XX#XXX@MMMMMMMMM#XX%%X$$X#@@@@@@@HHHH@@@HH@H@HH@@MMM#MMMMMMM@#X$XXX@@@@@@HH#X$XX%%%%X#HH#X$$XXX$$%%%#//- .--,////:-----.
XXX###XXXXX##//;;;/::::=:://;;///;;;/#++//%%%XXX##XX@MMMMMMMMM##$$X%XX$X@@@@@@@@@@@@@@@@H@HH@@@MM#@#M####M#@#XXX#@@@@@@@HXX$XXXX%XX#H#X$$XXXXX$%%%%#//-. .--:///////--.
XXX#HHH###XXXX$##///::=::=:::::::/;;;/////#%%X$X##XX@MMMMMMMMMM#X$X%%%XXH@##@@@@@@@@@@@@HHHH@##MMMM@#@@###M##XX##@@@@@HHH#XX%%XXX$X##X$$$XXXXX$XX%%%#///-..////:::/-.
#XX#HHHH#H#XXX$$$XX##//:=/////////;//://;;/%%%$X##XX@MMMMMMMMMM##X%%$$XX@#MM@@@@@@@@@@@@@@@@@@@##M##@@MM##MM#@#H@##@@@@HH#X%%%%%XX#XX$$$XXXXX$X$$X%%+#////////://.
#X#H@@HH##XXXX$$$$$$XXX##/###XXXX##//::=://#%XX$XH###MMMMMMMMMMM#XX$$X$X@@MM#@@@@@@@@@@@@@@@@@#MMM#@@#M#@#MMM@H@#M#@@HHHH#X%%%%X$X#X$$$$XXXXXXXXX$X%%##//::/:-..--:::---..
X#@@@@@HHH#XX$$$$$$$$$$$%%%%XXXXXXXX#/:=/=/#%XX$X##@#MMMMMMM#MMM###$$%XXH@#MM#@@@@@@@@@@@@@@@#MMM#@@@@@@@#MMM###MM@@@HHH#X%%%%%X$XXX$$$XXXXXXXXXX$X%%%+///-.-//;//////:/-
XH@@@HHH#XXX$$$$XXXXX$XXX%%%%%XXX###X##///#%X$XXX#H@MMMMMMMMMMMMM##XX%%X#@#MM#@@@@@@@@@@@@@@@#MM#@@@@@@@@#MMMMMMM#@@@HHH#X%%%%%%XXXX$$XXXXXXXXXXX$XX%#/--//;///#/#///;::/.
X#HHHH#XXXXXXXXXXXXXXXXX$XXXX%%++%X#H#MX$$X$$$$XX#@@#MMMMMMMMMMMMMM##XXX#@#MMM#@#@@@@@@H@@@@@#MM@@@@@@@@@#MMMMMMM@@@@H#####/##%XXXXXXXXXXXXXXXXXX$##/--//:///////////;::/-.
X####XXX$$XXXXXX#XXXXXX$$$$XX%%%++#X#@@@@####XX$X#H@#MMMMMMMMMMMMMMMM###@@#MMM#@@@@@@@HH@@@@@MMM@@@@@@@@@#M#####@@HH#X$$$%//;#%XXXXX$XXX$XXXXXXX##/--//=::/;;//////;///:/:/-.
$XXXX$$$$$$XXX###XXXXXX$$$$%%%%+#//#X#@###@HH#XXXX#@@#M#MMMMMMMMMMMMMM###@@#MMM@@@@@@HHH@@@#@@@@@@@@@@@@@@@@@@@@@@HH#XX$$#/:;#%XXXX$$XXX$XXXXX##////::::://////////;/###///:/-
%$XXXXX$$$XX#HH#XXXXXXX$X$$%%%#///;/%XX@#M#@@HX%%XXHH@#MMMMMMMMMMMMMM#MM##@MMMM@@@@@@HH@@@#MMM@@@@@@@@@@@@@@@@@@@@HHHXX$$#;/;#%XXX$$$$$$$$$XX%#%+/;;/::::/- -////://++###//:/-
%$XXXX$$$XX#HH#XXX$$$$$X%%%%%#//:::/#%XX#@M##@X%%$XH##@##@@@M#MMMMMM#@@@@@#MMMM@@@@@@HH@@@@@@@@@@@@HHHHH@@@@@@@@HHHH#XX$X#;;;/#XXX$$$$$$X$$$XX%%%#/////;;//- -:////##+++///:-
X$XXX$$XXX#XXXXX$$$$$X%%%%%%#//:;;;//##XXH@#M##XX$XHHH@@@@@@@@@##M##@@@@@@@#MM#@@@@@@H@@@@@@@@@HHHHHHHHH@@@@@@@@@HHH#XX$$%#///#XXX$$XXXXX$$$$XX%%+#//////////- .-////////:/-.
XXXX$XXXX##XXX$$XXXXX%%%++##///-.-/////+X#H@#M##$XX#HH@@@@@@@#X#@@@@@@@@@@@MMM@@@@@@@@@@@@@@@@HH#H#HHH#H@@@@@@@HHH@HHXX$$X%+##%XXX$$$XX$$$XX$$X%%%#//////#+#///:--. --:;///--.
XXX$$XXXXXXX$$X%%%%%%%%%#////--,//##XXXXXX#H@#M##XXHHHH@@@@@@@#X#@@@@@HH@@@#M#@@@@@@@@@@@@@@@@H##H#HHHHH@@@@@@@@HHHHHXXX$X%##+%XXX$$$$$$$$$$$$XX$%+/////#++%%%#/M#//--. ....
XX$$XXXXXXX$$X%%%%%%%%#//::///;#########@@@@@@MM@#X@@HHHH@@@@@@#XX@@@@HH@@@@#@@@@@@@@@@@@@@@@H#X#HX###X#H@@@@@@HHHHHHH#XXX%+%%X$XX$$$$$$$$$$X$$X%%#//////#+%%+##+%%##//-
$$$$XXXXX$$$$X%%%%%%%#//=://##XX##@H##H@####@@#M#H#@@@@@H#@@@@@@XX#@@@HH@@@@@@@@@@@@@@@@@@@@@H#HHHH##HHH@@@@@@@HH@@HHHHXX$%%%%X$XXXX$$$$$$$$X$X%+#//////;//+++++%%%%%%#//.
$$$$$$$$XXXX%%X%%%%##/////;;////;/:://;/$#@@@@#M#@H@@@@@@XX#@@@@#X#@@@@H@@@M##@@@@#M@@@@@@@@@HHHH##HHHHH@@@@@@@@@@@HHHH#X$$XX$$$XX%%$$$$$$$$$X%%%#/;/:::/;/##+++%%%%%%++//. ..---
%$$$$$$XXXX%%%%#M#/:,. .---=::://;#X#@@#@@#@@H@@@@@@#$X#@###@HH@@@H@@@@@@@@@@##@@@@@@@@@HHHHHHHH@@@@@@@@@@@@@@HHH@H#XX#XXXXX%%X$$$$$$$$$XX%%+//;////;//#+++%%%%%%+#//----///
%X$$$$$XX%%###//-. .-.--//:::::;#X@@M#@@@@H@@#@@@@@XXX@@MM#@#@@@H@@@@@@@##@M#@@@@@@@@@@HHHHHH@@@@@##@@@@@@@@HHH@@H#XXXXXX%%X$$$$$$XXXX$X%%+#//;;;;;/##+++%%%++#//:///:////
X$$$$$$X%##//::/;--. .---/-/=::=:::/#M#X%%###@@@#M#@@##@XXX@#M#@@HHHH@@@@@@@MMMM@@@@@@@@@@@HHHHH@@@@@@@@@@@@@@@@@H@####/;/#XX$$$X$$$X$$$XXX$%%%+#/;;;;;//#++++++##://://####//
$$$$$X%%%++#;////////-..-,/=/==:=:::=:/X##%+%X@MMMMMM#@@##@@#X#@#MM#H#XXH@#@@@#MMM#@@@@@@@@@@@@HHHH@@@@@@##@@@@@@@@@#X#/;;;;;;#%XX##XXXXXXXXXX$X%%+#;;;;;;///######/==:/##%X%%%#-
$$$XX%%%%+#/;;////////;--//:/=:::::////#XX##%X@#@#####@@#X@@@#X#@#MM#@##H@#@@@#MMM#@@@@@@@@@@@@H@HH@@@@@##@@@@@@####/;;;;;;;;;/%XH##@#XXXXXXXX$X%%#//;;;;;////////::://#%%%%++#/-
$X%%%X$X%#////#%%#//;;/////=://////////;/M//%X#@X##//###XX@@@H#XH@MMM#@HH@@@@@#MMM@@@@@@@@@@@@@@HH@@@#@@#@@@@###//;/;;;;/:/::;//%X#@@H#XXXXXXX$%%%+#//;;;///////://;;#%X%%#/////,
X%XXX$X%+####+%%%#//;///#M#/;///////#%##//;/XX#//;;/::///###@HH#H@#MMM@@HH@#@@#MMM@@@@@@@@@@@@@@@@@@#M#####@##/;;//::::/::://;;//#X#HHXXXXXXX$$X%%%#//;;;/////:/#+#//#%%%#///;;/.
%XXXX$%%+##+%XX%+//://#+%%X%%##%%##/#%X%#/:#XX#;///;;////;;#X#@@H@@MMM#@@H@@@@#MM#@@@@@@@@@@@@@@@@@@#####X#//;;//:::::::::///;;;//#XXXXXXXXXXX$$X%%+#/;;;//////#+%+/////////:://
XXXXXX%%%#/#M#####//=//####++XXXXX%+%XX#///#X#X/::::/;;;;;;;#X#@@@@#MMM#@@@@@#MMMM@@@@@@@@@@@@@@@@@@MM##X+//;;/:::::::::::::::/;;;/%XXXX###XXX$$$%%+#/;/////##+%%%#///---////----,.
##XXX%%X%//:/:::///:=:;///#%XXXXXXX%##/////X##X/:::::://;;;;/%#@@@@@#MMM#@@@@#MMMM@@@@@@@@@@#M@@@@@@MM@X#///;/////::::::::::::/;;;/#%X#HHHH#XXX$X%%+///::/##%%%XXXX//-,---/////////-
HHXX%%X$X#////M#/;////;;#%XX#HHH##X#///////XH#%/::::::::;;;//%X@@@@@@MMMM@@H@#MMMM@@@@@@@@@@##@@@@@#M##%#/;;;;;/::::::::::::::/;;;;#%X#@@@HH#XX$%%##///M#XXXXXXXXXXX##/;/////;;/////
H#XXX$XXXX##XXXXXXX//;/#X##@@##X#+#+#//::/MXHX#/::::::::/;//#%X#@@@@@#MMM#@@@@MMMM@@@@@@@@@@###@@@@##@X%/////;;//:::::::::::::/;;;/#%XXXXX#XXX$X%%####%XXXXXXX#XXXXX#XX$$$$$X##//##/
#XXXXX#H@@#########/##X##@@@#XXX%%%#/:;//##H#X#/:::::::::;//#+X##M####MMMM@@@@MMMM@@@@@@@#MMMM#@@@@#M#X%##///;;/:::::::::::::::/;//#%X####HHHH###XXXXXXX#H#X#XXXXXXHHHHH######XX%#//
X$$XXHH@@@@HH######XXXX###XX$$X%##//////##HHXX/:===:::::/;//#+X##MMMM##MMM####MMMM#####MMMMMMMM##@@@@#X%##//;/::::::::::::::::/;;//#%$XXXXXXXX####XXXX#HHHH##XXXXX#@H@@@@H@@@HHXXX##
$$X#HHHH##M#X%%X$XXX#M########M//M##///##HH#X#;::==:::::/;//++X##############@#@@@@##############@##X#//;;;;/:::/:====::===::::/;;;/%XXXXXXX$X$XX$###XX$###$$XXXXXHH@@H@@@@@@H##XXXX
$X#H###XXX%#+%####//--/=///:;##++++#/###HH#X#//:::=:::::/;//#%XXXXXXXXXXXXXXXX###HH@@@@@@@@@@@@####//::::::::::::=:::=::==:::///;;;/#%XXXXXXXXX%+#////;//////#+%XXXXXXX#####HHHHHXXX
XXXXXXX%%#///;;::::=-,--/://#%%%+++##X#HHH#X#/:::::::::/;;/#+%XX#XXXXXXXXXXXXXXXXXX##HH@@@@@##X##/:://----//=:::::==:::::::::/;;;;;;#%X%%+++#///////::///////#+%+%%%%XX$XXX##HHHH#X$
XXXX%%++++###/;:=/---,--:////#+++#//#X@HH#XX/:=::::::::/;;//+%X###XXXXXX$XXXXXXXXXXX####H##XX##///-----...---/::::::/:::::::::/;;;;;/+XXX%%#/;;/=/----///:////##%%%%%XXXX$$$XX##X$%%
XXX%++++%+#///:::/--/---/:/;/##+###//XHHH#X#/:==:::::://;;//+%XX#XXX$XX$$$XXXXXXXXXXXXXXXX%#///-,,-,,--. ..-/::::/;;/::::::::/;;;;;/+%%$$%+/;//-,-..-,---//=::///##%XX$$$$$XXX##//#
X%%+++%%##///:/:::/-,-,,-/::///###/-/#H#XXX#:====::::/;/;;//+%XXXX$X$$$$$$$$$$$$$$$$XXXXX##//-,,,,,,.... .,/:::/;;;/::::::::/;;;;;/+%%%%%%////--...,---====:://;;;//####$$$X%##///
%%%%##/###+#/;::=//----,-/:::;/##/- /###XXX/:////=:::;;/:;//+%XXXX$$$$$$$$$$$$$$$$$$$X%##/:---,-,,-..... .-/::/;;;;;/:::::::://;;///#+%%%%#//=--...-,--/===://;;;;;;//::://;/#M#//
%%+###%###/;///::=/---..-,/::/###/ -#XXXX#:=----/=:://;;;//+%%$XX$$$$$$$$$$$$$$$$$X%%#/://-------.. .....,/:://;//;;/::::::::/;;;/#%X%%%%#///--...-,--/===:::;;/;;/::/==/--/=///:
%++%%++#///;:::==/-,,-...,-::///- ,#XX$#/=/----//=:::/;;//+%%$XX$$$$$$$$$$$$$X$X%%#///---........... ...--/:::/:::/;;;//::://;;;//#%%%%%%#//:------,-//////:://;;//:://---/://///
%%%%++#//////::==/-,.....--///- -/X$X#:/-------/=::/;;;/#%XXXX$X$$$X$$$$$$X%%%#//:=/-,...............----=::::::::;;/::::/;;;;///%XXX%%#///=-,,,,--/===////::::=::///::::=:/;;//
%%+++++##////:://------,--,-. .;X$%/:==/------=::::;;;##XXXX$$$$X$X$$XXX%%##/://--,-. .........--.-,--===:::=::/;;;;////;;;///#%XXXXX##/;/:///////::===:/;;;///////::::/=:::::
%%++++#///;/:====//----. .;XX#/:==//---//=::::::/;/#XXX$$$$$$$$X%%%##;:/------.......-.-.-,,--,--==:====::/;;;;/////////#+%XX#//://////--;;///::::;;;;;;;;;;;///://-/////
%%+++#//;;;;//;--.. .;X%/:======--///===::::/;//#XX$XX$XX%%%##/////---.....-....--,-.,-,,--/=:::==::/;;;;/////////#++%XX/:=/-----,,,,,,,,---///;;//;/;//;;;//://////
%+++///;////--.. .;%#/:==/==//-----/===:::///;/##%XX%%%##//:=/---,......------,--,,----/=====::///////#++++##++%%%X$%/:==-------,,,,,,,,---,-----://///////:==:::
+++/////--,--... -;%#/:=/-//==///---/=====::::///#+%%##;//://--,,,-....-,,,,-.-,-,,,-/===::::/;//###++%%%%%%++%%XXXX%/:==----,----,,,,---,,-... .--/::;//::::
+#/;//-,,,,,,-... . ,;+/:=/--/=//==/////=/====:::://#++/////:/--,,,,,,,,,-,,,,,,--,-----/:::::////#+%%%%%%%X%%%%%%XXXXX%/:===/-----,-------,,,,... .-:/
///--,,,,,,,-....... -/#/==----/===///===/===/==://#+##/;/::=/--,,,,,,,,,,,,,,--,,-,,----=://///###+%%XXXX$$$%%%%XXXX#H#%/:===--------------,,,,,-..
/------,,,,,,-...... -/#/:=--//==/==/==/--//=/:://##///::://--,,,,,,,,,,,,,,--,,,,-,,---/=///##+++%XX$XX$$$$$XXXXX##H@@#X/:===----------------,,,-...
---------,,,,--..... /##/:===//---/===/-/=/==://////:=///=/--,,,,,,,,,,--,,,,,,,,-,,,-==:://+++%%%X$XXXXXXXXXXXXX#H@@#M#$/::==/---------------,,,-...
---------,,,,,,,.... /##/:::==/---==//--/=:///;;/::::==/------,,--,,,,-,------,,,----/::///#%+%%X$$XXXXXXXXX###@@@##MMM#%//:===-----------------,,,-....
--------,,,,,,,,-.... ./##/::::=//--/==//:://;;;/://---///----,--,-,,,,,,,,,----,------/:/;/#++%%X$XXXX##HHHH@@M##MMMMMMM#%//:====/---------------,,,,....
----------,,,,,,,.... ./X%////:::=/-/==://;;//::=/-----------,,,,,,,,,,--,,,,------//-==:;//++%%%$$XX#@@@@@##MMMMMMMMMMM##%//::=====/--------------,,,.......
=/--------,,,,,,,-..... -/X%#;;;/::::/:;/;;;/::=/-//--------,,--,,,,,,,,,,,,--,------==/=:////++%%XXX#@#MMMMMMMMMMMMMMMM##@#%//::=====/---------------,,---......
==/---------,,,,,,-..... -/XX#/;;/:/;;//////::=//-------,,,-,,,.-,---,,,,,,,----------=::::/;//#%%X$X#@#MMMMMMMMMMMMMMMMM##@#%/;::=====----------------,,,,-......
==/--//------,,,,,,.--... -#XX#////////////:==/--------,,,,,-.-,--,,..-,,,-,,----/=/--====:::/;/#%%$X#@MMMMMMMMMMMMMMMM###@@#X%/;::====//----------------,,,-........
====/----------,,,-....... ./##X%+##+##//::=//-----------,,,,,,-,,,,,,,,,,,,-------/==//====//::;#%%XX##MMMMMMMMMMMMMMMMM##@##XX%/;/::======-------///-----,,,-.........
=====/----------,,,-...... ./##XX%+##//:=///---,--,,,,,,,,,,,,,,,,,---,,,--------///====//----///#%XX#@#MMMMMMMMMMMM#M#@@#@#XX$X%/;/::======///=======------,,--.--,,-...
=====/-----------,,-....... -/##XX##/::=/-------,,,,,,,,,,,,,,,,,,,------,------/======/----,,-=//%XX##MMMMMMMMMMMMMM#@@@@@#XXX$X%/;/::================------,,,,-.-,,-...
=====/-----------,,,,,-.... ..---//%X#//:===/--,--,,,,,,,,,,,,,,,,,,-,,,,---------/=========/------///#%X#@MMMMMMMMMMMMM###@@@@#X$$X$X%#;/::::=============------,,,,,-.-,,,...
======/-/=/-------,,,,,-....----//:///:====//---,--,,,,,-,,,-,,,,,,,,,,,,,---------===::::::=/------:/#%X#@#MMMMMMMMMMMM#@###@HXX$$$$$$%#;/:::::===========/--------,,-..-,,.......
::======//----///---,,,,,---//===::=====//------,,,,,,,,,,,,,,,,,,,,,,,,,-----//--/===:::::==/-----//#%X#@@###MMMMMMMMMM#@@@@HXXX$$$$$$%#/;:::::============---------,,,-,,,........
::=====////--/===/----////::============/------,,,,,,,,,,,,,,,,,,,,,,,,,,----/=======::::::/-----/://%XXH@@@@@##MMMMMMMM###@H#X$$$$$$$$%#/;//:::::::============//---,,,,,,,,-......
:==================/=::::::::=========//=-----,,,,,,,,,,,,,,,,,,,,,,,,,,,----/======::::::=/----/=//%XXH##MM##HH@@#####@#@@@#XXX$$$$$$$%#/;;::::::::==============/--,,,,,,,,,-.....
:::=:=====::=====::://::::===//==//==//=/-----,,,,,,,,,,,,,,,,,,,,-----------======:::::====/-//=:/#X###X%###XXX#H@@@@@@@@@H#XXX$$$$$$$%+/;;:::::::===============/--,,,,,,,,,,-....
::::::::::::::::////;::::===========/--/-----,,,,,,,,,,,,,-,,,,,,---------//===:::::::::==/=//=://#XXH#X%#////###$X##@@@@@#XXXXXX$$XX$$X+/;;/:::::::::::========/-----,,,,,,,,,,----
:::::::::::::::://///:=::===========/--------,,,,--,,,------,,------//-//=====:::::::::======:///#X###X##/////////###XX##HXXXX$$$$XXX$$X+/;;;;/:::::::::::::====/---,,,,,,,,,--,,,,,
:::::::::::=:==:/;/::================---------,---------------------/=======/=::::::::=::==::///#XX#XX#///:/;;;;///;//##XXXXXXXX$$$$X$$X+//;;//;;/::::::::::======---,,,,,,-----,,,,
::::::::::::==:::::::===//=========//---------------//-/-/=/////-//====::::==::://::::=::::///#%X##X#//::::://;;;;;;;;;;/##%XXX$$$XX$$$X+//;;;;;;;;;/////::::====/--,,,,,,-------,,-
::=:::::::::::::::::====//=========--///------------==/=/-===========::::::::::/;/::::::::/;##%X#H#X//::::::::::/;;;/;;;/////###$XX$$$$X%#/////;;;;;;;;;;;:::===/--,,,--,-----------
::=:::::::::::::::::============/==---===/-------============::::::=:::::::::/:;;;:::://;;/#%%X#H#X#/:::::::::::::/;;;;;;;;;;;;;//M##%XX%%++##///////;;;;:::===/--,,,,--------------
:===::::::::::::::::======///====/=/=========/-/============:::::::::///::/;;;;;;;:::/;///#%XX#H#X#/:::::::::===::::/:////////::::///;/#MMMM###+++##///;/:::===/-----------------//=
::==:::::::::::::::=======/=/====================::==:==::::::/:::::/;;;;;;;;;;;;///;///#+%XX#H#X#/:=============::::::::::=//----,,-----///://;/##++#/;/:::===---------,,------/===
:::::::::::://:::==========/-/==================:::::::::::://;;::::;;;;;;;;;;;;;;;;//#+%%XX#H#X#/====///=///=====:::::::==/---,,,,,---,,---/----///###/;/::==/--------------///====
:::::::::::://::============//=======:====:::::::::::::::::;;;;;;;;;;///;;;/;;;;;///#+%%X$X#H#X#/:=====//--//=======:::===/-----,,,---------/--,,,,-////;/::=/---------------/=====:
::=::::::::::::==================::==::::=:::::::::::////;;;;;;;;;;;;//;/;///;;///##+%X$XX#HH##/:======/---/============------------,,,----------,,,--/:::::=/---------------====:=:
::::::::=:::::========:==========:::::::::::::::::::;;;;;;;;;//////;;///////////#++%%XXX#H@H#X//:========/--====:=======////----------------------,,----//==/----------------====:::
:::::::==::::====================:::::::::::;/::::/;;;;;;;;;///////////////////#+%%X$XX#HHH#X#;::=========/-///========:====/-----------////--------------//-----------------===:::/
::::::===:::==================:=:::::::;/::/;;//:/;;;;/////;/////////////////#++%%X$X#H@@H#X%//:::::====//=---/==============///--////=====/-----------------//-////---------===:::/
::::::===::=========:::=::::==:::::///;;;;;;;;;;;;;;////////////++#/////#+++++%%X$XX#H@@@H#X#/;/::::::==/===/-==============================/----------------/======/--------====::/
::::::::::======:==::::=:::::=::::/;;;;;;;;;;;;;;;;//////////##++++#//##+++%%%XXXX##@@@@HHXX+#/;/:::::=======/========//=====================///--///-------========/-------/====::/
:::::=::::====::==:::::=::::::::::;;;;;;;;;;;;;;;;;//////#//#++++++/##++++%%XX$XX#H@@@@@H#X%++#/;/::::::=============/--/===============:========/===/==////=========////--//====:/#
::::==:::=====:::=:::::==::::::///;;;;;;;;;;;;;;///////##++++++++++#+++%%%XX$XX#HH@@@@@@H#X%++#//;:/:::::::::========================:::::::::==================:===========/====:/#
::::::::::::=::::=:::::==::::://;;;;;;;;;;;;;;//////##+++++++%%++++++%%%%X$$XXHH@@@@@@@@HHXX%%%#/;;;;;/::::::::::::::::::::::::===::::::::::::::=====::=::::::::::===============:/#
:::::::::::::::=====::::::::/;;;;;;///;;;;;;///////#++++++++%%%%+%%%%%%X$XXX##@@@@@@@@@@HHX$X%%%+#/;;;;;;;;/////;//:::::::::::::::::::::::::::::::::::::::::::::::::=::=========::/+
::::::::::::::======:::::::::;;;;;;////;;;/////////+++++++++%%%%%%%%%X$$XX#HH@@@@@@@@@@@HH#X$X%%%+#/////;;;;;;;;;;;///::::::::::::::::::::://:::::::::::////::::::::::::======:=::/%
::::::::::::=========:::::::/;;;;;;;///;;;//////#+++++++%%+%%%%%%%X$$$XXX#HH@#MM#@@@@@@HHHHXXX$$X%%+#///////;;;;;;;;;;//::/;:::/::::::::::/;;/;//:::://;;;;;;;;;/::::::::=====:::/#%
::::::::::::===========::::::;;;;//////;//////#+++++++%%%%%%%%%%XX$$XXX#HH@@#MMMM#@@@@@HHHHH#XX$$X%%+#///////;///;;;;;;;;;;;;;;;//:::::::/;;;;;;;/;//;/;;;;;;;;;;;/::::::::====::/#X
::::::::===============::::::/;;;///;////////#+++++++%%%%%%XX$$$$$XXXX#HH@#MMMMMMM#@@@@@HHHHH#XXX$X%%+++###///////;;;;;;;;;;;;;;;;/:::///;;;;;;;;;;;;;;;;;;;;;;;;;;////::::===:://%X
::::::::===============::::::/;;;;;;;;;//////#++++++%%%%%%X$$$$$$XXXX#HH@#MMMMMMMMMM#@@@@HH#####XXX$X%%++++#////////////;/////;;;;;;//;;;;;;;;;;;;;;;;;;;///;;;;;;;;;;;;/:::==::;#%X
::::::=================::::::;;;;;;;/;;/////+++%%%%%%%XX$$$$$XXXXXXX#H@@#MMMMMMMMMMMM#@@@HH#XXXH#XXX$X%%%%++##//#//////////////;;;;;;;;;;;;;;;;;;;////;;;/////;;;;;;;;;;;:::==:/;#XX
:::::===================:::::/;;;;;///////#++%%%%%%%%X$$$$$$XXXXXX#HH@#MMMMMMMMMMMMMMM#@@@HH#XX##XXXXX$X%%%%++##+++#////////////;;;;;;;///;;;;;///////;;/////////;;;;;;;;/::::://#XX
:::::=================:::::::;;;;;;;/////#+++%%%%%%X$$$$$XXXXXXXX#HH@#MMMMMMMMMMMMMMMMM##@HHH#XX#XXXXXX$$X%%%++++++++#/####////////;;/////////////////////////////////;;;;/:::://%XX
::::=================::::://;;;;;;;;////#+%%%%%X$$$$$$XXXXXXXXX#HH@@#MMMMMMMMMMMMMMMMMMMM#@@HHH#XXXXXXXX$$X%%%%++++++++++++###///////////////////////////////////////////;;:::/;#%XX
::::=========/======::::::/;;;;;;;;///#++%%%%%X$$$$XXXXXXXXXX##HH@@#MMMMMMMMMMMMMMMMMMMMMM#@@HHH#XXXXXXXX$$$XX%%%%%%++++++++#++##////////////////////////////////////////;;/:://#XX#
::::::======/-=====::::/;;;;;;;;;;///#+%%X$$X$$$$$XXXXXXXXXX#HHH@#MMMMMMMMMMMMMMMMMMMMMMMMM#@@HHHH#XXXXXXXX$$$X%%%%%%+++%%%++#+++##///##///////;/////////////////////////;;/:/;/%X##
/::::::====///====:::/;;;;;;;;;////#+%%%X$$$XXXXXXXXXXXXXX#HHH@@#MMMMMMMMMMMMMMMMMMMMMMMMMMM##@@HHH#XXXXXXXXX$$$XX%%%%%%%%%++++++++#///////////;/////////;///////////////;;;/;;#XX##
;/:::::========:::::/;;;;;;;;///###%%XXX$$$XXXXXXXXX##XXX#HHH@#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#@@HHH#XXXXXXXXXX$$$XX%%%%%%%%++++%+++####///////////////;;;;;;;;;///////;;;;;;;/#XXH#
/;/:::::::===:::::/;;;;;;;////#+%%%%$$$XXXXXXXXXXXXXHHHH#HH@@#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#@@@HH#XXXXXXXXXXX$$$X%%%%%%%%%+%%%+++++++#////////////;;;;;;;;;;;;;;;;;//::/;;/%X#H#
Фото после преобразования программой ASCII Pic
|
Применение
Помимо «чистого искусства» (рисунка ради рисунка), аски-арт часто используется в оформительских целях у варез-групп, у демомейкеров. Варезные группы обычно включают файлы .nfo в своё программное обеспечение, креки или другие нелегальные релизы. Такой ASCII art обычно включает имя варез-группы и, возможно, несколько ASCII картинок. Примером такой группы является Echelon.
Аски-арт часто используется для оформления 1-2-3-строчной подписи в электронных письмах. @}->--- изображает розочку, *,…,* изображает оскал.
Во времена BBS аски-арт использовался для графического оформления оных, так как применять другие виды графики возможности не было.
.=.,
;c =\
__| _/
.'-'-._/-'-._
/.. ____ \
/' _ [<_->] ) \
( / \--\_>/-/'._ )
\-;_/\__;__/ _/ _/
'._}|==o==\{_\/
/ /-._.--\ \_
// / /| \ \ \
/ | | | \; | \ \
/ / | :/ \: \ \_\
/ | /.'| /: | \ \
| | |--| . |--| \_\
/ _/ \ | : | /___--._) \
|_(---'-| >-'-| | '-'
/_/ \_\
|
,-="""=.
.' `.
( `.
`. `..
,' .'
`. '.
`-. `-.
) `=-.
.' `=-.
.` .`-.
_ ( \ `-.
,' `. `. /`. \
/ `. \ | `. `.
,' `. ) / \ \
/ .'`. `. ) | `. \
,' .' `. `./ \ `. \
,' .' `. \ \ \
,' .' `. \ `. \
,' .' `. ) ) (__.
,' ( `. ) `."""'
_.-' __) `. .
`""'"" `"""""""
|
Интернет ресурсы
|
|