Hello...
I'm David Sheppard, you can email me david 'at' art-pod.co.uk, on twitter I am @artpod.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;:;:::;;;::::::........`..`````````````````````````````````````````` `                  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:;;;:;::::...`....``.````````````````````````````````````````````  ``````          
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;+#;;:::::::...```.``````````````````````````````````````````  `                     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;::;+#++++;;;::::::...`...```````````````````````````````````````````````                   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;'+#++++++++';;::::::,..``.....```.```````````````````````````````````````````` `   `         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'++++++++++++++';::::::::..``....``.`````````````````````````````````````````````` ` ` `         
';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+++++++#++#+++#+++';;:::::::..```....`.``.````````````````````````````````````````````      ` `     
;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++###+:;+++++;::::::::..```...`...`.``````````````````````````````````````````   ````     ``  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++##':::::;+++++;::::::;:..````.```...```.```````````````````````````````````````.....`````   ```
;;;;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'+++++++++++++##+;::::::::::+++++;:::::;;:....``...`..`````````````````````````````````````````..........```` `` `
;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'++++++++++++#+#+;::::::::::::::+++++;::;;;::''';;;';::...`.`````````````````````````````````````..`........`.```    `
;''';;'''';;;;;;;;;;;;;;;;;;;;;;;;;;;;'#++++++++++++##';::::::::::::::::::+++++;;;;'''''+++#+#+++:,,`.`.``````````````````````````````````............`.```    `
;;;'+''''';;;;;;;;;;;;;;;;;;;;;;;'++#++++++++++##+';::::::::::::::::::::::++++#;;';''#+''';+''+#'+'',,...`.``````````````````````````````,..............```    `
+++++''''';;;;;;;;;;;;;;;;;;;;++++++++##++###+;::;;;::::::::::::::::::::::+++''##'';+#;;++;''+###++''+'.,..`````````````````````````````..,...........`..``  ` `
'''''';;';;;;;;;;;;;;;;;;'+##++++#+++#+##+;::;::::::::::::::::::::::::::::+++++++++###'+++++#++###+#+##+':,.``````````````````````````..,,,...........`..`   ```
'';;;';;;;;;;;;;;;;;;;+#+++++##+++##+'::;;:;::::::::::::::::::::::::::,:::++++#+##'###+##+#####++#######+++..,```````.``````````````....,,,....,...``.:.' `` ```
;;';;''++;;;;;;;;;;;;;##++++##+##';:;;:::::::::::::::::::::::::::::::::'+'++######'#+#@+####+#++###'#+###+#':`.`````.`..```````.`....```.,,,,,,.,,,.``....`` ```
;;'++++++;;;;;;;;;;;;;######+';:;::;:::::::::::::::::::::::::::::::,,:;+#'+#########@#+###+++'++#+#'+##+#+#++',`........``````....```````.,,,,,,,,,.`.`' .   ```
+++++++++;;;;;;;;;;;;;###+;;;:;:::::::::::::::::::::::::::::::;;:::,''##+#++#@##+#++'##+++#@#++###+####+#####++......`...```.``````````````,,. ````.`,``   ` ```
++++++++#;;;;;;;;;;;;;###+;;:;::::::::::::::::::::::::::::;;;;;;:,:'+##++#'+##++++###++#++########+#+++#++####++:.......`....````.`````````..` ````.``.` `` ````
+++++++++;;;;;;;;;;;;;###+;;::;:::::::::::::::::::::;;;;;;;;:::;;';++++++++++'#############+############++#####++:,........````````````````.` `````.````   `````
#++++#+++;;;;;;;;;;;;;###+;;::::::::::::::::::::;;;;;;;;;;;;:::;;'#+######+#####++###+####++#########+++########++:..`..`.````````````````.`  ``````````````````
+++++++++;;;;;;;;;;;;;###+:::::::::::::::::;;;;;;;;;;;;::::::::'+#+##+#'+##########++########++#########++#######++:.......```...`````````.. ````````..`````````
##+++++++;;;;;;;;;;;;;###+::::::::::::;;;;;;;;;;;;;;;;;:::::::;+######+###++++'####+++++##+#+###########@###########'.............`````,`; ,`.``...,,`..`.......
+++++#+++;;;;;;;;;;;;;#+#+::::::::;;;;;;;;;;;;;;;;:;:;:::::::;'+###++++++++++++++++#++++++###+##+####+#############++,...........`..`.``, ..`............,...,,,
####+++++;;;;;;;;;;;;;#+#+::::::::;;;;;;;;;;;;;''''':;::::::;;+++####+++++++++++++++#+++++++'#++#++++++#####@########',,.........`.....`.,`.....,,,....`,,,,,,::
+++#+++++;;;;;;;;;;;;;#+#+::::::::;;;;;;;;;;;+''''+'+;::;::;'''++++;+'+++++'+++'''+'''''';;;:'''+'+''++##############+:,.................`.,..,,,,,,,,,`,,,:::::
+#+++#+++;;;;;;;;;;;;;#+##::::::::;;;;;;;;;''';+++';';:;::;''++####'''++'''''''';';;;::,,::,,,,''''';''++++##@#####+##';,..................,,,,,,:,:#@:::::;;;;;
+#+##++++;;;;;;;;;;;;;#+#+::::::::;;;;;;;;'';''+';'';:;;;:;'#+++##';;;:::;;;;;::::,,,,,.,.,,..,,::::;:;;'''+####@#######:,..............,,,,,::::::#@::;;;;;';';
+##++#++#;;;;;;;;;;;;;+###:::::::::;;;;;;'''+;;#''';;:;;;;;'++###+';,,,,,.,,,,..................:,,.:,:,;;;;'+###@@#@@+##;...........,,,,,::::;;;;'#@;'''''@#'''
#+#+#++++;;::;;;;;;;;;#+##:::::::::;;;;;;;';;''++++;:;:::;'+#####':,,.........``..`.````````....,,,,..,,,:::;'+#########+',......,,,,,:::;;;;;''';@#+'+''+@##+++
+++++++++;:::;;;;;;;;;#+##:::::::::;;;;;;;';;;+++#+;;':;;''#@+++':.,...........````.```````.......,......,,,,:;'+##@####++:,,,,,,,::::;;;;'''++''+#@++++#@##++++
+##+#++++;:::;;;;;;;;;#+#+:::::::::;;;;;;;';';';+';::;:'''+'++'':,...........``.`````````````............,,,,,,:'+###@####':::;::;;;;;''''+++++++####++##@++++##
++++#++++;:::;;;;;;;;;##++:::::::::;;;;;;;;;;;;;';:;::;'';+#+++:,..........`````````````````............,..,,,,::''+#@####+:;;'''''''''++++++++++'+##@@@#+++++#@
+##+#++++;:::;;;;;;;;;##+#:::::::::;;;;;;;'';;::;'::::'+'+###+:,.,........```````````````````.............,,,,,,:;;'+#@###+;:,:,;+++++++###++++++''#@#@+''''''##
#####++++;:::;;;;;;;;;#++#:::::::::;;;;';;;:;;:;::::::'+'++++;,..........````.`.```````````````...........,,,,,,::;;++######,;.::+++++++##'+##++''+#'@#''''''''+
#####++##;:::;;;;;;;;;#++#:::::::::;;;;;;;;;;::::::::;''+#++;,............````````````````````.`..........,,,,,::;:;'++@@##+;,.,,+#######+''#######@+@#''''+###'
######+#+;:::;;;;;;;;;#++#:::::::::';;;;;;:::::::::::;+'#+';;,,,..........```````````` ````````.........,,,,,.,:::;;''+#@##+'.,.:'########++#####@@@@@++#+;:,,,,
@#@@####+;:::;;;;;;:;;#++#:::::::::;;;;;;;::::::::::;''++++':.,.,........`.```````````````````.```.......,,,,,,,:::;;''#@###+'..,;+'@#@@@##@##@#@@@#;,,,,:,::::,
@@@@@@#++;;::;;:;;;;;;#++#:::::::::;;;;;;;:::::::::::'++##';:,.,..........`.```.....````.````````.........,,,,,,:::;;''+#####;,,,;+##@@@@@@@@#':::::::,:,,,:::,,
@@@@@@###;:::;;:;;;;;;#++#:::::::::;;;;;;;::::::::::;'##++';:,,.,,.......`.```.......`.`.`......`.........,,,,,::::;;;'+#####',,,;++@@@@+:,:::::::::::,::,,,::,:
@@@@@####;:::;;;:;;;;;+++#:::::::::;;;;;;:::;:::,,,,;+###+;:,,.,............````......`..`..``....`.......,,,,,,::::;;''+++##+.,,;';:::::::::::::::::,:':,,,,:::
@@@#####+::::;;;;;;;;;#++#:::::::::;;;;;;:::,,,,,,,:;+##++':,,,.............```````````````````.`......,.,,,,,,,:::;;;''+++##+';::::::::,::::::::::::,,;,,,:,,,,
@@@#####+;:::;:;::::;;#++#:::::::::;::::,,,,,,,,,,,:'##+++;:,,,..,.......`````````````````````````......,,,,,,,,:::;;;;'++#+#+'::::::::::::::::::::::,,:,,,,,,,,
@@@@@@#++;:::;:;:::;;;#++#::::::::::::,,,,,,,,,,,,,:'+++++;,,,..........```````....````````````````......,,,,,,:::;;;;;'+##+#'+:::::::::::::::::,:::,,:,,,,,,:,,
@@@@##+++;:::;::::::;;#++#:::::::::::,::,,,,,,,,,,,;'+##+;;:................```..``..`...`..`````.......,,,,,,:::::;;;;'+##+@#+;::::::::::,:::::,:,,,,,,,,,,,:,,
@@@@+++++;:::;:::;::;;+++#::::::::::::,,,,,,,,,,,,,,'###'+;:,.............``````````..`......`.`..........,,,::::::;;;;'+##'##+;:::::::::::::::,,:,::,,,:,,,,:,,
#@@##++++;:::;:;;::::;+++#:::::::::,,,,,,,,,,,,,,,,;+##+++;,,,..........```````````````..`....```......,..,,,::::;:;;;;'+######'::::::::::,,,:,,,:,:,,,,;,,,,:,:
++#++++++;:::;::::::;;+#++::::::::,,,,,,,,,,,,,,,,,;'###++;:,,........`.`.`.`````````..`.```.``````....,.,,,,:::::;;;;;'++##++#':::::::::::,:::,:,,:,,,,:,,,,,,:
+++++++++;:::;::::::::+#++::::::::,,,,,,,,,,,,,,,,,;+###++;,,,..........````.`````````...`````````.......,,,:,:::;;;;;;''#+#++#';,:::::::,,,,,,,,,,,,,,,,,,,,,,,
+++++++++;:::;::::::;;+#++::::::::,,,,,,,,,,,,,,,,,''####';:,.................````````..`````..```....,.,,,,::::::;;;;;'++#+'+++;:,::::::,,,,,,,,,,,,,,,,,,,,,,,
+++++++++;:::;:::::::;#+++::::::,:,,,,,,,,,,,,,,,,,';+##++;:,................````````...`.```..``.`..,..,,,,,:::::;;;;;''+#++#++;;,:,::,,,,:,,,,,,,,,,,,,,,,,,::
+++++++++;:::;:::::::;#+++::::::,,,,,,,,,,,,,,,:'++'++##++;,,,......,,.,.....````.````....```..```...,.,,,,,,,,::::;;;;'+###++++::,,,,,,,,,,,,,:;'',:,,,,:,,.,:,
+++++++++;:::;:::::::;#++#:::::::,,,,,,,,:'+++'++'++'####';,,....,,,,,,....,........`..,`.```..`...,,,,,,,,,,::,:::;;;;'+##+++++;;.:,,,,,,,,'';.;;;,:,,,,;,,.,,,
+++++++++::::;::::::;:#++#::::,:,,,:'++++++++++++''+'####+:,,.,,,:,,:,,:::,:;,:,,......,.````...`.,:,:::,,,::,:::::;;;''+#####++;:.,,,,,,,,,;;';';;,:,,,,:.,.,.,
+++++++++::::;::::::::+++#::,:;+++++++++++++++++++';+###+',,,,,::,::::;;;;'''';;:,....,,.`.......,:;:;'::::::::;:::;;;''+####++'::.,,,,,,,,,;;..,;;,,,,,,......,
#+#++#+++::::;::::::::+++++++++++++++++++++++++++'';+##+':,,,,::,::;;';'+'''';;;;:,,..,:```.....,,;;''+'+;;;;;;;;;;;;'''+#@###++,,,,,,,,,,,,:;:..,;;..,........,
##+#+#+++::::;::::::::++++++++++++++++++++++++++';:'++#+;,,,,:,,:;:::,;;;'';;;:;;;:,,..,``......,::''''+++++';;;;;;;;;''+#@###+':::.,,,,,,,,,;,:;;;;.,.........,
######+##::::;::::::::#+++++++++++++++++++';:,,,,,,;++#+;,,:,:::::,,..`.,::;;;;::::,,.,.``....,,:;;'';''++#+++'''';;;;'''#@@##+;,,:`,,,,,,,.,;;;;:,;.,....:....,
#######+#::::;::::::::+++++++++++++++;::::,,,,,,,,,++#++:,,::::::,..`````...,,::::,..```````.,,,:;'''''''''+++''''';';'''+#@##+',,:.,,,,,,...;...,,;.,....;.....
#########::::;::::::::#++++++++;::::::::,,,,,,,,,,,+##+':,:::;:,,,..```.`.....,,,:,,.``````..,::;;''';;;:::::::;;''''''''+#@##+':,:.,,,,.,.,.;;;,.:;.,....:.....
######+##::::;::::;;;;#++';;;;:::::::,:,,,,,,,,,,,:+++'',,:::::,.,....``....,,,,,,,.`.```....,:;''':,,.......,,:;;'''''+'+@@##+',,,.,.,,.,..,;::;;;:...........`
#########::::;::;;;;;;;;;;;;;::::::::,,,,,,,,,,,,,,+++';,,:,:,,,,,,.:;;''+++;,,,,..,.......,,:;'+':,..``.....,,,:;'+'+'''+###+#',,,,..,.,,,:.,,............`.,..
#########::::;::;;;;:;::::;;;::::::::,,,,,,,,,,,,,,;+'+;,,:,:,,,:;+########';'+;:,.,......,,,:'+',..,,,,....,,,,:;'+'++''+##+###,,,.....:::,............:`...:`.
#######+#::::;::;;::::::::;;::::::::,,,,,,,,,,,,,,,:''+':,,,,,,:+#######@++'+;:;;:,.......,,:;++;:,:::';:,..,,,:;:;'++'+++##++#+,,......:,,:``..........,`.:.:`.
#########::::;::;;:::::::::;::::::,,,,,,,,,,,,,,,,,;+'+;:,,,,,:+##++;++##''::+;,....,,,...,,:;++':;++;;+#@@##.:::;;'+''''+##+##+,.....,...`  `........,,: .'.. `
#######+#::::;::;;::::;:::::::::::::,,,,,,,,,,,,,,,''++;:,,:,:'';';::;;.;:,,::;;.`.,,,.,.,,::;++';:;'+'##,@@#@@#;;;'''''''#####;......,      `........,..`,:.``.
#######++:::::::;;::::;::::;:::,:::,,,,,,,,,,,,,,,,;;++::,,,,::,:,,,::,,,,:,,,....,,,,...,,,:;+';,'#;,.++#@######+'''''''+#####:,....., ` ,` `................``
#########::::;::;;:;::;:::::::::,:,,,,,,,,,,,,,,,,,:;'+:,.,,,...,,::::::,,,::....,,,,,,.,,,:;;'';:;,:,,;:+''#+#####+'''''+##++'........   :, ,`..........,.``.,`
#########::::;:::;:::::::::;:::::,,,,,,,,,,,,,,,,,,:';',,,.,.......`..`.::,,.,...,,,,,,,,,,:;;'';:,,,..,,.,:;;++##++'';;'+#+++:...`   ,    ::``........`.:`...: 
#########::::::::;:::::::::::::::,,,,,,,,,,,,,,,,,.,;';:,,,........,:,,...,.,...,,,,,,,.,,,:;;'';;,,,,.,:::;::;;'+#+';;;'+#+++,    `  .`,:``   `..........`.,`. 
#########::::::::;:::::::;;;:::::,,,,,,,,,,,,,,,,..;:;:,,,,,,..`.``````........,,,,,,,,..,,:;;'';::,,,,:.,::;;'''++'';++'+#+++, `    ``.   , ``....`....`. .;`` 
#########:::::::;;:;;';;:;::::,:,,,,,,,,,,,,,,,,,,.::',,,,.,.......``..`.........,,,,,,..,,:;;;';;::.,,::;:,,,,:;:;;:;;;'+#+++,````,`` . ``.:::.````...... .:`` 
########+:::::::::;:;;;;;::::::,,,,,,,,,,,,,,,,,,,,,;;:,,.,....................,.,,,,,...,,:;;;';;;:,,.....,,,:,,:,::;;;;+#+'+.`  `    .:::,,.```````...```.````
#####+++#::::::::;;:;;;;:;::::,,,,,,,,,,,,,,,,,,,.;:;':,,.,......................,,,,,..,,,,:;;';;;::,,.`.,....,,,,,::;;'+++++..       .````.` ```````..```````.
#########::::::::;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,;;':,,.,.....................,,,,,,.,,,,::;;'';;::,,,,.......,,,,,;;;;'++++:.       ```````````````..``.``..,
#######++::,:::::::::::::::::,,,,,,,,,,,,,,,,,,,...,;;:,,........`...............,,,....,,:,::;'';;:,,,,,,,.....,,,,,:;;;'++++;. .```, ```````````````..`..``,`.
##+###+##:::,:::::::::::::::::,,,,,,,,,,,,,,,,,,...,';:,..................`.`...,,,,...,.,,,:;;;'';:,,,,,,,,,,,,,.,,,::;;'+'++;. ` `    ``````````````````.``;``
#########:::,::::::::::::::::,,,,,,,,,,,,,,,,,,,....:;:,............`....`````.,,,...`....,,,:;;'';:,,.,,,,,,,,.,,,,:::;;'+++#;.       `````````````````.````,``
#####+##+:,,,::::::::::::::::,,,,,,,,,,,,,,,,,,,.,,.:';,..........`.`...`````.,,,,..` ``..,,,:;;'';,,,,...,,,,,,,,,::::;;+++#+;,````````````````````````.```````
#+++++++#:,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,..::':...........`````.`````,,,,,..``..`..,,:;;'';,..,...,,.,,,,,,::::;''++#+,,`````````````..`````````````` ``
#+++++++#:,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,:;+:.........````````..``.,,,,.,..,......::;''';:,...,.,,,,,,,,,:::;;'++++'`.```.`..`````````````````````` ``
++++++#+#:,,,::::::::::::::,:,,,,,,,,,,,,,,,,,,...,;'':,..,.....`.```````.``,,,.,,,,...,,.,,:;''''';,......,,,,,,,,:::;;'+++++.`.`````````````````````````````.`
++++++++#:,,,:::::::::::::::,,,,,,,,,,,,,,,,,,..,,,;'':,,.,....`.````....```,,,.,::,,.,,,,,:;'''''';,,......,,,,,,::::;;'+#'+;```````````````````` `` ````` `.,:
+++++#+++:,,,::::::::::,:::,,,,,,,,,,,,,,,,,.,,.,.:;'':,,.,.....````....````,,,:;#+::,,,,,:;'++''''':,...,,..,,,,,,:::;;'#++'.`````````````````` ` ``.,::,...,..
#++++++++:,,,::::::::,:::::,,,,,,,,,,,,,,,,,,...,,;;:+:,,.......`````...````,,:+####::::::;++@#+'''+;,.......,,,,,,:::;;'#++'````````````````.,,,,..............
+++++++++:,,,::::::::,:::::,,,,,,,,,,,,,,,,,,...,::''':,........`.`.....````::;++'';;;;;;'+#@@##++'+':,......,,,,,::::'''##++```````.,,,,,,,,....,,,,,,,,,,,,,,.
+++++++++:,,,:::::::::::::,,,,,,,,,,,,,,,,,,.,...;,;'';,.,.,......`....```...;;':,,,::;''+######++++':,.....,.,,,,:::;;+'#++':;:::,,,,,,,,,,::;::,,,,,,,....````
+++++++++:,,,:::,::::,,:,,,,,,,,,,,,,,,,,,,,,.,..:;'++;,.,,,.....`...``....`.,';,,,,,:''+######+++++':,,.....,,,:::::;;++##+;:::::::::::::,,,,,,,.......``````` 
+++++++++:,,,::,,:::::,:,,,,,,,,,,,,,,,,,,,,.,...:;''+::,,.,....`.....`....,.,,.,,:,,,:;'++++++++++';:,,....,,,,,::::;;++##':;::::::::,,,,.......`````          
+++++++++:,.,::,:::::::,,,,,,,,,,,,,,,,,,,,,..,,,;++'+;,.,,,,...``.........,.,::;:;::;,,:;'''+++';;;;::,,...,,,,:::;;;;++##+::,,,,,,,.....`````                `
+++++++++,.,.::,,,,:,,,,,,,,,,,,,,,,,,,,....;'++'#+'++;,,,:,,..``..,..,,,,,::;';;;;;'::,,;;';''#'';';::,,,.,,,,,:::;;;;+###+:,,....`````           `   `.,;';;;;
+++++++++:.,.::,:::::,,::::,,,,,::;;++++++++++++++'+#+':,::,....,::::,:;:::,:''':'';'';;:':'+'''+'';;;::,,,,,,,:::;;;;'+###+:`````            `.,:;: :;';;;';:;'
++++++++':.,,::,:::::,:,,;'++####+#+++++++####++++++++;,::,,,,,:::::;;;;:;::';';'+;;';;:;;;::;;'''+':':::,,,,,,,::;''''+#++#'' `    `.,.`.  `    ;;. ;;;;;';;;';
++++++++':...:,,,,,;++#############++#########+++++++'';:::,,,:;';';;::;:;+;+''+'++'+;;';;;;''+';+;+'';;;::,,,,,:;'+;'++#+++'''``        `       ,;: ;;;:;;';';;
++++++++',...:;+####+#########################+++#+++'';::;,,:;''';;;;';;;+'#+'+#'';'''#;''':'+#+++++++';;:;,,,,:;;+''+##+'+#+''.                .;: :;;:;;';';;
+++++++'',;#################################@##++++'''';;;;:,;;''';'''+'''#+++'+++''++;#';;''#'++++##+++';'';:,:::;++++#+#+'+#++',    `    .     ,:: .` .;;''';'
+++++++#################################@#######+++++'';:;;:::;++'':;+''+;''+'++';''++'+;',+++++++###'+';++:';,:;;;#+''##+#'+##++'.   `     ``       `  `;;';';;
+++++############################################+'+'';;;'';,:'#'+''+++'''''';'';;;;''#';''''+#++#+##'++++''+'::::;#;'++++#+#####+;`          `  ,:,.`;: ::;;;;;
++##########################@########@###########++''';'+'+;;;+''''++++';:;;;::;:,,;''+';;:;';+++++#+++##++'++;:;;'+;;'+++++@#+##++'          `::;+:';', :;;';';
################@###@@######@@###################'++++'+'+';:'+++'+'++'++;;;:::::::,::;::::::''+++++++####++++';;;'+':'+++###@####++'          +'+#+'.:` ,+''`;;
################@################################+++++''+;+;'''++'+';::;;';;::::::,,,,:::;::;;''''++##+@#@#+#++::;'+';+''#+##@#####+',        .+'++,;,'.,+#'+ :;
############################@@###################+#++++'#++';''++'';:,,,,,:,:;'''+;::;:::;;;;;''+'+##@###'####+;:'+'''#+++##########+'`       ,:;++,;;',:;'+;,+;
############################@@###################++++++++'''';;':;;;,...,,.,,,,,,,,.,:;'''''''++++#++++#+###+#+;;'##++#++'###@######++'       ::;++:,':+'##'#+@;
############################@@###+###########+##@#++++##+'';';;';:;;:.....,...,......,,,.,,,,:::;;;''+'''#+#+#';;++++##+##+###@######++;.`    :;;++:`';+'+##+'`;
@####@#######################@##+++##########+##@###'#+++'+'':;''+';,.............```.,,,,,,,::::::;''';;''+'#+;'+;+++++##############++., `  ,;'';; :;'';+;;;::
@@####################+######@##+'+++++####+#+####++++#++'+'';;'''+':.........``.```.....,,,,,,:::;;;;;::;'+'+';+'+++#################++'.  ``,. .```, `.       
@@##+###########+#+++++++++##@##+''+++++++++++##@##+##+++++'+;';+'+';...`..,,,,.......,..,,,,,::::;;;;:::;'''+''+#++########@@@#######++''                    ` 
@@@#############+++';'';''+##@+#+''''++++++++++#@@#++#++#++'''++++#+;,.`...,,:::;:::,:::,:;:::::;;;;;;:;;''#;++++++######++@####@#####+++';                   ``
#@@@++#############':;,:;'+##@+#';;;''''+++++++#@@#+++++'++'+'+++##+;,.`...,,,:;:';:::;;,:';'';;;;;;;;'''+++++++#+'++#####+#@@@@########++'`    `     `` ```  `.
##@@+++#############+::.:;+###'+'::;''''''+'+'+#@@+#+#+''+#+#'+#+#++;;:.....:,::;:;;';;;;;''';';';;;';;''+++################@@@#########++#.``````````````,,,,::
###@#''++############';,,:;#@#++;:.:;';'''''++##@@@++++++#+++++++#'+;;;::...,:::;;;';'+;;;''''''''';;+''+###'##+#+######+###@@@@@#######++',``````..,,:;;;;;'';'
##@@@+''+#############+';;'###;';,.,;;'''''''+####+;#+###++##+'+####+';:,,.,::,':;:';'+':;;++';:';+;';'+########+#####+#####@#@@########+++;';''''';::,..`..,,:;
###@@#+''++############+'+'+#@+:;:,.:;;;'''''++#+;+#+'#######+#####'';;:,,...::::;;;;;;+;'';';;;''''+++++@##+########@#####+###########+++++;    `.,:;;;''''+'''
++##@#+;;++++#########+#++#+##''':,.,,:;;';';;;;++###+#+############+;'';,..,..,,:;';'';;;''+';;''''++#++###@###@@##############++++''''''''';'+++'''''''+++ .@@
';'#@@#;;+'''+###########@@###+'';,..:;''';;':+++#++'+'#########+##++';;:,`.```.,,,;+:'';;';';:;;;'''++#'##'@#########++########++++'''''''';;;;;;+###';:.;+ ``.
';+#@@#+;+;;'++###########@#@#;''''';;;;;;;;;+++#++';++#@##########++++':;,.``..,.,,:`::::;++;;::'''#+#+'##+#@###+####+#########++++'''';;;;;;;;;;;',      + ```
++'#@@@#++;;:;++#########++';';;;;;;;;;;;;;''+++#+';:+#########+####++''':,,:,,.::::.;,,::;'+';;:;+++##+'@##@@#@+##@#'##########++++''';;;;;;',```    , ` `'`...
++'+#@@#+';:::;+#####+'';;;;;;;;;;;;;;;;;;''+++'++;'++##+########+@#+#++'::;,:::'';,:,:::;+'':''+'#'+###+##@@@@###@#############+++'''';;'':`` ,;;;;;.  ,  +:``.
'''+##@@#+';::;'+##+;'''';;;;;;;;;;;;;'';'''''+'+;;'#++'##+########+#+++:;;';,+++;;::;;::;;+:#''+;+#++###@###@@#################++'''';;', `.', `    `.;  .;'``.
'''+##@@#+'':::;'';;;''+';;;;';;;;;''';;''''''+'';;'##+'############++'+;;+':'++';;,;:;:;:;';'#,#'#+#+####+@#@@##@#####@########++'''';``  '.  .:;::`    :``: `.
'';;+#@@#++;;,,;;;'''''+'';;;;;;;;;;';;''+''''++;;;'##+''#+######+###+#'##+''++';'+';;.,':;;''+;#####'#+@#@@@@@@@@@#+###@######++'+: `  `;:```, `  ::;.   `' `..
:::;+##@@#';;'';;;;;;''+'''''';;;;;';''''''''''';;;'##+#+'+++####'##++++#+++;+++++;;'''::,':;;,#+#######@++@@@@@@#@@########+##+. .`   ,' ` `,   `   ;:;,  `.; .
:;;:;##@@#;;;;';';;;;;'''''''''''';;''''''''''';;;;'##############@###'++'#';+'+++';;+;;';'',,#++###+##+#@@@@@@####@@#######++,,..`` ,;` ``:;`;;'     `;:'`   '`
+'::;+##';;;;;;''::::;''+''';;'''';';+'''''';;';;;;'###@+#########'#+#;#+#+'+#';++++;;;:;':+':+'++#+'####@@#@@@++@@#@@######+++.```;;' `  ';`;;;';.     `;;,   :
++',,;;;;;';`            .;''''';;'''''''''';;;;;;;'##@@#########+##++'+++++#+++#+''':;;++''';+#@;#++#+@@@@@#@@@+#'#########++'';+';     ;;`;;;;;;;,    ` ,::   
+++:;';.`                 ``     ';'+';''''';;;;;;'+#@@@#+###'#####+##''+#:++'+'+#+'';+'':'+#+#+:+#@+++#@@#################+++'';'.` ` ;;;  ;;;;;;;;;  `   `::  
'+',       .:;'';;;;''':.       ';;''+;'''';;;;;;''+#@@@#''+#+###++#++#;'#''+;'###++#;+;;+''+##+#'####@@@@#@##############++++''''. `;''  ``;;';;;;;;;.      ;, 
+.  .,;;;;;;''''';'''';'';''',`;;;;;'+';'';;;;;;;;'+#@@##;::+#####'+#;###+:''++##'''+';++''+#+######++#+####@#@###########++'''';;'';;.    :;;';;;;;;;;; ` `  : 
 .';:...`          `   `:;''';:;;;;;'+';'';;;;;;;;'+#@@#+;:::#+##@''#'#'#+'+#'+####'+''+++''+;++#+###+##@####@#@@########+++''''';;':     ;;;;';;;;;;;;:;:    .;
`                       `  ```';;;;;'++'';;;;;;;'''+#@##+;,,;++##'+'+'''#+'+'++####;#++++++##'''+#+#++##@++#@@#@@#######+++'''';'';;;,  .;;;''';;;;;;;;;':;,   ;
            ``....``         ';;;;;;'++'';;;;;;;;''++##++;,,:'+++'+#+#+;+'+'+'+####'#+#+++;;;',:'''#;#'@####@@@#@######++++''''';';;;;;';;;;;'';;;;;;;;;;;;;:  ,
,''';;';'';;;;''''''''+:`   ,:;;;;;;;++'';;;;;;;;''+#+.++;::,:''++####+#''#'#:+@#++++'++##+'++:+:++#+'#@@+@@#@@@###+###+++''''';;;';;;';';;';;';;;;;;;;;;;;:;`  
,,,..;''''''';''''''+++';''';;;;;;;;'++'';;;;;;;;'++#+. ,;::.,;'++#;#+###,''';'+#+##+++++';'#+,#:';+#'##'@@#@#@@#+++###++''''';;;;;';;:;;';';;'';;;;;;;;;;;;;;  
      `            .;'+''';::;;;;;;;'++';;;;;;;;;'+++#,`  ::,.,;''';'+'++;;;+'+'###+#++'+++;+:;#'#;'+##@@@@#@@@##+++##+++'''''';;;;;;;;;;;''';;'';;;;;;;;;;;;; `
                   .``.;'+;;;;;;;;;;'++';;;;;;;;;'+#'#:`   `:,.,,';+'++;+;':'+##+##'++'''+++';'+##;#+@##@@@@@@##+++++#+++'''';;;;;;;;';;;;;'';;;'';;;;;;;;;;;;. 
;'''''.           ` . .  ` :;;;;;;;;'++';;;;;;;;;'+'+#'.  `  ::,.::''';+'+;;;;+#+##'#+:'''+@','+#:++##@@@##@@@#++'''++++''''';;;;;;;;;;;;';;';;;;';;;;;;;;;;;;'`
;;;'''+'++'''''';``.``.`  ,;;;;;;;;;;'+';;;;;;;;;'+'++',`   ` .::,`::+';+:'+:#@##+###'+###+#+;'##'#@##@@@#@@##+++'''++++'''''';;;;;;;;;;';';'';;;''';;;;;;;;;;' 
;;;;'++'+';;''''';+:`..   :;;;;;;;;;;'+';;;;;;;;;'''+++:`     ` :,..:'+;'+';#+#'#+###+#@'####++##@##@@########++''''++++'''';;;;;;;;;;';';''''';;''';;;;;;;;;'',
;;;;'++++';'''''''++++`   ;;;;;;;;;;;'+';;;;;;;;;';''++;.       ``:,,;''';'#;+'#@###+#++#@##@+'@######@######+++''''++++'''';;;;;;;;;;;;'''';'''';;'';;;;;;;;'''
;;;;'+++'';''''''+++++'''':;;;;;;;;;;;+';;;;;;;;;;''+++',`       `  .:':';'#'+############@##;###############++''''''+++''';;;;;;;;;;;;''''''''';;;;'';;;;;;;'';
;;:;''++'';''''+'+#+++;;;;;;;;;;;;;;;;'';;;;;;;;;;';'''+;. `       `. .,:;:+'+'+++#+++++'+##''++++##+##+++##++''''''++++''';;;;;;;;;;;;;'''''''';;;;;'';;;;;;'''
;;:;;'++'''''''++###+'';'';;;;;;;;;;;;'';;;;;;;;;;;'''+'',` `       ..```,,:';;;;':;;''''';+'''''''++#+++++#+''''''''+++'''';;;;;;;;;;;;;'''''''';;;';;'';;;;'''
;;;;;'++''''''+++###+''''';;;;;;;;;;;;'';;;;;;;;;;;''''+: ..        `````..`,,,:;;;:::::;;;;;;;;;'';+++++++#''''''''+'++'';;;;;;;;;;;;;;;;''+''''';';;''';;;;'''
;;:;;'++''''''++###+'''''';;;;;;;;;;;;'';;;;;;;';;;''''''```.`       ``````.``..,,;,::::::;;::;;;;;+++++++++''''''''''++''';';;;;;;;;;;;';''+'''''''';''''';;'';
;;:;;'++''''''++###+'''''';;;;;;;;;;;;'';;;;;;';'';;;'''+.  ``.`     ````.````....,.,:,,::,,,::,,:+''++++++'''''''''''++''';;;;;;;;;;;;;''''++''''''';'''''';'''
;;;;;''++''''++####+'''''';;;;;;;;;;;;;;;;;;;;;'';;;;;''+:     ``````   ````.``,...,,...,,,,,,,..:''''+++#''''''''''''++'';;;;;;;;;;;;;;''''++'''''''''''''';'''
;;;;;''+'''''++####+'''''';;;;;;;;';;;;;;;;;;;;;';;;;;''''`        ``````` ```````.,:.,.......,.,''''''+++'''''''''+''++'';;;;;;;;;;;;;;;'''++''''''''''''''''''
;;;;;''+'''''+#####+''''';;;;;;;;;';;;;;;;;;;;;;;';;;;'''+,             ` ``````````````````````''''''++#''''''''''+''++'''';;;;;;;;;;''''''+''''''''';;'';'''''
;;;;'''+'''''+####++''''';;;;;;;;'';;;;;;;;;;;;;;';;;;;''+;`                 ``      ````````` ,''''''+++''''''''''+'''+''';;;;;;;;;;;''''''+'''''''''''''''''''
;;;;''''''''++####++''''';;;;;;;;';;;;;;;;;;;'';;;';;;;''++,`               ` ```` ```...``````:''''''+#'''''''''''''''++'';;;;;;;;';;;;';''+'''''''''''''''''''
;;;;'''+''''+#####++'''';;;;;;;;;';;;;;;;;:'++;';;;;;;;;'++;`                      ``````   ```;'''''+++'''''''''''''''+''';;;;;;;';;;';'''+'+''''''''''''''''''
;;;;''''+''++####++'''''';;;;;;;;;;;;;;;;:'+''';;';;;;;;''+',`      `` ``` ` `` `` ````     ` `;'''''++'''''''''';''''''''';;;;;;;;;;;;''''++'''''''''''''''';''
;;;;'''''''+#####++'''''';;;''+''';;;:;;''''''';;;;;;;;;''++;`       `..,::;;;;;;;;;;;;;:;;;;;';''''++#'''''''';'';'+''''''';;;;;;;;;'''''''++''''''''''''''''''
;;;;''''''++#####++'';''';'########+'+'''''''''';;;;;;;;;'+#', `:;;;;;;:;:;:;;;:;;;;;;:;;;;;;;;''''++++''''''''';''';+;''''';;;;;'+##++++++'+'''''''''''''''''''
;;;;'''''++#####++''''''''###@####+'''''''''''''';;;;;;;;''++';:;:::;;;:;;;;;:;:;;:;;;;;;;;;;;''''+++#''''''';'''';+#+'';;'';;;'###++++++'''+'''''''''''''''''''
;;;''''''++#####++''''''''###+++''+''';;'''''''''':;;;'';''+#+;;;::;::;;;;;;;;;;;;;;;:;;;;;;;''++'++#'''''''';;'';##+''''+;;'+##++++++++++++'''';'''''''''''''''
;;;'''''++#####++'''''''''+##'+''''''';;';''''''''':;;;;';''##';;::;;:;;;;;;;:;;;:;;;;;;;;;;'+;'+++##''''''''';';##+'''''+#++##++++'''''''''''''''''''''''''''''
;;;;''''++#####++''''''''''''';''';';;;;'''''''''''':';;;'''+#+;;::;;;;;;;;;;;;:;;;;;;;;;;;;++'++++#''''''';''';+#+''''''+#+'++++++'''''''''''''''''''''''''''''
;;;'''++++#####+''''''''''';;''''''';;;'';;'''''''''':';;;''+#+';;:;;:;:;;:;;;;;:;:;;;;;;;;;+;++++#+;''''';;;''+#++''''''+++''''''''''''''''''''''''''''''''''''