font size: 12px ( --- / +++ )


 
54.237.183.249@honeybii.com ~
  $ cat gffgfjhg.txt

===============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++================================================*====***************x**************************************************************************************+~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~=V%%%%%%%%%%%%%%%%%%%%%%%%#+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++++++++=============*******$##$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVV$#888888888###$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y***=================================================++++++++++++++++++++=============++++++++++++++++++++++++++++++++=+===========************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#888888888888888%%%%8%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================**************VY***********************************************************************************=+~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~=V8%%%%%%%%%%%%%%%%%%%%%%%%$+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++============******x$##$$$$$$$$$$VVVVVVYVVVVVVVVVVVVVV$$8888888888##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*****=**===========================================+++++++++++++++++++++++++++==+++=+++++++++++++++++++++++++++++++++++===========***************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$#888888888%8%%88%%%%888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ================================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++================================================**==***************$#Y*********************************************************************************=:~~~~~~~~~~~~~~~:::::::~~~~~~~~~-------------------------------------:*$%%%%%%%%%%%%%%%%%%%%%%%%%%V:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++++++++============******x##$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVV$#888888#8###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx***===**==========================================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===============*************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##8888%%8%88%8%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+===================================================****************$##Vx******************************************************************************+:~~~::++=**xYYV$$####88#####$$$$VVVYYx*=+::~~~---------------------~+x#%@%%%%%%%%%%%%%%%%%%%%%%%%%Y~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++===========******Y##$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$#888888#8###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY**====**========================================+++++++++++++++:::::::::::::::::::++++++++++++++:+++++++++++++++++++++++++++==============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$#8888%%8%%%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++==================================================***************$###$x***************************************************************************=++*YV$##88%%%%@@@@@@@@%@@%%@@@%@@@@@@@%%%%%88#$$VYx*=+:~-----------~=V8%@%%%%%%%%%%%%%%%%%%%%%%%%%8x~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++=============*****Y#$$$$$$$$$VVVYYYYVVVVVV$VVVVV$$$#88888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVY*===========================================+=+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++===============**************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$88%8%8%%%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====================================================***************$####$Y*************************************************************************=::$%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@%%%%8#$Vx*=:~~-~:x$%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%x~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++============*****Y$$$$$$$$$VVVVYYYYVYVVV$$$$$$$###888888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVY*=========================================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++===============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#8%%%%%%8%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++++:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+==============================================*****************$######V**********************************************************************=+~~*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$YV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++============*****Y#$$$$$$$$VVVVYVYYVVVVVVVVV$$$$$#88888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYx===================================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++=============***********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$#88%%%%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================++++++++++++++++++++++++++:+++:+++:+:+:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==============================================*===***************$#######$x*******************************************************************=:~~~V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++============*****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$#888#8#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYx*===============================+++++++++++++++:::::::::::::::::::::::::::::::::~:~:~:~~~:~:::~::~::::::::::::::::::::::::::::::::+:+++++++++++++++============***********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#88%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888%8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++:+::+:::++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+============================================*==***************x$########$Y****************************************************************=+:~~~+8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++++++++==============****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYx=============================++++++++++++++++:::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::+++++++++++++++========**********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$88%88%888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================++++++++++++++++++++++++++++:++:::::::::++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++===============================================***************x$##########$Y*************************************************************=:~~~~~*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++=============****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVV$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY*==========================+++++++++++++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++=========*********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$88%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%8%8888888%%%%%%%%%%%%%%%%%%%%%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ============================+++++++++++++++++++++++++++++:::::::::::::::+:+:++++++++++++++++++++++++++++++++++++++++++++++++++++++=+==============================================***************x#############Vx*********************************************************=+~~~~~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++===========*****x$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVV$########$$$VVV$$$$$$$$$$$$$$$$$$$$$$$$$Vx========================+++++++++++++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~:::::::::::::::::::::++++++++++++++========*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%8%8%8888888888%%%%%%%%%%%%%%%%%%8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ =============================++++++++++++++++++++++++:+::::::::::::::::::::+::++++++++++++++++++++++++++++++++++++++++++++++++++++=++============================================****************x###############Vx*****************************************************=+:~~~~~~~:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++============*****$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$########$$$VVVVVVVV$$$$V$$$$$$$$$$$$$$VY*====================++++++++++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::++++++++++++++=======*********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%88888%%%%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================++++++++++++++++++++++++:::::::::::::::::::::::+:+:++++++++++++++++++++++++++++++++++++++++++++++++++=+==========================================*==***************x#################VY**************************************************=:~~~~~~~~~:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****V###$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$#######$$$VVVVVVVVVVVVVVVV$$$$$$$$$$$VY====================++++++++++++++++++:+:::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++=======*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8%8888888888888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%88888888%%8%88%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ =============================++++++++++++++++++++++:+::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++=+=+==========================================****************Y###################$Yx*********************************************=+~~~~~~~~~~-~x%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8Vx+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++=============****x$###$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$#######$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$Vx===========++==+==+++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++=======*************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888888888888888888888888888888888888888888888888888888888888#8##8###8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%888888888888888%%%%%%%%%%%%%%88888888%8%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@ ============================+++++++++++++++++++++:+::::::::::::::::::::::::::::::+++:+++++++++++++++++++++++++++++++++++++++++++++++==+========================================******************Y#####################$Vx*****************************************=+:~~~~~~~~~----+8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%#V*:~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++=============***x$####$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$########$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$Vx======+=+==+=+=+++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++++++======****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$888888888888888888888888888888888888888888888888888888888888888888888##8######8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++++:::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++++++++++++=+========================================*******************V########################$Yx*************************************=:~~~~~~~~-------~V%%%%%%%@%@@@@@@@@%%@%@%%@%@@@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8V*~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****Y####$$$$$$VVVVVVVVVVVVVVV$$$VVVV$$$#########$$$$VVVVVVVVVVVVVVVV$$$$$$$$$Yx=====++++==+++++++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++======****************xxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#88888888888888888888888888888888888888888888888888888888888888888888########8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++++++++==========================================******************V##########################$VY*********************************=+~~~~:::~----------+#%%%%%88##$$VVYYxxxxxxxYYYVV$##88%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%$*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****x$###$$$$$$$VVVVVVVVVVVVVV$$$$$$$$$###$$#######$$$VVVVVVVVV$$$$$$$$$$$$$$$Yx===+=++++=++++++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------~--~-~-~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++++++=======*************xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888888888888888888888888888888888888888888888888888888888#########8##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%888888888888888888%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++==========================================*****************V#############################$VYx***************************=+:~:=*xxxx=~----------+==**=+:~~~~~--------------~~~~::+=*xY#88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****xV####$$$$$$$$VVVVVVVVVV$$$$$$$$$$$$$$VV$$$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$VYx==+++++++++++++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~-----------------------------~---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++=======**************xxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888888888888888888888888888888888888888888888888888888888####8######888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@ ============================+++++++++++++++++:++:::::::::::::::::::::::::::::::::::::+:::++++++++++++++++++++++++++++++++++++++++++++++======================================*==*****************$################################$VYx*********************==+++=xxYYYYYYx=:---------------------------------------------~=xYYV$$#88%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++============*****x####$$$$$$$$$VVVVVVVV$$$$$$$$$$$VVVVVV$$$$$VV$$$$$$$V$V$$$$$$$$$$$$$$$$VYx==+++++++++++++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~-------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++++++======***************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$88888888888888888888888888888888888888888888888888888888888888888888####8####888#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++++++++++=========================================******************$####################################$VYx****************==**xYYYYYYYxxxxxx=+~----------------------------------------~+xYVYYYYYVVVVV$#88%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++============*****x$####$$$$$$$$VVVVVVV$$$$$$$$$$VVVVVVVV$$$VVVVVV$$$$$$$$$$$$$$$$$$$$$$$$VYx=+++++++++++++++++++++++++++++:+::::::::::::~~~~~~~~~~~~~~~-------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++++++++++++++=======************xxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8888888888888888888888888888888888888888888888888888888888888888888888############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@ ===========================++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++=======================================*******************$#######################################$$VYx************xxYYYYYYxxxxxxxxxYxx*+~-------------------------------------:*YVVVVVVVVVVYYYYYVVV$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++============*****x$####$$$$$$$$$$VV$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$Yx*=+++++++++++++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~-----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++++++++++++========************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV88888888888888888888888888888888888888888888888888888888888888888888888##############888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@ ===========================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++======================================*=*****************x$############################################$VYYx*****xYYYYYYYxxxxxxxxxxxxxxYx*=:~--------------------------------~=YVVVVVVYVYVVYVYVVYVVYYVVVV$#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V+-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++=============*****V#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$VYx*+++++++++++++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++++++++++++=======**************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8888888888888888888888888888888888888888888888888888888888888888888888888##########8###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@ ===========================+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++=====================================*=*****************x$#################################################$VYxYYYYYYYxxxxxxxxxxxxxxxxxYYxx*+~-----------------------------:xYVVVVVYVYVYVVYVYVVVVVVVVVVYVVV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++++++++++============*****Y#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$###$$$Vx*=+++++++++++++++++++++++++++::::::::::::::~~~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++++++++++++========***********xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%8888888888888888888888888888888888888888888888888888888888888888888888##############88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8888888888888888888888%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@ ===========================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++=+=====================================*******************x##################################################$VYYYYYYxYxxxxxxxxxxxxxxxxxxxxxYYx*=:~------------------------~=YVVVVVYVYVVVVVVVYVYVYVYVVVVYVYVVYVVV$#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++=============****x$######$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYVVYVVVVVVVV$$$$$$$$$$$$#####$$$Yx*++++++++++++++++++++++++++:+::::::::::::~~~~~~~~~~~~~~----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++========***********xxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$8%%%%88888888888888888888888888888888888888888888888888888888888888888888888########8#####8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@ ==========================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++======================================******************x################################################$VYYYYYxxxxYxxxxxxxxxxxxxxxxxxxxxxxxYxx=+~---------------------+xYVYVVYVYVVYVYVVVVYVYVYVVYVVVVVYVYYVVVYVVV#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+++++++++++============*****x$#####$$$##$$$$$$$$$$$$$$VVVVVVVVVVVYVVVVVVVVVVV$$$$$$$$$$$#####$$$Vx*=++++++++++++++++++++++++:+:::::::::::::~~~~~~~~~~~~~~~------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++======************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%%%%88##888888888888888888888888888888888888888888888888888888888888888888################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@ ==========================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::+++:++++++++++++++++++++++++++++++++++++====================================*==******************Y##############################################$VYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYx*=:~----------------:*YVVVVYVYVVYVYVYVVVYVVVVVYVYVVVVVVVYVYVVVYVYYV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++============******Y###############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$#######$$$x*=++++++++++++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++======************xxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$8%%%%%%8$VV#88888888888888888888888888888888888888888888888888888888888888888888######8##8###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@ ==========================++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++===================================*********************Y###########################################$VVYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*+~------------~+YVVYVVVYVVVVVVVVVVVVVVYVVVVVVVVVYVVVVVVYYVVVVYVYYVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++=============******$#################$#$$$$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$$########$$Y*=+++++++++++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++++++++++++=====***********xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%%%%8$YYYV#888888888888888888888888888888888888888888888888888888888888888888#########8#####8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%8888888888888888888888%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@ ===========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=====================================********************V#########################################$VYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*+~--------:xYVYYVYVYVYVVVVVVYVYVVVYYVVVVYVVYVYVVYVVVYVVVVVYYVVYYYV$#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+++++++++++=============*****x######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$Y*==++++++++++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::++++++++++++++=====***********xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#%%%%%8#VYYYYYV#88888888888888888888888888888888888888888888888888888888888888888#88##############8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@ ==========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++====================================********************V#######################################$VYYYYYYxxxxxxxxxxxxxxxxxxYxxYxxxYxxxxxxxxxxxxxxxxxxxxxYYx*=:~---~=YVVVVVVVVYVVVVVVVVYVYVYVYVVVVVYVVYVVYVVVVVYVVVVVVYVVYYY*::*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++==============******V#####8#####################$$$$$$$$$$$$$$$$$$$$$$########$$$$Y*==+++++++++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::++++++++++++++====***********xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYV#88%%%8$YYYYYYYYV$8888888888888888888888888888888888888888888888888888888888888888888#8#####8#########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==+==================================*******************$#####################################$VYYYYYYYYxxxxxxxxxxxxxxYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*+:+xYVYVVVVVVYVVVVVVYVYVVYVYYVVVVVVVYVVVVYVVVVVVVVVVVVVVVVY*:---:*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++==============*****x####8#888#8###################$$$#$$$$$$$$$$$$$$########$$$$Y*==++++++++++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::+++++++++++++++===**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV#8%888#VYYYYYYYYYYY$888888888888888888888888#888888888888888888888888888888888888888888###############8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@ =========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++=+=+================================*=*******************$##################################$VVYYYYYYxxYxxxxxxxxxxxYYVV$$$VYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxxYYVVVVVVVVVVYVVVVYVYVVVVVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++=================****V######8##8#88#####################$$$$$$$$$$$########$$$$Vx===+++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::++++++++++++++====**********xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYV88%%8#VYYYYYYYYYYYYYYV88888888888888#888#888##888888888888888888888888888888888888888888888######8########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+:+:+++++++++++++++++++++++++++=====================================******************x$################################$VYYYYYYYxxxxYxxxxxxYYYYV$#888%88#VYYYxxxYxxxxxxxxxYxxYxxxxxxxxxxxxxxxYYYYYYYYYVVVVVYVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~=$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++=================***Y#########8#8####################$$#$$$$#$$$$$######$$$$$Vx*==++++++++++++++++++:::::::::::::::~:~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::+++++++++++++++==**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYY$8888#VYYYYYYYYYYYYYYYYY$8888888888888#888#8##888#88888888888888888888888888888888888888888888########8######8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++==+===============================*=*******************x##############################$$VYYYYYYYxxxxxxYxxxYYYV$#888%%%%%%%88#$VYYxxxxxxxxxxxYxxYxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=:~~~~~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%8$=---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++================****$$#############################$$$$$$$$$$$$$$$#$$$$$$$VVY**==++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++===**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYY$88#$VYYYYYYYYYYYYYYYYYYYY#888888888888###88#8#8#8#888888888888888888888888888888888888888888#8###########8####888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =*=======================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+:+:++++++++++++++++++++++++=================================*********************Y############################$VYYYYYYYYYYxxxxxxYYYV$#888%%%%%%%%%%%%%%88$VYYYxxYxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~=#%%%%%%%%%%%%%%%%%%%%%%%%@%%8$x+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::+++++++++++=================***YV$$$$######################$$$$$$$$$$$$$$$$$$$$$$$$VVVYx*==+++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++===*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYV#8#VYYYYYYYYYYYYYYYYYYYYYYY$8888##8888888#8####8###8##8#88888888888888888888888888888888888888888####8##8#########8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =========================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++===================================*******************Y##########################$VYYYYYYYYYYYYxYYYYV$##88%%%%%%%%%%%%%%%%%%%%%8#$VYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~+#%%%%%%%%%%%%%%%%%%%%@%%8$x+~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::+++++++++++++==================*xYYVVV$$$$$$$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVYYx**=+++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++==********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYV#$VYYYYYYYYYYYYYYYYYYYYYYYYYV8888VV#888888888#8#####8#888888888888888888888888888888888888888888888#################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =====*===================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++=+===============================*=********************V#######################$VYYYYYYYYYYYYYYYYV$$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%88#$VYYxxxxxxxxYxxxxxxxYxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%%%%%%@@%%8Vx+~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++===================*xxxYYYVVVV$$$$$$$$$$$$$$$$VVVVVVVVV$VV$$$$$$$$$VVVYYYYx**=+++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++====**********xxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$VYYYYYYYYYYYYYYYYYYYYYYYYYYYY#%8#YYV#88888888888888#8###888888888888888888888888888888888888888888888##8###########8#888888888888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@ ========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++================================*=********************V####################$$VYYYYYYYYYYYYYYVV$#88%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%88#$VYYxxxxxxYxxxxYxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%@@%%8$Y*+~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++====================****xxxYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYxxx*=+++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++===*******xx*xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#88VYYYV#888888888888888#8##88888888888888888888888888888888888888888888###############88#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ ========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++==================================********************$##################$VYYYYYYYYYYYYYYYV$#88%%%%%%%%%%%%%%8#$VxY$88%%%%%%%%%%%%%%%%88#$VYYxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~~~~~~~~~~~~~~+$%%%%@@@%%8$Y*+:~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++========================****xxxxYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVYYYxxxx*=+++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------------------------------------------------------------~~~~~-~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::++++++++++==******xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8$YYYYYY$88888888888888888###88888888888888888888888888888888888888888#888###############88888888888888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ ========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=================================*=******************x$###############$$VYYYYYYYYYYYYYVV$#88%%%%%%%%%%%%%88$Vx=:~~~:*V#88%%%%%%%%%%%%%%%%88#$VYYxYYxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~~~~~~~~~~~~~+#%%%8#Vx=+:~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++===================++++++====*****xxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVYYYxxxx*=++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++==****x**x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYV$#$YYYYYYYY$888888888888888888###888888888888888888888888888888888888888#88#8##8#########8#88888888888888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++================================*=******************x##############$VYYYYYYYYYYYYYV$#888%%%%%%%%%%%%88$Vx=:~~------~:=x$#8%%%%%%%%%%%%%%%%%88$VYYYxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVY=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Vx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++===================+:::++++++======*=***********xxxxxxxxxYYYYYYYYYYYYYxxxx*=++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------~-~~~-~-~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++==****xx**x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVV$$$VYYYYYYYYYYY$88888888888888##8888#8888888888888888888888888888888888888888#8################88888888888888888888888888888888888888%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*==================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==================================******************Y###########$VVYYYYYYYYYYYYV$#88%%%%%%%%%%%%88$Vx=:~~-------------~+*Y$88%%%%%%%%%%%%%%%%%8#$VVYYYxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVx+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++==================+:::::::+++++++===========*********xxxxxxxYYYYYYYYYxxxx*=+++++++++++++++:+::::::::::::~:~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::~::::::::::::::::::::+:+++++++==***xx****xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVYYYYYYYYYYYYYYYYY$888888888888888888#8##888888888888888888888888888888888888888888###########8#8#888888888888888888888888888888888888888%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++=================================*******************Y#########$VYYYYYYYYYYYV$$#88%%%%%%%%%%%88#Vx=+:~-------------------~:+xV#8%%%%%%%%%%%%%%%%%88#$VVYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++==================+::::::::::::++++++++===========******xxxxxxxxYYYxxxxxx*=+++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------~~--~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::+++++++==****x**x*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxYYYYYYYYYYYYYYYYYYYYYYYYYY$8888888888888888888888#88888888888888888888888888888888888888#888###############88888888888888888888888888888888888888%8888888%888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=+===============================********************V######$VYYYYYYYYYYYV$#88%%%%%%%%%%%88#$Y*+:~--------------------------~:=Y$88%%%%%%%%%%%%%%%%%%88#$VYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=+:~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++==================::::::::::::::::++++++++++=========*******xxxxxxxxxxxx***+++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------~---~-~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::+++++++=****xxx*xxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYY$#888888888888888#8#88888888888888888888888888888888888888888888##################888888888888888888888888888888888888%%%888888888888%8888888888888888888888888888888888888#88#888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==============================*********************$###$VVYYYYYYYYYYV$#88%%%%%%%%%%%%8#Vx=:~~--------------------------------~+*Y#88%%%%%%%%%%%%%%%%%%88#$VYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::++++++++++++==================::::::::::::::::::::+++++++++++========*******xxxxxxxx***=++++++++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++=**x*x*xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888#88#8888###888888888888888888888888888888888888#8############8#####8#888888888888888888888888888888888888888888888%888888888888888888888888888888888888888888888#88888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++==============================*=*******************$$$VYYYYYYYYYYV$#88%%%%%%%%%%%88#Vx=:~---------------------------------------~+*V#8%%%%%%%%%%%%%%%%%%%88##$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++=================+::::::::::::::::::::::++++++++++===========*******x******=+++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~:~::::::::::::::::::::::::+++++=***x*xxxxx*xxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYV#888888888888888888#888##888888888888888888888888888888888888#####################888888888888888888888888888888888888%%88888%8%888%8%888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*=================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=============================*=*******************xVYYYYYYYYYYV$#88%%%%%%%%%%%88$Y*+:~~-------------------------------------------~:+xV#8%%%%%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+:+++++++++++++===============++++:::::::::::::::::::::::++++++++++++==========************=+++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::+++++=***x*xx*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYV#88888888888888#8#8#8#8###88888888888888888888888888888888888######################8888888888888888888888888888888888888%%88888%88%%88%888888888888888888888888888888888888#888#88888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%@%@%@%%%%%@@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=============================*******************xxYYYYYYYYYV$#88%%%%%%%%%%%8#$x=+~~~~------------------------------------------------~:+xV#88%%%%%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx*=++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++=+=============+::::::::::::::::::::::::::::++++++++++++++==========*********=++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::++++=****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYV#8888888888888#88##8#88###888888888888888888888888888888888888####################8#8888888888888888888888888888888888888888888888%8%8%88888888888888888888888888888888888#88##8#8888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%@%@%@%%%%%%%@%@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++=+============================****************xxYYYYYYYYYVV#88%%%%%%%%%%%8#Vx=:~~~-~-----------------------------------------------------~:+*V$88%%%%%%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx*==+::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++==============+:::::::::::::::::::::::::::::++++++++++++++++=========******===+++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~:~::::::::::::::::::::+++++==**x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYV#8888888888888888#####8####88888888888888888888888888888888888######################8888888888888888888888888888888888888888888888%888888888888888888888888888888888888888#8#888#888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%@@%@%@%@%@%@%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::::~:~:~:~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++=+=============================*************xxYYYYYYYYYV$#8%%%%%%%%%%%8#Y*+:~~~~~~----------------------------------------------------------~~+*Y$#8%%%%%%%%%%%%%%%%%%%%%888##$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**==++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=*=:~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++++++++============+::::::::::::::::::::::::::::::::+++++++++++++++++================+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~--~--------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++===**xxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV#88888888888888888#########8888888888888888888888888888888888#######################888888888888888888888888888888888888888888888888%88888888888888888888888888888888888888#8##888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@%@%%%%%%@%%@@%@%@%@%%%%@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+=++++++++++::::::::::::::::::::~::~:~:~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=============================*********xxYYYYYYYYYV$#88%%%%%%%%%%8$Y*+:~~~~~~~-~-~------------------------------------------------------------~:=xV#8%%%%%%%%%%%%%%%%%%%%%%%88##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=++:::~~~~~~~~~~~~~~~~~~~~~~~~~+Y#%%%8#Y*:~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::++++++++++++++++============+:::::::::::::::::::::::::::::::::++++++++++++++++++==============+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV#888888888888888888#########888888888888888888888888888888888########################8#8888888888888888888888888888888888888%8888888%%888888888888888888888888888888888888#8##8#8#8888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@%@%@%@%%%%%%@%@%@%@%%%%%%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++::::::::::::::::::::::~~::~:~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++================================*==**xxYYYYYYYYYYV$#8%%%%%%%%%%8#Y*+:~~~~~-~~~~~~~~---------------------------------------------------------------~:+*Y$#88%%%%%%%%%%%%%%%%%%%%%%8888#$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=:~~~~~~~~~~~~~~~~~~~:=V8%@%%%%@%%8V*:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++==============:::::::::::::::::::::::::::::::::::++++++++++++++++++=============++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~::::::::::::::::::::+++===***xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYY$888888888888888888###########88888888888888888888888888888888########################8888888888888888888888888888888888888888888888888%888888888888888888888888888888888888##8##888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@%@%@%%%%%%@%%%@%@%%%%%%%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++:::::::::::::::::::::::~::~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++===============================***xYYYYYYYYYYV$#88%%%%%%%%%8#V*+:~~~~~~~~~~~~~-~~-~------------------------------------------------------------------~:+*Y$#88%%%%%%%%%%%%%%%%%%%%%%%8888##$VVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~~~~~~+x$%%@%%%%%%%%%%@%#Y+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::+++++++++++++++++============::::::+::+:+:::::::::::::::::::::::::+++++++++++++++++=============+++:+::::::::::::::~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~::::::::::::::::::::+++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYY$888888888888888888###########88888888888888888888888888888888#####################8###8888888888888888888888888888888888888888888888%%888888888888888888888888888888888888#8##8#88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%@%@%%%%@%@%@@%@%@%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=====================++++++++++::::::::::::::::::::::~~:~::~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++=============================**xYYYYYYYYYYVV$88%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~~--~--------------------------------------------------------------------~:=*Y$#88%%%%%%%%%%%%%%%%%%%%%%%%%888###$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~~~~~~~+Y#%@%%%%%%%%%%%%%%%@%8Y+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+++++++++++++++++===========+::::+::+++:+::::::::::::::::::::::::::+:++++++++++++++=============++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~::::::::::::::::::::+++==***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYY$8888888888888888888######8###88888888888888888888888888888#88#########################888888888888888888888888888888888888888888888%%8888888888888888888888888888888888888###8###88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@%@%@%@%%%%@%@%@@%@%@%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================++++++++++++:::::::::::::::::::::~:::~~:~:::::~::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++===========================**xxYYYYYYYYYYV$#88%%%%%%%%%8$Y=:~~~~~~~~~~~~~~~~~~~~-~-~-~------------------------------------------------------------------------~:+*Y$#88%%%%%%%%%%%%%%%%%%%%%%%%%%8888###$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~:=V8%@%%%%%%%%%%%%%%%%%%%%%8Y:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::++++++++++++++++===========+::::++:+++++::::::::::::::::::::::::::::::++++++++++++++===========++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYY$8888888888888888#88###########8888888888888888888888888888888#######################8#8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888########8888888888888888888888888888888%%%%%%%%%%%%%%%%%@%%%%%%@%%@%%%%@%@%%%%%%%%%@%@%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%8%8%888%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+++++++++++::::::::::::::::::::::::::~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++========================**xxYYYYYYYYYYVV$88%%%%%%%%%8#V*+:~~~~~~~~~~~~~~~~~~~~~-~~-~------------------------------------------------------------------------------~:+*xV$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%88#####$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~~:*$%%@%%%%%%%%%%%%%%%%%%%%%%%%%#x~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++============+:::::++++:++:::::::::::::::::::::::::::::::::+++++++++++++==========+++::::::::::::::::~~~~~~~~~~~~~~~~~~~~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYY$88888888888888888#############88888888888888888888888888888888#######################888888888888888888888888888888888888888888888888888888888888888888888888888888888888########8#8888888888888888888888888888888%%%%%%%%%%%%%%%@%@%%%%%%%@%%%%%%%%%%%%%%%%@%@%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%8%%8888888%8%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++::::::::::::::::::::~:~:~~::~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=====================*xxYYYYYYYYYYYV$#88%%%%%%%%%8#Y=:~~~~~~~~~~~~~~~~~~~~-~~--~~------------------------------------------------------------------------------------~::+=xV$#888%%%%%%%%%%%%%%%%%%%%%%%%%%%888####$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~=V%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::++++++++++++++++++===========+:::::+:++:++:::::::::::::::::::::::::::::::::::++++++++++++==========++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYY$88888888888#8888#8########8####88888888888888888888888888888#8##########################888888888888888888888888888888888888888888888888888888888888888888888888888888888#8######8#888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%888%8%8%8%88%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+++++++++++::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++==================**xYYYYYYYYYYYYV$#8%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~-~~-~~~-~~-~---------------------------------------------------------------------------------------~:+==xY$##888%%%%%%%%%%%%%%%%%%%%%%%%%%%888#####$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::+++++++++++++++++++===========:::::++++++::::::::::::::::::::::::::::::::::::::+++++++++++=========+++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYV#88888888888888#88##############8888888888888888888888888888############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#####8###8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%8888%8%8%8%8%88%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++================**xYYYYYYYYYYYYV$#88%%%%%%%%%8#Y=:~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~----------------------------------------------------------------------------------------~~~~~~~:+=**YV##88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888######$VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+++++++++++++++++++==========+::+:++:+::::::::::::::::::::::::::::::::::::::::::++++++++++=========++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYV#88888888888#88##888#############88888888888888888888888888#8###########################88888888888888888888888888888888888888888888888888888888888888888888888888888888888##########88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%8%8888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=====================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++============*xYYYYYYYYYYYYYV$#8%%%%%%%%%88$x+:~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~---------------------------------------------------------------------------------------~~~~~~~~~~~~~~~:+==*YV#888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYx+~~~~~:*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~:++==**xxxxxxxxxxxxx**==++:~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++=========+::+++++:+::::::::::::::::::::::::::::::::::::::::::++++++++++=========++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYV#888888888888888##8#8############888888888888888888888888#88############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888###########888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%888%88888%888%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=====================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++=++=========*xYYYYYYYYYYYYYYV$88%%%%%%%%%8#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:+=*xxV$##88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYx+~~~~:*8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:-----------------------------------------------------------------------------------------------------------------------~~~--------------------------------~~:+=*xxYYYYVVVVVVVVVVVVVVVVVVVVYYYYx*=+:~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++========+:++++++::::::::::::::::::::::::::::::::::::::::::::::++++++++++========++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYV#8888888888##88###8########8#####8888888888888888888888888##8############################888888888888888888888888888888888888888888888888888888888888888888888888888888888###########888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%88%%888%88888%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=====================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++=+======*xYYYYYYYYYYYYYYV$#8%%%%%%%%%%8$Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+=**xYV##888%%%%%%%%%%%%%%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYx+~~~~:Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-------------------------------------------------------------------------------------------------------------------~~~-------------------------------~~+=*xYYVVVVVVVVVYYVVVVVVVVYVVVVYVYVVVVVVVVVYxx=+:~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++=+========+:++++++:::::::::::::::::::::::::::::::::::::::::::::::::+++++++++=======+:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY$88888888#88#88#8####8############8888888888888888888888888##############################8888888888#888888888888888888888888888888888888888888888888888888888888888888888#8############88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%8888888%8888888%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=+====**xYYYYYYYYYYYYYYV$#8%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+===*xYYV$##8888%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY+~~~~~:*$%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-------------------------------------------------------------------------------------------------------------------------------------------------~:=*YYVVVVYVYVYVVVVYVVVYVYVYVYVVVVYVYVYVVVVVVYVVVVVYYx=:~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++=========+:+++++::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++======++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY$8888888888888###8#8##8########8##888888888888888888888888################################88#888888888#8888888888888888888888888888888888888888888888888888888888888888888#8##8#######888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=====================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++====*xYYYYYYYYYYYYYYYV$88%%%%%%%%%8#Y*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++==**x$8%%%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYY+~~~~~::+Y$8%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y~------------------------------------------------------------------------------------------------------------------------------------~~--------~+*YYVVVVVVVYVYVYVVVVYVVVYVYVYVYVVVVVVYVVVYVVVVVVVVVVVVVYYx=:~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++=+=======++++++++::::::::::::::::::~:~::::::::::::::::::::::::::::::::+++++++======+::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYY$8888888#888####8##################8888888888888888888888#################################8##88888#8#88#8888888888888888888888888888888888888888888888888888888888888888888############88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%888888888888%8%8%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*====================+++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++==*xYYYYYYYYYYYYYYYVV#8%%%%%%%%%%8$x=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~:=*V8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-------------------------------------------------------------------------------------------------------------------------------------------~=xYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVVYVVVVVYVYVYVVVVVVYY*:~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++:++++++++++++++++++++=========+++++++:::::::::::::::~~~:~~~~::::::::::::::::::::::::::::::::::++++++===+++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~:~:::::~:~:::::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY#8888888##8#8########8########8###88888888888888888888888#####################################8888##888#8888888888888888888888888888888888888888888888888888888888888888888#############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=====================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==*xYYYYYYYYYYYYYYYYY$#8%%%%%%%%%%#$x+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~~~:+x#%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=--------------------------------------------------------------------------------------------------------------------------------------~~:=x$8$VYVVVYVVVVVVYVVVVVVVVVVVVYVVVVVYYVYVYVYVVVVVVVVYVYVVVVVVVYVVYx=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::++:++++++++++++++++++++=========+++++++:::::::::::~:~:~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:~~:~~~~~~::::::+++==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYV#88888888#8#8###############8##8###888888888888888888888#####################################8#88###8##888888888888888888888888888888888888888888888888888888888888888888888###########8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **======================++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=*xxYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------~-~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+-------------------------------------------------------------------------------------------------------------------------------~~:=*YV#8%%@%%#VVVVVVVYVYVYVYVVVVVVYVVVYVVVVVYVVVVVVVYVVVVYVYVYVVVYVYVVVYVVYY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++++=========+++++++::::::::::::~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::::++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYV#8888888#8##8##########8##########88888888888888888888888#######################################8####8#8#8888888888888888888888888888888888888888888888888888888888888888888############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%8888888888888888%8%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*======================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++==*xYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8#Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~-----------------------------------------------------------------------------------------------------------------------~~:+=*YV#8%%%@%@%%%%%%8$VVVYVVVYVVVYVVVVVVYVVVVVVVVVVVVVVVYVYVVVVYVYVYVVVYVYVYVYVVVVY+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++++++++++++++++==========++++++:::::::::::::~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYV8888888##8########################88888888888888888888888######################################8#####8#8888888888888888888888888888888888888888888888888888888888888888888888##########88888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*======================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=*xYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------~~~-~~-~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~~~~:*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~---------------------------------------------------------------------------------------------------------------~~:+=*YV$88%%@@@%%%%%%%%%%%%%%%#VYVVVYVYVYVYVVVVVVVVVVVVVVVVVVYVVVYVVVVVVYVYVYVVVYVYVVVVVYVY*~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++=+=========++++++::::::::::~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYY$88888888########8#################8#888888888888888888888#######################################88#####888888888888888888888888888888888888888888888888888888888888888888888############8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%8888888888888888%8%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=======================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=*xYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$x+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~--~~~~~-~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=------------------------------------------------------------------------------------------------------~~:++*xYV$$88%%%@%@%%%%%%%%%%%%%%%%%%%%%%$VVYVVVYVYVYVVVVVVVVVVVVYVVVVVYVYVYVVYVVVYVYVYVVVVVYVVVVVYYY*~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+++++++++++++++++++++++++===========+++++::::::::::::~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYY$8888888#88####8###################88888888888888888888888######################################8#8####888#88888888888888888888888888888888888888888888888888888888888888888########8#####888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=======================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++*xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%%8$x+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~~+V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~--------------------------------------------------------------------------------------------~~:+=*xYV$#88%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VVYVVVYVYVVVVVVVVVVVVVVVVVVVVYVVVYVVVVYVYVVVVVVVYVYVVYYYYY=~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++++============++++++::::::::::~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYY#8888888888######8###############8#8888888888888888888888################################################88888888888888888888888888888888888888888888888888888888888888888888##########8##888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=======================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++:++++++++++++++++:::=xYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~-~~~~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*~-------------------------------------------------------------------------------------~:+*xV$#88%%%%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVYVVVYVYVYVVVYVVYYVVVVVYVVVVYVVVYVVVVYVYVYVVYYVVVYVVYYYY*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++============++++:::::::::::::~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYY#8888888##8#######8###8#########8#88888888888888888888888#################################################8888#8888888888888888888888888888888888888888888888888888888888#88############8#888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::+::+:+++++++++++++++++++++::::=xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%%#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------~~~~-~-~~~~~-~~~~~-~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~~:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:------------------------------------------------------------------~~~~:::+++====*xxYV$#8%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VVVVVVVVVYVVVVYVYVVVVVVVVYVYVVVVVVYVYVYVVYVVYYYYYYYYYYYx:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::++++++++++++++++++++++++==============+++++:::::::::::~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::+++++::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV8888888888########################8#888888888888888888888##################################################8#88888888888888888888888888888888888888888888888888888888888888#########8####8#88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ==========================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++:~~:+xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%8#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------~----~-~~~~~~~~-~-~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~~~~~~~~~~~~~~+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-----------------------------------------------------~~~~::+=*xxYV$###888%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVVVYVVVVVVYVVYVYVYVVVYVVYVYVVVVVVYVYVYVVVVVYYYYYYYYYx*:~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++=============+++++::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++=====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV88888888########################888888888888888888888888##################################################8#88#8#88888888888888888888888888888888888888888888888888888888888###############888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% *=========================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++::~~:+*YYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------~-~---~----~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~~~~*8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+:~~~~~-----------------------------~~~~~::::++==**xYVV$##888%%%%@@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%VVVVYVYVYVVYVYVVVYVVVVYVVVVVVYVVVVVVVYVYYYYYYYYYYYYx*+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++=+===============+++++::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~----~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888##8#####################88888888888888888888888#######################################8######8#####8#888888888888888888888888888888888888888888888888888888888888################888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ===========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++::~~~~+*YYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------~-~-~-~-----~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYY*+~~~~~~~~~~~~~:::++==**xx*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8##$$VVYYYYxxxx*********xx*xxxxYYYVVV$$##88888%%%%%%%@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#VYVVVYVVVYVVYVVVYVVVVVVVVVVYYVYVVVVVYYYYYYYYYYYxx*+~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++=+==============+++++::::::::::~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++:::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~~------~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~---~--~~~~~~~~~~~~~~~~~~~~~:::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888########################88888888888888888888888##############################################8#####888#888888888888888888888888888888888888888888888888888888888#8###############8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ===========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++::~~~~~+*YYYYYYYYYYYYYYYYYYY$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------~-----~-~---~~--~~~~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYx=:~::::+==***xYYYVVVVVVVVYY%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%@%@@%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVYVYVYVVYVYVYVYVYVVVVYVVVVVVVYVYYYYYYYYYYYYxx*=:~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++=+================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~---------~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~----~~~~~~~~~~~~~~~~~~~~:::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888#####################8##8#888888888888888888888######################################################8#888888888888888888888888888888888888888888888888888888888##8##############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ===========================+++++++++++++++:+:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++:~~~~~~:*xYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------~-~~~-~-~~~~-~~~--~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYx*xxYYYVVVVVVVVVVVVVVVVVVVY$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VYVYVYVVVVVVYVYVVVVVVYVVVVVVYVYYYYYYYYYYxx*=:~~-~~~-~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++++++++++++++++++++++++++++=================++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++:::::::::::::::::::::::++++::::::::::::~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~:::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV888888888#88######################8888888888888888888888#########################################################888888888888888888888888888888888888888888888888888888888##################8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%% ============================++++++++++++++++::::::::::::::::::::::::::::::++++++++++++++++++++++++++::~~~~~~:=xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%#V*:~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------~------~~-~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYY%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#VVYVVYVYVVVYVYVYVVVYVVVYVYYYYYYYYYYYx*=+::~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+++++++++++++++++++++++++=+==================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::++++++::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#8888888888##8####################8888888888888888888888#######################################################8#88888888888888888888888888888888888888888888888888888888##8##8############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%% ============================++++++++++++++++:+::::::::::::::::::::::::::+:++++++++++++++++++++++++:~~~~~~~:+xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V*:~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------~-~----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%8#$YYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVY$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@%@%@@%@@%@%%8VVYVYYVYVVVVVYVVVVVVVYVVYYYYYYYYxx*+:~~~~~~~~~~~~-~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::+:+++++++++++++++++++++++++====================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::++++++::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888########################8888888888888888888888#########################################################8#88888888888888888888888888888888888888888888888888888####88#######8#######8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++::::::::::::::::::::::+::++++++++++++++++++++++++::~~~~~~~~+*YYYYYYYYYYYYYYYYYYV#88%%%%%%%%8Vx+~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------~---~--~--~----~--~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVYV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%%@@%%%%%%%%888888####$$$$$$$#8#VVYYVVVVVVVVVVVVVYVVVVYYYYYxx*=+:~~-~-~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++=+====================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~::::++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888####8####################888888888888888888888#########################################################8#88888888888888888888888888888888888888888888888888888####8#8#############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%88888888888888888888%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++:::::::::::::::::::::++++++++++++++++++++++++::~~~~~~~~~:*xYYYYYYYYYYYYYYYYYV$88%%%%%%%%8$x+~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------~--~--~---~-~-~-~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@%%%%%%%888##$VYYYxx*===+++:::~~~~~~~~~~~:+++===*xxxYYYYYYYYYxxxx**=++:~~~~----~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++=======================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~:::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV8888888888#######################8888888888888888888888#######################################################8###88888888888888888888888888888888888888888888888888888#88#################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++:+++::::::::::::::::::++:++++++++++++++++=+++:~~~~~~~~~~:=xYYYYYYYYYYYYYYYYYV$88%%%%%%%%8#Y+:~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------~-~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=Y#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@%%%%%88#$VYYx**=++::~~~-----------------------------------~~~~::::::~~~~~~------------~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++=======================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888#####################8###888888888888888888888#############################################################888888888888888888888888888888888888888888888888888####8##8#############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++:+::::::::::::::+:+++++++++++++++++++++::~~~~~~~~~~:=xYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#Y=:~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------~-~-----------~~~~~~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@@%@@%%%%88#$VYx*=+::~~--------------------------------------------------------------------------~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++++======================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::++++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~:::::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888#####################8#8#88888888888888888888##########################################################8#8888888888888888888888888888888888888888888888888888#8#8###88####8#######88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%88888888888888888888%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++++::::::::::::+:+:++++++++++++++++++:~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V*:~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------~--~--~-------~-~-~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%@%%%%%%%888##$$VYxx*=+::~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::+:++++++++++++++++++++++++=+=======================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888################8######8888888888888888888888###########################################################8#88888888888888888888888888888888888888888888888888888#888#88#8##########888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%88888888888888888888%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++::++:::::::+::+:++++++++++++++++::~~~~~~~~~~~~~:*xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8$*+~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------~------~--------~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%@%%%%88##$VYxx*=++:::~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::++++++++++++++++++++++++++==========================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++::::::::::::::::::::::+++++::::::::::::::~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888##############8########8#88888888888888888888###############################################################88888888888888888888888888888888888888888888888888#8#88#8#############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%8888888888888888888%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%% ==============================++++++++++++++++++++:+:+::+:+::+:+:++++++++++++++::~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYYV$88%%%%%%%%8#Y+~~~~~~~~~~~------------------------------------------------------------------------------------------------~----~--~-~-~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%8##VVYx*=++::~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::+++++++++++++++++++++++++++=========================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++:::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888######8###############8888888888888888888888##################$############################################888888888888888888888888888888888888888888888888888#8##88#88###8##8###888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++++::+:++:+::+:+++++++++++++::~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYYV$#8%%%%%%%%%#V=:~~~~~~~~~~---------------------------------------------------------------------------------------------------~---~----~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$VVx*=+::~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++===========================++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888#8######8###########8#8888888888888888888888#################$###$#########################################88#88888888888888888888888888888888888888888888888#88888888########8##8888888888888888%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%88888888888888888888%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++:++:+:+::+::+:+++++++++++::~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8$*:~~~~~~~~~------------------------------------------------------------------------------------------------------------~-------~--~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$VY*=++:~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++=+===========================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++++::::::::::::::::::::::::::+++++::::::::::::::~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~:::::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888###8#######8########8#8#888888888888888888888#####################$#$########################################8888888888888888888888888888888888888888888888888#88#8#8#8##8#######8#888888888888888%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%88888888888888888888%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++++++:+:+:+:::+:++++++++::~~~~~~~~~~~~~~~~:+xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#x+~~~~~~~~---------------------------------------------------------------------------------------------------------------~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%%%8#VYx*+:~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::++++++++++++++++++++++++++============================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++::::::::::::::::::::::::::++++++::::::::::::::~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888#####8##8#####88##88##888888888888888888888########################$#$####################################8##888888888888888888888888888888888888888888888888888##8888#8#########8888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%888888888888888888888%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++++++::+:+:++:+++++++::~~~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYYV$#8%%%%%%%%%#V=:~~~~~~~---------------------------------------------------------------------------------------------------------------~-~--~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%8#VY*+:~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+:+++++++++++++++++++++++=+=============================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++::::::::::::::::::::::::::++++++:::::::::::::::~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:::::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888#8##############8##888#88888888888888888888####################$##$###$######################################88888888888888888888888888888888888888888888888888888888#8#8########8888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%888888888888888888888%%%%%%%%%%%%8888888888%%%%%%%%%%%%%%%%%%%%%% *=============================+++++++++++++++++++++++::+::+:+:+++++::~~~~~~~~~~~~~~~~~:*xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8$x:~~~~~~--------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%8#$Y*=:~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::+:++++++++++++++++++++++++++===+===========================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++++:::::::::::::::::::::::::++++++:::::::::::::::~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~:::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888##8############88##888888888888888888888888###################$###$#$####$####################################888888888888888888888888888888888888888888888888888#88888#88#####8#8888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%888888888888888888888%%%%%%%%%%%8%8%888888%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++++:++++::+::+::::::~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYV$8%%%%%%%%%8#Y+~~~~~----------------------------------------------------------------------------------------------------------~----~--~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%8$Y*+:~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++++===============================+++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++++::::::::::::::::::::::::+++++++:::::::::::::::~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888#8##########8###88888888888888888888888888#################$######$$#$$##$####################################8888888888888888888888888888888888888888888888888888888#888##8###88888888888888888%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%%%%% ===*=========================++++++++++++++++++++++++++:::+::::::~~~~~~~~~~~~~~~~~~:*YYYYYYYYYYYYYYYYYV$88%%%%%%%%%8$*:~~~~------------------------------------------------------------------------------------------------------------~----~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%8$Y=:~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::++++++++++++++++++++++++++++================================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++:::::::::::::::::::::::::::++++++:::::::::::::::::::~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~:::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888##8#########8###888888888888888888888888888###################$$$$$#$$#$#$#$##$###############################888888888888888888888888888888888888888888888888888888888888##888#88888888888888888%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%8%88%88%8%%%%%%%%%%%%%%%%%%%%%% ===**=========================+++++++++++++++++++++:+:+::::::::~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#Y+~~~------------------------------------------------------------------------------------------------------~-----~-----~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8$Y=:~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::++++++++++++++++++++++++++=+================================++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888#8##8#8#8888888888888888888888888888##################$#$$$#$#$$$$$#$$#$################################888888888888888888888888888888888888888888888888888888888888#88888888888888888888%%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%%888%8888%%%%%%%%%%%%%%%%%%%%% =****=========================+++++++++++++++++++++++:+::::::~~~~~~~~~~~~~~~~~~~:*YYYYYYYYYYYYYYYYYV$8%%%%%%%%%%8V*:~---------------------------------------------------------------------------------------------------------~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x+~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::+++++++++++++++++++++++++===================================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~:::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$8888888888888#8888##8#88888888888888888888888888888#################$$##$$#$$#$$$$$$#$##$##############################8888888888888888888##888888888888888888888888888888888888888#88888888888888888888%%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%8%8%8888%%%%%%%%%%%%%%%%%%%%% ****=========================+++++++++++++++++++++++:++::::~~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#x+~~------------------------------------------------------------------------------------------------~---~---------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::+++++++++++++++++++++++++++==================================++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~--~~~~~~~~~~~~~~~~~~~~:::::++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888888#88#888##88#888888888888888888888888888###############$##$$#$$$#$$$$$##$#$#$###############################8888888888888#88888888#8#8888888888888888888888888888888888#888#888888888888888888%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%%888888%%%%%%%%%%%%%%%%%%%%% ****=========================+++++++++++++++++++++++:+::~~~~~~~~~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYV$8%%%%%%%%%%8V=:~--------------------------------------------------------------------------------------------------~----~~----~-----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++++++++++++=+==================================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~--~~~~~~~~~~~~~~~~~~~~~:::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888#8#8#888888888888888888888888888888888###############$##$$$#$$#$$$$$$$$$$$################################888888888888888#8#888888#88#88888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%8888%%%%%%%%%%%%%%%%%%%%%% ****=========================++++++++++++++++++++++:::~~~~~~~~~~~~~~~~~~~~~~:*YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#x+~----------------------------------------------------------------------------------------------~-----~-~--~--~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V8%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+:+++++++++++++++++++++++======================================+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888#888888888888888888888888888888888###############$####$$$#$$$$$#$$$#$$#$###############################8888888888888#8#8#88#88##8888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%% ***==========================++++++++++++++++++++:::~~~~~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYY$88%%%%%%%%%8V=~--------------------------------------------------------------------------------------------~---~--------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V8%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++++++++=====================================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888888888888#8888888888888888888888888888888##############$###$#$$$$$$$$$$$$$#$$$$$###############################8888888888888#88#8#888##88#8888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ***=========================++++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYV$8%%%%%%%%%8#x+~---------------------------------------------------------------------------------------------~--~---~--~-~---~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::+++++++++++++++++++++++++++======================================+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888888#88888888888888888888888888888888888#################$#$#$#$$$$$$#$$$#$$$$$$#$###########################88#88888888#####8#8#8#8##88888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=========================+++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V*~------------------------------------------------------------------------------------------~-----------~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+V8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVYV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++++++======================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~---~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888#888888888888888888888888888888888#################$$#$$$#$$$$$$$$$$$$#$$$$#$###########################8#888888888#####88#######8#8888888888888888888888888888888888888888888888888888888%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *==========================+++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYY$#8%%%%%%%%%#Y+~------------------------------------------------------------------------------------------~------------~---~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVY#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++++++++========================================+++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~-~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~:::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888888888888888888888###############$#$#$$$$$$$$$$$$$$$$$#$$#$$#$##########################8#888888888####88#88#8#8#8#8888888888888888888888888888888888888888888888888888888%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================+=+++++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYV$8%%%%%%%%%8$*:-----------------------~~---------------------------------------------------------------~--~------~---~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVYYYYxxx**=*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++++=+========================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++:+::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888#888888888888888888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$##$###########################8##888888888#8###8#8#####8#88888888888888888888888888888888888888888888888888888888%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ==========================++++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V=~-------------------~-~------------------------------------------------------------~---~---------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**===++::::~~~~:Y%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++++++++++++++++++++++++=+=========================================++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::~::::::::::::::+++++++++::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888##################$#$$$$$$$$$$$$$$$$$$$$$#$$###########################888#888888#####8###########888888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================+=++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*YYYYYYYYYYYYYYYYYV#8%%%%%%%%8#x+~---------------~-~~~----------~-----------------------------------------------------~--~------~--~--~~-~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx=:::::~~~~~~~~~~~~~~~~=8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++++==========================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::~::::::::::::::+++++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888888888#888888888888888888888888888888888888#################$$$$$$$$$$$$$$$$$$$$$$$$$##$############################88#88888#####8###########888888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================++++++++++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYY$88%%%%%%%%8$*:---------------~~~---------------------~-------------------------------------~----~--~-----------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~~:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++++==+==========================================+++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::~::::::::::::::+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$88888888888888888888888888888888888888888888888################$#$#$$#$$$$$$$$$$$$$$$$$$$##$##########################8#8888888################8#888888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================++++++++::~~~~~~~~~~~~~~~~~~~~~~:::::::+=xYYYYYYYYYYYYYYYYV$8%%%%%%%%%8V=~-------------~~~~-~------~--------------------------------------------------~----~-~--~--------~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~x%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::++++++++++++++++++++++++=============================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::~::::::::::::::+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888#88#888888888888888888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###########################8888888#################8888888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+==+++++++:::::::::+++++====*****xxxxxxYYYYYYYYYYYYYYYYYYYYYV#8%%%%%%%%8#x+~---------~~~~~~-~---------~-------------------------------------------------~---------~----~~-~~~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~=8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++++==============================================+++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++:::::::::::~~::::::::::::::++++++++:+::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#8888888#88888888888888888888888888888888888888##############$##$$#$$$$$$$$$$$$$$$$$$#$$#$##$###########################8888888######8###########888888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================++=++==*xxxxxYYYYYYYVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%8$*:---------~~~~--~--~---~-~----~---~-----------------------------------------~~~~-~~~--~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~-~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$8%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++++=============================================++++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++++::::::::::~~::::::::::::::++++++++:+:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888##88888888888888888888888888888888888888###################$$$$$$$$$$$$$$$$$$$#$$#$#$$#$########################88888888##################888888888888888888888888888888888888888888888888888888%%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====================+=++==xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$#8%%%%%%%%8V=~-------~~~~~~~---------~------~------------------------------~--------~--~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYx*:~~~~~~~~~~~~~~~~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++=+=============================================+++++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++++::::::::::~~::::::::::::::++++++++++:::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888##88888888888888888888888888888888888888##################$$$$$$$$$$$$$$$$$$$$$$$$$#$$##########################8888#88######8############88888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ====+=================+=*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV$8%%%%%%%%%#Y+~-----~~~~~~~~~--~-----~------~---------------------------------------~-~~~~~~~~~~~~~~~~~~~~--~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYx=:~~~~~~~~~~~~~~~~:Y%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++++++==============================================++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++++:::::::~:~~~::::::::::::::+++++++++++:::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~--~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888##8#8888888888888888888888888888888888888#################$$$$#$$$$$$$$$$$$$$$$$$$$$#$############################8#88#8###############8##8#888888888888888888888888888888888888888888888888888%%%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ====================+=*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV#8%%%%%%%%8#x:~---~~~~~~~~-~----~--~-~-----------~---------------~-----------------~-~-~~~~~~~-~~-~-~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~-~~-~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYx*:~~~~~~~~~~~~~~~:Y%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%$:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++================================================+++++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++++:::::::~:~~:::::::::::::::++++++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888###88888888888888888888888888888888888888##############$##$#$$#$$$$$$$$$$$$$$$$$$$$$###$########################8#8#888##################88#8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====+=======+==+++=*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV#8%%%%%%%%8$*:--~~~~~~~~~---~------------~--~-----~---------------~--------------~~~~~~-~~~~~~~~~~~~~~--~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~:Y%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++++===============================================+++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=+++::::::~:~~:::::::::::::::+=+++++++++:::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#8888####88888888888888888888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$########################8#88#8######################8888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+======+====++=*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%8V=~~~~~~~~~~~~-------~----~-------~----~-------------------~---------~~-~~~~~-~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~-~~~~~~-~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~+V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++=++===============================================++++++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++===++::::::::~~:::::::::::::::+=+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888####88888888888888888888888888888888888888##################$#$#$$$$$$$$$$$$$$$$$$#$$$#$#$##########################888###################8##888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+=+==========*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%8V+~~~~~~~~~~--~-~-------~--~~--------------~--~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----~--~--~~~~~~~~~~~~~~~-~~~-~-~~--~~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~=#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=+================================================+++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====++::::::~:~~:::::::::::::::+==+++++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~----------~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++=====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888###888888888888888888888888888888888888888#################$#$#$$$$$$$$$$$$$$$$$#$$#####$##########################8#8#8###################88888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+=+==+=====*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$88%%%%%%%%#Y+~~~~~~~~~~~~-~-----~---~--~---~--~-----~---------------~-~----~~-~~~--~~~~~~~~~~~~~-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~--~--~-~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=+================================================+++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+=====+::::::::~~::::::::::::::+===+++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888####88888888888888888888888888888888888888##################$$##$#$$$$$$$$$$$$$#$#$###$#$$##########################88#8####################8888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+==+==+==*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$8%%%%%%%%8#x+~~~~~~~--~~-~-------~----------~---~-------------~------~----~~~~~~-~~~-~--~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~----------~-~~~~~~~~~~~~~-~~~~~-~~~~~~~~~~~~~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~=$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+:++++++++++++++++++++==================================================++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+======+::::::~:~:~:::::::::::::+====+++++++::::::::::::::::::::::~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~--~~~~-~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888####8888888888888888888888888888888888888888##8###########$#$#$$$$$$$$$$$$$$$$$$$$#$##$#$###########################88#8#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===++=+====xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV$8%%%%%%%%8$*:~~~~~-~~~~~~~~~~-~---------~-------------~-~--~---~-~-------~~-~~~~~~-~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~--~---------~-~--~--~~~-~-~-~-----~-~~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~=Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++++++++=+=================================================++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::+======+::::::::~~~:::::::::::::+====+++++++++:::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888#8#8888888888888888888888888888888888888888###############$#$$$$$$$$$$$$$$$$$$$#$####$############################8#88####################8#8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======+==xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV$8%%%%%%%%8$*:~~~~~~~~~~~~~-~---~----~~-~--~-~~-------~-----~--~------~--~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~--~-~-~-~-------~---------~-~---------~~~~~~-~~~~~~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~:=Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++++++++++==================================================+++++++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+======+::::::::~~::::::::::::::+====+++++++++:::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~~~~-~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888####8888888888888888888888888888888888888888#8###############$$#$$$$$$$$$$$$$$$#$#####$$##$#########################88#8####################88888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====+=xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%8V=~~~~~-~~~~~~~~~~~-----~--~--------~-------~-----~--~----~~~~~~~~-~~~~~~~~~~--~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~--~-----~-~~----------------------------~~~~~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx::+=Y#8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::+++++++++++++++++++++==================================================+++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:+======+::::::::~~~:::::::::::::=====+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88#8##888888888888888888888888888888888888888888###############$$#$$$#$$$$$$$$$$$$#$$#$#$##############################8#8######################888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYxxYV#8%%%%%%%%8V=~~~~~~~~~~~~~~~-~~~~~----~----------~--~--~-~~---~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~--~------------~-----------------------------~~-~~~~-~~-~~~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYx+*#%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++===================================================+++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::=======:::::::::~~~:::::::::::::=====+++++++++:::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888##8888888888888888888888888888888888888888888#8#############$#$#$$$$$$$$$$$#$$#$####################################888#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%#Y+~~~~-~-~~~~~~~~~~~~~-~--------~--~---------~--~---~-~~~~~~-~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------~------------------------------~~~~~~-~~-~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx::Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::+++++++++++++++++++=++==================================================+++++++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::=======:::::::~~~~::::::::::::::=====++++++++++::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88####88888888888888888888888888888888888888888888############$#$$#$$$$$$$$$$$$$$$##$#$###$############################888#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYxYYV#8%%%%%%%%#Y+~~~~~~~~~~~~~~~~~~~~~-~~~~~-------~-~-~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------~-~----~-------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx+~~=Y8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++===================================================++++++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~~~~~~~~~~~~~~~~:+======+::::::::~~:~:::::::::::~:=====+++++++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88##8888888888888888888888888888888888888888888888#############$$$#$$$$$$$$$$$$$$##$###################################88#####################88888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYxxxYYYV#8%%%%%%%8#x+~~~~~~~~~~~~~~~~~~~~~--~~~~~--~~---------~----~~~~~~~~~-~~~-~~~-~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------~--~-------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx+~~~~=V8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+~-~~-~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++===================================================+++++++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+======+::::::::~~~~:::::::::::::=====+++++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++====*****x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8#8888888888888888888888888888888888888888888888888#8#########$$$#$#$$$$$$$$#$#$#$$##$#####$##########################888#####################8888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYxxYYV#8%%%%%%%8$x:~~~~~~~~~-~~-~~~~-~~~~~~~~~~~~-~~~--~~----~~~~~~~~~~~~~~~~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------~~-----~-------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$8%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~=Y8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+~~~-----~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++++++++====================================================+++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+======+::::::::~~~~:::::::::::::+====+++++++++++::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-~----------~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY##888#88888888888888888888888888888888888888888888888#########$###$#$$$$$$$$$$$#$$$##$###############################88888####################88888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYxxxxYxYYV#8%%%%%%%8$*:~~~~~~~~~~~~~-~~~~~~~~~-~~-~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+*Y$8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYx=~~~~~~~~+x#%@@%%%%%%%%%%%%%%%%%%%%%%%%%@%V+~~~~----~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=+===================================================+++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~:::+======:::::::::~~:~:::::::::::::+====++++++++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8#8#888888888888888888888888888888888888888888888888###########$$#$$$$$$$$$$$$$#$#$################################8888888##################888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxxxxxYYY$#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----------------------------------------------------------------------------------------------~~~~~~~~~-~~-----------------~~~:=*Y$88%%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~:*V8%@%%%%%%%%%%%%%%%%%%%%%%%#*~--~---~--~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++++====================================================++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~:::======+::::::::~~~~~::::::::::::+=====+++++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##88#8888888888888888888888888888888888888888888888888########$#$#$$#$$$$$$$$$$#$$#$###############################888888888###############8888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYxYxxxYYYYY$8%%%%%%%%8$=:~~~~~~~~~~~~-~~-~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------~:=xV#8%%%%%%%%%%%%%%%%88#$YYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~+x$%%@@%%%%%%%%%%%%%%%%%8Y:~--~~-----~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++=============================================*======++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::======+::::::::~~~~:~:::::::::::+=====+++++++++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-~--~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888888888#8######$#$$$$$$$$$$$$$$$$$$#$###############################88888888###############88888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxxxYYYYY$#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------~:+xV#8%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~~~:=x$8%@@@%%%%%%%%%%@%#=~-~~~~------~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=============================================*=*=*===+++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~-~~~~~~~~~~~~~~~~~~~:::======+::::::::~:~~~~:::::::::::======++++++++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88#888888888888888888888888888888888888888888888888888#8#####$$$$$$$$$$$$$$$$$###$###############################88888888#8#############888888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxYYxxYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~-~~-~~~~~~~~~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------~:=xV#88%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~:+*V#8%@@@%%%%%%8Y:~-~~~~~~-----~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++===================================*=======*=*=*====+++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~--~-~~~~~~~~~~~~~~~:::+======:::::::::~~~~~~::::::::::+======+++++++++++++++::::::::::::::::::~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$#$$###$############################888888888888############8888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxxYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------~:=x$#8%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~:+xV#8%%@@%#*~~-~~-~--~----~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=+====================================*=*==**=*=*=*===+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-------~~~~~~~~~~~~~~~~~:::+=====+:::::::::~~~~~~::::::~:::+=====++++++++++++++++::::::::::::::::::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$$$###############################8888888888888###########8888888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxYYYYYYYYV#8%%%%%%%8V+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------~:+*Y$#8%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*:~~~~~~~~~~~~~~~~~~~~~~-~~:+*xYVx+~~~~-~~~~~~----~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++=+====================================****=**=*****==+++++::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~~~~::::+=====+:::::::::~~~~~~~~~::~::~:======++++++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$#$###$############################88888888888###8#######88888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%%%%%888%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxxYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~~~:=xV$88%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~-~~-~~-----~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++====================================*=***********===+++++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~---~--~~~~~~~~~~~~~~~~::::+=====+:::::~::~~~~~~~~~:~:~:~::=======++++++++++++++++:::::::::::::::::~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$$$$############################8##8#8888888888888#########88888888888888888888888888888888888888888888888888888888888%%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%%8%888%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~:+=*YV#88%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~~~~~-~~~~~~~----~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::++++++++++++++++++++=====================================**=***********==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~----~-~~~~~~~~~~~~~~~~::::+====+:::::::~:~~~~~~~~:~:~:~~:+======+++++++++++++++++:::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~------~---------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$$$###$############################888888888888888########888888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%8888%8%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxYYxxxxYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------~~~::+=xV$#8%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~----~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++++++=====================================**************==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------~~~~~~~~~~~~~~~~::::+====+::::::::~:~~~~~~~~::~~~::+======++++++++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~---------~----------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$$##$#$#######################88#888888888888888#8######88888888888888888888888888888888888888888888888888888888888%%%%%88888%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888888888888888888888%8888%88%%%%%%%%%%%%%% =*xYVVVYYYYYYxxxx***===++++::::~~:*xxxYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------~~:+=*xxYV#88%%%%%%%%%%%%%%%888#$VYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~---~-~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++==================================*==**************==+++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----~--~~-~~~~~~~~~~~~~~~::::++=+++::::::~:~~~~~~~~~~~~~~:~:=======++++++++++++++++++:::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~-~~---~-----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$#$$$###$##################8##8#8#8888888888888888######88888888888888888888888888888888888888888888888888888888888%%%%%%%8888%%%%%%%%%%%%%@%%@%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%% ~~::++++:::::::~~~~~~~~~~~~~~~--~*xxxYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~~~:+=*YV$##88%%%%%%%%%%%%%88888##$VYYYYYYxxYxxYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~-~~---~~---~----~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::++++++++++++++++++++====================================*=**************==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~--~~~~~~~~~~~~~~~~~~::::+++++:::::::~:~~~~~~~~~~~~~~:::========++=++++++++++++++::::::::::::::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~---~-----~~----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$#$$$###$##################8#8#8#8#888888888888888#8####88888888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%@%%%%%%%%@%%%%%%%%%%88888888888888888888888888888#88888888888%8888888888888888888888888888888%%%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------~~~:+=*xY$##88%%%%%%%%%%%%%%%8888##$VVYYYxxxYxYxxxxxYxYYYYYYYYYYYYYYYYYYYYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~~~~~~~~~-~~~~~-~--~~~~~-~~-~--~~~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++=+=================================*=*=*************==++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~------~~-~~~~~~~~~~~~~~~:~::+++++:::::::~:~~~~~~~~~~~~~~::+=======+=+=+++++++++++++++:::::::::::::::::~~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~-~-~~~~~~-~~------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$$$$$$$$#$$######################88#8888888888888888888#8##88888888888888888888888888888888888888888888888888888888888888%%%%%8888%%%%%%%%%%%%%%@%%%%%%@%@%%%%%%%%%%%8888888888888888888888888888888#888888888888888888888888888888888888888888%%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~----~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~-~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------~~::+=*xY$##88%%%%%%%%%%%%%%%88888##$$VYYYYxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~----~-~---~--~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++===================================*****************==++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~---~-~-~~~~~~~~~~~~~~~~~:::::++++:::::::~::~~~~~~~~~~~~~~::==========++=+++++++++++++++::::::::::::::::~:~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~-~~~~---~-~~--------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888##$$$$$$$$$$$$$$$#$$#$$#####################8#8888888888888888888888###88888888888888888888888888888888888888888888888888888888888888%%%%%%888%%%%%%%%%%%%%%%%%%%%%@%@%%%@%%%%%%%%8888888888888888888888#888888888##8888888888888888888888888888888888888888%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~-----~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~-~~~~-~------------------------------------------------------------------------------------------------------------------~~~::=*xYV$#888%%%%%%%%%%%%%%%%%888##$$$VVYYYxxxxxxxYxxxxYxxxxxxxxxxxYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~-----~---~---~~~~~~~-~~~-~~--~~--~~~--~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++===================================******************=++++++++::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----------~~~~~~~~~~~~~~~~~::::::+++:::::::~~~~~~~~~~~~~~~:~::==========+===+++++++++++++++::::::::::::::~::~:~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~-~~-~~-~~----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888#$$$$$$$$$$$$$$$$$#$$$##$################8##888888888888888888888888##88888888888888888888888888888888888888888888888888888888888888%%%%%%%88%%%%%%%%%%%%%%@%@%@%%%%%%%%%@%%%%%%%88888888888888888888888888#88888#888#88888888888888888888888888888888888888%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~------~*YYYYYYYYYYYYYYYYYV#8%%%%%%%8$=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------~~::+=*xY$##88%%%%%%%%%%%%%%%%8%8888##$VVYYYYYYYYxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxx*=:~~~~~~~~~~~~~~~~------~------~--~----------------~~~~-~~~~~~~-~~~~~--~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=====================================*****************==+++++++:::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~-----~~~~~~~~~~~~~~~~~~::::::++:::::::~~:~~~~~~~~~~~~::~::=============+=++++++++++++++:::::::::::::::~~:~:~~~~~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888###$#$$$$$$$$$$$$##$$$$$$###################8888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888%%%%%%%88%%%%%%%%%%%%%@%@%@%%%@@@@@@@@%%%%%%%888888888888888888888#88888#888##88#8888888888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~--------~*YYYYYYYYYYYYYYYYYV#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------~~:+=*xYV$#888%%%%%%%%%%%%%%%%%88888##$$VVYYYYxxYxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxx*+:~----------------------------------------------~----~-~~---~--~~~~~-~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++===================================*=*****************=++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------~-~~~~~~~~~~~~~~~:~:::::::+:::::::~:~:~~~~~~~~~~::::::==============+=++++++++++++++:::::::::::::::::~~~~:~~~~:~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~~-~---------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888##$$$$$$$$$$$$###$#$#$#$$###############8###88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%888888888888888888888#88#888888#88#8888888888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~--------~~=xYYYYYYYYYYYYYYYYV#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------~~~::+=*xYV$#888%%%%%%%%%%%%%%%%%%%88888##$$VYYYYYYxxYxYxxxxxxxYxxYxxxxxxxxxxxxxxxxxxxx*=+:~------------------------------------------------------~~--~~-~~~~~-~~~---~-~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++====================================******************=+++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~:~:::::::::::::::~~:~~~~~~~~~~:::::::================++++++++++++++::::::::::::::::::~~~~~:~~~:~:~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-~~~---~---------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888###$$$$$$$$$$###$#$##$$##$###############888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@@%%%%%%%888888888888888888888#8888##8#88#88888888888888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~------~~~~~=xYYYYYYYYYYYYYYYYV$8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------~~~:++=*xYV$##888%%%%%%%%%%%%%%%%%%%%8888##$$VVYYYYYYxxxYYxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxx**=+~----------------------------------------------------------~~~~~~~~~~-~--~~-~-~--~~~~~~~~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+:+++++++++++++++++++++=================================*=*******************=+++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~::::::+::::::::~~:~~~~~~~~~:::::::+================+++++++++++++++:::::::::::::::::~:~:~~~:~~~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~--~-~-----------------------------------------------------------------------------------------------------------------------------------------~~~~~-~~~~~~~-~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~:::+==******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##8888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$$$#$###$$$$##########8#8#8##8##888888888888888888888888888888888888888#88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#88#888#88#8888888888888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~----~~~~~~~=xYYYYYYYYYYYYYYYYV#8%%%%%%%%8Y+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~-------------------------------------------------------------------------------------------------------------------------~~~::++=*xYV$##888%%%%%%%%%%%%%%%%%%%%%88888##$$VYYYYYYYxxxxxxxxxxxxxxYxxYxxxxxxxxxxxxxxxxxxxx***=:~---------------------------------------------------------------~~-~~~~--~~-~~~~~~~-~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++================================*********************=+++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::++::::::::~:~~~~~~~~~:~::::::+================+++++++++++++++:::::::::::::::::::::~~:~::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$##8888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$#$$$#$#$$#$$########8#8#88#888888888888888888888888888888888888888888#88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888888888#8#8#88888888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~--~~~~~~~~~~=YYYYYYYYYYYYYYYYYV$8%%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------~~~::::+=*xYV$$##8888%%%%%%%%%%%%%%%%%%%%%%8888##$$$VVYYYYxxxxxYYxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxx**===+:~-----------------------------------------------------------------~-~~~~~--~~~~~~~--~~~~~~~~~~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++==================================********************=++++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::++::::::::::~~~~~~~~~~:::::::+==================++++++++++++++::::::::::::::::::::~:~:~:~~::~::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~----~~----------------------------------------------------------------------------------------------------------------------------------------~-~~~-~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY####888888888888888#88888888888888888888888888888888888888##$#$$$$$$$$$$#$$$#$$#$$$$######88#88#88888#88888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#888#8##88####8888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~=xYYYYYYYYYYYYYYYYY$8%%%%%%%%%8V+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--------------------------------------------------------------------------------------------------------------~~~:::++=*xYVV$$##888%%%%%%%%%%%%%%%%%%%%%%%8%8888##$$VVVYYYYYxxxxxYxxxxxxxYxxxYxxxxxxxxxxxxxxxxxxxxxxxx*=+:::~~-----------------------------------------------------------------------~~~-~~-~~~~~-~-~~~~~~~~~~~~~~-~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++==================================*********************=++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::++++:::::::~:~~~~~~~~::::::::++====================+++++++++++++:::::::::::::::::::::~:~::~::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~~-----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##888888#88888888#8888888888888888888888888888888888888888##$$$$$$$$$$$$$$##$#$$###$######88#888#888888888888888888888888888888888888888888#888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#88888##8##8#8#888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~=xYYYYYYYYYYYYYYYYY$8%%%%%%%%%%8Y+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-------------------------------------------------------------------------------------------------------~~~::::+==*xYYV$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%8888###$$$VYYYYYYxxxxxxxxxxxYxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxx*=+:~~---------------------------------------------------------------------------~-~~-~~~~~-~~~~~~~-~~~~~~~~~-~~-~-~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+:++++++++++++++++++++=++===================================******************==++++++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++++:::::::::~:~~~:~::::::::+++====================+++++++++++++::::::::::::::::::::::::::::::::~:~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~--~~--------------------------------------------------------------------------------------------------------------------------------~-------~~~-~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++=******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$##888#8888#888#888888888888888888888888888888888888888888##$$$$$$$$$$$$#$$##$#$$#$#######8888#88888888888888888888888888888888888888888888###8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888888888###8##8##8##888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~-~~~=xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%#Y=+++::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-------------------------------------------------------------------------------------------~~~~~~::::++=*xYYVV$$#88888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888###$$$VVYYYYYYxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxx**=+:~~-----------------------------------------------------------------------------------~-~~-~~~~-~~~~~~~~~~~~~~~~-~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++++++++++++++++++++++====================================********************=+++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::+++++:::::::::~::~~::::::::::+++=======================++++++++++:::::::::::::::::::::::::::::::::::~~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~~-~-----~---------------------------------------------------------------------------------------------------------------------------------~~-~~~-~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~::::+==*****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#####88888#88888888888888888888888888888888888888888888888###$#$$$$$$$$$$$#$$#$$#########888888#888888888888888888888888888888888888888888###88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888#888#####8#88#88##888888888888888888888888888888888888888%%% ~~~~~~~~~~~~~~-~~~~~+xYYYYYYYYYYYYYYYYYY$8%%%%%%%%%%%88#$$$VVVYYxxx*===++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~---------------------------------------------------------------------------------~---~~~~~~~~:::++==*xYYVV$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888###$$$VVYYYYYYYxxxxxxxxxxYxxYxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxx**=+:~---------------------------------------------------------------------------------------~~~~~--~~~~~-~-~-~~~~~~~~~~~~~-~~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++++++++++++++++++++++=+==================================*********************=+++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++=++++:::::::::::::::::::::::+++========================+++++++++++:::::::::::::::::::::::::::::::~::~:~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~---~-------------------------------------------------------------------------------------------------------------------------------------~~~~~~-~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##88#8#8#88888##88##88888888888888888888888888888888888888##$$$$#$$$$$#$$$##$#$#$$#######888888888888888888888888888888888888888888888888#88#8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888#88#88#8####8####88888888888888888888888888888888888888888% ~~~~~~~~~~~~~~-~~~~+xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%888888###$$VVYxxx**=++++::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~-~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++===+=======**xxxxxYYVV$$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888###$$VVVYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*==+:~~-------------------------------------------------------------------------------------------~~~~~~--~~~--~~~~-~~~~~~~~~~-~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++++++++++=====================================********************=++++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++=++++::::::::::::::::::::::++++========================+=++++++++++::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~-~----------------------------------------------------------------------------------------------------------------------------~-----~~--~~~-~~~~~-~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~:::+==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$####8##88#8#88##88888888888888888888888888888888888888888##$$#$$$$$$$$$#$$$$#$$$#########88888888888888888888888888888888888888888888888####8888888888888888888888888888888888888888888%%%%%%%%%%%%8%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#88#88#8##8#8#8###8888888888888888888888888888888888888888 ~~~~~-~~~~~-~~~~~~+xYYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888##$$$VVVVYxxx*******====+++===+++++++++++++++++++==========**********xxxxxxxxxYYYYYYYYVVVVVVVVVV$$$$$$$$$$#############8888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$VVVVYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxxxYxxx*=++:~~--------------------------------------------------------------------------------------------------~~~~-~~~~~-~~~~-~~~~~~~~~~--~-~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::++++++++++++++++++++++++=====================================********************==+++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++++:::::::::::::::::::::++++==========================++++++++++++::::::::::::::::::::::::::::::::~:~:~:~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~---~---------------------------------------------------------------------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#####8##8#8#888#8###88#8888888888888888888888888888888888####$$$$$$$$$$#$$$$#$$##$#######88888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888#8888#####88####8###8888888888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888########$#$$$###$$$##$$##################8888888888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$$VVVVYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxYxxxxYxxxxxxxxxxxxxxxxxYxxYxxxxxx**=+:~~------------------------------------------------------------------------------------------------------~~-~~~~~--~~~~~--~~~~~~~~~~~-~--~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++++++++++++++++++=+==================================***********************=++++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++++:::::::::::::::::::::++++==========================+++++++++++++:::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~~----~--------------------------------------------------------------------------------------------------------------------------------------~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV####8##88#8####8#8#88#88888888888888888888888888888888888###$#$$$$$$$$$$#$#$#$#$$#######88888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%8%%%@%@@%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888#88888###8#8#######8#888888888888888888888888888888888888888 ~~~~~~~-~~~~~~~~:xYYYYYYYYYYYYYYYYYYYYYV$$$######88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$$VVVYYYYYYYYYYYxxxxxxxxxxxxxYxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxxxxx*==+:~~-----------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::+++++++++++++++++++++++++=====================================*********************==+++++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::++++++:::::::::::::::::::::+++++===========================+++++++++++++:::::::::::::::::::::::::::::::::::::~::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~----------------------------------------------------------------------------------------------------------------------------------~~~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########8#8##8##888##888888888888888888888888888888888###$$$$$$$$$$$$$$$$#$$#########8888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%%8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%888888888888888888888#8###8###########888888888888888888888888888888888888888 -~--~~-~-~~~~~~:*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVV$$$$$####88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%%%888888888###$$$$VVVYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxYYYxxx**=++:~~----------------------------------------------------------------------------------------------------------------~~~~~~~-~~-~~~---~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+:+++++++++++++++++++++++=+====================================*=********************==+++++++++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::+:+++:::::::::::::::::::::+++++===*****=====================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::~::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~--~---------------------------------------------------------------------------------------------------------------------------------~~-~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$###################8##8888888888888888888888888888888888###$$$$$$$$$$$$$#$$$$$##########888888888888888888888888888888888888888888888#######88888888888888888888888888888888888888888%%%%%%%%%%%%%8%%@@@%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#88##88##########88888888888888888888888888888888888888 -~~---~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$#####888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%8%%8888888888888888888888888888888888888888888##888#########$$$$VVVVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxYYYYxxxxxx*==+:~~----------------------------------------------------------------------------------------------------------------------~~-~~~~~~-~~~~-~-~~~~~~~~~~~~~~-~--~~~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::++++++++++++++++++++++++++=====================================**********************==++++++++++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++::::::::::::::::::++++++++====******=====================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~-------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$######8######8#####88##88888888888888888888888888888888####$#$$$$$$$$$#$$#$$#$$########888888888888888888888888888888888888888888888##8####888888888888888888888888888888888888888888%%%%%%%%%%%%%8%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888888888888#############88888888888888888888888888888888888888 ---~--~~~~~~~~~*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$#$$###############8###888####88##8##########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxxx**=++:~~-----------------------------------------------------------------------------------------------------------------------------~-~~~-~~-~-~~~~~~~~~~~~~~~~~~~~~~--~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:::::::::::::::::::::::::++++++++++++++++++++++++++=+=====================================**********************===++++++++++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+++++++++====*********===================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~::~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#########8############888888888888888888888888888888888#####$$$$$$$$$$$$$$#$$$#$#######88888888888888888888888888888888888888888888########888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%8888888888888888888##88##8##############8888888888888888888888888888888888888 --~~-~~~~~~~~~+xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYYYYVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxYYYYYYYYYxxxxxxxxYxxxYxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYxxxxx*=++:~~~------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~-~~~~-~~~~~~~~~~~~~~~-~-~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::++++++++++++++++++++++++++++=======================================**********************====++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::++++++++======*********===================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~-------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$######8##########8##8#888888888888888888888888888888888#####$$$$$$$$$$##$$$$$$#$#######88888888888888888888888888888888888888888888####8###888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%888%8888888888888888888#88################888888888888888888888888888888888888 -~-~~~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYxxxxxxxxxxYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxxxYxxxxxxxxxxxxxxxxYxxxxxxxYxxxYxxxxxxxxxxxxxxxxxxxxxYYYYxxxx***=++::~~-------------------------------------------------------------------------------------------------------------------------------------------~-~~~~-~--~~-~~~~~~~~~~~~~~~~~~~~~-~~~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:::::::::::::::::::::::::::++++++++++++++++++++++++++=========================================**********************=====++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::++++++++======***********====================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------------------------------------------------------~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$######################88888888888888888888888888888888#####$$$$$$$$$$##$##$$$#$$#######888888888888888888888888888888888888888888##########88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88888888888888888888#888#8################888888888888888888888888888888888888 ~~~~~~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxYxYxxxxxxxxYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYxxYYxxxxxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYxxxxxx**==+::~~-----------------------------------------------------------------------------------------------------------------------------------------------------~~-~~-~~-~~~~-~~~~~~~~~~~~~~~~~~-~-~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++========================================************************=======+++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+:::::::::::::::::++++++=+======************====================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~--------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$###################8#888888888888888888888888888888888######$$$$$$$$$##$#$#$$$########888888888888888888888888888888888888888888#8######88#888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#8###8##8#####8######888888888888888888888888888888888888 ~-~~~~~~~~~~~~*xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxYYxYxYYxYxxxxxxxYxxYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxxxxxxxxxxxYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxxxxxxx**==+++:~~~------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++++++++++++++++++++++++++=======================================*=************************========+++++++++++++:::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::+::::::::::::::::+++++++=========*************====================++++++++++++::+::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$######################88888888888888888888888888888888######$$$$$#$$$$$$#$##$$########8888888888888888888888888888888888888888888########8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%%%88888888888888888888#88##8###########8####88888888888888888888888888888888888 ~~~~~~~~~~~~~~+=====***xxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxYxxxxxxxxxxxxxYxxxxxxxxYYYxxYYYxxxxx***==++::~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++=========================================*************************==========+=+++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::+::::::::::::::+++++++++=========*=************===================+++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$#####################88888888888888888888888888888888######$$$$$$$$$#$$$##$#$$$#######888888888888888888888888888888888888888888#########8#888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%888888888888888888888#8#8################88888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~::::+++==****xxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxYxYYxYxxYYYxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxx****==++::~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::++++++++++++++++++++++++++++======================================******************************==========++++++++++++:::::::::::::::::::::::::::::~~~~~~~~~:~~~~::~:~~~~~~~:::::::::::::::::::::::::::::+:::+::::::+:++++++++++=========**=************===================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#####################88888888888888888888888888888888#######$#$$$$$$$$##$$$$#$$########88888888888888888888888888888888888888888###########8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%888888888888888888888##8#################8888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===*****xxxxxxYYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxYYxYYYxxYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxxxxxxxYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxYYxxxxxxYYxxxxxxxxxxxx******==++:~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+::++++++++++++++++++++++++=+=====================================*=**********************************==========+++++++++++::::::::::::::::::::::::::::~:::~:~::::::::::::::~:::::::::::::::::::::::::::::::+:::+:++:+++++++++++++++========*****************==================++++++++++++:+::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~----------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===******xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$####################888888888888888888888888888888888#########$$$$##$$##$#$$$#########88888888888888888888888888888888888888888##########8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%%%%88888888888888888888#88##8################888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++++==*===*****xxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYxYYxxYxxxxxxxYYYYYYYYYxYxxYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxx******==++::~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=========================================*=*********************************===========++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++=======********************===================++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~----------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$####################88888888888888888888888888888888##########$#$$$$$##$#$#$$########88888888888888888888888888888888888888888#######8##8#88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#88##8################888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~~~~~~~~~~~:::+=xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx===========================+++++=++======+==++++++++++++=+++++++++=++++++++++++::+++::::::~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++===========================================*************************xxx*********==========+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:::+++++++++++++++++++++++=======*********************==================+++++++++++++++::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~--------------------------------------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$$$###################88888888888888888888888888888888#########$$##$$#$$###$$#$#$######88888888888888888888888888888888888888888########8##8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%888888888888888888888###88####8############88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~--------~+xVVVVVVVVVVVVVYVYVVVVVVVYVVYVYYVYVYVVYVVYYYVVVVYYVYYVYYVYVVYVVY*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++=========================================*==*************************xxxxx*********============+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++:++++++++++++++++++++++++=====*==***********************==================++++++++++++++::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~-~~--------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$###################888888888888888888888888888888888########$####$$$$#$##$#$$$#######8888888888888888888888888888888888888888##8###8##88#88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888888####8#################88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~-~~-~----------~=YVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVYVVVVVVVYVVVVVVVVYVVYYYVYVYY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++============================================**************************xxxxxxxx********============++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++=====***=**************************===============++++++++++++++++++::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~---------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$##################888888888888888888888888888888888#############$######$#$##$#$#####8888888888888888888888888888888888888888#8##88##8##888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888###8################88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------~:*VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVYVVVVVVYVVVVYYVVYYVVYx+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++============================================****************************xYYxxxxxxx********============+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++=====****=****************************==============+++++++++++++++++:+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~---------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+===*******xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$###################88888888888888888888888888888888###########$####$#$$#$###$#$######888888888888888888888888888888888888888##8##8#8#8#8#888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#8###################8888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~----------~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYYVYVVVYVY*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++===========================================****************************xYYYYxxxxxxxx*******==============++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++======**************************************==========++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-----------------------------------------------------------------------------------------~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$##################888888888888888888888888888888888###############$#$#$#############888888888888888888888888888888888888888#888#88#8##888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#8#8#################8888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~----~~----~*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYVY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++==========================================*******************************YYYYYYYYxxxxxx*********=============+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++======****************************************===========++++++++++++++++++++++:+:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------~~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$$$##################8888888888888888888888888888888888#################$####$###$######88888888888888888888888888888888888888#88##88#888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%8888888888888888888888##8#################888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~---~----~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYVYYYx+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++==========================================*******************************xYVVYYYYYYxxxxxxx*********==============+++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++=======******xx**********************************===========+++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~-----------------------------------------------------------------------------~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$#################8888888888888888888888888888888888############$####$####$###$######8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%888888888888888888888##8##################888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVVVVVVVVVVVYYVYYY*:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++==========================================*******************************xYVVVVYYYYYYYxxxxxxx***********===========++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++======********xx************************************==========+++++++++++++++++++++:+:++::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--------------------------------------------------------------------~-~~--~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$################88888888888888888888888888888888888#################$###$###########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%888888888888888888888#8#8#################88888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~--~:*YVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVVVVYYVVY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++=============================================*=******************************Y$$$VVVVVYYYYYYxxxxxxxx*********=============+++++++++++++++++:::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++=+========********xxx************************************===========+++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-~-~--~~----~---------------------------------------------------------~--~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$################888888888888888888888888888888888888################$####$###$######8888888888888888888888888888888888888#888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%888888888888888888888####################88888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~-~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVVVVVVVVVVYVYYVx+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++==============================================******************************xV$$$$VVVVVYYYYYYxxxxxxxx************============+++++++++++++++++++::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++=============********xxxxxx************************************===========++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~-~~---------------------------------------------------------~--~-~~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############888888888888888888888888888888888888#####################$#$#########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%8888888888888888888888#8#8################8888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVVVVVVVVVYVVVVVY*:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++=+==========================================*=********************************xV$$$$$$$VVVVVVYYYYYYxxxxxxxxx************===========++++++++++++++++++++:::::::::::::::::::::::+:++++++++++++++++++++++++++++=+===============*****xxxxxxxxxx************************************============+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~------------------------------------------------------~~~-~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$################888888888888888888888888888888888888###########$#####$###############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%8888888888888888888888#8##################8888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~:*YVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVYVVVYVVY=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-----------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++==============================================*********************************x$##$$$$$$VVVVVVYYYYYYYYYYYxxxxxxxxx*********=========+++++++++++++++++++++++++:+++::+::::++:+++++++++++++++++++++++++++++==++================****xxxxxxxxxxYYxx*************************************===========++++++++++++++++++++++++++::++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~~~~~~--~-----------------------------------------------~~~-~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############8888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%88888888888888888888#8#8##################888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVVx:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~----------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++============================================*=*********************************xV$###$$$$$$$VVVVVVVYYYYYYYYYxxxxxxxxxx********=========+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===+================***xxxxxxxxxxxYYYYx************************************============++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~-~-~-~~---------~---~--------------------~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############8888888888888888888888888888888888888####################$############88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%8888888888888888888888#88##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVYVVVVVVY*~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++============================================*************************************x$######$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxxxx********=================+====++++++++++++++++++++++++++++++++++++++++++++++++++++===================****xxxxxxxxYYYYYYYYYx*************************************===========++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~-~~~~---~~-~~-~~---~~--~~-~-~~-~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$##############88888888888888888888888888888888888888#######################$########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%888888888888888888888888##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVY+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~--~----~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++=============================================**************************************Y$#######$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxxx**********===========================+++++++++++++++++++++++++++++++++++++++++++===================*****xxxxxxxYYYYYYYVVVVVx**************************************===========++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~~---~-~~~~-~~~--~~~~~-~-~~-~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$#############888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%888888888888888888888####################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVYx:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~-~-~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=============================================****************************************x$#########$$$$$$VVVVVVVYYYYYYYYxxxxxxxxxx************================================++++++++++++++++++++++++++++++++++=======*=========*********xxxxxYYYYYYVVVVVVVVVVx**************************************===========+++++++++++++++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$##############88888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%88888888888888888888888##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVY*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~----~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~~----~------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+==========================================******************************************Y$###########$$$$$$VVVVVVVYYYYYYYYxxxxxxxxx*x**********==========================================+++++++++=++=====+============***===**************xxYYYYYYYYVVVVVVVVVVVYx*************************************============++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$#############888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%88888888888888888888888###################8888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~-~----------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++============================================*******************************************xV#############$$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxx**********=======================================================================****==**************xYYYYYYYYVVVVVVVV$$$$$Vx**************************************============+++++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$##############888888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%88888888888888888888888###################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~--------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++=============================================********************************************Y$###############$$$$$$$VVVVVVYYYYYYYYxxxxxxxxxxxxxx*****************=******=**=*=*=============================================********************xYYYYYYYYVVVVVVVV$$$$$$$Vx**************************************============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$##############88888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%88888888888888888888#8###################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~---~~-------------------------------------------------------------------~~--~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++============================================*********************************************xV#################$$$$$$$VVVVVVVVYYYYYYYYYxxxxxxxxxxxx**************************************===================================*******************x*xxYYYYYYVYVVVVVV$$$$$$$$$$Y***************************************=============++++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++=====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$##############888888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%88888888888888888888888##################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~-~---------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++==+=============================================*********************************************V$###################$$$$$$$VVVVVVVVVYYYYYYYYxxxxxxxxxxx********************************************=============================***x*********x*xxxxxxxYYYYYYVVVVVVV$$$$$$$$$$$$Vx**************************************===============++++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$#############8888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8888888888888888888888###################88888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~~~~~~------~--------------------------~--~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++============================================************************************************Y$#####################$$$$$$$$VVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********************************************======**=====*=**=***xxxx******xxxxxxxxxxxYYYYYVVVVVVVVV$$$$$$$$$$$$$Vx*************************************================+++++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$##############888888888888888888888888888888888888888##############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888##################88888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-------------~-~--~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++=============================================**************************************************xV#########################$$$$$$$VVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***********************************************************xxxxx**xxxxxxxxxxxxxxYYVVVVVVVVVVV$$$$$$$$$$$#$$##$x**************************************==================++++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++=======*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$#############88888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%8888888888888888888888###################8888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~------------------------------------------~-~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++===========================================*=***************************************************Y$##########################$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************************xxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVV$$$$$$$$$$#######$x*************************************=*=================++++++++++++++++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++======*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$#############888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8888888888888888888888###################888%888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--------~~----~----~-~~~~-~~~-~~-~~-~~~~~~~~~~~----~----~------------------------~--~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++============================================*****************************************************x$#############################$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************xxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVV$$$$$$$$$$$########$x***************************************=*================++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=======******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$#$$$$$$$$$###########888888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888##################888%888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~------~---~------~~-~-~~-~~-~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------~--~~-~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++===========================================**=***************************************************xV################################$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x************xxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVV$$$$$$$$$$###########$Y**************************************====================+=++++++++++++++++++++++++++++++::+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++======******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##$$$$$$$$###########888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%8888888888888888888888##################888%%88888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~----~-~-~~-~~-~-~~-~~~-~~~-~~-~~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~-~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++==============================================*******************************************************Y$##################################$$$$$$$$$$VVVVVVVVVVVVYVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxxxxxxxxxxxYYYYYYVVVVVVVVVV$$$$$$$$$$##############$Y***************************************=*==================++++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++======*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###$$$$$$$############88888888888888888888888888888888888888#8##############################8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888#################888%%88888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~-~--~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------~--~---~~~-~~~-~~~~~-~~~~-~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++============================================*=*********************************************************Y$#####################################$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$#$#############$Y*****************************************=====================++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#####$$$$$$##$########8888888888888888888888888888888888888888#############################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%888888888888888888888###################888%%8888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~-~~~-~~--~-~--------------------------------------------------------------------------------------------------------------------------------~--------~~--~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=============================================*=*********************************************************xV#########################################$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYxxYYxxYxxYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxYYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$$$###############$Yx*****************************************====================+=+==++++++++++++++++++++++++++++:+::+:::::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$##$##$$$$$$#$########8888888888888888888888888888888888888888#############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%8888888888888888888888###################88%%8888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~-~~----------------------------------------------------------------------------------------------------------~-------~--~----~-~--~-~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++==============================================************************************************************xV###########################################$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxxxxxxxxxxxYYYYYYYxxxYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$$###################VY*****************************************=*======================+==++++++++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::::::::::::::::~~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$##$#$#$$$$$##########888888888888888888888888888888888888888##############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%8888888888888888888888#################888%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------------------~---------~--~--~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++===========================================*=************************************************************xV$##############################################$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$###################$Vx******************************************========================+=+++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$##$#$#$$$$$#########8888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%888888888888888888888#8#################88%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~~~~~~~~~~-~~~~------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++==========================================*=**=*************************************************************Y$##################################################$$$$$$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$########################$Vx******************************************========================+=+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~:~:::::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$###$###$$$$#########888888888888888888888888888888888888888##############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%888888888888888888888###################88%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~----------------------------------------------------------------------------~-~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++=============================================*****************************************************************Y$####################################################$#$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$########################$Yx****************************************============================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:~:~:~~~~~:::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$#$#$$#$$#$$$#########88888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%8888888888888888888888###############8##88%%%%8888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++==============================================******************************************************************Y$########################################################$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$$############################$Yx****************************************===========================++++++++++++++++++++++++++++::+:+:::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~:~:~::~~:::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$#$$###$$$#########888888888888888888888888888888888888888##############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%888888888888888888888##############8#####88%%%8888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~-----------------------------------------------~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++++++++++++===============================================*=******************************************************************Y$############################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYVYYVYYYYYVYYVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$#$##############################VYx***************************************=============================+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~::~::::~::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$#$$$###$$$#######888888888888888888888888888888888888888#8############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%88888888888888888888##################888%%%%%88888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYY*=::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~-~-----------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~~:::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++================================================********************************************************************Y$#################################################################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVVYVVVVVVVVYVVVVVYVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$##################################VYx***************************************==============================++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$###$##$########8888888888888888888888888888888888888888############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888###########8#####8#88%%%%%8%888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++================================================***********************************************************************Y$###################################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYVVYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$#$#$##################################VYx**************************************==============================+++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$#$$#############8#8888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888#############8#####88%%%%8%888888888 ~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~:~:~~:~~~~~::~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++++===============================================**=***********************************************************************Y$#88####################################$##############################$$$$$$$$V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYVVYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$#$######################################VYx************************************================================+++++++++++++++++++++++++++:++++::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$###$############888888888888888888888888888888888888888############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888##########8#######888%%%%%%%88888888 ~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~:~:~:~:~:~:~~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================**************************************************************************xY$#888##################################$#####$##$#$######################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYYYYYYYYYYYYYYYYYYYYVVVVV$$$$$$$$$$$$#$##$####################################$$Yx************************************================================++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$#$########8#88888888888888888888888888888888888888#############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888#####8#############88%%%%%%%%%8%8888 ::::::::~:~~~:~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~:~:~~::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++++++++++++++++++++++==================================================****************************************************************************xY$#88888##################################$##$##$###########################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$#$#$$#########################################$$Yxx************************************================================++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~:~~~:~~~~~:~::::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$#$##$##########888888888888888888888888888888888888888############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888#############8#####888%%%%%%%%%%8888 ::::::::::::~:~~~~~~:~~~~~~~~~~:=VVVVVVVVVVVVVVVVVVVVVVVVVVYY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::~::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++++++======================================================****************************************************************************xV#8888888############################$####$###$######$#####$##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYVVVVV$$$$$$$$$$$##$##################################$##$$#$##$$$VYx***********************************================================+++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~:~~~~~:~~~:~~~~~~:~:~~~~~:::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$#$##########88888888888888888888888888888888888888#8#############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888#################8888%%%%%%%%%%%%%8 :::::::::::::::~:~~::~~~:~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~:~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++++++++========================================================*****************************************************************************xV#88888888###################################$#$######$$#$$$#$#$#$##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$###########################$###$$$$#$$$$$$$$$$$$$$$VYxx***********************************================================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~:~~~~~~~:~~~~~:~~:~~~~~:::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$#$##########888888888888888888888888888888888888888##############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%8%%%88888888888888#################8888%%%%%%%%%%%%%% :::::::::::::::::::~::~:~:~::~:=VVVVVVVVVVVVVVVVVVVVVY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++++=+=========================================================*=*****************************************************************************xV#888888888###############################$###$#$##$#$##$$#$#$#$$#$###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$#$############################$$$$$$$$$$$$$$$$$$$$$$$$$$VYxxxx******************************==================================+++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~:~~~~~~~~~~~:~~~~:~~~~~:~:~~::~::::~::~:::~::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$###########8888888888888888888888888888888888888888#############################888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888#######8#########8##88%%%%%%%%%%%%% ::::::::::::::::::::::::::::::+YVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::++++++++++++++++++++++++++++++++++++++++++++++++++=+========================================================*=*=********************************************************************************xV#8888888888###############################$####$$##$#$#$$$#$$$$$$$$$#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$#$#$###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVYxxx*******************************=================================++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~:~~~~~:~~~~~~~~~~~::~~~~:~~:~~~~~~::~:::~:::::~~:::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$##########88888888888888888888888888888888888888888############################888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888##################888%%%%%%%%%%%%% ::::::::::::::::::::::::::::~:*VVVVVVVVVVVVVVYY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------~-~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++++++============================================================**********************************************************************************Y$#8888888888###############################$#$#$#$$#$$$#$$$$$$$$$$$$$$$$$$###$##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$$#$#$#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVYxx********************************=================================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~~:~~:~~~~~:~:~~:~~~~~~~~~~~:~:~~::~~::::~::::~:::::::::::::::::::::::::++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$##########88888888888888888888888888888888888888#88#############################8888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888##########8#######888%%%%%%%%%%%%% :::::::::::::::::::::::::::::+YVVVVVVVVVVVYx*+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~:~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++=+=========================================================***************************************************************************************xV#888888888888###############################$$###$$#$$#$$$$$$$$$$$$$$$$#$$$#$$##$##$#$####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VVVVVVVVVVVVVYYYYYYYYYYYYVVVYVVVVVVV$$$$$$$$$#$##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYxx*********************************==============================+++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~:::~~:~~~~:~~:~~~~:~:~:~::~~~:~:::~:~:~:~:~::~:::~:::::::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$###########88888888888888888888888888888888888888##8#############################88888888888888888888888888888888888888888888888888888888888888888#888#88888888888888888888888888888%%%%%%@%@%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888###8#####8######8#888%%%%%%%%%%%%% :::::::::::::::::::::::::::::xVVVVVVVVVYx=+:~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:~:~~:~:~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++=+==============================================================***************************************************************************************YV#8888888888888###########################$###$##$#$#$$$$$$#$#$#$$$$$$$$$$$$$$$$$$#$$##$$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVV$$$$V$$$$V$VVVVVVVVVYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$#$$###############################$$$$$$$$$$$$$$$VV$VV$$$$$$$$$$$$$$$$$$$$$VVYYxx******************************=*=============================++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~~~~~~~~~~~~~~~~:::::::::::::::::~:::::::~::~:~::~::::~~:~::~:::::::~:::::::::::::::::::::::::+++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$##########8888888888888888888888888888888888888888##8###########################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%@%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888#8#88#8#######8#8##888%%%%%%%%%%%% ::::::::::::::::::::::::::::=VVVVVVYx*+:::~~~~:~~~~~~~~~~~~~~::~:~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~::~:~~::::~~:::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++++============================================================**=**************************************************************************************xY$#8888888888#88#8##################$########$$#$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$##$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$$V$$$V$$$V$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYVVVVVVVVVVV$$$$$$#$#################################$$$$$$$$$$$$VVVVVVVVVVVVV$$$$VVVVVVVVVVVVV$$VVVVVYx*******************************=============================+++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::~::::::::::::::::::::::::::::::::::::::::~:~:::::::~:~::::::::::::::::::::::::::::::::::::::+++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$##########88888888888888888888888888888888#8888888##############################8888888888888888888888888888888888888888888888888888888888888888#8#8888#888888888888888888888888888%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888###8####8####8#88#888%%%%%%%%%%%% :::::::::::::::::::::::::::+xVVVYx=+::~::~:~~:~~~::~:~~:~~::::::::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++===============================================================*=****************************************************************************************YV#88888888888888#8######################$##$$$$$$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$###$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYVVVVVVVVVVV$$$$$##$################################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx********************************===========================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~::::~:::::~:~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~:~~~~~~~:~:~:~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::++++=====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$#########88888888888888888888888888888888888888888#8############################8888888888888888888888888888888888888888888888888888888888888888#8#8##888888888888888888888888888888%%%%%@%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888##8#88#8888##8##888%%%%%%%%%%%% :::::::::::::::::::::::::::*YY*=+:::~::::::::::::::::::::::::~:~::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++===========================================================*=*********************************************************************************************xV$888888888888888#8##################$$###$$$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYYVVVVVVVVVV$$$$$$$$#$###############################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYx********************************===========================++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::::~:::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::++++=====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$#########88888888888888888888888888888888#88888888#8############################88888888888888888888888888888888888888888888888888888888888888888##8#88#8888888888888888888888888888%%%%%@%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888#88##8###8##8##8#88%%%%%%%%%%%% :::::::::::::::::::::::::::=+:::::::::::::::::::::::::::::::::::~:~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++=============================================================*==**********************************************************************************************Y$#888888888888888888################$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$$$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYYVVVVVVVVVV$$$$$$##$################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYx*********************************=========================++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$#$#########8888888888888888888888888888888888888#888#8############################888888888888888888888888888888888888888888888888888888888888888888#88##88888888888888888888888888888%%%%%@%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888####8##8##8##8##8888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++=+===========================================================*=*************************************************************************************************xV#888888888888888888################$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYVVVVVVVVVV$$$$$$$$#$################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx************************************=======================+++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$#########8888888888888888888888888888888#88888#8##88############################88888888888888888888888888888888888888888888888888888888888888#888##8###8#888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888#88##8##8####88888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~::~:::~:~::~~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~-~~~~~~--~------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++==++=============================================================****************************************************************************************************Y$#88888888888888888#8#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYVVVVVVVV$$$$$$$$$$################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVYVYYYVVVVVVVVVVVVVYx************************************======================++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$##########888888888888888888888888888888888#88888888##8##########################888888888888888888888888888888888888888888888888888888888888888##8####8#8888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888#888###88#8##8888888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~:::~:~::~~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-------~-~--------~-~~~---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++==============================================================****************************************************************************************************xV$88888888888888888888#8################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYVVVVVVV$$$$$$$####################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVVYVYVYVVVVVYVYVYYYYYYYYVVVVVVVVVVVVYx***************************************==*================+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$$$$$$$$$#########8888888888888888888888888888888##88888#8#8#888##########################88888888888888888888888888888888888888888888888888888888888#888888##8##8#888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888#8#8#8888888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~:~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-~~-~-~-~--~--------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++=++=============================================================******************************************************************************************************xY$#88888888888888888888#88#############$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYVVVVVVV$$$$$$$$##$###############################$#$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVYYx***************************************=**================++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$$##########8888888888888888888888888888888888#88#88#8#############################8888888888888888888888888888888888888888888888888888888888888#88#8#8####8#88888888888888888888888888%%%%@@@%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888#88#888888#88#88888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:::~~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~~~~~~~~~~~~-~~~~~~~~~~~---~-------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++++++++==========================================================*=***=*****************************************************************************************************xV#88888888888888888888888##8###########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYVVVVVVVV$$$$$$$$$####################################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVYx*******************************************================+++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$$##########888888888888888888888888888888888#8#88#8#8#############################888888888888888888888888888888888888888888888888888888888888888##8####88##88888888888888888888888888%%%%%@@%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888#88888#88888888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~~~~~~~~~~-~--------~--------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++++++++=========================================================**=*********************************************************************************************************xV$#88888888888888888888888888##########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYVVVVVVVVV$$$$$$##$##################################$##$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVVVVVYx*******************************************================++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########888888888888888888888888888888888#88#8#8#8888##########################888888888888888888888888888888888888888888888888888888888#8888888#######88#8888888888888888888888888%%%%%@@@@@%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888#88#88#8888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::::~~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~-~-~~~~~~-~~~~~-~-~~~~~~-~~~~~~~-~-----~---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++==================================================*==******=*********************************************************************************************************xY$#88888888888888888888888888#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$#######################################$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYxx*********************************************=============+++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########8888888888888888888888888888888#888888##8#88############################8888888888888888888888888888888888888888888888888888888888##88###8###8####88888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888#8888#888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-~~~~~~~~~~~~-~~~~~~~-~~~~--~-~---~~~~~~-~~--~----~-------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++=====================================================*****************************************************************************************************************xYV#8888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#####$#$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$$$####################################$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVYYx********************************************===============+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########88888888888888888888888888888888#8##8#88#88#####8#######################8888888888888888888888888888888888888888888888888888#888#888#8#8#########8#8888888888888888888888888%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888#88#888888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~---~-~-------~~--~---~--~------~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++++++===================================================********************************************************************************************************************xYV#8888888888888888888888888888#8###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$##$####$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$#######################################$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVYYx**********************************************=============++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$###########88888888888888888888888888888888#8#888888##88###########################8888888888888888888888888888888888888888888888888888888#88888#8##8########8#888888888888888888888888%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~-~-~~~~-~~~~~-~-~~~~-~~-~--~----~---~------~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++================================================*=**=******************************************************************************************************************xYV#88888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####$############$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVV$$$$$$$$##$#########################################$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVYxx*********************************************=============+++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$###########88888888888888888888888888888888#888#8#88#8####8########################888888888888888888888888888888888888888888888888888888888#8#8#888###8#######888888888888888888888888%%%%%%%%@%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~~-~~~~~~-~~~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~-~-~~-~-~~~--~~~~~~~~~~~~~~-----------~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++==================================================**********************************************************************************************************************xYV#888888888888888888888888888888888#########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$#############$$$$$$$$$$$$$##$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$###########################################$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYYYx**********************************************=============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$$$$$$$$############888888888888888888888888888888#8#8##88#88#####8#########################888888888888888888888888888888888888888888888888888888#8888888######8#######888888888888888888888888%%%%%%%@%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~-~~~~~~~~~-~--~---~-~-~-~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~~~~~-------------~-~-~-~~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++++++++++++++++===============================================*=***********************************************************************************************************************xY$#8888888888888888888888888888888888#########$$$#$$$$$$$$$$$$$$$$$$$$$V$VVVV$VV$V$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###$$########$##$##$#$$$$$$$$$$$$####$$$$$$$$$$$$$$$$$$VV$VV$$$$$$$$##############################################$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVYx********************************************=*=============++++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$############8888888888888888888888888888888#88#88#88#8#8#8##8#######################888888888888888888888888888888888888888888888888888#888#88#8##8##8#######8##8888888888888888888888888%%%%%%@%@@@@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~--~~-----------------------~--~~~-~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~-~-~-~~-----~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~:~~~::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++=============================================*==************************************************************************************************************************xV$#8888888888888888888888888888888888#8##########$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVV$V$VV$$V$$$$V$V$VV$$$V$V$$VV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########$###############$#$#$$$$$$$$$#####$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVYYx**********************************************==============++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$############888888888888888888888888888888##88##8#88#88###8###8#8###################88888888888888888888888888888888888888888888888888888888888#8#8##############888888888888888888888888%%%%%%%%@%%@%@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% ::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~---------------------------------~--------~--~~~~~~~~~-~~~-~-~~-~~~~--~~-~------~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++=============================================***************************************************************************************************************************xV$#8888888888888888888888888888888888#88##########$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$###$###############$$$$$$$$$$$$$$######$$$$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYYx**********************************************===============++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$############88888888888888888888888888888888##88##888#88############################888888888888888888888888888888888888888888888888888888#8#888#8#8######8######888888888888888888888888%%%%%%%@%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% :::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~------~---~-----------------~----------------------------~~~~~~~-~-~~--~~----~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++===========================================*=*=*************************************************************************************************************************xYV#888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################$#$$##$$$$$$$$$#######$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYVYYVYVVYx**********************************************===============++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$############88888888888888888888888888888888###8######8##8##########################8888888888888888888888888888888888888888888888888#8888##88#8#8#8############88888888888888888888888888%%%%%%%%%%@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% ::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-----------------------------------------------------~~~~--~~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~--~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++=========================================****************************************************************************************************************************xV$#888888888888888888888888888888888888888############$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$##############$###$$##$#$$$$$$$#$$####$#$$$$$$$$$$$$#################################################$$$$$$$V$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVVYYx***********************************************================+++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++=====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$#############88888888888888888888888888888888##8#8##88#8#8########8###################88888888888888888888888888888888888888888888888888#88#8#8##8################8888888888888888888888888%%%%%%%%%@%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% :::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~------------------------------------------------------------------~~---~--~-~-----------------~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++===================================*=*=****************************************************************************************************************************xYV##8888888888888888888888888888888888888888##############$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$################$##########$$$#$#$###$$$$$$$$$$$$$################################################$#$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVYVVYx***********************************************===============+++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$#############88888888888888888888888888888888##8#88###8###8#8##########################888888888888888888888888888888888888888888888#88##8#8888888################88888888888888888888888888%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~---------~~------------------------------------------------------------~~-~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=====================================******************************************************************************************************************************xxV$#88888888888888888888888888888888888888888#8###############$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$##########################$####$####$##$#$$#####$#####################################################$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVYVVVYx********************************************===================++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++=====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$#############8888888888888888888888888888888#8###8###8#####8##########################88888888888888888888888888888888888888888888888888#88#88888#88###############8888888888888888888888888%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~---~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++=================================*****************************************************************x****x*x**xx**x*****x*******x***********************************xYV#88888888888888888888888888888888888888888888#################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$###$#$############################################################################################$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVYYx****************************************=======================+++++++++++++++++++++++++++::::::++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$##############888888888888888888888888888888#8####88####8##############################888888888888888888888888888888888888888888888888888#8#8#8######8##########8##8888888888888888888888888%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++================================**********************************************************x****xxx*xx*x**x*xxx**xxxxxxxxx*x*x***********************************xxYV$#888888888888888888888888888888888888888888888###############$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$##$$############################################################################################$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVYVVVYYx**************************************=========================++++++++++++++++++++++++++++++:+++:+++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$#$$$$$$$$#############888888888888888888888888888888888#8##8########88#######8##################8#888888888888888888888888888888888888888888888#8#8#888#88#8#################8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++++++++++++++++==============================***********************************************************x*xx*xx*xxxxxx*xxxxxxxx*xxxxxxxx**xxxx***x*x**************************xYV$#8888888888888888888888888888888888888888888888##################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$##$############################################################################################$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYYYVVVVYx***********************************============================++++++++++++++++++++++++++++++++:+++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$$$$#$$$#############88888888888888888888888888888888##8#########88##8#####8###################8#88888888888888888888888888888888888888888888888#88#8##888###8##############8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++++++++++++==+=============================**********************************************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxxxxx***************************xYV$#888888888888888888888888888888888888888888888888###################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$#$#$#######################################################################################$#$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYVYVVVYxx********************************===============================+++++++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#$#$$$$$$$#$#############888888888888888888888888888888888###8##########8#####8#####################888888888888888888888888888888888888888888888888#8#888##88##################8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++++++++===============================********************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************xYV$#888888888888888888888888888888888888888888888888#8####################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$#########################################################################################$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVYx*******************************================================++++++++++++++++++++++++++++++++++++::++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#$$$$##$$################888888888888888888888888888888888###########8#8#8######8##################8##8888888888888888888888888888888888888888888#8#8#8#####8###################8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~------~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++++++++++++++++++++++++++++++++================================****************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x****x*********xYV$#88888888888888888888888888888888888888888888888888#8####################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$###################################################################################$#$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVYx****************************=*==================================++++++++++++++++++++++++++++++++++:+:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#$$####$#$################8888888888888888888888888888888888#############8###########8#################8888888888888888888888888888888888888888888#88#8##8#######################88888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~--~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++++================================****************************************************xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxx*xx******xxYV$#88888888888888888888888888888888888888888888888888888#####################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#################################################################################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****xxxxxxxYYYYYYYYYYYYYVVVVVVYx****************************==*================================+++++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#$$####$#$################88888888888888888888888888888888#8######8#8####8#############################8888888888888888888888888888888888888888888#88#8######8#8#################88888888888888888888888888%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~-~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++++++++++++++++===============================*****************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xxxYV$#8888888888888888888888888888888888888888888888888888888#####################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$############################################################################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******xxxxxxYYYYYYYYYYYVYVYVVVVYx****************************===================================++++++++++++++++++++++++++++++++++:+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$########$################8888888888888888888888888888888888##8################8#8#####8###############888888888888888888888888888888888888888888#888#8#8#######8#################8888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++++++++++++++=+============================**************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xxxYV$#88888888888888888888888888888888888888888888888888888888######################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********xxxxYYYYYYYYYYYYVVVVVVYx***************************=*==================================+++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::~~::~:~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$########$###############88888888888888888888888888888888###############8#8##########################8##88888888888888888888888888888888888888888888#######8#####################88888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++==============================***********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$##888888888888888888888888888888888888888888888888888888888###################$#$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYVVVVVVVVYVVVVVYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$########################################################################$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************xxYYYYYYYYYYYVYVVVVVVYx***************************=*===============================++++++++++++++++++++++++++++++++++++::++::::::::::::::::::::::::::::::::::::::::~::~~:~:~:~~~~~~~~~~~~~~:~::::~:~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################8888888888888888888888888888888888####8##8#####8########8#####8#################8888888888888888888888888888888888888888888#8#8#8##8#####################88888888888888888888888888%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++==============================***********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88888888888888888888888888888888888888888888888888888888888######################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVYVVVVVVVVVVVYVVYYYVVYYVYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$####################################################################$##$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************xxxYYYYYYYYYVYVVVVVVVVYx***************************=*===================================++++++++++++++++++++++++++++++++:++::::::::::::::::::::::::::::::::::::~::~::~~:~:~~~~~~~~~~~~~~~~~~:~:~:~::~:~:~~::~::~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################88888888888888888888888888888888##8##################8#######8##################88888888888888888888888888888888888888888#8##############################888888888888888888888888888%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++++============================**********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$##8888888888888888888888888888888888888888888888888888888888#8########################$##$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVYVYVYVVYYYVVYVVYYYYYYYYYYYYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$###################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********xxxYYYYYYYYYYYYVVVVVVVVYx**************************====================================+=++++++++++++++++++++++++++++++++:++::+:::::::::::::::::::::::::::::::::~~::~~::~~~~~~~~~~~~~~~~~~:::~:::~::~::::~~~~~:~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYY$##########################888888888888888888888888888888888#8#8#8################8##8####8################888888888888888888888888888888888888888888###########8####################88888888888888888888888888%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++=+==========================**********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV##8888888888888888888888888888888888888888888888888888888888888#8##########################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYVYVYYYYYYVYYVYYYYYYYYYVYVVVYVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$####################################################################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYYYYYYYYVYYVVVVVVVYx*************************=*====================================++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~::~:::~::~~::~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV###########################88888888888888888888888888888888####################8###########################888888888888888888888888888888888888888888#####8##########################888888888888888888888888888%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++=========================**********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#88%%%%8888888888888888888888888888888888888888888888888888888888#######################$###$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYYVYVYYYYYYYYYYYYYYYYYYVYYYYYYYYVYYYYVVYVYVVYYVVVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################8###################################$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVYx**************************=====================================+++++++++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~:~:~:~:~~~~~~~~~~:~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################88888888888888888888888888888888888#8##########8#88##8###########################888888888888888888888888888888888888888888####8###########################888888888888888888888888888%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~~-----~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++++==+==========================*****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%88%%888888888888888888888888888888888888888888888888888888#88########################$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#################8###8#88#8#8#####8#8#############################$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVYx**************************=*====================================+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~:~~~:~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########################88888888888888888888888888888888#########8######8#####8#########################88888888888888888888888888888888888888888#8###8###########################888888888888888888888888888%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~--~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++++==========================******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%%%%%%%%%888888888888888888888888888888888888888888888888888#888####################$##$###$$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVYVYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#####################8#8#8##8#8####################################$$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVY*************************========================================+++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################8888888888888888888888888888888888#8#8##########8#####8##8#8######################88888888888888888888888888888888888888888################################8888888888888888888888888888%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~-~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++=========================***************************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888888888#################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$##################################################################$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVYx**************************=====================================++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~::::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV###########################88888888888888888888888888888888888#######################88###88##############8#8888888888888888888888888888888888888888##88##8###########################8888888888888888888888888888%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-~~-~--~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++==========================************************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#88%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888#8##8##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#$###$##############################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVVVVx*************************======================================+++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##########################88888888888888888888888888888888888####8##8#########8#8#######8##8#################888888888888888888888888888888888888888888#####8#########################88888888888888888888888888888%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~--~-~~-~--~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++=======================*************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888#88#8##############################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVYx***********************========================================+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########################8888888888888888888888888888888888#################################################8888888888888888888888888888888888888888################################8888888888888888888888888888%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~---~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++==+======================**********************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$##%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888#88#8#8###############################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############################################$#$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVV$$$$$$$$VVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVx***********************=======================================++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:::~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY###########################888888888888888888888888888888888888#8###########8#8#8#######8##8###################88888888888888888888888888888888888888###8##############################88888888888888888888888888888%8%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~-~-~--~-~-~-~-----~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++=======================***********************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$$######8%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888#8####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$$#$$$$$$$$$$$####################################$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVV$VVV$V$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVYx***********************========================================+++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV###########################8888888888888888888888888888888888###############8####8########################8####888888888888888888888888888888888888888#################################88888888888888888888888888888%8%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~----~~-~--~----~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=======================********************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$$$$###$#####%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888#8#888###############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$############$#$###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVx***********************=======================================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:::~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##########################88888888888888888888888888888888888888#8##########8####8#8#####88#8##################88888888888888888888888888888888888888###################################88888888888888888888888888888%%8%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~-------~---~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::++++++++++++++++++++=========================******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVV$$$$#######%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888#88#8###########################$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$##############################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVY************************=======================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~::~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$########################8#8888888888888888888888888888888888888#############8###8##############################8888888888888888888888888888888888888#88#################################88888888888888888888888888888888%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~----~----~----~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++=======================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVV$$####%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888#88#8##8###########################$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################################$##$$$$$$$$$$$$$$$#$##$##$$$$$$$#$$$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVx*************************====================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$########################88888888888888888888888888888888888888##########################8##8####################888888888888888888888888888888888888888#################################8888888888888888888888888888888%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~--~---~-~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++========================**=***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVYYYYYxYxxxxxxxxxYYYYYYYYYVV$$#%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888#88##8888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################################$##$####$#########$$$$$$$$$$$$$$$$VVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVV$$Vx************************=**==================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY########################888888888888888888888888888888888888888#8###############88#8#############################8888888888888888888888888888888888888#8#################################888888888888888888888888888888888%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~~---~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++++++++++++++++++++==========================**************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVYYYxxxxxxx*******xxxxxxxYYYYYYYV$%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888#8888#8#8###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##################################################################$####$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVV$$$$VY**************************===================================+++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===*******x*xxx*xxxxx*xxxxxxxxxxxxxxxxxxxxxxxV########################888888888888888888888888888888888888888##8###8########8#88#######8#####8#################8888888888888888#88888888888888888888#8#################################8888888888888888888888888888888888%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~--~-~-~-~-~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++++++++++========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVYxxx*****========*********xxxYYYYYV%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888#88#8###################################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$Y**************************===================================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==********xxxxx*xxx*xxxxxxxxxxxxxxxxxxxxxxxxx$#######################88888888888888888888888888888888888888888#######8###########8#############################88888888888888888888888888888888888##8##################################8888888888888888888888888888888888%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::++++++++++++++++++++=======================**=***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVVVVVYxxx*==++++++++============***xxxYYYV%%%%%%%%%%%%%%%%%%88888888888888888888888888888#8888#8##################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYVVVVYVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$Vx***********************=====================================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==******xxxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxY########################8888888888888888888888888888888888888888##8#############88#8##8######8###8################88888888888888888888888888888888888#8###################################8#888888888888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~----~---~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++=========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVVVVVVVYYxx*=++:::::::+++==============***xxYV%%%%%%%%%%%%%%%%%8888888888888888888888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$VVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVV$$$$$$Vx************************====================================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==**********xx*xxxxxx*xxxxx*xxxxxxxxxxxxxxxxxY#####################88#88888888888888888888888888888888888888888######8#######8##8###############################8888888888888888888888888888888888888####################################888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~~--~--~-~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++=========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVVVVVVVVVVYYxx*=+:::~::::+++=+++++++++++=====**xxV%%%%%%%%%%%%%%%%88888888888888888888888888888#8#8###8#8#8##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$########################################################################$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$Y*************************===================================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==*********xxxxxxxx*xxxxxxxx*xx*xxx*xxxxxxxxxV#######################88888888888888888888888888888888888888888888#8##########888#88####8#########################88888888888888##8888888888888888888####################################8#88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--~--~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++=======================**=************************x****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVVVVVVVVVVYYxx*=+::~~~:::++++++++++++++++++===**xxV%%%%%%%%%%%%%%8888888888888888888888888888888#8###8#8##################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVV$$$$$$$$Y*************************==================================+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==********x*xxxx*xxx*xxxxxxxxxxxxxxxxxxxxxxxxx$######################888888888888888888888888888888888888888888#8#88#8########8#8##8#8############################888888888888888#888888888888888888###8##################################8888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~-~------~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++=+========================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVVVVVVVYYxx*=+::~~~::++++++++++++++++++++===**xx$%%%%%%%%%%%%%%8888888888888888888888888888#8#88####8###############################$##$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$###########################################$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVVVVV$$$$$$$$$Vx***********************=================================+=++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==**********xxxxxx*xxxxxxxxxxxxxxxxxx*xxxxxxxY######################8#88888888888888888888888888888888888888888888##8#88#####888#88###8########8##################888888888888888#888888888888888888#####################################8#88#888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~-~-~--~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++=+=====================****************************xxx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******x*****xxYVVVVVVVVVVVVVVVYYxxx*=+::~:::+++++++++++++::::+++++==**xx#%%%%%%%%%%%%%8888888888888888888888888888##8#8#####################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYYYxYYxxYxxxxYxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$##################$$$$$$$$$$$$$$$$$$$$$$$##########$$$$$$$$$$$$$$$$$$$V$VV$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVV$$$$$$$$$Vx************************==================================+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==*******x**xxxxxxxxxx*xxxxxxxxxxxxxxxx*xxxxxY###################8###8888888888888888888888888888888888888888888#8#88##8#######88#88########8#8###################888888888#8#888#888888888888888888######################################8888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~~~-~----~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++======================***************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************xYVVVVVVVVVVVVVVYxxxx*=+:::::++++++++++++:::::::++++==**xx#%%%%%%%%%%%%%8888888888888888888888888888#8########################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVV$$$$$$$$$$Vx************************=*===============================++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::~:::::::::::::::+++==*********xxxxxxxxxxxxxxxxxxx*xxxxxxxx*xxxxxxV######################88888888888888888888888888888888888888888888#8##888#######8###88####8####8####################88888888888#88##888888888888888888########################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~-~~---~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++=====================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********======*******YVVVVVVYYxx***xxx**==++:::++++++++++++::::::::+++===**xY8%%%%%%%%%%88888888888888888888888888888#8##88#8##################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVV$$$$$$$$$$$Y*************************=================================+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::~::~~::::::::::::::+++==*******x*x*x*xxxxxxxxxxx*xxxxxxxxxx*xxxxxxxx$####################8#88888888888888888888888888888888888888888888#8#88#88######888#88888######8####################88888888888#8#8#888888888888888888#######################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~-~~~~~~~~~~~~-~---~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++======================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxx**==**=====++==*******xYYx*=+::~~~+*****==+++::+++++++++++::::::::+++===***xY%%%%%%%%%%88888888888888888888888888888#8#8##8##############################$$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###################################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$$$Y*************************================================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::~::~:~~:~~~:::::::++++==*******xx*x**xx*xxxxxxx*xxxxxxxxxxxxxxxxxxxY#######################88888888888888888888888888888888888888888888#888##8####8###8##88##############################88888888#8#888##888888888888888888########################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++======================******************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVYx**==============******++:~~~~~~~+******==++++++++===++++:::::::+++===***xxV%%%%%%%%%%8888888888888888888888888888#8#88#8################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$##################################$#$#########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVV$$$$$$$$$$$$Y***************************=============================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::~::::::::::~:~:~~::~~~~::::::++==********x*x**xx*xx*xxx*xxxxx**xxx*xxxxxxxxxxY######################8#8888888888888888888888888888888888888888888##888########8#8#8##8########8##############8#####888888888888#8##888888888888888888#####################################8#888#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~-~~-~~-~-~---~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++======================*******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVx*===========++====**=+::~~~~~~+*******==++++++=====++++++++++++===****xY$%%%%%%%%%8888888888888888888888888888#88######################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$############################$$$$$$$$$$$$#$$###$##$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVVV$$$$$$$$$$$$Y****************************=============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::~:~:~~:~::~:~~~:~~~~~~::::::::++==**********x**x***x**x**xxxxxxxxxxxxxxxxxxxxxV#####################8#88888888888888888888888888888888888888888888#888##88######88#88888####8#8#8#############8#####88888888#8#8#88#88888888888888888#8#######################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~~~~~~~~--~~-~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++======================******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVVY*==========+::+===****=::~~~~+********===+++==========+========*****xxY#%%%%%%%%888888888888888888888888888#888####################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$$##################################################$###$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVVV$$$$$$$$$$#$Y****************************============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::~:~:~~~~~~~~:~~~~~:~:::::::++==*********x**xx*x*x****x*xxxxxxxxxxxxxxxxxxxx$#################8#8##8#8888888888888888888888888888888888888888888888888########8#8#888#8#####8#8#############88####88888888#8#8#8##888888888888888888######################################8#888#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~-~~~-~~~~~---~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++=====================******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVVVVVVY*===========++====***x*=+:::=*****x***=================**=*******xxxxY8%%%%%%%8888888888888888888888888888#8#8#8################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$#$$##$######################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVV$$$$$$$$$$$$$Y******************************============================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::~:::~~~~:~~~~~~~~~~~~~~:~::::::+++==***********x*****x**x*xx**xxxx*xxxxxxxxxxxxY#################8#8#88#888888888888888888888888888888888888888888888#888#######8888##88####8#####888############8####88888888##8#88##88888888888888888#8#######################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~-~-~~~--~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++=====================*=**************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVVVVVVVVY*=================*******=*****xx****============*****x********xxxxYV%%%%%%%888888888888888888888888888#8#8####################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#$###$#$#$########################################################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$##$Y*****************************=============================+++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~:~~:::::++===*************xxx*x**x*xxx**x*x**xxxxxxxxxxxY################88##8888888888888888888888888888888888888888888888888#88888#8####8#88#88#8###8##8888############88####88888888#8#8####88888888888888888#######################################8#8#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~-~~~~~~~~--~~-~-~-~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++=====================***************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVVVVVVVVVVY*==**==============*********xxxxxx*****====*******xxx**=*xx**xxxxxxY$%%%%%%%88888888888888888888888888#888#8##################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x**************xxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$##$###$###################8#88##################################$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVV$$$$$$$$$$$#$Y******************************============================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~~~:::::+++==*******************xx****x***xx*xxxxxxxxxxxxV#################8##8#8888888888888888888888888888888888888888888888888#8####8####88#8888##8#####8#8############88####88888888##88####888888888888888888#######################################8#8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~--~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++====================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVYx*xxx***=============********xxx*x****************xxx*=+=*xxxxxxxxxxY#%%%%%%888888888888888888888888888#8##################################$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*******************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##################8###8##88######################################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVV$$$$$$$$$$$#$$x********************************==========================+++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~:::::++===**********************x*x**x***xxxxx*xxxxxxx$##################8#8888888888888888888888888888888888888888888888888#8888########88##88#########8888###########888###88888888#8######888888888888888888#########################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~~~~~~-~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++=====================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVYx*xYVx*****============****************************xxx+:+xxxxxxxxxxxxY8%%%%%%8888888888888888888888888888#8#8###############################$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************xxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$###########################8#######8############################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVV$$$$$$$$$###$Y*********************************==========================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::~::~:~:~~~~~~~~~~~~~~~~~~~~~:::::++===*******************x*****xx*x**x**xxxx*xxxxY#################8888888888888888888888888888888888888888888888888888888#88###8###88888888#####8###888###########88####888888#8###8###8888888888888888888########################################88#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~--~~~~~~~~~~~~--~---~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++====================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYVVYYYYYxxx***xx******============*****************===*****==*xx*+=xxxxxxxxxxxxxV%%%%%%88888888888888888888888888###8##################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################8######8##8#########################$#$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$##$$x**********************************=========================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~:~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::~~:::~~~~~~~~~~~~~~~~~~~~~~::::+++===*******************************xx*xxxxxxxxxY################8#8#8#8#888888888888888888888888888888888888888888888888888#8######88#88#8#8####8##888###########88####88888888########888888888888888888########################################8#8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~~~---~-~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++=+=====================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxx*********=****************x**********=================*=***==============*===xx***xxxxxxxxxxxxx$%%%%%%%888888888888888888888888888#################################$##$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$$###########################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYVV$$$$$$$$$$##$Y***********************************=========================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::~~~::~~:~~~~~~~~~~~~~~~~~~~~::::++====****************************xx**x*xxxxx*xxxV################8#888888888888888888888888888888888888888888888888888888888#8#8##88888888#8#8#88#8#888###########8#8###888888888#8#8###888888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~-~~~-----~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++=====================************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxx**==========================*=***==****========================================*xxxxxxxxxxxxxxxxx#%%%%%%%8888888888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$####################################8#####################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYVVV$$$$$$$$$$##Vx*************************************=======================++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******************************x***xxxxxxxxx$#################8#88#88888888888888888888888888888888888888888888888888888##88##8#88888888##888#8#888############888#888888888########888888888888888888#########################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~~~~--~--~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++=======================***********************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYx**============+++++++++===============================================+++++++++==******xxxxxxxxxxxxY8%%%%%%888888888888888888888888##8###################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******************************************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$##$######################################8##################################$$$$$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYVVV$$$$$$$$$$#$x*************************************========================+++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++==************************************xxxx*xxxx$###############88888888#888888888888888888888888888888888888888888888888888###8###8888888888##8#8#8888###########8888##88888888#8######888888888888888888##########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--~---~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++++=========================*************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx*=============++++++++++++==========++=============================++++++:::::+++====****xxxxxxxxxxx$%%%%%%8888888888888888888888888#################################$##$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************xxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$#########################################################################$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVV$$$$$$$$$$#$Vx**************************************=======================+++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~:::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***********************************xx*xxxxxxY###############888888888888888888888888888888888888888888888888888888888888###8###8888888888#8##88#88888###########8###88888888#########888888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~~~~-~--~--~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++++======================**************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx*===================+==============++++++++++=====================++++++::::::::+++======***xxxxxxxxxY8%%%%%%88888888888888888888888##8#################################$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*x***********************=**********************x*xxxxxxxxxxxxxxYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$#####################################################################$##$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYYVV$$$$$$$$#$#$x***************************************=======================++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~:::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***************************************xx*xxV###############888888888888888888888888888888888888888888888888888888888888#8##8###888888888#888##8#888############88##8888888##8#8#####888888888888888888#########################################88#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~--~--------~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++++========================*************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYx*************========================+++::~::::+==================++++::::::::::::++========**xxxxxxxxxV8%%%%%%%8888888888888888888888###################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************=======************************xxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$##$$#######################################################################$#$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVYVV$$$$$$$$$$$$Y*****************************************======================+++++++++++++++++++++++:+++:::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***************************************xxx*xV##############8888888888888888888888888888888888888888888888888888888888888888#8###88888888#8#8#88888888############8#8888888#8#########888888888888888888#########################################8#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~-~~-~~~~~~~-~~~~--~~-~--~---~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++++++++========================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxx*************************===============++::::::+===========++====++::::::::::::::++=========*xxxxxxxxxx$%%%%%%%%888888888888888########################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************===============********************xxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$##$#$########################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYYV$$$$$$$$$$$$$x****************************************======================+++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~:~~~~~~~~:~::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===******************************************xx$##############8888888888888888888888888888888888888888888888888888888888888#8#88####8888888#8#8####88888#8#########8#8#88888888888######888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~--~~~~~-~~~~~~~----~----~-~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++++++++++========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYx*****xxxxx*************************==========++++=====*=========++==++++::::::::::::++==========*xxxxxxxxxY8%%%%%%%88888888888888888################$###$###$##########$###$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xxx*x**x***********************================********************xxxxxxxxxxxxxYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$$$##########$#############################################################$#$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVYVV$$$$$$$$$#$$Yx******************************************====================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~:~~~~~~~:::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===****************************************x**xx###############88888888888888888888888888888888888888888888888888888888888888#8#8###888888888##88##888888#8########88##888888888#########888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~-~~~~~~~~-~~-~~~~-~-~--~---~~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::+:++++++++++++++++++++++++=========================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxx****xYVVVVx**==************************=============**********===++==++++::::::::::++++==========*xxxxxxxxxV%%%%%%%%8888888888888888888888##################$$#$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx*x*x***x*x**********************====================*******************xxxxxxxxxxxxxYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYYV$$$$$$$$$$#$$x**x*x*************************************=====================+++++++++++++++++++++++++:++::+::::::::::::::::::::::::::::::::~:~~~~~~~:::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~::++===*******************************************xY##############88888#8888888888888888888888888888888888888888888888888888888##8#88###888888888888888#8888888########8##8#8888888#8#8######888888888888888888##########################################88#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~-~~~~--~~~~~~~~~~~~~-~-~-~-~-~--~-~--~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::+++++++++++++++++++++++++==========================*************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxx*******xVVVVYx*=+=*xxxxxxx*****************=*=******=*************======++++:::::::+++++===========*xxxxxxxxxx#%%%%%%%%88888888888888888888#8#######################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxx*x*x****x*************************========================****************xxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$###############################################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYYV$$$$$$$$$$##$Yx*xxx***x*x**********************************===================+++++++++++++++++++++++++:+::+:::::::::::::::::::::::::::::::::~:~~~~~~:::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~:::+===*******************************************xV#############888888888888888888888888888888888888888888888888888888888888888##88####88888888#88#8#8#888888##########8##88888888#8#####8##888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%% ~~~~~-~~~~~~~~~~~~-~~~-~~~~--~---~~-~~-~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+++++++++++++++++++++++++=+=========================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYx*====******xYYY****xYYYVVVVYYYYxxxx*******===************************=======++++::::++++++===========*xxxxxxxxxxY8%%%%%%%%88888888888888888#8################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xx***xx**x******x***********************=========================*****************xxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$################################################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYVV$$$$$$$$$###Vxxxxx**x*x*x**********************************==================+++++++++++++++++++++++++++:++::::::::::::::::::::::::::::::::~::~~:~~~:::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~::++===*******************************************x$##############8888888888888888888888888888888888888888888888888888888888888#8#8888#888888888#8888888888888##########8###88888888######8##888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~-~~~~~~~~~~~--~--~---~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+:++++++++++++++++++++++++===========================***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYx*===========*******xYVVVVVVVVVVVVVVYYYYx***=+==***=====***************==========++++++++++=============*xxxxxxxxxx$%%%%%%%%%888888888888888888#8##################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xx**x*******x****************************===========================****************xxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$##############################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$#$$xxxxxxxxxx*xx*********************************===================++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::~:~~:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:::++===*******************************************x$#############888888888888888888888888888888888888888888888888888888888888888#8#8###888888888888888#88888888#########88##888888#8##8###8##888888888888888888#########################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~-~~~-~~-~~~~~~~~~~-~-~~---~--~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++++++++++++++++++++++++++===========================**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYx*====++++========**=*YVVVVVVVVVVVVVVVVVVVVY**======+::::::+=***********==++=========+++++===============**xxxxxxxxxx8%%%%%%%%88888888888888888888###############################$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*****************************************============================****************xxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#####################################################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVYVV$$$$$$$$$$$#Vxxxxxxxx**xx**x*******************************===================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::~~:~~:~:::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~::+====*******************************************x##############888888888888888888888888888888888888888888888888888888888888888#88888#8888888888##888#88888888##########8##8888888888###88##888888888888888888#########################################888##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~-~~~~~~~~~~~-~-~~---------~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+==========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx***===+++++++=======**xYVVVVVVVVVVVVVVVVVV$$Y***=+=+::::::::::=*********==:::+===============*********====*xxxxxxxxxxV%%%%%%%%%88888888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x*****************************************==============================***************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$$$######################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYVYYYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$#$xxxxxxxxxxxx*x*x**x*****************************==================++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::~::~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::+====*******************************************Y#############88888888888888888888888888888888888888888888888888888888888888888#888##8888888888#8888888888888########888##88888888#########888888888888888888##########################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -~~-~~~~~~~~~~-~-~-----~~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+============================***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYxxx****=====+++++++=====**xYVVVVVVVVVVVVVVVVVV$Y=***==+:::::::::::+=********=++:+=============******xxxx****=*xxxxxxxxxxx#%%%%%%%%%8888888888888888888##8################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x**x**x***************************************===============================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$##$##$$##$##$###########################$#$#$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$$#Yxxxxxxxxxxxxxxx*x*******************************=================++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::+====******************************************xV#############888888888888888888888888888888888888888888888888888888888888888#888888#888888888888#88888888888###########888888888#######8##888888888888888888#########################################8##8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~-~~-~~~~~~~~--~-~-~~~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++++++++++++++++++++++++++==+===========================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYxx*******======++++++++=====*xVVVVVYVVVVVVVVVV$Vx+:=*===::::::::::::+********===++===========******=++=xxxxx***xxxxxxxxxxxY8%%%%%%%8888888888888888888#8#8##########################$####$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x********************************************================================****************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$##$$##################$#$##$#$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxx*xx*x*****************************=================+++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~:::+====******************************************xV############8888888888888888888888888888888888888888888888888888888888888888#8#888#8#888888888888#8888888888#########8#8#88888888##8######888888888888888888#########################################88#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~~~~~~~-~~--~~---~---~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+++:+++++++++++++++++++++++=+============================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYxx********========++++++++======xVVVVVVVVVVVVVVVY*:::====+:::::::::::+=*******===++====*****=*****x**===*xxxxxxxxxxxxxxxxxxx$%%%%%%%%888888888888888888888################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************************************==================================**************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$##$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVV$$$$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxx*x****************************=================++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::~:~~:::::::::::::::::::::::::::::::~:::::~::~~~~~~~~~~~~~~~~:::+====***************************************x**x$############8888888888888888888888888888888888888888888888888888888888888888#88#88###88888888888888888888888#########8#88888888888#####8##888888888888888888#########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% -~~~~~~--~-~-~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+==========================*********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVYx**==============++++++++======xVVVVVVVVVVVVVx+:::=*===::::::::::++=*******==++++===***********xxx*********xxxxxxxxxxxxxxx8%%%%%%%8888888888888888888#88###############################$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*********************************************==================================***************xxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxx*x**x**************************===============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~:::+====***************************************x**x#############8888888888888888888888888888888888888888888888888888888888888888888#88##888888888888888888888888#########8#8#888888#8######8##888888888888888888#########################################888#8#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ~-~~-~-~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++=+===========================***************************x**x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVYYYx*=++==========++++++++=====xVVVVVVVVVVY*+::+=**=*=:::::::++==********===+++====**********xxxx*****===**xxxxxxxxxxx*xV%%%%%%%%888888888888888888888#################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*********************************************=================================****************xxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYVYVYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVV$$$$$$$$$$$$#$xxxxxxxxxxxxxxxxxxxxxxxx****************************===============++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::~::~:~~~~~~~~~~~~~::::++===******************************************Y############8888888888888888888888888888888888888888888888888888888888888888#88#888##888888888888888888888888########8#8#8888888888#8#888##888888888888888888##########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% -~--~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++===+==========================********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVYx*========+==+++++++++++==*YVVVVVVVx=:::+=*****=:++++====********=====+====**********xxxx****=======*xxxxxxxxxxxxx#%%%%%%%%888888888888888888888#########################$##$##$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x************************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxx*x**************************=*==============+=++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~::::+===******************************************Y############888888888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888#######8#88#88888888#####88##888888888888888888##########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% --~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++=============================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVV$VVVVVVVVVVVVVVVVYYx**=++++++++++++++++=+==*YVVVY*+::::+=====+=++========================***********xxxx**========**xxxxxxxxxxxxY8%%%%%%%88888888888888888888#########################$####$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxx**************************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===============++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~:::::+===*****************************************xV############8888888888888888888888888888888888888888888888888888888888888888#88#888#8#888888888888888888888888########88##88888888#8#8#####888888888888888888##########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++==+===========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVV$$$$$$$$VVVVVVVVVVVVVVVVVY*=++++++++++++++++=+==***=+++++++++++++=++++++++++++================*********xxxx***======**xxxxxxxxxxxxx$%%%%%%%%88888888888888888888################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*x*******************************************================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$$$$#$xxxxxxxxxxxxxxxxxxxxxxxxx**x***************************==============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~::~~:~~~~~~~~~~:::::+===*****************************************xV###########888888888888888888888888888888888888888888888888888888888888888888#88#88##8#88888888888888888888888########8#8#8888888#######8##88888888888888888###########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++==+==========================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVYx=+++==+++++++++=+==+======++++++++++++:::::++++++++++++++++++++=========***xxxx********xxxxxxxxxxxxxxx8%%%%%%%8888888888888888888###############################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx**x**********************************************================================****************xxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=*=============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~:~~~~~~~~~~::::+===*****************************************x$###########888888888888888888888888888888888888888888888888888888888888888888888888##8888888888888888888888888########88##8888888#88###8###888888888888888888###########################################8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++=+============================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$V$$V$$$$$$$$$$VVx=+===++++++++++=+====+++++:::::::::::::::::::::::::::::::::::::++++++==****xxxx****xxxxxxxxxxxxxxxxV8%%%%%%%888888888888888888###############################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*******************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVV$$$$$$$$$$$#$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=============+=+++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~:::::+===*****************************************x$###########888888888888888888888888888888888888888888888888888888888888888888#888888##888888888888888888888888#########8#8888888#8####8#8##888888888888888888#########################################888#8#88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++==+=============================********************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx=====++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::+++++===***********xxxxxxxxxxxxxxx8%%%%%%888888888888888888#############################$###$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*x*********************************************==================================***************xxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$###$##$##$###$##$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************============+=+++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~::~~::~~~~~~~:::::+====******x*********************************Y############88888888888888888888888888888888888888888888888888888888888888888#8888#88#888#888888888888888888888########8##888888888#####8###88888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++==+============================***********************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y==+=++++++++++:::::::::::::::::::::::::++++++++++++++++++++++++:++++++======***********xxxxxxxxxV8%%%%%%88888888888888888##############################$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**********************************************=================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########################$#####$#$#$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************=============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~~:~~~~~~~::::+====*********x******************=***********Y###########88888888888888888888888888888888888888888888888888888888888888888888888#8##8888888888888888888888888########8888888888#8#####88##88888888888888888###########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++=+=============================************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x=+++++++++++:::~~~~:::::::::::::::+++++++++++++++++++++++++++++++++++++=+======*******xxxxxxxxx#8%%%%%88888888888888888###############################$$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***********************************************===================================**************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$VV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################$$$$$$$$$$$$$$$$VVVVVVVV$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVV$V$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************==============++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::~::~:~~::~~~~~~::::++===*********x****x***********===***********Y###########88888888888888888888888888888888888888888888888888888888888888888888888888##88#888888888888888888888########88#88888888#8###8#8##88888888888888888###########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+=+============================************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$x=++==+++++:::~~~::::::::::::++++++++++++++++++++++=+=+++++++++++++++++++========****xxxxxxxxxV8%%%%888888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******x*******************************************===================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~::~~:::~~~~~::::++===*************xx**********====**********xV##########88888888888888888888888888888888888888888888888888888888888888888888888888##8#88##88888888888888888888#######888#88888888###8888##88888888888888888##########################################88#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++============================*************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####V*=+====+++::::::::::::::++++++===****====================+++++++++++++++===========****xxxxxx#8%%%%88888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx***xx**************************************************===================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************===========+++++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~:~:~~::~:~~~::::++===*******xxx**xxx*********=++=************V##########888888888888888888888888888888888888888888888888888888888888888888888888888#88##88#8888888888888888888########8##88888888####8#8##88888888888888888##########################################8#88#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==============================****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########$*=+====++++++::::::::+++++++=**xxxYYxxx******===============++++++++++++============****x*xxV8%%%%%88888888888888888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xx*****************************************************==================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$###################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVV$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===========+=++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~::::::~:::::::~::~:~~::~~~~~:::++===********xx**xxxx*******=+++=************$##########888888888888888888888888888888888888888888888888888888888888888888888888#8###8###888888888888888888888########8##8888888######8###88888888888888888###########################################8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++===+===========================****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$##########$Y=+++=====++++++++++++++++++=*xxxxxxYYYYxxxx******=+++===========++++++++++===========*****xxx#8%%%888888888888888888###############################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x******************************************************=*===================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##########################$#$$$$$$$$$$$$$#$$$$#$$$$$$$$$$$$$$############$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVVV$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************=*===========++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~::~~~:::++===*******xx*x*xxxx*******++++=***********x$##########888888888888888888888888888888888888888888888888888888888888888888888888888#88###8##888888888888888888#######88##8888888######8###88888888888888888##########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++============================*==**************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$#########$Y=++++++====++++++++++++++++=**xxx==*xYYYYYxxxxx*****=++=============++++++++==========******xxV8%%%88888888888888888#8###############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*xxx*x********************************************************=====================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$#$$$#############$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$###$##########################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVVV$$$$$$$$$#$VYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************=============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::::~::::~:~::~::~:~~::~:::::::++===*******x*xxxxxxx******=++++************x$#########88888888888888888888888888888888888888888888888888888888888#888888888888888##8###88##888888888888888888#######8##8888888#8####8#8##8888888888888888###########################################8##88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++==+==============================**************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$########$x=+++++++++===++++++++++++++==**xxxx**xxYYYYxxxxxxx*********============================******xxx#8%%8888888888888888888###############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************************************************=====================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVVV$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x************************===========+=++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::~~:~::~~:~:~~:~:~~:~~~:~:::::+====*****xxxx*xxxx******=++++=************x#########88888888888888888888888888888888888888888888888888888888888888888888888888888##8######888888888888888888#########8#8888888##8##888##8888888888888888###########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++==============================*=****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#########Vx=+++++++++++++===+++++++++++===*xxYYYxxYYYYYxx*******xxxxxx***==========================******xxxY8%88888888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx********************************************************=====================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVVV$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===========++=++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~~::~:~~:~:~:~~~::~~:~::~::::::+====******xxxxxxxxx*****=++++=************Y#########88888888888888888888888888888888888888888888888888888888888888888888888888888#####8####88888888888888888#######8##88888888######8#8#8888888888888888############################################8#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++==+===========================*=******************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$$######$Y*+++++++++++++:++===+++++++++=====*xxxYYYYYYYYYxx*==+===*xxxxxx**=============****=======********x*x$8%%888888888888888888###############################$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*xx*x*x**********************************************************=====================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$$$$$$$$$$$#$YYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************==========+=++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:~::::~::::~~~:~~~~::~~:::::+====*******xxxxxxxx****=+++++*************Y#########888888888888888888888888888888888888888888888888888888888888888888888888888####8######888888888888888888#######8###8888888#8###8#8##8888888888888888###########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++=+==============================*******************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#####$x=++++++++++++++::++======+++++======***xxxxYYYYYxxx*=+++++=**xxx***===========********===************x#88%88888888888888888#################################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*xxx**x********************************************************======================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$$#VYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************===========+=++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~::~:~~:::::~~~~~~~~~~~:::::++====*****xxxxxxxxx****=++++=*************Y########8888888888888888888888888888888888888888888888888888888888#8888888888888#88888##########88888888888888888##########888888888####888##8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++==+===========================*=******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxYYYYYYYYYYYYYYYYYVVVVVVYYYx*******xYYVVV$$$$$$####$$Vx=++++++++++++++++::++===================***xxxxxYxxxx*=++:::+=*xx***============********************x*xY8%88888888888888888888################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*xx**x********************************************************======================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#####################################################################$$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVV$$$$$$$$$$#$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************===============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~::::~::~::::~~~~::~~~~:::::++=====****xxxxxxxx****=++++:=*************Y########888888888888888888888#8888888888888888888888888888888888888888888888888888#88###########88888888888888888#######88#88888888###8######8888888888888888############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+==============================********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*=++++++=====***xxxxYYYYxxxxx*==+++++++++++++==**xYYV$$$Vx*=++++++++++++++++++:::++======================***xxxxxxxx*=+++++=******============**********************x$88888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx********************************************************=====================================*****************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$##$##########################################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$#$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::~:~:~::~::~~~~~~~~~~:::::++=====****xxxxxxxxx***=+++++==************V###8####888888888888888888888$888888888888888888888888888888888#8888888888888888888888##########88888888888888888#######8##88888888######8###8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==============================********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=+::~~~~~~::::::::+++++++++::::::::::++++++++++++++++++==+++:+++++++++++++++++++::++=========================*****xxxxx**===******===============********************xx#88888888888888888888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx***x**x***************************************************=*=====================================***************xxxxxxxxxxxxxxxxYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$#######################################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$$##YYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x************************===============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:~~::~:~~::~:~~~~~~~~~~~::::++=====*****xxxxxxx****++++:+==**==********V#######8888888#88#88888888888$8888888888888888888888888888888888888888888888888#8#8#8###########888888888888888888######8###8888888##8#8#8###888888888888888#############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=+============================*********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=+~--.-.-.---~::::::::::::::~~~~~~~~::::::::::+++++++::::::::::++++++++++++++++++++++=====******=============+++====**************====================*****************xV8%888888888888888888##################################$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx**x*****************************************************=*=====================================*****************xxxxxxxxxxxxYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$#######################################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVV$$$$$$$$$$#$#VYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:::~:~~::~~:~::~~~~~~~~~::::++=====*****xxxxxxxx***++++:===**==********V#######8888888888888888888888V88888888888888888888888888888888888#8#888888888888#8888###########888888888888888888##########88888888###8#88##8888888888888888############################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=============================***********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++::~~--------~::::::::::::::::~~~~~~~~~::::::::+++++:::::::::::::::::++++++++++++++++=====**********============+++++====*****===============================***********x#8888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx****x***************************************************========================================****************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$#########################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$#$#VYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x***********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~::::~~::~~:~::~~~~~~~~~::::++=====******xxxxxx***=++++:===**==********V##8###888888888#888888888888#Y#8888888888888888888888888888888888888#8888888#88#888#8###########888888888888888888#######8##8888888#8###88#8#8888888888888888###########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++=+============================*********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++++++++:::::::::::::::::::::::::::::::::::::::+++::::::++::::::::::::::::::::+:::++++++====*************===========+++:++++++=+++++++==========================***********Y888888888888888888888##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************************************=======================================****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$##$$####################################################################$##$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVYVVVVVV$$$$$$$$$$#$#$YYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************==============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~~:~~:~~::~~::~~~~~~~~~~:::++======*****xxxxxx***+++:::==***==********V######8888888888888#88888888#x#88888888888888888888888888888888888#8#88888888888#88#8###########888888888888888888######8###88888888#####88##8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++==============================***********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**==++++++++++++++++++++++++++++::::::::::+:+::+:++++++:::::::::::::::::::::::::::::::::::++++===**********=*================+++++++++===================================*******$888888888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxx*x*x***************************************************=======================================****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$##$######################################################################$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$#$#$YYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x**********************============+=+++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~~:~:~~~:~:~:~~~~~~~~~~~~~::::+======*****xxxxxx***+++:::==***==********$#####88888888888888888888888#x$88888888888888888888888888888888#88888888888888888#8#8###########888888888888888888######8##88888888#8#8##88##8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++==============================********************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*======+==++++++==++++++++++++++++++:::::::::::::+:+++:++++:::::::::::::::::::+:++::::::::::::+++===========================================================================*****x888888888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***x*x***************************************************=====================================******************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$#$#$#########################################################################$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$$$#$YYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***********************==============+=++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~:::~::~:~~:~~~~~~~~~~~~~~:::+======*****xxxxxx***+++:::==***===*******$#####88888888888888888888888#xV88888888888888888888888888888888#88#8#8888888#88#8#8#############888888888888888888#######8##88888888#8##88###8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=============================*********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**==============+======++++++++==++++++++::::::::::::::::::::::::::::::::::::::::::::+:::::::::::+++++=====================================================++++++==============*****V88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x****************************************************======================================******************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$##########################################################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$$$##YYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*********************=================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:~:~::~:~~::~~~~~~~~~~~~~:::+======*****xxxxxxx*=++::::==***===*******$#####88888888888888888888888$xY8888888888888888888888888888888#8#88#888888888#8##8#88##########8888888888888888888######88#888888888###8##8##888888888888888############################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=============================********************************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*============+=+=+++=+===+++++======+++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++=============================================++++++++++++++++++++++++==*****#88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x***************************************************=====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$##$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$####VYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************================+++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::~~:~::~:~~::~~~~~~~~~~~~~~::++=====****xxxxxxxx*=++::::==**====*******$####888888888888888888888888$xY888888888888888888888888888888888#88#8888888888##8888###########8888888888888888888######8#8888888888##8#8#8##8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=============================********************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**====+++++++++++++++++++=+=+==+=======+++++++++::::::::::::::::::::::::::::::::::::~~:::::::::::::::::+++++++=================================++++++++++++++++++++++++++++++++++===****x88888888888888888888##########################$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*x*x*x*************************************************====================================****************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$#####################################################################$##$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVV$$$$$$$$$$$###VYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**********************=================++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::~:~::~~~:~:~~~~~~~~~~~~~~::+=====*****xxxxxxx*=++::::+=**====******x$###8888888888888888888888888$xx#8888888888888888888888888888888#888#88888888#88###8############8888888888888888888######88#88888888#88###888#888888888888888############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=============================*********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**===++++++++:::+::+++++++++++=========++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~:::::::::::::::+++++++++++++==+================+++++++++++++++++++++++++++++============******Y888888888888888888#8################################$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*x***x*********************************************====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$###$##################################################################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$####VYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x**********************================+=+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~:~:::~~~~:~::~~~~~~~~~~~~~~:+=====***xxxxxxxxx*=++::::+=**====*******$###8888888888888888888888888$xx#888888888888888888888888888888888##8888888888#8################8888888888888888888#######8##8888888#####888##8888888888888888###########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++==+==========================*******************************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**===+++::::::::::::::::::++++=======++++++++:::::::::~~::::::::::::::::::::::::::::::::~~~~~~~~~~:::::::::::::::++++++++++++++=+===========+++::::::++++++++++++++===============**********xV8888888888888888888#####################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx*x***x*******************************************=====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVV$$$$$$$$$$#$##$YYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************==================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~::~:::~::~:~~~~~~~~~~~~~~:+=====***xxxxxxxxx*+++::::+=**====*******$###8888888888888888888888888$xx$88888888888888888888888888888888#8#8#8888888#888#8#############8888888888888888888######8#8#888888888##8#8###8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ----------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++===========================*****************************************x***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**===++::~~~~~~~~~~~~:::::+++====+++++++++::::::::::::~~~::+++++:::::::::::::::::::::::::::~~:~:~~~::::::::::::::::++++++++++++++===========++++:::::+++++==================*************xxxxx$888888888888888888#8###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*xx*x**********************************************=====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$$$#$####################################################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$$$$##$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~~::~~~:~:~:~~~~~~~~~~~~~~~~:+======**xxxxxxxxx*+++::::+=**====*******$###8888888888888888888888888$xxV8888888888888888888888888888888#888#8888888#8#8#88#############8888888888888888888#####8###888888888#88#88###888888888888888############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% --------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==+=========================*=*****************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYx**===++:::::~~~~~:::::+++++++==*****=+++::::::::::::~~~::++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::++++++++++==============++++++++================*****************xxxxxxxY#8888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x*xx*x****************************************************===================================*******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$#$$####################################################################$$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$#$###$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************================+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~:~::~:~:~~~~~~~~~~~~~~~~~~~:=======*xxxxxxxxx*+++::::+=**====*******$##88888888888888888888888888$xxY8888888888888888888888888888888888#888888888#8#####8###########8888888888888888888#######88#88888888888#8#8##888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% -----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=============================*****************************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYx**====+++++++++++++++++==*xYYVVVVY*+::::::::::~:::~~::+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::++++++=====================================================*******xxxY#8888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******x**************************************************==================================********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$##$#################################################################$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$#$###$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************================++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~::~:~:~:~~~~~~~~~~~~~~~~~~~:+=====**xxxxxxxxx*+++::::+=**====*******$#888888888888888888888888888$xxx#8888888888888888888888888888#888###88888888##88###############8888888888888888888######8#8#88888888#8#8#88##888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++===+========================*****************************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***xYYYYYYYYYYYYxxx******=========**xYYVVVVVYx=+:::::::::~~~~~:::::+++++++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~:::++++============================================================****Y888888888888888888#8##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx******************************************************====================================******************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$#$$####################################################################$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVYVVVVV$$$$$$$$$$$####$YYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************=================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~~~~~~~~~~~~+=====**xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxx#88888888888888888888888888888##8#8#8888888#888##8############88888888888888888888######88#8888888888#8##8###888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++==+==========================*****************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**=====*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYx=+::~~~~~~::::::::::++++++==+=+++++++++++++++:::::::::::::::::::::::::::::::::::~~~-~~~::+++===============================================================**Y888888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************====================================*****************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#################################################################$#$$$#$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$$$####VYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~:~~:~::~~~~~~~~~~~~~~~~~~~~:======*xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxx$888888888888888888888888888#88#8##88888888#8#################88888888888888888888#####88#8#88888888888#888##8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++=+==========================****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++=======*YYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYYx*++:::~~--~~~~:::++++++=+::::+====++++++++++:::::::::::::::::::::++:++++:::::::::::~~---~~::++=============================================================****xY888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*x**********************************************************====================================******************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$########################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$######VYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxx*********************===============+=++++++++++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::~~::~~:~~~:~~~~~~~~~~~~~~~~~~~:+====**xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxxY8888888888888888888888888888##88##8888888888#################88888888888888888888#####888#888888888#8#8888##888888888888888############################################8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------~----~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++===========================***********************************x***xxx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*+::::+++======*xYYYYYYYYYYYYYYYYYVVVVYVVVVVYx*=++++:::~~~~~~:::++++=====+:::::+==+++++++:::::::~~~~:::::::::::+++++++++++++++:+::::~~~~~~::+++========================================*=*******************xxxxxV888888888888888888#8################################$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx************************************************************=====================================******************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$#$####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*********************==================++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~:~:::~~~~~~~~~~~~~~~~~~~~+=====*xxxxxxxxx*+++::::+***====*******Y#888888888888888888888888888$x*xY#88888888888888888888888888#8#8##8#8888888#8888##############88888888888888888888######8#8#888888888#888888#8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=+=========================**************************************x*xx*x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~:::::++======*xYYYYYYYYYYYYYYVVYVVVVVVVYx=++++++:::::::::::::::::::+===+::::+++++:::~~~~~~~----~~~:::::::::++++++++=+=+==++++++::::~:::++++============================***************x*xxxxxxxxxxxxxxxxxxxxxYV888888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*x*******************************************************=======================================******************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$#$$###$YYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*******************==================+++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~:::~::~~~~~~~~~~~~~~~~~~~:=====*xxxxxxxxx*+++::::+***===********Y#888888888888888888888888888$xxxx#888888888888888888888888888#8#8##88888888###################88888888888888888888#####8#888888888888888#888#888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++=+++========================*=***********************************xx*xxx****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~:::::++======*xYYYYYYYYYYYYYYVVVVVVYx*=+++++++:::::::::::::::::::::====++::+::::::~~~~~~~~~~~~:::::::::::+++++++========++++++++++++++++===================**************xxxxxxxxx**x**x*****x**x*xxxxxxxxxxxV88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx**x******************************************************========================================*******************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xxxxxxxxxYYYYVVVVVV$$$$$$$$$$$####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx**********************==================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~~:~~:~~~~~~~~~~~~~~~~~~~~~~~:+===**xxxxxxxxx*=+++:::+***==*********Y#888888888888888888888888888#xxxx$88888888888888888888888888#88####888888888##################88888888888888888888######888#888888888#88888#8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::::::+++:++++++++++++++++++++++++++++++++++=========================**************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~~~~~:::::++======*xYYYYYYYYYYYVYVVVVYx*=++++++++:::::::::::::::::::::+++++++::~::::::::~::::::::::::::::+:+:+::+:+++++++++++++++++====================***********xxxxxxxxxxxxx**********************=**==*******Y888888888888888888#################################$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*************************************************============================================*=*****************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$########################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*xxxxxxYYYYYVVVVV$$$$$$$$$$#####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*******************==================++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~+====*xxxxxxxxxx=+++:::+***==*********x#888888888888888888888888888#xxxxV88888888888888888888888888##8#8###8888888#####8############888888888888888888888#####8#88#88888888888#888##888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% -----------------------------------------------------------------------------------------------------------~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=+=========================************************************xx*xxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~~~~~~~~~:::::+++======*YYYYYYYYYVVYVVYx===+++++++++::::::::::+++======+++++:::~~--::::::::::::::::::::::::::::::::::++++++++++++++====================********xxxxxYYYYYxxxx********===============================x888888888888888888#####################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************============================================*********************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****x**xxxxxYYYYVVVVV$$$$$$$$$$$#$###VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x********************===================+++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~:====*xxxxxxxxxx=+++:::+***==*********x#888888888888888888888888888#xx*xY#888888888888888888888888888#####888888#88###88############888888888888888888888#####888888888888888888888#888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ---------------------------------------------------------------------------------------------------~-~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~:::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++=========================*=*********************************x*x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*=+:~~~~~~~~~~~~~~~~~~~::::::++=======*xYYYYYYYVYYx=====+++++++++::::::++========++++:::::~~--~~:::::::::::::::::::::::::::::::::+++++++++++=====================********xxxxxxYYYYxxxx*******===========++++++++++++++++++++++++*#88888888888888888######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*xx*************************************=====================================================*******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$#####################################################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYVVVVV$$$$$$$$$$#####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*********************=================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxxxxxx=+++:::+***==*********x$888888888888888888888888888#Y***x#888888888888888888888888###88####888888###################888888888888888888888#####88888888888888#88888##888888888888888#############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -----------------------------------------------------------------------------------------~--~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++===========================**********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxYYYxxYYxYxYYxxxxxxxxxxxxxxxxxxxxxx*=+:~~~~~~~~~~~~~~~~~~~~~~~::::::++========*xYYYVYYx*======++++++++::::::+=======+++:::::::::~:::::::::::::::::::::::::~~~~:~~:::::+=============***********====**********xxxxxxxYYxxxx*******=========+++++++++++++++++::::::::::::+#88888888888888888####################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*xx********************************=======================================================*******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$$#####################################################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYVVVVV$$$$$$$$$#$####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*********************===============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+===*xxxxxxxxxx*++++::+****=**********$8888888888888888888888888888Y***x$88888888888888888888888888####88#888888#####8#############888888888888888888888#####888888888888888888888#888888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%% --------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++=+============================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYxYYYYYxYYYYYYYYYYYYxxYxYxYYxxxxxxxYYxx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++========**xYYY*========++++++++::::+=====+::~--~--~~::::::::::::::::::::::::~~~~~~~~~~~~::::::+==*********xxxxxxxxx******************xxxxxxxxxxx*******==========++++++++++++:::::::::::::::::::+$8888888888888888##########################$############$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**x****************************=====================================================********************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********xxxxYYYYYVVVVV$$$$$$$#$$#####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxx**********************================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:===*xxxxxxxxxx*=++++:+****==*********V#888888888888888888888888888Y****Y888888888888888888888888########888888#88################8888888888888888888888#####88888888888888888888##888888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% --------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=+==========================*******************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++==========***=========+++++++:::+====+:~-....--~~::::::::::::::::::::::~~~~~~~~~~~~::::::::++YVVVYYVVVVVVYYYYYYxxxxxx**************xxxxxxxxxxx******==========++++++++++++::::::::::::::::::::::V88888888888888#######################################$##$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx**x************************=====================================================**********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################$##$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********xxxxYYYYVVVVV$$$$$$$$$#$####$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx************************==============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxxxxx*=++++:+****==*********Y#888888888888888888888888888Vxx**x#88888888888888888888888##8##8##888888#8#################8888888888888888888888#####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%88%%% ---------------------------------------------------------------------------~-~-~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++============================********************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++==================+=+++++++:::====:-.....-~~::::::::::::::::::::::~~~~~~~~~~~::::::::::+++x$##########$$VVYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx********==========+++++++++++:::::::::::::::::::~~~~~:Y888888888888888#############################$##$##$######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************====================================================********************xx*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#$###################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx************xxxxYYYYVVVVV$$$$$$$$$######$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x********************================+++++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:==**xxxxxxxxx**=+++:+****==*********x#888888888888888888888888888$x***x$888888888888888888888888##8####88888#8##################8888888888888888888888#####888888888888888888888#88888888888888#############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=========================*******************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=================+++++++++::===+~.....-~~:::::::::::::::::::~~~~~~~~~~~~~~~~~~~::::::::+=$########$#$$$$$VVYVVYYYYxxxxxxxxxxxxxxxxxxx*********==========+++++++++++::::::::::::::::~:~~~~~~~~*8888888888888###8############################$######$$###$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************==================================================*********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$####################################################################$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x************xxxxYYYYVVVVV$$$$$$$$#######VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*******************=================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxxxx**=+++:+****==*********x#888888888888888888888888888$x***xY8888888888888888888888#88#######888888##################8888888888888888888888#####888888888888888888888#88888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -----------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++===========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++=================++++++++:+===~....---~~::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::::::+Y$##$####$$$$$$$$$VVVVVVYYYYxxxxxxxxxxxxxxxx**********=========+++++++++++:::::::::::::::~~~~~~~~~~~~=88%888888888888##################################$#$$$$$$$$$$$$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************===============================================********************x*xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************xxxxYYYYVVVV$$$$$$$$$######$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx**x********************===============++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxxxx**==++++***************x$888888888888888888888888888#x****Y888888888888888888888888##8##8#888888#8#################8888888888888888888888#####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=++==========================****************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++================+++++++++===+-------~:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~::::::*$#$#$#$$$$$$$$$$$$VVVVVVYYYYYYYYxxxxxxxxx***********=*========++++++++++:::::::::::::::~:~~~~~~~~~~~~:$888888888888################################$####$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x********************==========================================***********************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################################$#$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxYYYYVVVVV$$$$$$$$#######VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*********************==============+=++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=**xxxxxxxxx***==+++****************V#88888888888888888888888888#x*x*xx#8888888888888888888888#8#8##8#88888###################8888888888888888888888######888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%% -------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=+===========================****************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++================++++++++===+----~~::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~:::::+V$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYxxxxxxxx************========++++++++++++:::::::::::::::~~~~~~~~~~~~~~:V8%88888888888##############################$##$###$$$$$$$$$$$$$$#$$$#$$$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x********************======================================**********************x*xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$###########################################################$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxxYYYYVVVVV$$$$$$$$######$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx********************================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:==*xxxxxxxxx***==+++****************Y#888888888888888888888888888Y***xY#88888888888888888888888#8#8###88888####8##############888888888888888888888888####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%% --------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=+==========================*=****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++==============++++++:+====:::::+++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~:::::*$$$$$$$$$$$VVVVVVVVVVYVVYYYYYYYYYYxxxxxxx***********=========+++++++++++::::::::::::::::~~~~~~~~~~~~~~~*8%%%8888888888#########################$#$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************==*========================*==************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$$$####################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxYYYYVVVVV$$$$$$$$#######$YYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*********************===============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=*xxxxxxxxx****==++****************x#888888888888888888888888888Vx*xxY#888888888888888888888##8###8#888888#8#################8888888888888888888888#####8888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% --------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++==+========================*=***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++==============+++++++========++++++++++++:+:++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::V$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYxxxxx************=========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~+#8%%8888888888##########################$#$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x****************************=*=*====**==*****************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$##$###$#########################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx****************xxxYYYYVVVV$$$$$$$$$######$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x********************===============+++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+=**xxxxxxxx*****=+=*****************$888888888888888888888888888$x*xxY888888888888888888888888##8####88888###################88888888888888888888888####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++============================***************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++============++++++::+===========++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::=$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxx***********==========+++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~:$8%%8888888888############################$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$###$##$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************************************************x*xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#$####$#################################$##########$$#$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$$######$VVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*x*******************================+=+++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=**xxxxxxx*******==*****************Y#88888888888888888888888888$x*xxV8888888888888888888888888#####88888#8##################8888888888888888888888######888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%% ----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=+===========================***************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++==========++++++::::=============++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::Y$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYxxxxxxxxx***********==========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~Y8%%%888888888############################$#$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************************************************xxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$#######################################$####$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$$######$VVYYYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*x*********************==============+=+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:==*xxxxxxx*******==*****************x#88888888888888888888888888#x**x$888888888888888888888888#88##8888888##################88888888888888888888888#8###888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% ----------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++============================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++==========+++++++::::+==============+++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V$$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxx**********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~=88%%%88888888############################$#$$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x******************************************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$####################################$###$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$#######$VVYVYVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*x********************===============++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=*xxxxxxxx*******=*****************xV88888888888888888888888888#Yxxx#8888888888888888888888#888#8#8888888##################88888888888888888888888#####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% -----------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++=+==========================***************************x****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++=========+++++++:::::+===========++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxx***********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~:$8%%%88888888##############################$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###$$$##$$$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############################$$#$#$####$$#$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$##$####$VVVYVYVVVVYVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx**x********************==============+=+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxx**************************Y#88888888888888888888888888YxxY#8888888888888888888888888###8#88888###################888888888888888888888888####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% -------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==++============================****************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++=========+++++++::::::::+++++++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:V$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxx************===========+++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~Y8%8%888888888#############################$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$$###$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************x*x*xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######$########################$$###$##########$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx****************xxxYYYVVVVV$$$$$$$$#######$VVVVVVYVVVVVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*x*********************==============+==++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxx**************************x$88888888888888888888888888YxxV8888888888888888888888#8#8##8##8888##8#################88888888888888888888888#####888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% ------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++++++=============================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=======+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$$$$$$$VVVVVVVVVVVVYYYYYYYYxxxxxxxxxxxx***********============+++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~=88888888888888#############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$##$$$$$$$$$$$$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$################################################$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**************xxxYYYYVVVV$$$$$$$$$######$VVVVVVVVVVYYVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*********************===============+=++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~:++=*xxxxxxx***************************Y#8888888888888888888888888VxxV88888888888888888888888888#8##888888#8#################888888888888888888888888#8##888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++===============================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=======+++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxx***********===========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~:$888%888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$VVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$####$#############################################$#####$###$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***************xxxYYYVVVV$$$$$$$$$#######VVVVVVVVYVVVVVVVVVVYVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*x*x*********************===============+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~++=*xxxxxxxx**************************x$8888888888888888888888888Vxx$8888888888888888888888#8#8#8#888888###################88888888888888888888888#88###88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==+==============================*****************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=====++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~x88%88888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$############################################################$#####$#$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***************xxYYYYVVV$$$$$$$$$$######$VVVVVVVVVVVVVVVVYVVVVYVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***********************===============++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~++==*xxxxxxx***************************Y#888888888888888888888888$xY#8888888888888888888888888###8#88888###################88888888888888888888888##8####8888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=+==+==============================******************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++======+++++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:Y$$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++:+::::::::::::::::~~~~~~~~~~~~~~~~~~~~+#8%888888888888##########################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYxxxxxxxxxxxYYYYYYYYxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$####$##############################################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***************xxYYYVVVVV$$$$$$$$$######$VVVVVVVVVVVVVVVYVYVVVYVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x*********************===============+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxx***************************x$888888888888888888888888$xY#8888888888888888888888888#88#8888888#8################88888888888888888888888888###88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==================================*******************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~~:::::::++++======+++++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:V$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~Y8%%%8888888888##############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###############################################################$##$###$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***************xxxYYYVVVV$$$$$$$$$$######VVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**x**********************===============+++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~:+===xxxxxxx****************************Y#88888888888888888888888$xV88888888888888888888888888#8#88888888##8###############888888888888888888888888#8##888888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++==================================*******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~~~:::::::::::++++++=++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+V$$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~=#8%%%8888888888#############################$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$VV$VVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###########################################################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx***************xxYYYVVVV$$$$$$$$########$VVVVVVVVVVVVVVVVVVVVVYVVVVVVVYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*x*********************================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxx*****************************V88888888888888888888888$x$888888888888888888888888#88#8888888####################8888888888888888888888#888#8#88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++==+===================================*******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::~~~::::::::::::+++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxx***********==========+++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~V8%%888888888888########################$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############################################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx***************xxxYYYVVV$$$$$$$$$#######$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx***********************=================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxx*****************************x#8888888888888888888888$x$88888888888888888888888888#8#888888####################8888888888888888888888#88#8888888888888888888888888888888888888#############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++===================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::~::::::::::::::+++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~=#8%8888888888888###################$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$VVVVVVV$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################################$$#$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**************xxxYYYVVVV$$$$$$$$$######$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx**********************================++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:+===**xxxxx**********************x*******Y#888888888888888888888$Y#888888888888888888888888#8#8#888888###################888888888888888888888888#8#88#88888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++=+=+====================================********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*==++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::~~~:~:::::::::::+++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$$$$$VVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:Y8%88888888888888#####################$####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$########################################################################################$#$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx**************xxxYYYVVVV$$$$$$$$$$#####VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx***********************================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~++===*xxxxx*****************x************xV#88888888888888888888$V#88888888888888888888888888#88888888###8###############88888888888888888888888##888#888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++=+++=====================================*********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*==++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::~~~::::::::::::::+++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$VVVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~=#8%%888888888888######################$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$###$######################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx*************xxxYYYVVVV$$$$$$$$$######V**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************==================+++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~++===**xxxx*******************x***********x$88888888888888888888$V88888888888888888888888888#888#88888#8#################88888888888888888888888888#8##88888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++=+=======================================********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=+++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::~:::::::::::::::~~:~::::::::::::+++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$VVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:Y8%%888888888888###########################$$$#$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$###$#############$#######################################################################$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx**************xxxYYYYVVVV$$$$$$$$#$####V*==*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************==================++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~:+===***xxx*********************x***x******Y#8888888888888888888$$888888888888888888888888888#88888888###################8888888888888888888888888##8#88888888888888888888888888888888888#############################################8888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++======================================************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**===+++++++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::~~~~~:::~::::::::::+::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:Y$$$$$VVVVVVVVVVVYVYYYYYYYYxxxxxxxxxxxxxx***********===========+++++++++++++:::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~+#8%8%88888888888######################$##$$##$$$$$$$$$$$$$$$$$$$$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$############################################################################$#####$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx*************xxxxYYYVVV$$$$$$$$$$#$###V*====**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x*********************==================+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~:+===*****x**************************x*****xV8888888888888888888##888888888888888888888888888888888888##################8888888888888888888888#8888#8#88888888888888888888888888888888888############################################88888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++++++==++=====================================***********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**==========+++++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::::::::::::::::::~~~~~~~~:::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~+V$$$$$VVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxxxx***********============++++++++++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~x8%%8888888888888#################$#$###$#$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$###########################################################################$##$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx**************xxxxYYYVVVV$$$$$$$$$$####V*===*===*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***********************==================+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~::~~~~~~~~~~~~~~~~:+===**************************x************x#888888888888888888##8888888888888888888888888888888888888#################88888888888888888888888#88#8888#888888888888888888888888888888888############################################88888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++==+=======================================*************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**================+++++++++++++++:+::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::~~~~~~~~~~:::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:+V$$$$$VVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********============+++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~:$88%888888888888#####################$#$##$##$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$$$$$$$$$V$V$VVVV$$VVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$##############################################################################$$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$####Y*=====*=*=**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************===================+++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~:+===******************************x**xx****xV#88888888888888888888888888888888888888888888888888888####################88888888888888888888888#88888#88888888888888888888888888888888888############################################88888888888888888888888888%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++===+====================================**************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**=======================+++++++++++++++++:::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~::::::::::::::::::::~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::=$$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxx**********============+++++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~=#88%888888888888########################$$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$VVVVVVVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$##########################################################################$###$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx*************xxxxYYYVVVV$$$$$$$$$$$##$Y*=====********xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************===================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~+===**************************x****xx*******x#88888888888888888888888888888888888888888888888888888####################888888888888888888888888#8888#88888888888888888888888888888888888###########################################88888888888888888888888888%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++=+=+======================================****************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***=============*=================++++++++++++++:+::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::~:~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::*$$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx************============++++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~:Y8%%8888888888888####################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$$$VVVVVVVVVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$##########################################################################$##$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx***********xxxxYYYVVVV$$$$$$$$$$$##$Y*=*===**********xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x*********************===================+++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~+====**********************x**x**x*x**x*x****Y#8888888888888888888888888888888888888888888888888888###################888888888888888888888888888#88#88888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++=++=+==+===================================****************************************x***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**==============*********=***=**==========+++++++++++++:::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~:::::::::::::::::~:~::~~~~~~~~~::~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::x$$$$VVVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxx***********=============++++++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~+$888888888888888####################$#$#$$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVV$$$$V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##############################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$$##$Y*====************=*YVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYVYYYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*********************==================+++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~:====*************************x*xx*x*x*x**x**x$8888888888888888888888888888888888888888888888888888###################88888888888888888888888#8#888#888888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::+++++++++++++++++++++++++++++++++++++++++++++++==========================================****************************************xx*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**=============*=************************=======++++++++++++++:+:::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::~:~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::++Y$$$$VVVVVVVVVVVVYYYYYYYYYYYYxxxxxxxxxxxxxxx***********============+++++++++++++::::::::::::::::::::::~~:~~~~~~~~~~~~~~:*88%88888888888888######################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$V$V$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##############################################################################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$###$x**==*****************xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x**********************===================+++++++++++++++++++::++::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~:====********************x*xx***x**xx**x****x*Y8888888888888888888888888888888888888888888888888888###################8888888888888888888888#88#8888888888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::+++++++++++++++++++++++++++++++++++++++++++++=++===========================================***************************************x**xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**================********xxxxxxxxx****==*******========+++++++++++++++++++++++::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~::::::::~::::::::::::::::::~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::~::~~~::~~:::::::::::::+++++Y$$$$$VVVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxxxx************============++++++++++++++:::::::::::::::::::::::::::::~~~~~~~~~~:Y8%8%88888888888#8###################$###$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#############################################################################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$###$x*=******************==*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************===================+++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~~~~~~:====*********************xx*x*x***x*xx*x*****x$888888888888888888888888888888888888888888888888888###################888888888888888888888#88#888#8888888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++++++++++++++++++++============================================*****************************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**================*********xxxxxxxxx***===========******======+++++++++++++++++++++++++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++xV$$$$VVVVVVVVVVYVYYYYYYYYYYYxxxxxxxxxxxxxxx***********============+++++++++++++++::::::::::::::::::::::::::::::~::::::::+$8%%8888888888888###################$###$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############################################################################$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$$##Vx******************==*xYV$#$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x**********************===================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~~~~~~:=====*********************xx**x*x*****x*x*xx*xY888888888888888888888888888888888888888888888888888##################88888888888888888888888#8888888888888888888888888888888888888888888##########################################88888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++++++++++++==+=============================================*=***********************************x**x*x*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx***===================*******xxxxxxxxx***================******======++++++++++++++++++++++++++++++++++:::::::::::::::::::::~~:~~~~~::::::::::::::::::::::::::::::::::~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~::::::::++++++++++*V$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxx**********=============+++++++++++++++:::::::::::::::::::::::::::::::++++++++*#%%%8888888888888####################$#$$#$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx************xxxxYYVVVVV$$$$$$$$$###$V*****************==**xV$#####$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************====================++++++++++++++++++:+++:::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~::+====*******************xxx*xx***x*xxx*x*x****x$88888888888888888888888888888888888888888888888888#8################88888888888888888888888#888888#8#8888888888888888888888888888888888########################################8#888888888888888888888888%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ++++++++++++++++++++++++++++++++++==============================================**************************************x**xx*x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**=====================*******xxYYYxxxx****===================*******======+++++++++++++++++++++++++++++++++++++::::::::::::::::::::~:::~:::::::::::::::::::::::::::::::~:~~~~~~~~~~:::::::::::::::::~:::::::::::::::::::::::::::::::::~~~~~~~~~~::::::+:+++++++++*V$$$VVVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxx*x************===========++++++++++++++++::::::::::::::::::::::::::+++======+===Y8%%%88888888888##################$##$##$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx************xxxYYYYVVVV$$$$$$$$$$##$V***************==**xV$#########$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*x*********************===================++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~::~:~~~~~~::+====*********************xx**xx**xx****x***xxxY8888888888888888888888888888888888888888888888888#88################8888888888888888888888##88888#888888888888888888888888888888888888##########################################8888888888888888888888888%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++===============================================**************************************x**xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***========================*******xYYYYxxx****======================xxx*****======+=+++++=======================++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~:::::::::::::::::~~:~:::::::::::::::::::::::::::::~~:::::~~~-~~:::::+:+++++++++=V$$$VVVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxx************=============++++++++++++++++:::::::::::::::::::::++++++++++++++++=V8%%8888888888888######################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx**********xxxxYYYVVVVV$$$$$$$$$$##$Y*=************=**xY$##############$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************===================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~::+=====*******************xx*xx**xx**xx*x*xxx**xx$888888888888888888888888888888888888888888888888##8################8888888888888888888888888888888888888888888888888888888888888888888#########################################888888888888888888888888%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++===============================================******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**============================******xYYYYYxxx***========================xxxxx*****===================*****xxxxxxxx*****===++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~::::::::::::::::::~~~~:~:~:::::::::::::::::::::::~::::::::::~~::::+:::++++++++++=Y$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxx***********=============+=+++++++++++++++++::::::::::::::::++++++++::::::::+++=$8%%888888888888#################$####$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$##############################################8################################$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx*********xxxxYYYVVVVV$$$$$$$$$$$#$Y************==*xYV$##############$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~::+======******************x***x*xx*x*xxxxxx*xxxxxY#88888888888888888888888888888888888888888888888###################8888888888888888888888888#88888888888888888888888888888888888888888#######################################8#8888888888888888888888888%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++=++=+=================================================*****************************************x*x*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxx*****=========================********xYYYYYxxxx***=========================xxxxxxx*****============***xxxxxxxxxx*****===*****==++++++:::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~:::::::::::::::::~~~:~:~::::::::::~~~~~~~~:::::::::::::++:::::++++::++++++++++=Y$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxx*x***********===============+++++++++++++++++::::::::::::++++++++++::~~~::::::++*#8%%8888888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########################################################################$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYxxxxxxxxx********xxxxYYYYYVVVV$$$$$$$$$$$$$x**********==**xV$##############$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***********************====================++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:::~~~:~~:::+=====*****************x**xx*x*x*xxxx*x*xx**xxxxxV88888888888888888888888888888888888888888888888##################8888888888888888888888888888888#88888888888888888888888888888888888########################################8888888888888888888888888%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++=+===================================================************************************x***x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx************=================***=*=*******xYYYYYYxxx****=========================xYYxxxxx*******======**xxxxxxxxxxx***================++++++++++:::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~::::::::::::::::::~~~~~:~~:::::::~~--~~~~~~~~~~:::::::::+++++++++++++++++++++++++xV$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxx**************===============+++++++++++++++++++++++++++++++++++:::~~~::::::+++=x#8%%888888888888#################$####$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*xxxxxYYYYYVVVVV$$$$$$$$$$$$Vx*********=**xV$############$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================+++++++++++++++++++:++::::::::::::::::::::::::::::::::::::::::~~::~~~~~::++======*******************x*x*xx*xxx*xx*xx**xxxxxx#888888888888888888888888888888888888888888888###################88888888888888888888888888#8888#88888888888888888888888888888888888########################################8888888888888888888888888%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ================================================*=*************************************xxx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$VY**************================*************YYYYYYxxxx***==========================YYYYxxxxxx***********xxxxxxxxx****=====================++++++++++++:::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~:::::::::::::::::~~~:~~~~~~:::::~~-~~::::~~--~~~::::::::++++++++++++++++++++++++++*V$$$$VVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*****************======+++++++++++++++++++++++++++++++++++++++:::::::::::+++++=x#8%%%88888888888####################$#$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxYYYYYYVVVVV$$$$$$$$$#$VVx*******==*xY$$###########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~::::~~:~::++======***********************x*xxxxxxxxxx**xxxxxxV88888888888888888888888888888888888888888888888################8888888888888888888888888#8888888#8888888888888888888888888888888888######################################88#88888888888888888888888%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% =======================================*==****************************************xxx*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVV$$$$$$$$VYx*************====**=*=*===*************xYYYYYxxxx****=========================*YYYYYYxxxxxxx*****xxxxxxxxx****============================++++++++++++::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~::::::::::::::::::::~~~~~~~~:::~--~::+++::~~~~~::::::::::::+++++++++++++++++++++++=V$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx**********====++++++++++++++++::::::+++++++++++++++++++++::::::::::++++====Y#%%%88888888888####################$#$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVYVYYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYVVVVVV$$$$$$$$##$VY********=*xV$#########$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***********************=====================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~::~::::+++======*****************x**x***xxxx*x*xxxxx*xxxxxxx#88888888888888888888888888888888888888888888##################888888888888888888888888#8888888888888888888888888888888888888888888########################################888888888888888888888888%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ====================================****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVV$$$$$$$$$$$$$$$Yx************************************xYYYYYYxxxx****=========================*YYYYYYYxxxxxxxxxxxxxxxxxx****=================================+++++++++++++======+++:::::::::::::~~~~~~~~~~~~~~~~~:::::::::::::::::::~~~~~~~~~::~~-~::++++++:::::::::::::::::+::++++++++++++++++++++=*YYYYYYYxxxYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*****===++++++++++++++:::::::::::::::::++++++++++++++++++++::::::++++=======*Y88%%888888888888###################$##$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVVVVVYVYVYVYVVVVVYVYVYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$####$###############################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYxxxxxxxxxYYYYYYYYYVVVVV$$$$$$$$$##$Yx*******=*xV#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************====================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~~::~:::++++=====*********************x*xx*x*xx*xx*xxxxxx*xxxV8888888888888888888888888888888888888888888888################888888888888888888888#8888#88888#88#88888888888888888888888888888888######################################8888888888888888888888888%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ============================******************************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$#$$$VYx********************************xYYYYYYxxxxx****=========================*YYYYYYYYYxxxxxxxxxxxxxxx****==========================***===============******=======+++:::::::::~~~~~~~~~~~~~~~~::::::::::::::::::~:~~:~~~~~~~~~~~~:++++++++++:::::::::::::::+:+++++++++++++++++++++=**=======*********xxxxxxxxxxxxxx*********==*==+++::::~~~~~~::::++++++::::::::++++++++++++++++++++++=+==++++++++++++========****Y88%8%88888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYVVVYVVYVYYVYYVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###################################################################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$##$x******==*xY$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx***********************======================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::++++===**********************xx*xxxxxxxxxxxxxxxx*xxxxx#8888888888888888888888888888888888888888888#################8888888888888888888888888#8888888888888888888888888888888888888888888#####################################88888888888888888888888888%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ===================*==******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$$#$$$Yxx******x********************xxxYYYYYxxxxx*****=========================xYYYYYYYYYYxxxxxxxxxxxxx***============================******=======********=============+++::::::~~~~~~~~~~~~~~~~:::::::::::::::::::::~~~~~~~~~:~~::+++++++:::::::::::::::::::++++++++++++++++++++++==***==++=****************=====++++++++++++++::~~~~~:::::+++++++++++++++++++++++++++++++===================++++++======***********Y8%%8888888888888#################$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYVVYYYYYYVYVVYYVYVYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$#$####################################################################$$$$$$$$$$$$#$$#########$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVV$$$$$$$$$###Vx****==*xYV$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**********************======================+++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:::+++++===**********************x*xxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888888888888888#8###############888888888888888888888#8#888#88888888888888888888888888888888888888888####################################8##8888888888888888888888888%%%%%%%%@%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ===============*******************************************x*xx*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$$$#####$VYxxxxxxxxxx***************xxxYYYYYYxxxxx*****=========================xYYYYYYYYYYYYxYxxxxxxxx***============================*********************==================+:::::~~~~~~~~~~~~~~~:::::::::::::::::~:~:~~~~~~~~~~~~:+++++:~-...---~~~~::::::::+++++++++++++++++++++++++=xxxxx******************====++++++++++++++++++++===========*========++++++++===============*******===============****************Y88%8888888888888###################$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYVYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$####$################################################################################################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYVVYVVVVVVV$$$$$$$$$$$##$Y*=**==*xV$########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=*=====================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:::+++++===***********************xxxxx*xxxxxxxxxxxxxxxxxxx#888888888888888888888888888888888888888888#8##############8888888888888888888888888888888888888888888888888888888888888888888888####################################888888888888888888888888888%%%%%%%@@%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% =======*=********************************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYVYVVVVVVV$$$$$$$$$$$$$$$##$###$VYxxxxxxxxxxxx***x*xxxxxxxxxYYYYYxxxxx******=========================YVYVYYYYYYYYYYYxxxxxxx***=============================*xxxxxx************=====================+:::::::~~~~:~~~~~:~:::::::::::::::::::~~~~~~~~~~~~~~:++++:~---...----~~:::::+++++++++++++++++++++++===+++***=*******xxxxxx******======++++++++==================********=====+++========***********************=====**********************Y8%88888888888888##################$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYVYYVYYYYYYYYYYYYYYYYYVYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$$$#$###$##$###############################################################################################$####$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$###$x*=*=**xV$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=*=====================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~::+++++==**************************x*xxxxxxxxxxxxxxxxxxxxxY888888888888888888888888888888888888888888################8888888888888888888888888888#8888888888888888888888888888888888888888#####################################888888888888888888888888888%%%%@@@@%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$##$####$$YxxxxxxxxxxxxxxxxxxxxxxxxYYYYYxxxxx******=========================YVVVYYYYYYYYYYYYxxxxxx***=============================xxxxxxxxxx********======================+::::::::::::::~::::::::::::::::::::~:~:~~~~~~~~~~~~~:++++:::~~~~~~~~~:::::::::::::::::+++++++++++++======YVx+=====*YVY**********======+::::++=========================================***************x********=====*******x*x**************Y#8%88888888888888####################$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$$$#####################################################8#####888#8#####8#8##############################################$##$$$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$#$###$Vx**=**YV$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***********************======================+++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::~:++++++==*************************xxxxxxxxxxxxxxxxxxxxx*xxx$88888888888888888888888888888888888888888##88#8##########8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxx***x*x*xxxxxYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$#$###$#$$#$VYYxxYYYYYxxxxxxxxxxxxxYYYYxxxxx*******=========================YVVVYVYYYYYYYYYxxxxxx****============================*xxxxxxxxxxx******========================+::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~:+++:::::~~~~~::::::::::::::::::++++++++++++++=======*x+++=====**================++++=====================**********====++++=========**********x*x*********=====************************Y#8%%888888888888###############$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#######################################################888#888888888888888888888##############################################$##$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYVVVVVVVVVV$$$$$$$$$$$$####$Y*==*xV$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=======================+++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::++++++===***********************x*xxxxxxxx*xxxxxxxxxxxxxxxY88888888888888888888888888888888888888888###8###########888888888888888888888888888888888#8888888888888888888888888888888888888###################################8#88888888888888888888888888%%%%@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% **********************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx**********x**xxxxxxYYYYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$######$##$#$$$VYYYYYYYYYYYYxxxxxxxYYYYYxxxxx********========================YVVVVVVYYYYYYYYxxxxxx****============================*xYYYxxxxxx******=========================++++:::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~+++::::~~~~~~~::::::~~:::::::::++++++++++++++++++++++++++++++++++++++++===============********xxxxxxxxxxxYYYYYYYYYYYxxxxx**==+++========********xxx******************************========x#8888888888888888#################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$###########################################88#8#8888#888888888888888888888#8#8###############################################$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVVVVVVVVV$$$$$$$$$$$$$####$V*===*x$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx********************=======================+++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::++++++===************************x*xxxxxxx*xxxxxxxxxxxxxxxx$8888888888888888888888888888888888888888###88###########888888888888888888888888#88888888888888888888888888888888888888888888###################################8#88888888888888888888888888%%%%@@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxx******************x**xxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$$#$####$$#$##$$VYYYYYYYYYYYYYYYxYYYYYxxxxx*********=======================YVVVVVVVYYYYYYYxxxxxx***=============================*YYYYxxxxxx*****===========================++++:::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~++::~~-------~::::~~~:::::::::+++++++++++++:::::::+::::::::::::+++++++++++++====**xxxxxxxxxxxxxxxxxxxxxxYYYYYYYxxxxxxxxxxxxxx*===++========***xxxxx***************========================*$8%88888888888888#################$#$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$#$####$#####################################8##8#88#88888888888888888888888#8#888#8#88#8#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$#$##$Y*===*Y$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************=====================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::+++++====***************************xxxxxxx*x*xxxxxxxxxxxxxY88888888888888888888888888888888888888#8##88##8#########8888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% **********************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxx*************************xxxxxxxxxxYYYYYYYYYVVVV$$$$$$$$$$$$$$##$$#$#$#$$$$#$$$VVYYYYYYYYYYYYYYYYYxxxxxxx********=======================YVVVVVVVYYYYYYYxxxxxx**==============================xYYYYxxxxxx*****==========================*=+++++:::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~::::~--....-~:::~~~~~~:::::::::++++++++++:::::::::::~~~~~~:::::++++++++==**xxxYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++++=====***xxx*************====+++++++++++++============*V8888888888888888#################$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$#$#$########################################8##8##8888#8888888888888888888#88888######8################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$###$Y*====*Y$$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************=======================+++++++++++++++++++::::::::::::::::::::::::::::::::::::++++++====****************************xx*xxx*xxxxxxxxxxxxxxxx$8888888888888888888888888888888888888#8#8####88#######8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ******************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx**************************xxxxxxxxxxxxYYYYYYVVVV$$$$$$$$$$$$$$$#$#$##$$$$$#$$$$$$VYVYVYYYYYYYYYYYxxxxxx*********=======================xVVVVVVVYYYYYYYxxxxx***==============================xYYYxxxxxx*****===========================*==++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~::::~~~~~~~~~~~~~~~~::::::::::+++++++++::::::~----~~~~:::+++++===**xxYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxx*xxx***=+++=++=***************====++++:::::::::::++++++==========Y88888888888888888##############$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$##$###$######################################8#8##8888#888888888888#88888#88#88#888##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$###Vx=====*Y$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************=======================+++++++++++++++++++++::::::::::::::::::::::::::::::::::+++++=====****************************x*xxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888888888888##8############8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%@@@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% **********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx**************************xxxxxxxxxxxxxYYYYYVVVVV$$$$$$$$$$$$$$$#$#$$$$$$#$$$$$$$$VVYVYYYYYYYYYxxxxxxxx******=========================*VVVVVVYYYYYYYYxxxxx**===============================*YYxxxxxxx****============================*====+++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++++::::~~. .-~:::+====**xYYVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*************x*x*===+++==*******xxx**====+::~~~~~~~:::::::::++++++=====++++x#8888888888888888################$##$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$####$###########################################888#8888#88#888#888#8888#88#88#8#######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$###$Y*=====*Y$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**********************=========================++++++++++++++++++++:::::::::::::::::::::::::::::::::++++======******************************xxxxxxxxxxxxxxxxxxxxxV88888888888888888888888888888888888888#888###8#######8888888888888888888888888888888888888888888888888888888888888888888888####################################8888888888888888888888888888%%%@@@@@@@@@%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$VVYVYYYYYYYYYYxxxxxxxxx****************************xxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$VVVVYYYYYYxxxxxxxxxx*****=========================*VVVVVYYYYYYYYYxxxx***===============================*xYYxxxxxx****============================*=====++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++++++:::::~~~~::++++=*xxYV$$$VVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*****************x*====+==**xxxxxx**===++::~~~~~~~~~~~~~~::::::++++++++++++++*$888888888888888888###############$$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$#$#############################################8##88#88#8888888#888#88888#8#8#8########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$Y*=======Y$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx********************=*========================+++++++++++++++++++:::::::::::::::::::::::::::::::::++++=======*****************************x*xx*xxxxxxxxxxxxxxxx$88888888888888888888888888888888888888888####8#######88888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@@%%%@%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYV$$#8888#VVVVYYYYYYYYYYxxxxxxxxx*****************************xxxxxxxxxxxYYYYYVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVYYYYYYYxxxxxxxx*****=============================YVVVVVYYYYYYYYxxxx***===============================*xYYxxxxxx****===========================***======++++++::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~:::::::::::++++++::~-::+:++++=====*V$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*******************=======*xxxx**=====++::~~~~~---~~~~~~~~~:::::++++++++++++++=V88%88888888888888################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$###$#############################################8##88#8##88#8#88#8#8#8###88#8####################################$$#$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$Vx========x$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************========================+=+++++++++++++++++++:+:::::::::::::::::::::::::::::+++========********************************xxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888#####88######888888888888888888888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888888%%%%@@@@@@@@@%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##888%%%8888#VVVYVYYYYYYYYYYxxxxxxxx***************************xxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$VVVVVVYYYYYYxxxx******=================================xVVVVVVYYYYYYYxxxx***===============================*YYYYxxxx****=============================**=======+++++::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~::::::::::::++++++:::::+++++========x$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*xx*********************======*****=====+++::~~~-------~~~::::::::::+++++++++++++++=Y#88888888888888888###############$$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$$$$###############################################8####888#88#8##8#8##8#8###8#8#####################################$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY*========x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************=========================++++++++++++++++++++:::::::::::::::::::::::::::::+++========********************************xx**xxxxxxxxxxxxxY#888888888888888888888888888888888888#88#8#8#8#######88888888888888888888888888888888888888888888888888888888888888888888888####################################888888888888888888888888888%%%%@@@@@@@@@%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVV$##8888888888888888#VVVVYYYYYYYYYYYxxxxxxxx*****************************xxxxxxxxxxxxxYYYYYYYYYYVVVVVVVVVVVVVV$$$$$$$$$VVVVVYYYYYYYxxxx*****====================================YVVVVVVYYYYYYYxxx****===============================xYYYYxxxx****=============================****======++++++::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~-------~~~~~~::::::::::::++++++++++++++===========*Y$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x******************=======****====+++++:::~~~----~~~:::::::::::++++++++++++++++++x$888888888888888888#############$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$##$$################################################8#8##88#8#8###8#8#8#####8############################$##$$##$$##$$$$$$$$$$$$$$$###########$#$$$$$$$$$$$$$$$$$$$V$VVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*=========*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************===========================++++++++++++++++++++:::::::::::::::::::::::::::+++========************************************xxxxxxxxxxxxxV88888888888888888888888888888888888888######88######8888888888888888888888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888888%%%%@@@@@@@@@%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYV$$###888888888888888888888#VVVVVYYYYYYYYYxxxxxxxx*****************************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVV$$$$VVVVVVVYYYYYxxxxx******====================================xVVVVVVVYYYYYYYxxx****===============================xYYYYxxxx****=============================*****======+++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~:::::::::::::++++++++++++=============**Y$$$$$$VVVVVVVVVVVYVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*************===================+++++:::::::~~~~~::::::::::::++++++++++++++++++++*V888888888888888888##############$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$####################################################8##8#########8#8##################################$#$$$#$$$#$$$$#$$$$$$$$$###################$$$$$$$$$$$$$$$$V$VV$$VV$V$$$$$#$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$Y*===========*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$###$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********************==========================++++++++++++++++++++::::::::::::::::::::::::::++++========************************************xxxxxxxxxxxxx$88888888888888888888888888888888888#888####8#8######888888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@@@%%@%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVV$###8888888888888888888888888888#VVVVYYYYYYYYYYYxxxxxxx*******************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVVVVYYYYYYxxxxx*****=====================================*YVVVVVVVYYYYYYYxxx****==============================*xYYYYYxxx***==============================******=====++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~------~~~~~~~~~:::::::::::+++++++++++++++=============**V$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x*********==+++++=============++++++::::::::::::::+::+:+++++++++++++++++++++++++++=Y#8888888888888888888############$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$$######$######################################################8#######################################$#$$#$$$$$$#$$#$$$#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$$$$$$$##$$#$#$$#$$$$$$$$$$Y*=============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*********************========================+=++++++++++++++++++++:+::::::::::::::::::::::++++========************************************xxxxxxxxxxxxY#8888888888888888888888888888888888#8######88########8888888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYxYYYYV$$##88888888888888888888888888888888888$VVVVVYYYYYYYYYxxxxxxxx*********************************xxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVVVVVVVYYYYYYYxxxxx******======================================YVVVVVVVYYYYYYYYxxx****==============================*xYYYYYxxx***==============================******======++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~::::::::::::++++++++++++++++==============x$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*xx*x*******=++::::++==========++++++::::::::++++++++++++++++++++++++==++++++++++++++++*$8888888888888888888##############$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$$###################################################################################################$#$$$$$$$$$$$###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###$$$$$#$$###$#$##$#$$$#$$$#$$Y*==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx*********************===========================++++++++++++++++++++:++:::::::::::::::::::++++=========***********************************xxxxxxxxxxxxV8888888888888888888888888888888888888##8##8#88#######88888#888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYV$$##88888888888888888888888888888888888888888$VVVVYYYYYYYYYYxxxxxxx**********************************xxxxxxxxxxxxxxxxxxxYYYYYVVVYYVVVYVYYYYYYYYxxxxxx******=======================================xVVVVVVVYYYYYYYxxxx*****==============================*xYYYYYxxx***==============================xx*****======+++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::++:+++++++++++++++=============*V$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*xx*****=++:~~~:+==========++++++::::::+++++++++++++++++++++++++===++++++++++++++++++=V8888888888888888888##############$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$#######$###########################################################################################$$$#$$$#$$##########################$#$$$$$$$$$$$$$$$$$$#######################################$$###$VY*================x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#########$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**x******************===========================+++++++++++++++++++++++:::::::::::::::::::++++=========**********************************xxxxxxxxxxxxx$888888888888888888888888888888888888######8#88######8#8888#888#88888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVV$##88888888888888888888888888888888888888888888888$VVVVVYYYYYYYYxxxxxxxx***********=*=******************xxxxxxxxxxxxxxxxxxxxxYYYYVVYYYYYYYYYYYYYxxxxxxxx******=======================================xVVVVVVVYYYYYYYYxxxx*****=============================**YVYYYYxxx***==============================xYxx*****======++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+:+++++++++++++++++=============x$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*xx**=+++:~::+=========++++++::::::++++++++++++++++++++++++====+++++::::++++++++++++x#8888888888888888888############$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$#######$###########################################################################################################################$$$$$$$$$$$$$$#################$#$#####$#######$###############$Vx=+++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************==========================++++++++++++++++++++++:::::::::::::::::::++++=========**********************************xxxxxxxxxxxxx#88888888888888888888888888888888888####8#8888#######8##8#8#8#888#888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxYxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYVV$##88888888888888888888888888888888888888888888888888888$VVVVYYYYYYYYYYxxxxxx**********======****************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYxxxxxxxx********=======================================xYVVYVYYYYYYYYYYxxxxx*******===========================**YVVYYYxxx***==============================xYYxx******=======+::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++++++++++++++=============xV$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*===+++===*======++++++::::++:++++++++++++++++++++++=====++++::::::+++++++++++++*V88888888888888888888##############$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$#################################################################################################################################$$$$$$$$$$$######################################################$V*++++++==============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx********************============================++++++++++++++++++++:::::::::::::::::++++++========**********************************xxxxxxxxxxxxY#888888888888888888888888888888888###########8#######8#88#8#8#8888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxYxxYxYYYxYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#88888888888888888888888888888888888888888888888888888888888#VVVVYYYYYYYYYxxxxxxx*********=======***************xxxxxxxxxxxxxxxxxxx*xxxYYYYYYYYYYxxxxxxxxxxx*******========================================xYVYYYYYYYYYYYYYxxxxxx*******===========================**VVYYYYYxxx**==============================xYxxx*****=========++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++++=============x$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**==============+++++::::+++++++++++++++======++=+======++++:::::+++++++++++++++==Y#888888888888888888#8##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$##$####$###############################################################################888#88####8#####8#8###88###################$$$$$$$$$$#########################################################VY=+++++++==============*Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############8####$VVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************============================++++++++++++++++++++:::::::::::::::++++++========**********************************xxxxxxxxxxxxV8888888888888888888888888888888888#######88#8#######8#88#88###8#88888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYV$$##8888888888888888888888888888888888888888888888888888888888888888#VVVVYYYYYYYYxxxxxxx*********=======**************xxx*xxxxxxxxxxxxxx***xxxYYYYYxxxxxxxxxxxxx********=========================================xYYYYYYYYYYYYYYYxxxxxx*******============================*xVVVYYYYxxx**==============================*xxx******==========+::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++==============x$$$$$$$VVVVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx**=============+++::::::+++++++:+++++=====***=======+++++++++++++++++++++++++++++==*V888888888888888888888###############$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$$$#####$##################################################################################88888888#8888888#8#888#8#8###############$$$$$$$$############################################################$Y*++:+++++++==============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##############8###88##VVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**********************===========================++++++++++++++++++++:+::::::::::::++++++=========*********************************xxxxxxxxxxxx$8888888888888888888888888888888888###8#8####8#######8#####8##888#8888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@@%%@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxYxxxYYYxYYYYYYYYYYxxxYYxYxYYxxxYYxYxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$##8888888888888888888888888888888888888888888888888888888888888888888888#$VVYYYYYYYYYxxxxxxx********========***************x**xxxxxxxxxx******xxxxYYxxxxxxxxxxxxx*********========================================*YYYYYYYYYYYYYYYYxxxxxx********============================*YVVYYYYYxxx***=============================*xxx*****============+::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+:++++++++++++++==============Y$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*==+++==*=====++::::::::++++++++++====*********====+++++++++++==========++++++++++++=x$8888888888888888888################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############################################################8###################8#888888888888888888888888888##8#########$$$$$$$################################################################Vx+::::+++++++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################888888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************===========================+++++++++++++++++++++::::::::::::++++++=========*********************************xxxxxxxxxxxY#88888888888888888888888888888888######8################8#8#8#8#888888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$###888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYYYYYYYxxxxxxx********=======***************x*x*xxxxxxxx*******xxxxYYxxxxxxxxxx***********========================================*YYYYYYYYYYYYYYYxxxxxx*******==============================*YVVVVYYYYxxx****============================*xx******============+::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+:+++++++++++++===============Y$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*=+::::=======++:~~~:::::+++++++=====***********====++++++=====*******==++++:::++++++++=Y#888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$###$##$#######################################################8####8#########8##########888888888888888888#88#88#8#8#88########$$$####################################################################$Y=:~~~::++++++++==============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$##################8##8#88##$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**********************===========================+++++++++++++++++++++:::::::::::++++++=========*********************************xxxxxxxxxxxV88888888888888888888888888888888############################8####8888888#888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$###8#8#888#8888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYYYYYYxxxxxxx*******=======**=***************xxx**x***********x*xxYYxxxx*x*************========================================*xYYYYYYYYYYYYYxxxxxxxx******===============================*YVVVVVYYYxxxx*****===========================*xx*****=============+:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+:+++++++++++++===============Y$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx==+:~:+=====+++:~~~::::::++++++=****=**********====++======********=====++::::::+++++++++*V88888888888888888888#8#################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$##########$######################################################8############8#8##8888888888888888888888888##8888#88#8###########################################################################$Y*+~~~~~::+++++++++=============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################8##88888888#$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx********************=============================++++++++++++++++++++:::::::::+++++++=========*********************************xxxxxxxxxxx$888888888888888888888888888888888#####8##8#8############8######8#88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@@%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##################8##8888888888888888888888888888888888888888888888888888888888888888888888#VYYYYYYYYYxxxxxxx*******======*==******************x****************xYYx**x*************=========================================*YYYYYYYYYYYxxxxxxxxxxx****==================================xVVVVYYYYYxxx*******==========================*xx*****=============+:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++++++++++++++==============*V$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx*==++++=====++::~~~~:::::+++++=******=********===++++===********========++:::::::++++++++++=x$8888888888888888888888##################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$$##$####$#$########################################################8###############88888888888888888888888888888#8#88888###########################################################################$V*+~~~~~~~:::++++++++==============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################8#88#888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x********************============================++++++++++++++++++++::+::::+++++++=========*********************************xxxxxxxxxxY#88888888888888888888888888888888##########8#####################888888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##############8####8##########8#8#88#8#8##88#88888888888#8888888888888888888888888888888888#888#8#$VYYYYYYYxxxxxxx********=========**********************************xYVx***************========================================xYYYYYYYYYYYxxxxxxxxxxxx***==================================*YVVVVYYYYxxxxx*******==========================*xx*****=============+:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+:+++++++++++++=============*V$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*=========+++::~~~~::::::+++++*x**************========*******===========++::::::+++++++++++++=Y#888888888888888888888###################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##$$#################################################8##8##8##8######8##8#888888888#88888888888#88#8#8#8##8##8##8##########################################################################$Vx+:~~~~~~~~~::+++++++++=============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$####################8##888#888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************============================++++++++++++++++++++:++::::+++++++=========*********************************xxxxxxxxxxV8888888888888888888888888888888###########8#######################88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$##########################8#####8#############88##################8##8####8#88888888888888888888#88##8##$VYYYYYYYxxxxxxx********========***********************************xYx*************========================================*YYYYYYYYYYxxxxxxxxxxxx****===================================*YVVVVYYYYYxxxx********==========================*xx*****=============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++++++++++++++++===========*V$$$$$$VVVVVVVYYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*========+++:::~~~::::::+++++=xx*************========********=========+++::::::++++++++++++++++*Y#888888888888888888888#####################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$#$$########################################################################8#8###8#88##888#88#8888#888#8###8#88################################################################################$Vx+:~~~~~~~~~~~::+++++++++=============*V$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################8##8#88#8#88888#$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**********************===========================++++++++++++++++++++:+::+++++++++========*********************************xxxxxxxxxx$88888888888888888888888888888888###################8##8########8#88888#8888#888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$###########################################################################################888#8##8#8#8#8######VYYYYYxxxxxxxx********=======**************************************x************=======================================*xYYYYYYYYYYxxxxxxxxxxx****===================================*YVVVVVYYYYxxxxx********===========================*x*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++++++++++++++++==========x$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*======+++::::~~:::::::++++++=xx*************=======*********=========++++++++++:::::+++++++++===*V#88888888888888888888#######################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$##$#####################################################8#####8########8####8#8#8##8###8###########################################################################################$Y*=:~~~~~~~~~~~~~::+++++++++==============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################8###8#88888%%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x*******************============================+=++++++++++++++++++++:+++++++++==*==****************x*******************xxxxxxxxxY#888888888888888888888888888888#8#####8#####8####################888888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#####################################################################################################################VYYYYYxxxxxxxx*******========************************************************=======================================*xYYYYYYYYYYxxxxxxxxxxx****===================================*xYVVVVVYYYYxxxxx*******=============================*xx****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++++++++++++++++++========Y$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*=====+++:::~~:::::::::++++++=*x***********===+::+===***********=**==++++++++++:::::::+++++++======*V#8888888888888888888888#######################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$$##############################################################8########################################################################################################################$$Y*=:::~~~~~~~~~~~~~::+++++++++==============x$$$$$$$$$$$$$$$$V$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################8888%%%%%%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*******************===============================++++++++++++++++++:+++++++++====*********************x***************xxxxxxxxxY#88888888888888888888888888888#######8######8#####################8888#88888#888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$############################################################################################################################$YYYYYxxxxxxx*********=======**=*******************************************=======================================xYVYYYYYYYxxxxxxxxxxxx*****===================================*xVVVVVYYYYYxxxxx*******=============================*xx******=============+::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++++++++++++++++========V$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*====++++:::~~::::::::++++++++==**********==++++:++++===***********===+++++++++:::~~~:::++++++========*V#88888888888888888888#8#8######################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$$$$######################################################################################################################################################################################$VY*=++::::~~~~~~~~~~~~::++++++++++=============*V$$$$$$$$$$$$$$V$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$########################8888%%%%%%%%%%%%%8#VVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx********************=============================++++++++++++++++++++++++++++===****************x*x*xxx***************xxxxxxxxx$888888888888888888888888888888####################################88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@@%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#############################################################################################8####8################################VYYYxxxxxxx*********==========***=**************************************======================================xYYYYYYYYYYxxxxxxxxxxx*****====================================*YVVVVVYYYYxxxx********==============================*xxxx****=============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~~~-~~~~~~~~~~~~~~~~~~~~::::++++++++++++++++++=======*V$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx*===+++++::::::::::::::++++++++============+++++======++++==********==++++++=+++::~~~~~::++++++==========*Y#888888888888888888888#88##8#####################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$####################################################################################################################8################################################################$Vx*====++::::~~~~~~~~~~~~::+++++++++===============Y$$$$$$$$$$$$$$$$$$$$$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################8888888%%%%%%%%%%%%%%%%%8#VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************============================+=+++++++++++++++++++++++++===**************x**xx**xx**x************xxxxxxxxY#888888888888888888888888888888####################################8888888##88888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#####################################################################################8888888888888888888888888888#888#8##################$YYxxxxxxxx*********=================*******************=*************=====================================*YYYYYYYYYYxxxxxxxxxxx*****====================================*xYVVVVYYYYxxxxx*******===============================*xxxx*****=============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~-~----~-~~-~~~~~~~~~~~~~~~~~~~~~~:::::+++++++++++++++=======*$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxx*==+++++++::::::::::::::+++++++++======+++++++++++=======++++++==****===++++++==+::~~~~~~::+++++=============*Y$88888888888888888888888########################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$################################################################################################################8##################################################################$Vx*=++:++++++:::~~~~~~~~~~~~::++++++++++==============x$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################88888%%%%%%%%%%%%%%%%%8%%88888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx********************==============================+++++++++++++++++++++++++===*************xx*xxxxxxx*x**x**********xxxxxxxxV#88888888888888888888888888888###########8########################888888#88888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$#####################################################################################888888888888888888888888888888888888888888#8#8##8###8#####$VYxxxxxxxx*********====================**===*********==************====================================*YYYYYYYYYYxxxxxxxxxxxx****=====================================*YVVVVYYYYYxxxxx******================================*xYxxx****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~----~---~-~-~-~---~~~~~~~~~~~~~~~~~~~~::::+:++++++++++++++=+====x$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYxYYxxxxx*==+++++++:::::::::::::++++=+==++++++++++++++++++++=******================++++===++::~~~~~~::+++++================xV#8888888888888888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$############################################################################################8#######8#8#8#######8##8##############################################################$Vx**==+++++++++++++:::~~~~~~~~:::++++++++++==============*V$$$$$$$$$$$$$$$VVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################88888%%%%%%%%%88888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx**********************=============================+++++++++++++++++++++++===************x*xxxxxxxxxxxxx***x*****x*xxxxxxxx$888888888888888888888888888888####################################888888#88888#88888888888888888888888888888888888888888888888888###################################8888888888888888888888888%%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$######################################################################################88888888888888888888888888888888888888888888888888888888888888#8#$Yxxxxxxx********=====================================**********====================================*xYYYYYYYYYYxxxxxxxxxx*x****=====================================*YVVVVYYYYxxxxxx******================================*xxxxx*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~-~----~~-~~~~~~~~~~~~~~~~::+++++++++++++++++=====Y$$$$$$$VVVVVVYYYYYYYYYYYYYYYYxxx**===++++++++++:::::::::++++==========+++++++++++++++++=***xxxx******===========++++==+++::~~~~~~::++++++======+===++++++=*V#88888888888888888888888##8############################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################################8####8#8################8##8###############################################################$Vx*=++++=====++++++++++++++::::~~::+++++++++++===============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############888%%%%%%%%%%%%%%88888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx********************==============================++++++++++++++++++++++===**********xxxxxxxxxxxxx*xxxx*********xxxxxxxxY#88888888888888888888888888888#############8#######################88888#888#88888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYVV$$$#######################################################################################8888888888888888888888888888888888888888888888888888888888888888888888$Yxxxxxxx********====================================******=======================================xYYYYYYYYYYYxxxxxxxxxx******====================================*xVVVVVYYYYxxxxxx******===============================**xxxxxx*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------~~-~-~------~~~~~~~~~~~~~~~~::::++++++++++++++++===*V$$$$$$VVVVVVVYYYYYYYYYYxx***==+++++++++++++::::::::++++=============+++++++++++::++++=******************======++++++++++:::~~~~:::++++++===+++++=+++:::++==*Y$88888888888888888888888##8#############################$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$##########$#####################################################################8##8#8###8#8############8#####8##88##############################################################$Yx=+::::~::::+++++=++++++++++++:+::::+++++++++++++==============*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#############88%%%%%%%%%%%%%%%8888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx**********************=**============================+++++++++++++++++++===**********xxxxxxxxxxxxxxxxxxx**x**x**xxxxxxxxV888888888888888888888888888888#####################################88888888#888888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYVV$$$#########################################################################################888#88888888888888888888888888888888888888888888888888888888888888888888888#VYxxxxxx********==============================================================================xYYYYYYYYYYYxxxxxxxxxxx*****=====================================*YVVVVVYYYYxxxxx******================================**xxxxxxx*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~----------------------------~---------~~~~~~~~~~~~~~~::::++++++++++++++++==*$$$$$$$VVVVVVYYYYYYxx*===+++++++++++++++:::::::++++++============+++++++++++::::++++==******==*=********=====++++++++++++::::::::+++++++++++++++++:::::++==**xY$#8888888888888888888888#88###########################$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#####################################################################8####8####8#8##########8#8######8##8##8####8###########################################################$Vx*+:~~~~--------~~~:::++++++++++++++++::+++++++++++++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$#$#######88%%%%%%%%%%%8888888888888888888888888888#8#####88888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*************************=========================+++++++++++++++++++===*********xxxxxxxxxxxxxxxxxxxxxx**xx**xxxxxxxx$888888888888888888888888888888#####################################8#8888#88888#8888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYVVV$$############################################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxxxx********===========================================================================*YYYYYYYYYYYxxxxxxxxxxx******=====================================*YVVVVYYYYYxxxxx******================================**xxxxxx*****================+:::::::::~~~~~~~~~~~~~~~~~~~-~~-------------------------------------------~~~~~~~~~~~~~~:::+++++++++++++++++=Y$$$$$$VVVVVVYYYx*=++++++++++++++++++:::::::::++++===============++++++++++:::::++++==****==================+++++++++++++++:::::++++++++++++++++++::~~::+==*xxxxxV$#8888888888888888888888#888#############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$##$###########################################################################8##8#####8########8###################8#####8######8###########8###############################$Vx=:~--------------------~~:::+++++++++++++++:+++++++++++===============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$#$####88%%%%%%%%%8%%8888888888888888888888888#############8##88#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x************************==========================++++++++++++++++====******x*xxxxxxxxxxxxxxxxxxxxxxxx******xxxxxxY#88888888888888888888888888888#######################################88#88##8#88888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYVVV$$$###########################################################################################8#8##8#88888888888888888888888888888888888888888888888888888888888888888888888888888888#Vxxxxx********=========================================================================*xYYYYYYYYYYYxxxxxxxxxxx*****======================================xVVVVVYYYYYxxxxx******================================*xxxxxxx******================::::::::::~~~~~~~~~~~~~~~~-~~~~------------------------------------------~~~-~~~~~~~~~~~~~:::+++++++++++++++++=V$$$$$$VVVVYx=+::::++++++++++++:++:::::::::+++++================+++++++++::::::+++++==***================++++++++++:::++++++++++++++++++++++++++::::::++=**xxx****xV$#8888888888888888888888#888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$$#$########################################################################8#8#8888888888888888####8######8#88##8#8#8#######88#8########8####8############################$VYx=:~--------------------------~~~::+++======+++++++++++++++=+=============*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$####888%%%%%%%%%%888888888888888888888888#8#8#############888888%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx************************===========================+++++++++++++=====*******xxxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxxV888888888888888888888888888888#######################################88#88#888#888888888888888888888888888888888888888888888888888###################################8888888888888888888888888%%%%%%%@@@@@@@%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YVVV$$$#########################################################################################8######8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxxx********=====================================================================*xYYYYYYYYYYYYxxxxxxxxxxx****======================================*xVVVVYYYYYYxxxx********===============================*xxxxxxxx****=================+::::::::::~~~~~~~~~~~~~-~~~~-~-----------------------------------------------~-~~~~~~~~~~~~::::+++++++++++++++=*V$$$$$VVYx=:~:::+++++++++++++:+:+:::::::::++++===============+++++++++:~~~::::+++++===============+++++++++++++++::::+++++++++++===+=+++++===+++:::+++==*xxx******=**xV$#88888888888888888888888###8################################$$$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$########$###########################################################8#888888888888888888888888888888888#8#8#8#88888#8#88888#8###8#8##88####8##########################$$Vx*+::~~-----------------------------~~~~::++=======++++++++++++++=============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###88%%%%%%%%%88888888888888888888888888##############88888%%%%%%%%%%88$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***************************=========================++++++++++++====******xx*xxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxY$88888888888888888888888888888#######################################8#8#88888#8888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ###############################################################################################8#88#888##8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#Vxxxx*********==================================================================*xYYYYYYYYYYYYxxxxxxxxxxx*****======================================*YVVVVYYYYxxxxxx********===============================*xxxxxxxx*****=================+::::::::::~~~~~~~~~~~~~~~~~--~------------------------------------------------~--~~~~~~~~~~~~::+++++++++++++++++*$$$$$Vx=:~::::++++++++++++++::+:+++++++++++++==============++++++++::----~~:::+++++==+++++++++++:++::::+:+++++++++++++=+===========+++++=========++++=*xxx*******======*xY$#888888888888888888888888####################################$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$$$##############################################################8####8888#8#888888888888888888888888888888888888888888888##888#8#888#8#8#8##8###8####################$VYx*=+:::::~~~~---------------------------~~~~~~:++==========++++++++++++============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####88%%%%%%%%%8888888888888888888888888#8#######8#888888%%%%%%%%%%%888888888#VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*************************===========================++++==========*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*xxxxxxY#88888888888888888888888888888#######################################8#88#8#8#88888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@%%@@@%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ###########################################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxx********===============================================================*xxYYYYYYYYxxYxxxxxxxxxxxx****======================================*xYVVYYYYYYxxxxxx*******===============================**xxxxxxxx****==================+:::::::::::~~~~~~~~~~~~~~---~-------------------------------------------------------~~~~~~~~~~::::+++++++++++++++=x$$$Y=::::::++++++++++++++++::+++++++++++++++===========++++++++::::~---~~:::+++++++++===++++:::++++++++++++++++++++++++==========++++++===*****===+++*xx******============*xYV$#8888888888888888888888888#####################################$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$###$#################################################################88#8888888888888888888888888888888888888888888888888#88888#888##8#8#8###8###8#####8########$$VYx*=+::::+=++:::~~~~------------------------~~~~~~~::::++====*=====++++++++++++==========x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####888%%%%%%%%%%%88888888888888888888888########88888%%%%%%%%%%%%%8888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x*************************========================+=+===========****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888#######################################8#88888888888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%%@@@@@@%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ####################################################################################8##8#88#8#888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VYxxx*********==========================================================**xxxxxxxxxxxxxxxxxxxxxxxxx*****===================================***xYVVYYYYYYxxxxxx********===============================**xxxxxxxx*****=================++:::::::::::~~~~~~~~~~~~~-~~----------------------------------------------------------~~~~~~~~~~::::+++++++++++++++=Y$Y+~~:::+++++++++++++::::++++++=====================+++++++:::::::~~~~~:::+++++++++=+++++++++++=**==+++++++++++++++++++========+++++++==******===++=xxx*****=================**xV$#8888888888888888888888888##########################################$$$$$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$##$$##################################################################8#8#888888888888888888888888888888888888888888888#88#888888#8##8#8#88#8#8#8#########8#####$$VVYx**=++:::~~~:::+==:::~~~~~---------------~~~~~~~~~~~~~::::::::++==***====++++++++++++++++====xV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####888%%%%%%%%%%%%888888888888888888888#8####88888%%%%%%%%%%%8888888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x**************************====================================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888888888888888888######################################8##8888##8#8888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@@@@@%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ######################################################################################8##88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#Yxxx**********======================================================**xxxxxxxxxxxxxxxxxxxxxxxxx******=================================****xYVYYYYYYxxxxxxx********================================**xxxxxxxx******================++::::::::::::~~~~~~~~~~~~-~----------------------------------------------------------~--~~~~~~~~~~::::+++++++++++++++=Y+~~::::+++++++++++::::::+++==========+==========++++++++:::::::~~~~~:::+++++++++++++::+++++++=******==+++++::::++++++++++======++++++===****===+++=*x*****=======================*xY$##8888888888888888888888#8####################################$########$$$$$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$##$###$####################################################8#8#8888888888888888888888888888888888888888888888888888888#888888888#8#88#8#888#888##8888######$$$VVYxx**=======++++:::~~~:::+++:::~~~~~~-----------~~~~~~~~~~~~~:::::::::+++++==**=====+++++++++++++++++=xYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888%%%%%%%%%%%%%%88888888888888888######88888%%%%%%%%%%%888888888888888888888888888888888888#VVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx**************************=*==================================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888888888888888888888888########################################8#8#8#8#888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@@%@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ############################################################################8####8#888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxx***********=================================================***********************x**xx*******===============================****xxYYYYYYYYYxxxxxx********=================================**xxxxxxxxx*****=================++::::::::::::~~~~~~~~~~~---~-------------------------------------------------------------~~~~~~~~~~::::++++++++++++++++~~:::::++++++++++::::::+++===******=+-:=======+++++++++:::::::~~~~:::++++======+=+++:::+++++++=========+++::::::+++++++========+++:~~+=======+++++=******============================*xYV$#888888888888888888888888###################################################$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$#########################################################8###8#888888#88888888888888888888888888888888888888888888888888888#88#8888888888888888##8#######$$$$VVYYxxx**================++++::::~~::+==::::~~~~~~~~---~~~~~~~~~~~~~~~:::::::::::+++++++===*=====+++++++++++++++++++==*xxYYYVVVVVVVVVVVVV$$$$$#####88888%%%%%%%%%%%%%%%%8%888888888888888#####88888%%%%%%%%%%888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx***************************================================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888########################################8888#88#888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@%@@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ##########################################################################8##88#8#8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#Vxx**********===============================================************************************==============================****xxYYYYYYYYxxxxxxx********=================================***xxxxxxxxx*****=================+++::::::::::::~~~~~~~~~~~-~---------------------------------------------------------------~~~~~~~~~~::::+:++++++++++++:~-~:::::++++++++::::::::++===*******=:--====+++++++++++++::::::~~~:::++=====******===+++++:::++++++====++++::::::++++++=*******=++~-..~+====++:::::=*****=================================**xV$#8888888888888888888888#8####################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########################################################8###8#888888888888888888888888888888#########$$$$$######8#######8###############$$$$$VVVVYYYxxxxxx*****===========================++++:::~~:+==+:::~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::++++++++++==**======+++++++++++++++++++++++====***********xxYV$#88%%%%%%%%%%%%%%%%%8888888888888888####88888%%%%%%%%%%888888888888888888888888888888888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*************************===============================****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################8888#8#8888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ##############$##################################################8#8#8#888#88##8#8#8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxx**********===========================================**************************************===========================*****xxYYYYYYYYxxxxxxx*********=================================***xxxxxxxxx*****=================++++::::::::::::~~~~~~~~-~~--~---------------------------------------------------------------~~~~~~~~~~:::::++++++++++++~--~:::::::~:+++::::::::++==:=********=::===+++++++++++++++++:::::::++===************===+++::::::+++++++++:::::::++++++=********=+:~---~++==+:::~~-~+=****=====================================**xYV$#88888888888888888888888#######################################################$$$$$$$$$$$$$$$$$$$$$$$$################################################################888#8#8888888888888888#####$$VVYYxxx****============*VVVVVVVVVVVVYYYYYYxx*******====++++::::++++======*=*********=====================++++::~~:+=+:::~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++++===**======+++++++++++=++++++++++++++===*******====+==*xV#8%%%%%%%%%%8888888888888888#888888%%%%%%%%%888888##888#88888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*************************=============================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888#######################################88#888#8#888888888888888888888888888888888888888888888888888888#################################88888888888888888888888888%%%%%%%@%@@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% #############################################################888#8#888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$xx**********========================================***************=========***************==============================*xYYYYYYYYYxxxxxxx********==================================***xxxxxxxxx*******================+++++::::::::::::~~~~~~~~~--------------------------------------------------------------------~~~~~~~~~~~:::::::+++++++++~.-~~~:::~. .~::::::::::++=++=*******+-.-:=++++++++++++++++++++::+++====***************===++::::::::::::::::::::++++++++=********=+:~~~:++++++:::~~:==***===========================================**xYV$##888888888888888888888##########################################################$$$$$$$$$$$######################################################################8#888888888888###$VYYx**==+++:::::::::::::::::::++++xYYYYYx*xxxxx**======+++:+++++++:::::::::++++=******************====================++++:+++==::::~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++++====**======+++++++=======+++++++++++============++++++++=V8888888888888888888888888%%%%%%%%%%8888888#8#88##8#8888888888888888888888888888888888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx***************************==========================****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888########################################8888##8#8888888888888888888888888888888888888888888888888888888#################################88888888888888888888888888%%%%%%%%%@%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% ##########$##########################################88###88888888888888888888888888888888888888888888888888888888888888888888888#####8##8888888888888888888888888888888888888888888888888888888888888888888888#Vxx*********=====================================**************=============*=************===========================**xYYYYYYYxxxxxxxxxx********=================================***xxxxxxxxxxx******=================+++++::::::::::::~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~~:::::::::+++++++~.~~~~~~~. .::::::::::++==********=+~--:+++++++++++++++++++++++====********************===++::::::::::::::::++++++++++:+********=++:::++++:::::::+====*===============================================***xxYV$##8888888888888888888#8################################################################################################################################8#8######$$$VVYYxx**==++::::::::::::::::::::::::::++++++*YYYx*===*xxxx***=====+++:+++++++:::::::::::++=******************======================+++++++=+:::~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++++====**========++++==========++++++++==========++::::::+++++x#8888888888#88888%%%%%%%%%%%8888888####88#88#88#8#88888888888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx**************************========================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################8#8#8#8#888888888888888888888888888888888888888888888888888888###################################888888888888888888888888%%%%%%%@%@@@%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ##################################################8#88#888#8#8#8888888888888888888888888888888888888888888888888888888#88#8#8#8###################88##88888888888888888888888888888888888888888888888888888888888$VYYx********================================*****************===============**************======================**xYYYYYYYxxxxxxxxxxx*********===============================****xxxxxxxxxxxx*******================++++++:::::::::::~~~~~~~~~~--~------------------------------------------------------------------~~~~~~~~~~:::::::::++++++:~.~~~~~~~-. -::::::::::++=+==****=====++++++++++++++++++++=======***xx******************=====++::::~~~::::::+++++++++++:~:+==***==+++++++++::::::+:+++===============================================****==*****xYYV$##888888888888888#88#####################################################################################################################88#####$$VVYx*==+++++::::::::::::::::::::::::::::::::::+++++++++*x*=====**xxxxx**====+++::::++++++::::::::::::+=****************======+================+++++++==+::::~~~~~~~~~~:::::::::::::::+:++++++++++++++++====***=======++++=========***=+++++=========+:~~~~~~~:+++++*#888888888%%%%%%%%%%8888888###############8##8#88888888888888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx***************************======================****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888#########################################8##88#88888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@%%%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ############################################8#8###8#888##888888888888888888888888888888888888888888888888888##################################################888888888888888888888888888888888888888888888888888888##$$VYx****============================*******************==================*************==================**xYYYYYYxxxxxxxxxxxxx***********=============================****xxxxxxxxxxxxx********=================+++++:::::::::::~~~~~~~~~~~~--------------------------------------------------------------------~~~~~~~~~~::::::::::++++:~.-~~~~~~~~ ~:::::::::::+++===*========++++++++++++++++++=====***xxxx******************=======++:::::::::::+++++++====++++++++++++++++++++++++:::+:::++++============================================*****************xxYVV$##88888888888888#8###############################################################################################8###############$$VYxx**==++:::~~::::::::::::::::::::::::::::::::::::+::+++++++++++++===*xxxxxxx***===++:::::+++++++::::::~~::::+=*************========+===++++=========++++++++==::::~~~~:~:~:::::::::::::::::+++++++++++++++++=====***=======+++++=====*xV$$$$Vx=+++========++~~~~~~~::++++=x88%%%%%%%%%%8888888#8###8##########8#####8#8#8888888888888888888888888888888888888888888888888888888###$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx************************====================*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888#######################################8#88888888888888888888888888888888888888888888888888888888888888###############################8##8888888888888888888888888%%%%%%%%@@%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ########################################8##8#888#8#8#8888888888#88888888888888888888888888888888888888################################################################8888888888888888888888888888888888888888888888888888##$VYxx***====================**********x***********==================****************==***********xxYYYYYYxYxxxxxxxxxxxx**********=============================****xxxxxxxxxxxxxxxx********=================++++::::::::::::::~~~~~~~~~---------------------------------------------------------------------~~~~~~~~~~::::::::::++++:~ -~~~~~~~~.-:::::::::::::++==========++++++++++++++++++====***xxxxx*******=**********===========+:::::::::+++++++====*===++++++++++++++++++++++:::::~::::+=**========================================************************xxYYVV$$####8888888#8###8##8################################################################################8###8#8#8####$$VYx**==+++++++++:::~~~::::::::::::::::::::::::::::::::+:++++++++++++++++===***xxxxxxx***===++::::++++++++++:::::~~::::+=***********==========+++++++++++=====++++++++++++:::~~~:::::::::::::::::::+++++++++++++++++++======**=======+++:::++==*$###8888#Vx=++======+++:::~~:::+++++*8%%%%%8888888###############8#########888#8#8888888888888888888888888888888888888888888888888###$$VVVVVYVYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*x***********************==================*****xxxxxxxYxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888#########################################88#888#88888888888888888888888888888888888888888888888888888888#################################8888888888888888888888888%%%%%%%%%%@%%@%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ####################################8#888##888#888#88#8#8##888888#8888888#888888#888#88#8888#88####8##################################################################################8888888888888888888888888888888888888888888##$$$VVVYYYYxx***===********xxxxxxxx**********================***************************xxxYYYYYYxxxxxxxxxxxxxx************===========================***xxxxxxxxxxxxxxxxxxx**********==========*====++++::::::::::::::~~~~~~~~~----------------------------------------------------------------------~~~~~~~~~::::::::::::+::: .~~~~~~~:::::::::::::::::+++++==+++++++++++++++++++++===***xxxxx******==========================+:+++::++++++++=======*===++++++++++++++++++++:::::~~~~~:==*=========================================********************************xxxYYVVV$$$###################################################################################8########$$$$VVYx*=+++:++++++++++++:::~~~~::+:::::::::::::::::::::::::+:++++++++++++++++++====*****xxxxxxx***==+:::::++++++==+++++:::::::::+=********===========++++++++::::+=====+++++++++++++::::::::::::::::::::::++++++++++++++++++++=======*=======++~~~~~:==*#8888888888$*+++++++++++++::+:++++++*#88888###############################8#8##8888888888888888888888888888888888888888888888##$$VVYx*********====*xVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**********************=================*****xxxYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888#########################################88##88888888888888888888888888888888888888888888888888888888888#################################8888888888888888888888888%%%%%%%%%%@%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ###############################8####8#888888#8#8#88888#88#8##88#8#8#88#8#8#8#88###############################################################################################################8888888888888888888888888888888888888888888888888###$VYx****xxxxxxxxxxxx**********==============***********************xxxxxxYYYxxYxxxxxxxxxxxxxx************===========================**xxxxxxxxxxxxxxxxxxxxxx**********========****===++++::::::::::::::~~~~~~~~~~~------------------------------------------------------------------~-~~~~~~~~~::::::::::::::::- .~~~~:::::::++:+::::::::++++++++++++++++++++++++++====***xxx*********===========================+:++++++++++++============++++++++++++++++++::::::~~~~~~:=**======================================*********************************************xxxYYYVVVV$$$$$$$$$$############################################8###############$$VVYYxx**=========++++::::++++++++++::~~~~~~:+++:::::::::::::::::++:++++++++++++++++++==========*****xxxxxxx***==+::::+++++++=====+++++::::::::+==****========++++++++++++::::++=====+++++++:::::::++::::::::::::::+::+++++++++++++++++++=================++~~~~~~+==V#8888888888#x++++++++++++++++++++++x##################################8##8##8888888888888888888888888888888##$VVYYxxxxxxxxx***xxxYYx*==============xYVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx**x***********************=============******xxxxYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################88#88#8888888888888888888888888888888888888888888888888888888888###############################88#888888888888888888888888%%%%%%%%%%%@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% #############################8##8######8##8#88######8#8#8#88#8#8#8#8###8##################################################################################################$########$###################8888888888888888888888888888888888888888888888#$VYxxxxxxxxxxxxxx**********===========*******************xxxxxxxxxYYYYYYxxxxxxxxxxxxxxxx*************=========================**xxxxxxxxxxxxxYxxxxxxxxxx**********=======*****====++++::::::::::::::~~~~~~~~~~------------------------------------------------------------------~-~~~~~~~~~:::::::::::::::::- -~~::++++++++++++++:+:+++++++++++++++++++++++=======**xxx*******===============================+:++++++++==++=============+++:::::::::++++::::::~~~~~~~:==*======================================**********************************************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVYYxxYYYYx*==++++++++++++++++++:::::+++++++++:::~~~~~:+++++::::::::+:+:++++++++++++++++++++++=============******xxxYxx***==+::::++++++++++===++++++++:::::::+=========++++++++++++++++++++======+==+++:::~~~~:+++:::::::::::++++++++++++++++++++++===================+:~~~~:===*Y#88888888888$x=++++++++++++++++++*$################################8##8###8888888888888888888888888888#$Vx**==============++++++====++=============*xVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx***********************==*=========******xxxxYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888########################################8#8888#888888888888888888888888888888888888888888888888888888888#################################888888888888888888888888%%%%%%%%%%%%%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ###########################8##8###8########8#8###8###############8###########################################################$##$#$###############################$###$##$$####$#$#$$#$#$####################88888888888888888888888888888888888888888888#$VYxxxxxxxxxxx***********************************xxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxx**************=====================***xxxYYYYYxxxYYYYYYYYxxxxxxxxx************==**x****===+++++::::::::::::::~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~:::::::::::::::::::----~++======++++++++++++++++++++++++++==+========***x*********================================+:++++++++===++=============++::::::~~::+++::::::~~~~-~~:========================================**********************************************************************************=================++++++++++++++++++++++++=xx**==++++++++++++++++:::::::::++++++::::~~~~:+++++++++:++++++++++++++++++++++++++===================***xYVVVYxx**==++:::+++++=*=+++======+++++::~~:::::+=====+++++::::+=+++++++++++==========++::~~~~~:+=+:::::::++++++++++++++++++++++++==============*=======++++==****$888%%%%%%%%%8$Y*=+++++++++++++=x$#########################################8888888888888888888888888$Y*====**********====+::::++++++++++=============xYVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*************************=======*******xxxYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################8888##88888888888888888888888888888888888888888888888888888888888#######################8##8##8##8888888888888888888888888%%%%%%%%@%%%%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ##########################8##8#8#8#######8#######################################################################$$##$#$####$#$#$#$$$$$$$$$#$#$##$###$#######$#$#$#####$$$$$#$$$#$$#$#$#$$$$$$$#$#$################88888888888888888888888888888888888888888#$VYxxxxxxxxxx*****************************xxxxxxxxxxYYYYYYYYYYYxxxxxxxxxxxxxxxx*x*************==================***xxxYYYYYYYYYYYYYYYYYxxxxxxxxxxx*************xxxx****===++++++::::::::::::::~~~~~~~~~~-----------------------------------------------------------------~-~~~~~~~~~:::::::::~~~~:::+++++:::=*****====++++++++++++++++++++++=========****************==================================:+++++++====++++===========++::~:++:::++++::::::::~~~~:+=*======================================************************************************************************************==============+++++++++++++++++++++++++==**==++++++++++++++++::::::::::::::+::::~~~~:+++++++++++++++++++++++++++++++=+======================**xYV$$#8Vxxx**=++:::::++++xY*******====+++:::~~~::::++++++:::~~::+++++++++:::::+++========+++:~~~~:+=+:::+:++++++++++++++++++++++++==============xV#$Yx***====*****Y$%%%%%%%%88888888#$Vxx****===*xV$############################################88888##VYV#88888888888$Y*====********=====++:~~~~~~:++++++++==============*xVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx**************************************xxxYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxV8888888888888888888888888888888########################################8#888888888888888888888888888888888888888888888888888888888888888###################8##########8###88888888888888888888888%%%%%%%%%%@%@@%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ##################################8##############################################################################$#####$#$#$$#$$$$$$$$$$$$$$$$$$$$###$#####$#$#$$$#$#$$$$#$$$$$#$$$$$$$$$$$$$$$$$$$#$$##################888888888888888888888888888888888888888#VYxxxxxxxxx*************************xxxxxxxxxxxYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx************===============****xxYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*********xYYxxx****====++++++:::::::::::::~~~~~~~~~~-~-----------------------------------------------------------------~~~~~~~:::::::~~~~~~::::++++++===*******====++++++++++++++=+++++======********x************======*=========================+:++++++======+++++========+++::~::+++++++++++::::::::::=**=====================================************************************x***************************************************=============+++++++++++++++++++++++=====++++++++++:+++++:::::::::::::::::::::::++++++++++++++++++++++++++++++========================*xxYV$#8%%@@Vxxx**==++::~~:+++*Vxxxxxxx*=====++::::::::::::+::::::++++++++::::~~~~~~:::+========++:::++==+:::++++++++++++++++++++++++++===========*x$#888###$$VYYxxxYV#8%888888888888##########$$$$$$#############################################88888#$Yx*=+*V888888888$Y====*****xx***===++++:~~~~~~:+++++=++=================xYVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx************************************xxxYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxY$888888888888888888888888888888#######################################8#8#8#8#88888888888888888888888888888888888888888888888888888888888################################8888888888888888888888888%%%%%%%@%%%%@@%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%% #############################################################################################################$####$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##############88888888888888888888888888888888888#$VYYxxxxxxx*********************xxxxxxxxYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx***********===========*****xxYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx******xYYYYYxxx****====+++++++++++++++++::::~~~~~~~~~~-------------------------------------------------------------~~~~~~:::::::~~~~~~~~::::++++++++++===******=====++++++++++++====+====**********xxx***************=============================++=+++++======+++++++=====+++++:::+++::++++++++++++:+++=****================================*==*********************xxxxxxxx*xxxxxxxxxxxxxxx********************************************=================++++++++++++++++++++===+++++++++++:++++++:::::::::::~~~:::::++==++++++++++++++++++++++===========================*xxYVV#8%%@@@@@@$xxxx*==++:~--~:++=VxxYYxxxx*=====+++::::::::+++++++++++++++::::~~~~~~:::::::+==============+++++++++++++++++++++++++++++===========*Y$####8888%%%%%8888888888888888###############################################################8#8888#VY*==*xYV#8888888#Y*=************=====++++::::::+++++=======================*YVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*********************************xxxYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxV#888888888888888888888888888888#########################################8888888888888888888888888888888888888888888888888888888888888888###############8#######8###8####8888888888888888888888888%%%%%%%%%%@%@@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ################################################################################################$####$###$$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##############8888888888888888888888888888888888###$$VVYYYxxxxx**********xxxxxxxxxYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*********************xxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxYYYYYYYxxxx***====+++++++=====++++++++++::~~~~~~~~~-------------------------------------------------------~~~::::::::::~~~~~~~~:::::+++++++++++++===*******=====+++++++++=========********xxxxxx***************************==========**=*===+===+++++=======++++++++===++++:::+++:~~+++++++++++++++=*****============================**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***************************************====================++++++++++++++++====+:::+++++++:++++++::::::::::~~::::+=======+++++++++++++=============================**xxYVV$#8%@@@@@@@@%8VYxxxx*==+:~--~:++x$VVYYxxxxx======++++::++++++=++++++++++++~::~~~::::::::::::++=====++=====+++++++++++++++++++++++++++=+=========xV#8888%%%%@%%%88888888888888###################################################################88888#Vx=***xV#888888888Vx=******=+:::+=====+++++++:++++++======================*xxYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************xxxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxY$888888888888888888888888888888#########################################88#8#888888888888888888888888888888888888888888888888888888888888#######################8#####8####88888888888888888888888%%%%%%%%%%%@@%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #################################################################################$###$###$#$####$###$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##$########888888888888888888888888888888888888888#####$$$$$$$$V$$$$$###$VVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxYYYYVVYYYYYYYxxxx***====++++===++++:::::::+++++++:~~~~~~~-------------------------------------------------~~~~~:::::::~~~~~~~~~~~::::::::+++++++++++++=====******=====++++++=*xYYxx*********xxxxxxxxxx********************************=********==++==+++++++======+++++++++++++++++++++:~~:++++++++++++==******=========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************===========================+++++++======++:::++++==+++++++:::::~::::+:::+==============+===============================***xYYVVV$#8%@@@@@@@@%8$Yxx$Yxxxx**=+::::+=Y##YYxxxxxx*===+===++++:::++++==++++++++++::::::::::::::::::::+====+::++==+:++++++++++++++++++++++++++========*Y$8%%%%%%%%%88#######888#####################################################################8##888888#$Y*+**xV#88888888#Y*=****xx*+:~::+=======++++++++++================***xYYVV$$$VVVVYYVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************xxxYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxY#888888888888888888888888888888########################################8#88#88888888888888888888888888888888888888888888888888888888888888#####################8#########8888888888888888888888888%%%%%%%%%%%@@@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%% ###########################################################################$#########$$$#$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$############88888888888888888888888888888888888888888888888888888888888##$VVVYYYYYYYYYYYYYYYYYYYxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYVVVVVVVVVVYYYYYYYxxxx***==++++==++++:~~------~~:::+++++:~~~~~~---------------------------------~~::::::~~~~:::::::~~~~~~~~~~~~~~~~~::::::::::+++++++++++++=====******====+++++++xVVVVVVVx**x*xxxxxxxxxxxx*****************************************==:+==+++:::++=====+++++++++++++++++++++++:::+++++++++++==********============*************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYxxxx*************************=====================================*=++:::++++=====+++++:::::::::::+==========================================***xxYYYVVV$$#8%@@@@@@@@%8$Yx***x$8$Yxxxxx**==*Y$$$YxYYxxxxxx*==++===++++::::+++===+=++++++++~:::::::::::::::::++===+:::++++:++++++++++++++++++++++++========xV8%@@@%%88####$$######$$$$$$$##############################################################8####888888888#$YYxY$888888888$x*******xx*==+==*===========+=======*********xxYYYYVVV$$$VVVVYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxV888888888888888888888888888888#########################################8#8#8#888888888888888888888888888888888888888888888888888888888888###################8###8##8##88##888888888888888888888888%%%%%%%%%%@@%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% ################################################################$#####$##$$#$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########88888888888888888888888888888888888888888888888888888888888##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYVVVVVVVVVVVVVVVVYYYYYYYxxxx***=::++++++::~~-.......---~~::::++::~~~~~~---------------------------~~:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++++=====***=++++++++++++:xVVVVVVVx**xxxxxxxxxxxxx*****************************************==:++=++:~~~~:+=======+++++++++++++++++++++++++++++++++++=**********=====******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVYYYYxxx*****************=====================================**=+::::+++===++++++++:::::::::+======================================***xxYYYYVVVV$#8%@@@@@@@@@8$Vx*****x*x$@@%8#$VVVVV$888V#YYYYYYYYxxx*==+++==++++::+++++++++++++++++::::::::::::::::++++==+::~::++++++++++++++++++++++++++++=====*Y$8@@@%8#########Y*xYVY*xYV$$$$$$$$$$$#########################################################8###88888888888###88888888#$Y*******x*xx******************xYYVVVVVVVVx*=+=xVVVVVVVVV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxY#888888888888888888888888888888########################################88#8888888888888888888888888888888888888888888888888888888888888888####################8#8###88####8888888888888888888888888%%%%%%%%%%@@@%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #####################################################$########$#$###$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########888888888888888888888888888888888888888888888888888888888888##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYVV$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$#$VVVVVVVVVVVVVVVVVVVVVYYYYYxxxxx**=::+++++::::~-.... .....---~~~:::::::~~~~~----------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::~~~:::::::::+++++++++++======**+~~~~:+++++++:+*YVVVYx**xx*xxxxxxxxxxx*****************************************=+~++=++~---~+=========++++++++++++++++++++++++++++++++++=*******************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVYYYxxxx***********=================================***=+:::::++==::+++=++++:::::+=================================*****xxxYYYVVVVVV$#8%%@@@@@@@@%#Y+-.-:=******x8@@@@@@%%%@@%88###YYYYYYYYxxxx*=+:++==++++++++++++++::::+++++:::::::::::::::+++===+:~~~:++++++++++++++++++=====++++====xV#8%@@@@8#####$##$#$VVVYY*++=*YYVV$$$$$$$$$$$$#################################################8##88888888888888888888#$VYxx********xxxxx**xxxxxYYYYYYVV$$$$VVVVVVVVVY===+*YVVVVVVVVVVVVVVVVVVVV$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx************************xxxYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYxYV8888888888888888888888888888888########################################8#8##88888888888888888888888888888888888888888888888888888888888888############################88##888888888888888888888888%%%%%%%%%%%%%@@%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #######################################################$###$#$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########8#8888888888888888888888888888888888888888888888888888888888##$$$VVVYYYYYYYYYYYYYYYVVVVVVV$$$$#########$VVVYYYYYYYYYYYYYYYYYYYV$#88%%%%8#$VVVVVVVVVVVVVVVVVVYYYYYxxxxx**+~:++++:::::~~-.........----~~~~::::::::~~~~~~----~~~~~~~::~~~~~~~~~~~~~~--..-~~~~~~~~~~~~~~~~~::::::::::::~-~::::::::~++++++++++++======**+~~::+++++==++::+=====********xxxxx*xx****************************************=+~:+==+:~--~+===========+++++++++++++++++++++++++++++++++=**************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxx*****===============================****=+:::::++++::++==+++:::+:+****=====================*****xxxxxYYYYYYYYVVV$$#8%%@@@@@@@@%#Y=~. .:=********x%@@@@@@@@@@@%888%8######$$VVYYY*==+++==+=++++++++::::::::::+++::::::::::::+++++==++::~::+++==+++++++++++===++++++++=*Y$#8888%@@@%#####$##$###$$$$VYx**===**xYV$$$$$$$$$$$$$$$###########################################8#888888888888888#$VYx**====******xxxxxxYYYYYVVV$$$##88888888#####$$$VYYYYV$$$$$$$$$$$$$$$$$$$$$#$#$##$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************xxxxYYYYYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYY$888888888888888888888888888888##########################################8#88888888888888888888888888888888888888888888888888888888888888888##########8###############8##88888888888888888888888888%%%%%%%%%%%%%@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%% ######################################$###$##$########$##$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVV$VV$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################888888888888888888888888888888888888888888888888888888888####$##################88#8#8888888888######$$##########8888%%%%%%%%%%8#$$VVVVVVVVVVVVVVVYYYYYxxxx**=:::++++::::::~~--.......----~~~~~:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~-. .-~~~~~~~~~~~~~~~~::::::::::::::~-~:::::::~:++++++++++++======**=+===++=========++++====*******xxxxxx*********************************xxxYYYYYx:-++==++:~:+===========+++++++++++++++++++:++++++++++++++=************************************************xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxx******=====================******+:::::++++::++++++~~:+++=**=============*****xxxxYYYYYYYYYYYYYYYVV$$#8%%@@@@@@@@@%8$x:. .~=**********x%@@@@@@@@@@@@@@@@@@@@@@@@@@%8#VY*==++======++++++::::::~:::::+++:::::::::+++++===+++:::++++===++++++++++++++::::::+*V8888888888%%%%%88#####$$$$$$$$$$$VVVVYYYYYYYVV$$$$$$$$$$$$$$$################################8#####8888888888888#$VYx**=++:::=*****xxYYYVVV$$$#####888888888888888888888888#######88888##########$########$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*x******************xxxxxYYYYYYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYV#888888888888888888888888888888########################################888#8#88888888888888888888888888888888888888888888888888888888888888######################8#8##8#8##888888888888888888888888%%%%%%%%%%%%@@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%% ##########################$###$#$##$#$$##$##$###$$$$##$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVV$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%888$$VVVVVVVVVVVVVVYYYYxxxx**+~::+++:::::::::~~--------~~~~~~~~~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. .-~~~~~~~~~~~~~:::::::::::::::::::::~~::::::+++++++++++++++=====*******xxYYYYYYx**===========********x*****************************xYYV$$$$$$VYYx:~+=====++==**===+=+++++++++++++++++++++++:++++++++++++::+*xxxxx*****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxxxx****************xx=+::::+++++:++++++::++++***********xxxxxxYYYYVVVVVYVVYYYYYYYVV$#8%%@@@@@@@@@%8#$Y+- .-~+==**********x#@@@@@@@@@@@@@@@@@@@@@@@@@@%8#Yx**============++++++::::::::::::+++::::++++++=====+++++++++===+++++++++++++++::~~~~~+x$#8888888888888%%%%%%8###$$$$$$$$$$$$$$$$$$VVVV$$$$$$$$$$$$VVV$$$$$$##############################888888888888$VYx*****====**xxxxYYYVV$$$$#888888888888888888888888888#$Vx*****x*x$888#######$$#$$##$##$####$$VVVVVVVVVVVVVVVVVVVVVVYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*****************xxxxxxYYYYVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYY$888888888888888888888888888888#########################################88#88888888888888888888888888888888888888888888888888888888888888888########################8##8#8#8888888888888888888888888%%%%%%%%%%%@%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% ###########################$#$$#$$#$$#$$$$$#$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$V$VVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$V$$$$$$$$$$$$$$$$$$$$$$$$#####################8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%8%%%%%%%%%%%%%%%%%%%88$VVVVVVVVVVVVYYYYYxxxx**+-::++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++::::::::::+++======**xYYVVVVVVVVVVVVYxx*=====+====*****xx**************************xYV$###$#####$$$V=~:+=********====++++++++++++++++++++++++++++++++++:::::::*YYYYxxxxxxxxxxxxxx***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYx++::+++++++++++++++++=xxxxYYxYYYYxYYYYYVVVVVVVVVVVVVVV$$#8%%@@@@@@@@@@@%8$Vx*==+---~:+==============*V%@@@@@@@@@@@@@@@@@@@@@@@@%8$VYxx****==============+++++++:::::::::++++:++++++=======+++++++++++++++::::+++++++:~~----~+=V8888888888888888888%%%8888##$$$$$$$$$$$$$$$$$$$$$$$VVYx**==**xYV$$$$$$$$####################888888888888#$Yxx*******xxxxYYYVVVV$$$$###88888888888888888888###88888#Y*********xY$88#####$$##$#######$##$#####$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*************xxxxxxYYYYYVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYV#888888888888888888888888888888#########################################88##8888888888888888888888888888888888888888888888888888888888888888##########################88#8#8888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% #########################$#$#$$$#$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#$##$###############88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%8888888#$VVVVVVVVVVYYYYYxxx***:-~:+++++::::::::::::~::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::+::+++::::::::::~~:+++======xVVVVVVVVVVVVVVVVVVVYx==++:++==****xx************************xYV$$$VYYV$$$$$$$##$Y-~+==*******======++++++++++++++++++::::::++++++++::~~~:++xYYYYYYYxxxxxYYxxxxxxxxxxxxxxxxxxxxxxx*x**x*xxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYVVY=+::++++++++++++++++=xYYYYYYYYYYYYYVVVVVVVV$$$###88%%%@@@@@@@@@@@%8#$Vx*===========================Y8@@@@@@@@@@@@@@@@@@@@@@@%8$VYYxxxx****================+++++++++++::+++++++++++========++:::::::++=+++:::::+++++++:~~---~+==#88888888888888888888888888888###$$$$$$$$$$$$$$$Vx*==++++=*xYYYYYxxYYV$$$$$$$$$###########8#8888888##$VYx**xxxYYYYYYVVV$$##888888888888888888$xV888888#$x*==*xxxYx*=*xYV$$$$##888#####$$$$#######$##$#########$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**********xxxxxxxYYYYYYVVVVVVVVVVVVVYVYYYYYYYYYYYYYYY$888888888888888888888888888888############################################8##888888888888888888888888888888888888888888888888888888888888888##################8######8##88#888888888888888888888888%%%%%%%%%%%%@@%@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% ###########$#$######$#$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################88#8888#888#888#88888888888888888888888888888888888888888888888888888888888888888#888888888888888888888888888#$VVVVVVVVYYYYYxxxx***=-~:+++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~--~:++======*YVVVVVVVVVVVVVVVVVVVVVY=:~~:+=*****xx**********************xY$$VYV$$VV$$$$$$####$Y=~~++=********====+++++++++++++++++:~~~~:::++++++:::~~~::+=xYYxxxxxxxxxxxxxYYYYYYYYYxYYxYxYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVY=+:::::::++++++++++*YYYYYYYYYYYYYVVVVV$$8%%%%@@@@@@@@@@@@@%%8#$VY**===+++++++++++++++++++++++++++*$%@@@@@@@@@@@@@@@@@@%%%%%%8VYYYYxxxx****===========++++++========++++++++++=+====++++==+:::+++++++====+:~~::++++++++::~~~:+=+V88888888888#8##88888888888888888#####$$$$$$$$$$VYYxx**xxYxx*===+++=*xVVVVV$$$$$$$$$#######888888#$$VVVVVVVVVVVV$$$$##88888888888888888888888###8888#Vx*=====****xxY$#888888888#######$$#$###$#################$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*xx***xxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYV#888888888888888888888888888888#############################################88888888888888888888888888888888888888888888888888888888888888888#########################8#8#88888888888888888888888888%%%%%%%%%%%%@@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% ###$##$####$$#$##$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################8###888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888$VVVVVVVYYYYYxxx****=:~::+++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~-.-~:++=======*YVVVVVVVVVVVVVVVVVVVVVY+~--~+=****xx*********************xY$#$Y*xV$$$$$$$$####8####x::++====**=====++++++++++++++++++:~--~~:::++++::::~~~::++=*x*********xxxxxxYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVYYVYVYVVVVYVYVVVYVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVYVY=+::::::::++++++=*YVYYYYYYYYYYVVVVV#8%%@@@@@@@@@@@@%%8#$VYx**====++++++++++++++++++++++++++++++=Y8@@@@@@@@@@@@@@@@@%%8888%888#YYYYxxx*****================+++++=======++++++=====++++++++::++++++++++++===+:++++====++++:+++++:x8888888888888###8####8888888##############$$$$$$$$$$$$$VVYYxx**xxYYYxx**=*xV$$$$$$$$V$$$$##8888###################8888888888888#YYY$888888888888888#$VYYYVVVV$$##888888888888######$$#$$$##$$###################$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYY$8888888888888888888888888888888########################################8#8#8#8888888888888888888888888888888888888888888888888888888888888888#########8######8####8#8#88#88888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% $##$$#$#$#$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$###################888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VVVVVYYYYYxxxx*****=+::++++++++++++++:::::::::::~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::~~~~~-..-~:++++======*xVVVVVVVVVVVVVYVYYYYYY*:---:==****xx**********xxxx*****xYV$$VxxYVV$$$$$####888%%%%%8V+:++++=====+++++++++++++++++++++:-..~~::+++++::::~~~~:++++***========*****xYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVYVYYYVYYVYVYYYYYVVVVVVVVVVVVYYVVYVVVVVVVVVVVVVVVVVVVVVVVVY=+:::::::+++++=YYVVVYYYYYYYYYYV$#8%@@@@@@@@%88#$$VYxx*=========+++++++++++++++++:::::::::::::+x#%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%$$VVYxx******==================+++++=============+:::++++++++++++++++++++++=*xx*========++++++:+:=#888888888888###################################$$$$$$$$$$$$$$$$$VVVVVVVVYV$$$$$$VYYYVVV$$#########8888888888888888888888888888$xYV#888888888888888888888888888888888888888#####$$$####$$#########################$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYV#888888888888888888888888888888############################################8#88888888888888888888888888888888888888888888888888888888888888888######################8#8888##8888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%% $$$#$#$#$#$$$$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#################8##88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$VVYYYYYYxxxx****==+++++++++++++++++++++:::::::::::::::::::+++:++++++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::~:~~:~~~~-..-~:++++=======*xVVVVVVVVVVVVVVYYYYYYx=+~~:+==***xx************xxxxxYYV$$$$VYYVV$$$##88%%%%@@@@@@@@%8$=:++++++++::::::::::::::::::+++:~~~~:::+++++::::~~~~::+++=$$VVYYxx***===***xxYYVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVY++:::::::+++++xVVVVYYYYYYYYV$#8%@@@@@@@%8#Vxx***===========+++++++++++::::::::::::::::::::::*$%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8##$VYxx*****========================++=========+:~~~:+++++++++++++++++++=xV#8#$Yx***========++:::Y888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VYxYYYYV$#####$$$$#####8888888888888888888888888888888888888888888888888888888888888888888####$#$#$$#$#$$#####$####################$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYY$8888888888#88888888888888888888#############################################888888888888888888888888888888888888888888888888888888888888888888##########8#########8##8#8#8#8888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%% $$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VYYYYYxxxxx**+::+++++++++++++++++++++++++++:::::::++++:::::::++++=+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::~~~~~~~-..-~:++++++=======*xVVVVVVVVVVVVVYYYYYYx==+++====***xx***********xYYYYVV$##$$$VVV$##88%%%%%@@@@@@@@@@@%8%V::+++++::~~::::::::::::::::::::::~::::+++++:::~~~~~::+++=8@@@@%%%%888###$$$$$$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV*+::::::::+++++xYYYYYYYYYV$#%%@@@@@@@%#VYx********========+++++++++::::::::::::::::::::::::=$%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%$x$YYYYxx*********=======================+=====++++:~~~:+==+++++++++++++=*V$8888888##$VYx*=======+:~+V88888888888##############################################$$$$$$$$$$$$$$$$$$$$$VYYYYxY$#####################888888888888888888888888888888888888888888888888888888888888#####$$##$$###$###$#########################$VVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYV#888888888#88888888888888888888############################################8#888888888888888888888888888888888888888888888888888888888888888888##8##################8##8#88#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYxYYYxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#############888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VYYYYxxxx*=:~~:++==++++++++++++++++++++++++++++++::::::::~~~~~~::+++++=+++++++++~~~~~::+++++++++++++:::::::::::::::::::::::::::~...--~~:+++++++=======**xVVVVVVVVVVVVVVYYYYYY*==+====***xx*********xxYxxxYVV$#$$$$$$V$#8##888888888###8%@@@%8%8*::++++::::::::::::::::::::::::::::::++++++:::~~~~~~:+++=#@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888####$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVVVVVVVVVVVVY=:::::::::+++++=YYYYYYVV$%@@@@@@@@%#VYx********===========**xxxxxxxx***====++::~~~~~~~~~:=V%@@@@@@@@@@@@@@@@%%%8##88#$$#88##8V=YYYYxxx*********=========================+++++++++:::+====+++++++++=*Y$#88888888888888#$x+=***==:::=V888888##8####$$$$##########################$#$$$$$$$$$########$$$$$$$$$$$$$$$$$VVV$$##################$#########88888888888888888888888888888888888888888888888888888####$$##$#####################################8#$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYY$888888888#888888888888888888888#############################################8888888888888888888888888888888888888888888888888888888888888888888######################88#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$YYxxxxx=~-~:+++++++++++++++++++++++++++++++++::::::::::::~~~~~~~~::++++++::+++~~~~~~~:+++++++++:::::::::::::::::::::::::::::~--~~::++++++++++=======***VVVVVVVVVVVVVVYYYYYx*=======***xx********xYxxYV$$$$$$$$$$$$$$$##88888###$$##8%@@@@%%@%V::++++:::::::::++++====+++:::::::::++++++++::~~~~~~:+++=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%888###$$$$$$$$$$$$$$$$$$$VVVVVYYYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVYVVVVVVVVVx+::~::::::++++++YVVV$$8%@@@@@@%8$Vxx*********=======*xxYV$$$$$$$$$$$$$$$$$$VVVYx*+:~~~:=V%@@@@@@@@@@@@@@@%8####VVV##VVV###$#8V=xYYYxxx**********=*=======================++++++++===*=====+++++==xV#8888888888888888888#Y+****=+:::=$%%88888#####Y*=*****xYYV$###############$#$#$$$$$$$$VVVV$$$###88####$$$$$$$$$$$$$###########$########################8888888888888888888888888888888888888888888888#####$###$#####$##$$#####################888%%%88$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYV#888888888888888888888888888888#############################################88888888888888888888888888888888888888888888888888888888888888888888###################8##8###8#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#Yxxxx=~-~:++++++++++++++:::::::++:::::++++++:::::::::::::::~~~~~~~~~::+++~+++:~~~~~~:+++++++:~:::::::::::::::::::::::::::::::::+++++++++++++========**VVVVVVVVVVVVVVYYYYx*=+::====**xxx******xYYxxV$$$$$$$$$$$$$$$$$#88888##$$####%@@@@@@@%8Y:++++::::::+++=**xxxYxxx*=++:::::++++++++:::~~~---~::++=8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%888##$$$$$$$$$$$$$$$$V$$$######$$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*+::::::::+++++++x###8%@@@@@%#VYx************===**xYV$####$$#$$$$$$$$$$$$$$$$$$$$$$VYxx$%@@@@@@@@@@@@@@@@@%%%%%%8##88$VV$#$$#8V*VYYYxxxx************=======================:::::++==**===+=+++=xV$88888888888888888888888#=****=:~~:+x#%%%%%88888##Vx****=+++++=*xV$########$#$$$$$$$$$$VVVVVVVVVVVVV$$###88####$$$$$$$######$####################################8888888888888888888888888888888888888###$$$$$#$#$#####$##$#################88%%%%%8#$VYYYYYVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYY$888888888#888888888888888888888############################################8#8888888888888888888888888888888888888888888888888888888888888888888####################8#8#888#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################8#8#88888888888888888888888888888888888888888888888888888888888888888888#Vxx*:-~::++++++++++:::~~~~~~~~::::+++++++++++::::::::::::::::~~~~~~~~~::+++++::~~~:+=++++:~:::::::::::::::::::::::::::::::::::::+::+++++++=========**YVVVVVVVVVVVVYVYYY*==+::====*xxx******xxYVYVVVVVVV$$$$$$$$$$$$##888#$$##$$$8%%%%888$Y*+:++++:::++=*YYYVVVVVVVVVYx*=+:+++++++++++::~~~--.-~::++*#8#888888888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88#$$VYYYYYYV$###8888888####$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=+::::::::+++++::=8%%@@@@%8$Yx************===*xY$$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@@@@%888#V$88$VV$#V$$88VVYYxxxxx*************======================:::::++=======+==*Y$#8888888#888888888888888888Y***=:~~~:+*$8%%%%%%%88%888###$Y=++:~~~:+*$#######$$$$$$$$$$$$VVVVVVVVVYYYYYYYYVV$$##8888####$##$##########################$#######$##########888888888888888888888888888888####$$$##$$###$####################88%%%%8#$VVYYYYYYYYYYYVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYV#88888888##88888888888888888888#############################################888888888888888888888888888888888888888888888888888888888888888888888######################8#88888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###################$##############################88888888888888888888888888888888888888888888888888888888Vx*~-::+++++++::::::~~~--~~~~::+++=====++++++++::::::::::::::::::~~~~~~:++++++++++++++++::::::::++:+:::::::::::::::::::::::::::++++++++++=========**YVVVVVVVVVVVVVYYYx=++=+:====*xx******xxYVVVVVVY**Y$$$$$$$$$$$$$$$#$$$$$$$##88#####Vx+++++++++++*Y$888#########$$Vx=++++++++===++::~~~-..-~::++Y#####$$#$$###$#####888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8##$$$########88#YxxY##VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+:::::++++++++:::+%@@@@8$Vx*x***********==*xV$##########$$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@%%88#$$###$#88$VV$#Y$$#88VYYYxxxx**************=====================::::::========*xV#888888#8#88#8#888888888888888V***=+:~::=x$88888%%%%%%%%%%%888$x+::~::+=$##########$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYVV$##88888###$#$$#################################$############88888888888888888888888#######$##$######$##$##########88%%%88#$VVYYYYYYYYYYYYYYYxxYVVVVVVVVVVVVVVVVVVVYYYYYVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$V$$$$VVVVVVVVVVVVVVVVVVVVYV88888888##888888888888888888888#############################################888888888888888888888888888888888888888888888888888888888888888888888####################8##88#888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888%8%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#######$$#$$$#$#$#$#$#$$##$$#$$$#$$$#$$$$#$#$$############8888888888888888888888888888888888888888888888$x:-:::+++:::::::::~~~-~~~::++++=======+++++++++::::::::::::::::::::::::+++++++++++++++++::::+++++++::::::::::::::::::::::::++++++++++++=========**xVVVVVVVVVVVVYYYYx====~ ~+==xxxx***xxYYVVVVVV$VYY$$$$$$$$$$$$$$$$$$$$$##888888#$Y*++++++++++=*V#888888888#8#####Vx=+++++++======++::~-.-~~:++*$######$#$#########$###$######8888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%88888#Y***V##$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=+:++++++++++:::~~+8@@%Vxxxx***********=*xY$###########$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@%%%8888##$$$$$8#$#88$VV$$Y$$#8$VYYYxxxxx**************====================::~~::+=====xV#88888##8#8##8##8####88888888888#x****=+++=x$#8888888888888%%%%%%%#*++:++=Y######$$#$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYVV$$##8888#######################$###########$$$$$##$$##########888888888888888#####$$##$#$$##$###########88%%%88#$VVYYYYYYYYYYYYYYYYYYYxxxYYVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$$$$$$$VVVVVVVVVVVVVVVVVVYV#8888888###88888888888888888888#############################################8888888888888888888888888888888888888888888888888888888888888888888888####################8#8888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888%8%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$##$$$$$$$$$$$$$$$$$$$$$$###############88888888888888888888888888888888888$=-~::+::::::::::::~~~::+++++==**=======++++++++++::::::::::::::::::::::++++++++++++++++++++++++++::::::::::::::::::::::::::++++++++++==========**xVVVVVVVVVVVYYYYYx*===:.-+==xxxxxxYYVVVVVV$$$$$###$$$$$$$$$$$$$$$$$$$#8888#$Y*=:::++++++++++*$888###############$x=+++++++=======+++::~~::++=$#########################################8888%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8#VVV#8$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx++:++++++=++::~~~~+%@@#xx************==xV############$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@%8######8###$$$$$8#$#88$VV$#x$$$VVVYYYxxxxxx**************===================:::~:::+=*Y$#88888##8#8#8#8#88##8#8####8#8###Vx*=====**Y$##888#88888888888888888%#Y*==*x8888####$$$$$$$$$$$$$$VVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYVV$$#88888###$#$#################$$$$VYx****xxYYYV$$$###########88888888###$##$##$######$#$$###88%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$VVVVVVVVVVVVVVVVVV$88888888##888888888888888888888##############################################888888888888888888888888888888888888888888888888888888888888888888888################8###88#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8888888%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$#$$#$#$$$$$#$$$$$##$$###############8##8#########8888888888888$+-~:::::::+::++++++++++++===****=======+++++++++++::::::::::::::::::::+=+==+++++++++++++++++++:::::::::::::::::::::::::::+++++++++++=======******VVVVVVVVVVVYYYYYYx*==++++=*YYV$$$$$$$$$$$$$$$####$$$$$$$$$$$$$$$$$$#88#$Y*+::+++++++++++++=V88############8#8##$*+++++++++========++++::++=V####################################$####$##########88%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#$$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*++++++++=++:~~~~~~*%@%Yx***********==*Y###########$$$$$$$$$$$$$####$$$$$$#8%@@@@@@@@@@@@@@@@@%###$########$$VVV$##V#8#$VV$#xV$VVVYYYYxxxxxx**************===================+:::::+=Y#8888#8#8####88##8#####8#########VYx*==++===x$################888888888888#$$#8%%%%%%%888###$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxYYYVV$##8888############$###$##VxxYYVVxxxY$$Vx===*xYV$$##############$$$$#$$$$$$$$$$$##88%%%%8#$VYYYxYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYYVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYYYYYYYYYYVVVVVVV$$$$$$$$$$$VVVVVVVVVVVVVVVVV#8888888###88888888888888888888##############################################8888888888888888888888888888888888888888888888888888888888888888888888####################8#888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVYVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$##$$$$#$$$$$$$##$$$$$#$#$$#$#$#######################8888888888888$=~~::+:+++++++++++++++===*********======+++++++++++:::::::::::::::::::+===+++++++++++++++++:::::::::::::::::::::::::::++++++++++++========******YVVVVVVVVVVYYYYYYYxx*****YV$$##$$V$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$##V=+::+++++++++++++++=*#8######$#######8###$=+:::++++++=======+++++++=V#8#######################################$###$$$#$#$$#$$###88%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYY=::+++++=++::~~~~~:#@%V***********==*Y$#########$$$$$$$$$$#88%%%@@@@%%%88%@@@@@@@@@@@@@@@@@%%8###$#########$VVVV$#$V$##$VV$#YVVVVVYYYYYxxxxxx**************==================+::::+=*Y$###88###########8#8###########Vx**==++++==*$#########################8888888888%%%%%%%%%%%888###$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxYYYVV$##8888############$x+=*#8888888#$Y=++++++==*xYV$$$###$$$VVV$$$$$$$$$$#88%%%%8#$VYYYxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$VVVVVVVVVVVVYVVVVYVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYVVVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVV$8888888#8#888888888888888888888##############################################8888#88888888888888888888888888888888888888888888888888888888888888888####################8888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%88%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVVYYYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYxxxxxxYYYYYxxxxYxxYYYYYxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$#$$$$#$$###$$###########################888888888888#Y=:~:::+++++++++=====*************======+++++++++++++:+::::::::::::::+===+++++++++++++++::::::::::::::::::::::::::++++++++++++++=======********YVVVVVVVVVYYYYYYYYYYVVVV$$$##$VYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx+::++++++++++++++++++Y8#######$#########8#V++::+++=====+++++++++++++Y88######################################$#$#$#$$$$#$$#$#$#$$$#####88%%@@@@@@@@@@@@@@@@@@@@@@@%##8#$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYYYYYYYYYYYYYYYY=::::++++++:~~----x%@#x*********===*V########$$$$$$$$$##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888##$##$#####8$$VVVV$#VV$##$V$##VVYVVVYYYYYYxxxxxx**************=================++++++=*xV##88#8##############8########Y***===+++==*V###############################8888888888%%%%%%%%%%%%888##$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYVV$##8888####$#$x*=xV$####Vx*=++++++++++++++==*Y$$$$VVVVVVV$$#8%%%%88#$VYYYxxxxxxxxYYYYYYYYYVVVVVVVVVVVVVVV$VVVVV$$$$######$$VVVVVVVVVYVVVVVVYVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$$VVVVVVVVVVVVVV#8888888##888888888888888888888##############################################8#888888888888888888888888888888888888888888888888888888888888888888888###################8#888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxxxxxYYYYYYYYYYYYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$#$$$$##$$$$$$#$$##$$#####################8888888888888$x=+++++++++===******************=*======++++++++++++++:+:+++::+:::+====+:++++++++++++::+:+:++++:+++++++++++++++++++++++++++++========********YVVVVVVVVYYYYVVVVVVVV$$$#$$$VYYVVVVVV$$VV$$$$$$$$$$$$$$$$$$$$$$$$#V*++++++++++++++++++++++V###################$=+::++=*****==+++++++++++x#888##################################$#$$$$$$$$$$$$$$$$#$$$$$$#$$#$$###8%%@@@@@@@@@@@@@@@@@@@%88888$YYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYYxYxYYYYYxxxxxYYYYYYYYYYYYYYYxx:~:::++++:~-----~#@@%V*******====x$#######$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888####$######8#$VVVVV#$VV$##$V$##VVYVVVVYYYYYxxxxxx**************=============xYY*=+++++==*Y$#8##88###8###8#############Y***==+++===*Y######################################888888888%%%%%%%%%%%%%88##$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxYYVV$##888####$$VVYYx*=+++++++++++++++=*xYV$$$$VV$$$##8%%%8#$$VYYYxxxxxxxxxxxxYYYVVVVVVVVVVV$VVVVVVVVV$$$$$$#############$VVVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$VVVVVVVVVVVVVV$8888888###888888888888888888888#############################################88#8##888888888888888888888888888888888888888888888888888888888888888888####################8#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888%88%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$##$$##$$$$##$###################888888888888#Vx***===**************************=======+++++++++++++++++++++++++==+++~-::++++++++++++++++++++++++++++++++++++=+==+=+==============********xVVVVVVVVVVVVVVVYYVVV$$$#$VVV$$VYYxYV$VV$$$$$V$$$$$$$$$$$$$$$$$##V=+++++::++++++:::::+++++x###################*++:+==*xYYYxx*=+++++++++=#8888##############################$#$$$$$$$$$$$$$$$$$$$$$$##$$##$#$##$#$$###8%%%@@@@@@@@@@@@%#YYV$#8#YYYYYYYYYYYYYYYYYxYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxYYYYxxx*:~~:::::~-----:Y%@@@%Y****===+++xYVV$$##$$$$$$$##8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888####$$####%#$$VVVVV#$VV$##$$$#$VVYVVVVVYYYYYxxxxxx***************=========xV##$*=+++++==*Y$####8######8##############$x**==+:~:++=*x############################################8888888888%%%%%%%%%%%888##$$$VVVVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxYYV$$##888####$$$VVYxx*==++=**xVV$####$$##88888##$VYYYxxxxxxxxxxxxxxYYYYVVVVVVVVVV$$$$$VVVV$$$$$$###################$VVVVVVVVVVYVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVVV#888888##8888888888888888888888##############################################88#8888888888888888888888888888888888888888888888888888888888888888888888#####8############8#888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$#$$##################8#88888888888#VYx******************************=========++++++++++++++++++++++==+++:~ -+++++++++++++++++++++++++++++++++==+======================*********VVVVVVVVV$$$VVVV$$$$$$$$V$$$VYxxxxYVVVV$$$$VV$$$$$$$$$VV$$$$$$#$=:+=+++::+++++::~~~::++++=V################V*+:::=*xYV$$$$VY*=+++::::+x888888############################$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$$##$$#$$$$#$#####88%@@@@@8#Yx*xxY$#VYYYYYYYYYxxxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+:~~~~~----~=$%@@@@@8Y*==:-. ..-~:*Y$$$##8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888####$$###%8$$VVVVV$#$VV$##$$$$VVVYVVVVVVYYYYYxxxxxx**************======*xV#8#V*=+++++++==xV###8#8##8#################$***==+~-~:+==*V##################################################888888888%%%%%%%%%8888##$$$$VVVVVVVVVVVYVYVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYV$$#88888888####$$$$##88888888888#$$VYYYYxxxxxxxxxxxxxxxYYYYYVVV$$$$$$$$$$$$$$$$$$$####################$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVV$888888####888888888888888888888##############################################8#888#888888888888888888888888888888888888888888888888888888888888888888###################88888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYYYYYYYxYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#$$####################8888888888888$Yx******************************==========++++++++++++++++++++=++++~ -++++++++++++++++++++++++++++++=+===========================********VVVVVVV$$$$$$$#$$$$$$VV$##VYxxxxxYVVYV$$$$$Y$$$$$$$$$YxxV$$$$$#$:++=++::::+++:~~~~~~::++++=Y$###########$Y*+::::=xYV$##888#$x=+++:::++$888888#########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######$$$#$$$$$$$$$##88%@@@@%##VYxYxxY$$YYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=:~~~~~:*V%@@@@@@@@%#Vx+- -x$#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8###8888888888##$#$###%8$$$VVVVV$#$VV$###$#$xYVYVVVVVVVYYYYYxxxxxx**************==**YV#88#$*==+++:++++=*x$##########################Y**==+--::++==*V#######################################################888888888888888888888###$$$VVVVVVVVYVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$######88%%%%%%88##$$VVYYYYYxYxxxxxxxxxxxxYYYYYYYYVVV$$$$$$$$$$$$$$$$$$#################$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$$VVVVVVVVVVV#88888####888888888888888888888##############################################8##88#88888888888888888888888888888888888888888888888888888888888888888888#####################8888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#$##$#$##############8888888888%88#VYx*******************************==========++++++++++++++++==++++:.~:++++++++++++++++++++++++++++=+=============================********VVVVVV$$$$#####$$$$VYV##$VxxxxxxYVYYYV$$$$$x$$$$$$#$$VYV$$$$$$$V::+=++::::++::~~~---~:++++++*xYV$$$VVYx*+:::::+=xYV$#888888$x=+++:::+*8888888#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###$$#$$$$$$$##88%@@@@%##$YxV$$V$$$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx**x************xxxxxxxxxxxxxxxxxxxxxxxYYVVV$#8%@@@@@@@@@@@@@%%#$Yx*=+::~~~:+V8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8######8888888888#####$#%%$$VVVVVVV$#$VV$#####V**VYVVVVVVVYYYYYYxxxxxx**************xV$######$*=+++:::+++==*x$#########################$Y*==+::+++++==*Y$$###$$##########################$$#######$##$$$#$$#$#########888888888888888888###$$$VVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxxYYYYxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVV$$$$$$$$$$$$$$$##################$$$$$VVVVVVVVVVVVVYYYYYYYVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$$$$V$VVVVVVV$888888####888888888888888888888#################################################88#8888888888888888888888888888888888888888888888888888888888888888888####################888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVYVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###$###############8888888888%%8#VYx********************************==========+++++++++++++====+++-~++===+++++++++++++++++++++=++================================********YVVVV$$$$###$$$$$VVV$##VYxxxxxxYVVYYYV$VV$Vx$##$######$#$$$$#88#=:+=++::::::::~~-...-:+==+++++++====+++::~-~::=xYV$$####88#$x=++::::+Y8888888######################$$$$$$$$$$$VVVVVVVVVVV$$$$$$$$$$$$$##########$$$$$$$$#888%%@@@8##Vxx$$$$$$$$xxxxxxxxxxxxxx*****************************************xxxxxxxxxxxxxxxxxYY$8%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8##$$$$$##888888888#####$8%%#$VVVVVVVV$#VVY$#####Y*=VYVVVVVVVVYYYYYYxxxxxxx*********xY$#########$*=+++::::::++==*V#########################$V*====++++=====*xV$$#$##############################$$#$#$$$$$$$$$$$$$$$$$###########8888888##########$$$$$VVVVVVVVYYVVYYVYYYYYYYxxxxxxxxxxxxxxxxxxxx***********xxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVV$$$$$$$$$$$$$$$#################$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYVVVVVVVVVVVVVVYVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$VVVVVV$#8888#####888888888888888888888##############################################8#8###88888888888888888888888888888888888888888888888888888888888888888888####################888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVYVYYYVYYYYYYYYYYYYYYYYYYYVVYYVYVYVYVVVYVYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$#$###$###########8888888888%%88$Yxx**********************************=========+=+++++++========+=====+++++++++++++++++++=++=+===+===========================**********YVVV$##$###$$$$VVVV$#$VxxxxxxxY$VYxYYVVYV$YY$$#$$$$#######8%%@@%$+==++::::::::~~--.-~:+===++++++++++:::~~--~:+xYV$$$$$$$##$Y*=+::~~:+$888888######################$$$$$$$$$VVVVVVVVVVVVVVVV$$$$$$$$$$$$########$$$$$$$$#888%%%%%8##$Y=*$$$####$xxxxxxxxxx*xxx**********************************************xxxxxxxxxxxxYY#888888%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%8##$#$$$$$$$$#888888888###$#8@@#$VVVVVVYYV$#VVYV#####Y==VYVVVVVVVVVYYYYYYxxxxxxxx****xY$##8######8###Y=++:::::~~~~+==*$##########################$x*============+=xV$$######################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################$######$$$$$VVVVVVVVVVVVVVYYx*****xxxxxxxxxxxxxxxx*********xxxYYYYYYV$$$$YYYYYYYYVVVVVVV$$$$$$$$$$$$$$########8########$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$VVVVV$8888#####8888888888888888888888###############################################8###888888888888888888888888888888888888888888888888888888888888888888888###################8#8888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVYYYYVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#$$#############8888888888%%%8#VYx************************************========+=+++===============++++++++++++++=+++=====================================***********YVV$$#####$VV$$$VV##$YxxxxxxxY$VYYV$VYYYV$xY$##$YYV#$###$$$$##88#x===++::::::::~~~-~:+====+++++++++:::::::~~:=YV$$$$$$$$$$Vx=+:~~-~~=8%888888####################$$$$$$$$$VVVVVVVVVVVVVVVVVVV$$$$$$$$$$#########$$$$$$$#8%%%%%%%8#$Vx=*V######$xxxxxxx*x****x**************************************************xxxxxxxxY$#8888%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8#$$$$$$$$$$$$$#888888888#####%@@#VVVVVVVVYYV$$VYYV####$x+xVYVVVVVVVVVYYYYYYYxxxxxxxxYV$##888#8####8####$*++::::~---~:++=V###########################$VYx***======++++=*xYV$################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$#$##########$$$$VVVVVVVVx*=++::++=*xYYYxxxxxxxxxx***xV##YxYYYYYYY#%@@@@#VVVVVVVVV$$$$$$$$$$$$$$#################$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$VVV$#8888#####888888888888888888888#####################################################88888888888888888888888888888888888888888888888888888888888888888888###################888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################8888888%88%%8#VYxx*************************************========+================+++++++++++++++++======================================***********xVVVVV$##$VVV$#$V##$YxxxxxxxxV$VYV$$YYxY$$YY$##VYYY$V##$VVVVVVVVVY*===++::::::::~~:::+====+++++++=*xYVYx*+:::*V$$$$$$$$$$VY*++:~---~=8%8888888###################$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$##########$#$$$$##8%%%%%%%8$Vx*=*V$#####Vxxxxxx*************************************************************xxxxYV$88888%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88#$$$VV$$$$$$$$$$$$#888888888###8%@@8VVVVVVVVVYYV$$VYYV####Y==VVYVVVVVVVVVVVYYYYYYxxYYV$##888888#88888#8#88##$x+::::~----~++=V##############################$Yx***====++++++==*xYV$#$########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$########$$$Vx=++::~~::++=xYVYYYYYxxxxxxxxYVV%8VYYYYYYV%@%%88#VVVVVVV$$$$$$$$$$$#####8#8###8#######$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYVYYVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$VVV$8888#####888888888888888888888####################################################8#88888888888888888888888888888888888888888888888888888888888888888888#######8###########888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$#############88888888%%%%88$YYx****************************************===++++++++++=======+++++++=+=+=+==+=======================================************xVVYYY$#$VVV$##$###Yxxxxxxxxx$$VYV$VYxxY$$YY$#$YYYY$$##VxxYVVVVVVYYx*=+++:::::::::::++===+++++++=Y#88888#V*++x$$$$$$$V$$VY*=+::~--~:*8%8888888##################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$##########$#$$$$#8%%%%%%%8#Y===**Y$#####$xxxxxx****************************************************************xY$#8888%@@@@@@%%%%%%88888888888%%888888888888888888888######$$V$VV$$$$$$$$$$$#888888888##8%@@@#VVVVVVVVVVYYY$$VYYV$#$x=*YVYYVVVVVVVVVVVVYYYYVV$##888888888##88##8##8######x+:::~----~+=x$################################$Yx**===++++++++==**YV$#$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########Y*=+:::~~:::++=xVVVVVVYYYYxx***xY%@8VYVYYV$%$YxxxYYYYYYYYYYYV$$###########8#########$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVYVYVYYYYYYVVYVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$#888#####8888888888888888888888#####################################################8888888888888888888888888888888888888888888888888888888888888888888888#################88#8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVYVYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############888888%8%8%88$VYYx***************************************=+:+++++++++++=========+=+================================================************xVVVV###VVVV$#$$##VYxxxxxxxxY#$VVV$YxxxY##VY##$YxxYV##$YxYVVVVVVx**xx*=+++++::::++++++++++++++++*#88888888$*+x$$$$$$VVVVYx*=+:::~~~:x8%8888888##################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$###############8%%%%%%88V+::+*Y$###$##$xxxxxx****************************************************************xV$##8%%@@%%%8888$Y8888888###################################$$VVV$$$$$$$$$$$$88888888888%@@@%#VVVVVVVVVVYYYYVVYYYV$$VYYVVYYYVVVVVVVVVVVVV$$##88888888888888#8888##8#8##8###V*+::~~~:+=Y$###################################$Yx*==+++::::::++=**xV$##$$$$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######V*=++::::::::++=*YVVVVVYYYYx**xV8%@@%$VVYYV#%#*xxYYYYxx*******x$###8#8#############$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$888######888888888888888888888######################################################888888888888888888888888888888888888888888888888888888888888888888888###################8#8888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVYYVYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$###############888888%%8%%%8#VYYxx**********************************==+:::++++++++++++===========================================================************xV$$###$VVV$#VV$##YYxxxxxxxxY#$VV$VxxxxY##$x##$YxxxV##$x*xYVVVVYx**YYY*=++++++++:::+++++++++++++*$88#####8#x+*$$$$$$VVVYx*=++:::~~::x8%%888888##################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$################8%%%%%%%8#*:::+Y$#######$xxxxxxx***********************************===*=========***===*********xV$#8%%888#####888$8888888###########8#######8#888###########$$VVVV$$$$$$$$$$888888888%%@@@@8$VVVVVVVVVVVYYYYYYYYYYVV$VVVYYxYVVVVVVVVVVVV$#88888888888888888888#8##88#########Vx*==*xY$#######################################Vx===++:~~~~~::++=**xV$$$$$$$V=+++=*xV$$$$$$$$$$$$$$$$$$V$$$V$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####$x=+++::::::+++==*V$VVYYYYVYx**xY8@@@%$VVVVV$88$VVYxx******xxx**Y################$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVYVVYYVYVYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#888#####888888888888888888888#######################################################888888888888888888888888888888888888888888888888888888888888888888888####################8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##############888888%%%%%8#$YYYxx*****************************==+:::::+++:++++++++===========================================================*************xV$$##$VVVV#$YY$#$VYxxxxxxxxV#$$V$YxxxxY$##x##Vxxxx$##Yx*xYVVVVVVVYYVVY*==+++++~~--:++++++++++:+=x$######$Y=++Y$$$$$VVYx*==+::::~:::x8%%%88888#################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$################8%%%%%%888V*++x$$########Yxxxx************************=*==**============================*==****Y$#$##888#VV###8$$#8888888##################8###88##########$$$V$VV$$$$$V$$$#8888888%%@@@@%#VVYVVVVVVVVVVVYYYYYYYYYYYYYYYYxxYYVVVYYVVYVVVVV#888888888888888888888#8#88#88#8######$#############################################$Y*===+::~~~~~~:++=*xV$$$$$$$x+:~~~~:=xV$$$$$$$$$$$$$V$V$VVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$V*+:+++++++++===*xV88###$$$VYx****xY$#$VVVVVVVV$##$Vx*****xxYYYxxx$#############$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVYVVVVVVVVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#888#####8888888888888888888888#######################################################888888888888888888888888888888888888888888888888888888888888888888888#######8############8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$############888888%%%%%%%8#VYYYx****x********************==+::::::+++++++++++++============================================================*************xYV$##$YVV$$YYYV$$VYxxxxxxxxV#$$$$xxxxxY$##*$#Yxxxx$#$x***xxYVVV$$VYV$$Y*=====+:~~~:+++==++++:~~+=*xYVVYx*++++=YVVVYYx**==+:::~~~:::x8%%%88888#################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$################%%%%%%%%888#$VVYV$########VYxx****************=*****=======*================================*=*YY$VV$#8##$V#####888$xV#88###################8##############$$VVVVVVVVVVVV$#888888%%@@@@%8VVVVVYVVVVVVVVVVVYYYYYYYYYYYYYYxxxYVVVVYYYVYVVVVVV$#88888888888888888888888#8##8######################################################$Y**==++::--.--~:+=*x$$$$$$$$Vx+:~~~-~=xV$$$$$$V$VVVVVVVVVVVVVVVVVV$$$VVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVx*==++=====****xYV$#8888888888#Vx*******xxYVVYYYYxxxx****xxxYYYYYYxxV##########$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888#8#################8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYYYYYVYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################888888%%%%%%%8#$VYYxxx**x**xx**********===++:::::+++++++++++++=+===*========================================================***************xY$###VYVV$VYYYYV$VYxxxxxxxxV#$V#VxxxxxYV##x##$YxxYV#$x*****xxxYYVYYYV$VYx*=====+++==*YVY**=++::+++++++++++++++=*****===++:::~~~~:::*8%%%88888#################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##################%%%%%%%%8888$*x$#88########$VYx***********=====================================================*x$VYY$88####$$$$#88#*+x88##########8####8888############$#$$VVVVVVVVVVVV$#8888%%@@@@@%8$YYYVVVVVVVVVVVVYYYYYYYYYYYYYVVYxxxxVVVVVYVVYVYVVVVVVV#88888888888888888888888#88#88##8###################################################Y***==+:-.....-:=**V$$$$$$$$$V*:::~-:+YVVVV$VVVVVVVVVVVVVVYYYYYYYxxYVV$$V$$$$$$$$$$$$$$$$$$$$$$$$VVYx*==++====**xYV$###888888888888888%8#Vxx*******xx*********xxxxxxxxxxxx**xY######$$$$$$VVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####88888888888888888888888#######################################################88888888888888888888888888888888888888888888888888888888888888888888888###8###############888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVYVVVYVVVYYVYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###$############888888%%%%%%%%%8#VVYYxxx**xx*x**=====++:::::::+++++++++++++++====******=====================================================***************xY$##$YYVVVYYYYYVVYYYxxxxxxxV##V#VxxxxxYY##V$##VYYYV$$x**********xxYYVVVVVYYYYxxxxYYV$$VV$##Vx=+++::::::::::::++++++++++::::::~~~~::=8%%%88888################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##################%%%%%%%%%888$+V##8###$#######$VYx******========================================================*xV$VxV####VY$VY=*V88#Y=Y#################888###########$$$$VVVVVVVVVVVV$$#88%@@@@@@%8$VYYVYVVVVVVVVVVVVYYYYYYYYYYYY$$YYxxxxYVVVVYVVVYYVVVVVVVV$#888888888888888888888888#8#######################################################$Y****=+~-....-+==*Y$$$$$$$$$$VY+::~::xVVVVVVVVVVVVVVVVx*=+++::::::+*YVV$VV$$$$$$$$$$$$VVVYYxxx**=++:::+++==*YV$##8888888888##8#88888888888$Yxxxxx**********xxxxxxx*xxxx*****x$###$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888######8#88#8########888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$V$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVYVYVVVYVYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$#$###$############8#8888%%%%%%%%%%%8#VVYYxx*xxxx*===++:::::::::::++++++++++++=====**********================================================*****************xYV$#VYYV$VYYYYYVYYYYxxxxxxxV##$#VxxxxxxY$#$V##$YYYVV$Yx**********xxxYVVVVVVV$$$$$####$VV#8%%8$=+:::::::::::::::::::::::::::::~~~~~:+8%%%888888###############$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$###################%%%%%%%%888#$=*$#$$$$$####$$$$$$Vxxxxx*========================================================**V$Vxx$###$V$VY==Y8888x=$888##############88##########$$$$VVVVVVVVVVVV$#8%@@@@@@%8#VVYYYVVVYVVVVVVVVYYVYYYYYYYYYYY##VYxxxxxYYVVVVVVVYYYVVYVVVVVV$#888888888888888888888888###############################################$########$Yx***==::~~~:+==*V$$$$$$$$$$$$Y+~::*VVVVVVVVVVVVVVVV=+::::~~::~::~::=*VV$V$$$$$$$VVYx*==++:::::::::::++=*YV##888888888##################88#$VYYxx***********xxxYVV$#$Vx****xV#$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888#8##################88888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVYYYVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#################888888%%%%%%%%%%%%%8#$VYxxx***==++~~~::::::::::::::::++++=====*****************========================================********************xYV$#VYVV$YYYYYVYYYYYxxxxxxxV####YxxxxxxY$#$*V#$YYYVVVYx**********xxxxVVVVVVV$$$###########8%@%Y+:::::::::::::::::::::::::::::~~~~~::#%%%88888################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$###################%%%%%%%888#$$*x$#$$VV$#$#$#$$$$$$$VVVVYx*=======================================================*YVVYxY##Yx$$$$VV##888#=#8%@%8############888#########$$$$VVVVVVVVV$#8%%@@@@@@%#$VVYVVYYVVVVVVVVVVVVYYYYYYYYYYYYV88YYxxxxxYVVYVVVVVVYYYYVVVYVVVVVV#8888888888888888888888######################################################$###$Vx***===++++==*Y$$$$$$$$$$$$VVx:~:xVVVVVVVVVVVVVVx=+:::::~~~~~~~--~::+xVV$V$VVYx*=++::::~~~~::::::++=*xV$##888888##############################$$$VVYxYVV$$###8888888#Yx***xV$$$$$$$$V$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88####88888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888###################8888888888888888888888888888%%%%%%%%%%%%%%%@%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVYVVYVVVYVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYVYVYVVVYVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$##$##$##########8888888%%%%%%%%%%%%%%%8#$VYxx*===+~-~:::::::::::::::::+++====************************============================*===**********************xxYV#$YYV$$YYYYYYYYYYxxxxxxxxV##$#VxxxxxxYY$#$$##VYV$VYxx***********xxxYVVVVVV$$$#########$$##88x:::::::::::::::::~~~~~~~~:::::~~~~:~:V%%%%888888##############$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##################$#%%%%%%%88#$$$$$$$$VYV$$$$$$$$$$$$$$$$$$Vx*=======================================================xVVYxx$#*+VV$$#######8V88%@@@%%%8888888#####8########$$$$$$$VVVV$#8@@@@@@%8#$VVVVVVVYVYVVVVVYVVVYVYYYYYYYYYxxY$%8VYxxxxxxYVVVYVVVVVVYYYVYVYYVVVVVV$#88888888888888888888#####################################################$##$$#$$Yx**======*xV$$$$$$$$$$$VVVVY::::*YVVVVVVVVVVVY++++++:::::~~~~--~:::+xVVVVYx==+:~~~~~~~~:::::+++==*YV$##8888#########################################8888888888888888$x****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#8###8##8888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888888#######88####8###8#88888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#############88888888%%%%%%%%%%%%%%%%%8#$Vx*==+~.~~::::::::::~~~::::++===******************************************************************************xxxxxV$$YYV$VYYYYYYYYYYxxxxxxxxV#$V$VxxxxxxxYV#####$VVVVYx****************xYVVVVV$$###VV$##VYVVVVx++::::::::::::::::::~:~~~~~~::::~~~~::*8%%%%888888#############$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$#####################%%%%%88##$$$$$$$$$VYV$$$$$$$$$$$$$VVVV$$VYx*=================+++================+++++=============YVVxxY#V+YYV$####$#####888%@@@@@@@@@%%%%%888#######$$$$$$$$$$##8%@@@%%8#$VVVYVVVVYVVYVVVYVYVVVYYYYYYYYYxxxxV#%8VYxxxxxxxYVYVYYVVVVVVVYVYVVVVYVVVVVV$#8888888888888888888#8#################################################$##$$$$$$$$VYxxxxYYV$$$$$$$$$$$VVVVVVx:~--~+*xxYVVVVYY*=++++++++::::::::::::++*VVVY*==+:~--~~~~~:++++++==**xV$#############$$##########################################88888888$x****Y$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######888888888888888888888888########################################################888888888888888888888888888888888888888888888888888888888888888888888888################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$############8#8888888%%%%%%%%%%%%%%%%%%%8$Yx=+--~~~~::::::~~--~~::++===****************************************************************************xxxxxxxxV$$YV$#VYYYYYYYYYYxxxxxxxY$#VV$$YxxxxxxYY$#####$VVVxx******************xYVVV$#$$Y*xY##VYYYx*++++++++:::::::::::::::::~~~:~::::~~~::+#%%%%888888#############$$$$$$VVVVVVVVVVVVVVVVVVVVVV$$$$$$#####################8%%8888$$V$$$$$$$$VVVV$$$$$$$$$$$$$VVVYV$$VYx*=========++++++++++++=============++++++++++=+=======*VVY*x$#xYYY$###Y*Y$###$xY#88%%@@@@@@@@@@@@%%%88##$$VV$$#88%%@@@@%8#$VVYVYVVVVVVVVVYVVVVYYYVVYYYYYYYxxxxxY$%@8YxxxxxxxxxYVVVVVYYVVVVVYYYYYYVVVVVVVVVV#8888888888888888888888##########################################$$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVV*+:----+========++++=======+++::::::++++=xVVV*==++:~-----~+++++++===*xxV$#########$$Vx***xxYV$$$$$####$$$$$$$$$$$$$#$$$$#$###########888888$x****Y$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888###################88888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYVYYYYYYYYYYYYYYYYYYYVYVYYYVVVYYVVYVVYVYYVYYYYVVVVVVVVVVVVVVVVVVYVYVYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$############8##888888888%%%%%%%%%%%%%%%%%%%%8$Y=~-~~~:::::~~~--~~::++====*************************************************************************xxxxxxxxxxxV#$YV$#VYYYYYYYYYxxxxxxxxY##$V$$$YxxxxxxxV$##$#$$$Yxxx***********xxx*****xYV$#$Y***x$#$Yx*=+++++++++::::::::+::::::::~~~::::::::::::x8%%%888888#8###########$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$###################8888%88888$Yxx$$$$$$$YYV$$#VV$$$$$$$$$VVVVYV$$VYx**===++++++++++++++++++==++++=+++++++++++++++++=======xVVxxV#VYYxV$#$*=*V###$YVV$$$$##8%%%@@@@@@@@@@@@%%888%%@@@@@%8#$VVYYYVYVYVVVVVYVVVVVVYYYYYYYYYYYxxxxxxxV8@@#YxxxxxxxxxxYVVVVVVYVVVVYVVYYYYVVVYVVVVVVV$#888888888888888888888888#8#########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVYx*=+:++==+++++++++============+++++++==xVVV*=++++::~~~~::+++++=====**xxV$$$$$$$VYx*=++++++++===xV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########88888V*****V$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888#8######88#########888888888888888888888888888%%%%%%%%%%%%%%%%%@%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYVYVYYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYYVVVYVYVYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#########88##88888888888%%%%%%%%%%%%%%%%%%%%#$$x:-~~~:::::~~~~~:::++===**xx*x***x**x**********************************************************xxxxxxxxxxxxxxxV#$YV$#VYYYYYYYYYxxxxxxxxV###xY$$YxxxxxxxY$$$$$$$$Yxx*************xxY******x$$#V*==*YYYx===++++++++::::::::::++:::::~~~~::::::::::~~:V%%%8888888###########$$$$$$$VVVVVVVVVVVVVVVVVV$V$$$$$$$###############888888%8#$#888#Y**Y###$$$YxV$#$VYV$VYYYV$$$VYVVYY$$Yx**===++++++++++++++++++++=++++++++++++++++++++++=+=====YVYxY#VxYxY$$V===x$##88$$YYVVVV$####$88%%%%@@@@@@@@@@@%%8#$VVYYYYYYYVYVVVYVVVVVYVVVYYYYYYYYYYYxxxxxxY$%@%$YxxxxxxxxxxxVVVYVYVYYYVVVVVYYYVYVVVYVVVVVVV$#888888888888888888888888888######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVV*===++++++++++===========*YYYxxxxxYV$$Vx==+++::::::++++++++======******xxx**==++++++++++++++x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888#x****x$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888##################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$VVVVVVVVVVV$VVVV$$V$VVVVVVVVV$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYYYVYYVYVVVVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$VVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVYVVVYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$########888#88888888888%%%%%%%%%%%%%%%%%%%#$$$Y+~~~~:::::::::::+++==***x*xxx*xxxxxxxxxxxx*xx*xxxxxxxxxxxxxxxxxxxxxx********************xxxxxxxxxxxxxxxxxxxxYV$$YV$$VYYYYYYYYYxxxxxxxYY##$YY$#YxxxxxxxV$$$$$$$$xxx*****x*********Y$Y****xV$$x+++============++++:::::::::::++:::~~~~~::::::::::~~~=#%%%8888888##########$$$$$$$$VVVVVVVVVVVVVVVV$$$$$$$$###########8##88%%%%%888#VV#888#V***$##$V$YxY$#$$VYVYYYYYYYVVYYVYYV$Vx**===++++++++++++++++++++++++++++++++++++++++++++++====*VYxY$$*YYYV$V*==x$##8#VxYVYYVV$$##$VY$$$$$$$$$$$#$$$$$$VYYYYYYYYYYYYYYYVVYYVVVVYYVYYYYYYYYxxxxxxxxV8@@8VxxxxxxxxxxxxYVVVVVVVYYYYVVVVVYVVYVVVVVVVVVVVV$$#88888888888888888888888#8####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVY*=+++::::+++++==========**Y$$$$$$$$VYx*==+++:::++++++++++++++++===========++++++::::++++++++=*YYVV$$$$$$$$$$$$$$$$$VVVVV$$$$$$$$$#####88#Y*****V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######88888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888####8##############88888888888888888888888888%%%%%%%%%%%%%%%%%%%@%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$V$$V$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYVYYYVYYYVYYYYYYYYYYYYYYYYVYVYYVVVVYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$VVVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYVYYYYVYYYYYYYYYYYYYVYYYVVYVVVVVYYVVVVVVVVVVVVYVVVVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$###########88888888888888%%%%%%%%%%%%%%%%%8#$$$Vx:~~~~::::::::::++==*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$##V$#$YYYYYYYYYYxxxxxxxYYV#$Yx$#YxxxxxxYV$$Y*Y$$Vxxx****************V8#Vx**xY=+++++++====***====++::~~~::::::+++::~~~~~~:::::::::~~~~*8%%%8888888#########$$$$$$$$VVVVVVVVVVVVVV$$###########8888888%%%%@@@%%88888$YV88888#Y**$#$VVVVxY$$VVVVVYYxxxxxxxYYYVYY$$Y**====+++++++++++++++++++++++++++++++++++++++++++++=====YVYxV$xVVYY$Y***x$#####VVYYYYVVVV$#$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYYYYYYYYYYYYYxxxxxxxxV#%@%#YxxxxxxxxxxxxxYVVVVVVVYYYYYVVVYVVVYVYVVYVVVVVVVVV$#88888888888888888888888888##############################$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVx=++:::::::++++++++========*xYVVYYxx==++++++++++++++===++++:::::+++======++++::::::::++++++++====**xYVV$V$$V$$VVVVVVVVVVVVVVVV$$$$$####888V*****xV$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######8888888888888888888888##########################################################888888888888888888888888888888888888888888888888888888888888888888888888888###################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$V$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVYYYYYYYYYYYYYYYYYYYYYVVVYVVYVYVVVVVYVYYVYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYVYYYVYYVVYYVVVVVYVYVVVVYYVYVVVVVYVYVVYYVYVYVYVYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$##########888888888888888%%%%%%%%%%%%%%%%8#$Y*=+:~~~~~::::::::++==*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYY####$$#VYYYYYYYYxxxxxxxxxxxYV$$$$VxxxxxxYV$V=:+Y$$x********************x#%8$Y*+:::::::++==******==++::~~~::::::+++::~~~-~~:::::::::~~~~~x8%%8888888#########$$$$$$$$VVVVVVVVVVVV$$###########8888%%%%@@@@@@%%8###88#VV$8888##$xx$$VYYYVYxVVYYYYVVYxxxxxxxxYYVYYV$V*======+++++++++++++++++++++++++++++++++++++++++++++====*YYxY$YV$YYVVYxxxV$V####VYYYYYYY*YVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxY$%@@%VxxxxxxxxxxxxxxxYVVVVVVVYYYYxYVVVVVYVVVVYVVVVVVVVVV$$$#88888888888888888888888888###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVY*++::::::::~~~~+::::+++++========+++::::::++++++========+:::::::::++++====++++++++++++++++========****xVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$###888$*****xV$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888##8#############8##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$#####$#######$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYYYYYYYYYYYYVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$################$#$$$$#$$$$#$##$##$#$##$###$$$##$#######$#$$$$#$$##$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYVYVVYVVYVYVYYYVYYYVVVYYVVYVVVYVVYVVVVYYYYYVYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$##########8888888888888%%%%%%%%%%%%%%%%8$Y=~.-~~~~~~~:::::::+=***x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVV$####$YYYYYYYxxxxxxxxxxxxxxxxYYYxxxxxxxV$$Y=*V$$Yx**********************Y8%%$=::~~~~~:++=******==++:~~~~~::::+++++~~--~~~~:::::::::~~~-~x8%%888888#########$$$$$$$$VVVVVVVVVVV$##88888####88%%%@@@@@@@@@%888###8#$VxY$888#8##VV#$YYYYVVYVVYYYYYVYxxxx***xYYVYYV$Y*====++++++++++++++++++++++++++++++++++++++++++++++++++==YVYx$VY$YYV##$VxVYV$#8#VYYxxxYYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxY$%@@%#YxxxxxxxxxxxxxxxYVVVVVYVVYYYYYxYVYVYYVVVVVYVVVVVVVVVV$$$#888888888888888888888888888##########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVY*++:::~~:::::~---:::::::+++======++::::::::++++=====**===++:~~~~::::+++==========****xxYYYxxxxx**********YVVVVVVVVVVVVVVVVVVVVVVVV$$$$#####88$x*****V$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######8888888888888888888888##########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888#8######8##########8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$#$#################$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYYYYYYVYVYYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$V$$$$VVVV$VVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#################$######$###$#########$####$$$#$#######################$$$##$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYVYVVVYVVVVVVVVVVVVVYVVVVYVYYYYYYVVYVYVVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$###########8888888888888%%%%%%%%%%%%%%8$x:--~~~:~~~~~:::::+=*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxYYYYYYYYYY$YV$###VYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$VYx*************************x$%%x+:~~--~::+==****===+:~~~~~:::::+++++~---~~:::::::::::~---~~x8%8888888#######$$$$$$$$$VVVVVVVVVV$##88888####8%%@@@@@@@@@%%%88####$$VVx*Y#888####YY$$YYYYY$V$VYxxxxYVxx******xYYYYYVx*====+++++++++++++++++++++++++++++++++++++++++++++++++++=xVYx$$x$YxY###VxYYYV$#$*YxxxxxYVVYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx$8@@@8VxxxxxxxxxxxxxxxxxYVVVVVVVYYYYYYYxYYVVYYYVVVVVVVVVVVVVVV$$$#888888888888888888888888888888#################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVx++::::::+:++++:::::::::++==***===+++:::+++==***xxxxx****=++:~--~::+++=*xxYYVVVVV$$$$###8888888####$VVYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$####888$x*****V$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888##########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888####88####8#######88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$#$###################$$$$$$$$$VVVVVVVVVVVVVVYYVYYYVYYYYYVYYYYYYYYYYYYYYYYVVVVVVVYYYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################$###$##$###$#$##############$###################################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVYVVVYVYYYYYYYYVYVYVVVVVYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##########8888888888888%%%%%%%%%%%%%%%$*:~~~::::::~::::::=*YYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYxYYYYYYYYYYYYYYYYYYVVYV$##$YYYYYYxxxxxxxxxx*xxxxxxxxxxxxxxxx*xxxYYxx*****************************Y##=::~..-::+===*===++::~~-~~::+=*====+::~~~::::::::::::~--~~~~*#8%888##$VVYxxxxxxxYYYVVV$VVVVVV$$#888888##88%@@@@@@@@@@%%888888#$VVYVVYY$##8888#$x*V#VYYYYV$$$Vxxx*xxYx*******YYVYYY*=====++++++++++++++++++++++++++++++++++++++++++++++++++++*YVxV$*$VxY$##YxxxxVV##Y$Yx*xxYVVYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxY$8@@@%$xxxxxxxxxxxxxxxxxxYVVVVVVVVVYYYYYYYxYYVYYVYYVVVVVVVVVVVVVV$$$#8888888888888888888888888888888##################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y=+:::::+++===+++:::::+=**xYVVVY*=======**xxYYVV$$VVVYxx**=++:~~:++=*YV$$###8888888888888888888888##$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$###8888$x*****Y#$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888888888888888888888##########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888##8#############8##888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$#$############################$$$$$$$$$$VVVVVVVVVVVVVVVVYVYVYYVVYYVVYVVVYVYVVYVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$###################$#$##########$###############$######################################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYVYYYYVYVVYYYYYYYVVVVVYVVVVVVVVVVVVVVVVVV$$$$$$###########888888888888%%%%%%%%%%%%%8Y+::::::::::::::::+*xYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$*xV$#$YYYYxxxxxxxxxxxxx****x**xxxxxxx*xxxx*x**********************************xYY=:~~-~::+++++++:::::~~--:::*V$VY===++::::::::::::::::~~~~~~~=Y#$Vx=+:~---.......--~:+*YVVV$$#88888888%%@@@@@@@@@@%%8#$##88#$VVYYV$YYV#$#8####$xY###$$VVV$$#$VxxxxxYx*******xYVYxx*====+++++++++++++++++++++++++++++++++++++++++++++++++++++=YVxY$*$VxY$##YxxxxYYV#8#V***xYVVYxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxY$8@@@%#YxxxxxxxxxxxxxxxxYxxVVVVVVVVVVYYYYYYYYYYYYYVYYVVVVVVVVVVVVVV$$$$#88888888888888888888888888888888#8################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*====***xxx*==++++=*xYV$$$$$VVx**xxYYYVVV$$#####$$$Vxx**===+==*YV##8888888888888888#############$$$$$$$$$$$VVV$VVVVV$V$VV$$$$$$$$$####88888$x*****Y##$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888##########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888#######8#######8##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $#$#$####################################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$$##$#############################$##############################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVV$$$$$$###########8888888888%%%%%%%%%%%8#$x=::::::::~~:::::::=xYVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$*:*Y$#VxxYYxxxxx*xxx*****************xxxxxxxxxx**********************************xx=+:::~:::::::::::::::~~:::=YVVY*==++++:::::::::::::::~~~~~~~:::~~---------------... .~*V$#8%%%%%%@@@@@@@@@@%%%8#$$V$####$YYYYVVVY$#$V$#88###YV$$####$VV$$$$VxxxxxY********YVYx*=====+++++++++++++++++++++++++++++++++++++++++++++++++++++=xVYx$xVVxY$##YxxxxYYY#V#$x***xVVYxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYxYxxxxxxxxxxxxx*xxxY$8@@@@8VxxxxxxxxxxxxxxxxYYxxYVVVVVVVVVVYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVV$$$#88888888888888888888888888888888888###############$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$VVVVV$$$#$x=====*xV$$##$$VVVVVYYYVVV$$$$$$$$$$$$##$Yx*****xY$#8############$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888$x*****V##$$$VVVVVVVVVVVVVVVVYVYVYVYYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888###########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888######8#####8#8##88#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #############8#############################$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVV$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#####################################################$##$##############################################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVYYYYYYYYYYYYYYYYYYVVYVVYVVVVVVVVVVVVVVVVV$$$$$$############88888888%%%%%%%%%%8#x+~~::::::::~-~:::::+*YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$*+*Y$$Yxxxxxx*x*************************xxxxx*x**************************************===*xYY*=**********=+::::+=====+++++++++::::::::::::~~~~~~~~~-------------~~~~~~~~-...~x#%%@@@@@@@@@@@%%%88888$YYV#$$VVYYYYV$VV$#$VV$######$YxY#####VVV$#$$xxxxxYx*******YVVx*====+++++++++++++++++++++++++++++++++++++++++++++++++++++++xVY*VYYY*x$##VxxxxxYY$x#$Y***xVVxxx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*****xY$%@@@@8$xxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$#888888888888888888888888888888888888################$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$x***xY$##8##$$$$$VVVVVVVV$$$$$$$$$$$$$###$$VVVV$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######88888$x*****V88#$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYVYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYVYVYYVYYVYYYYYYYYVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888###########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888##########8########888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ##########88#88####8#8####8####8###8#########$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$V$$$$$$$$$$$$$$##$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#######$######################################################################################################$$$$V$VVVVVVVV$V$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVYVVVVVVVVVVVVV$$$$$$##########8888888%%%%%%%%%%8#x:-~::::::::~--~~:::+=xYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#$YYV$Vxxxxxxx*****************************xxxxx**xx***********************************xY#%@@%$Yx*xxxxxxxxx*+:::+++++++++++++++::::::::::::~~~~~~~---~~~~~~~~~~~~--~~~~~~~--.-=8@@@@@@@%%%8##$##88##$YYV$VYYYYYYV$VY$#$VYY$#8#####VY$#####$VYV$#$YxxxxxY*******YVVx*====+++++++++++++++++++++++++:+++++++++++++++++++++++++++++*YY*VVYVxx$##VYxxx*xY$x#$Y***xVYx******x*x*xxxxxxxxxxxxxxxxxxxxxxxx**********xY#%@@@@%$YxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVV$$$$#88888888888888888888888888888888888#8############$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYV$#8888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######888888Vx****x$88#$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYVYYYVVVVVV$$$$$$$$$$$$$$$$$$$$$$####8888888888888888888888###########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888###############8###888888888888888888888888%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######8#8##888###8######8##8#################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$VVVVVVVVV$VVVVVVV$$V$$$$V$VVV$VV$$$$$$$$$$$$$$#$#######$###$###$$$###$####$##$##$$$$$#$#$$$#$$$$$$###################################################################################################################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$############8888%%%%%%%%%%8V+--~::::::::~~~~:::++*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$VYYYxxxxxxx*******************************xx*xx*xx*x***********************************xY$8@@%8$Yxxxxxxxxx*:::::++::::::+++++++++::::::::~~~~~~~~~~~~~~~~---. .---------~V%%%%88##$VYYV$VV$$$$VYV$$VYYYYYY$$$$#$VYYV#8######$$$#$####VYYV$$VxxxxxY*******YVVx*====++++++++++++++++++++++++++::+++::++++++++++++++++++++++*YY*YVY$YxV$#$Vxxx**xV=$Y*****YYx******************************************xV#%@@@@%#YxxxxxxxxxxxxxxxxxxxxxxYV$$VVVVVVVVVYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$##$#8888888888888888888888888888888888#8######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###888888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######888#88888V*****x#888$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYVVVVV$$$$$$$$$$$$$$$$$$$$$#####888888888888888888888############################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888####8##8####8######88888888888888888888888%%%%%%%%%%%%%%%%%%%%%@%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ####88#8#8#8#88#8####8######8#8###8###########$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$VVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################$$$$#$$#$$#$##$##$#$####################################################################################################8##############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVVVVVVVVVVVVV$$$$$$$##########88888%%%%%%%%%#x~.~:::::::::::::::++=xYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx***********************************x*******xx************************************xV#%@@%%#$Vxxxxxx+:~~::::::::::::++++++::~~~:::~~~~~~~~~~------. --------~*###$$$$VYYYYYYYY$$$Yxx$$$VYYYYY$$V##$YYYYV#################$YYYV$$xx**xxx******YVYx*===+++++++++++++++++++++:+::::::::::::::+:+++++++++++++++++=x*=xVV$YxV$$$$Y***=*VVV***==*xx*****************************************xV8%@@@@%8Yx*xxxxxxxxxxxxxxxxxxxxxYVVV$$$VVVVVVVYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$8#$#88888888888888888888888888888888888#######################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####8888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$##$##$##############$#$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$VVV$###Y*****V8888#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$####8888888888888888888888###########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8####8#8##8###8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #888#888#8#88#88########8######################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################$#####$####$$###############################################################################################################8##############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYYVVVVVVVVVVV$$$$$#$##########888%%%%%%%%%8x~.~:::::::::::::++++*YVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx************************************************************************************xY$8@@@@%%#$Yxx*+~~:::::~~::::::::::::~~~~~~:~~~~::::~~~----.. .--------~*$$#$$$$VVVVYYYYY$$Y*=Y$$$YxxxYV$VV$VYYYYY$#$$###V###########VYYY$$Yx**xxx******YYY*===+++++++++++++++++:::+::+:::::::::::::::::+:++:++++++++++++*==*VVxxxYV$#$Vx**=*V$V*=====**======*==******************************Y$8@@@@@@8Vx**x*xxxxxxxxxxxxxxxxxxxxY$$V$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVV$#88##88888888888888888888888888888888############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$###$########################$##$###$###################$VVYYYxYYYV$$$#VY****$88888$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$V$VVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##8888888888888888888#888###########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888###8######8##8###888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 888##888888##8######8########################$#$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################################$#$###$#########################################################################################################8####8#8##############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYYVVVVVVVVVVV$$$$$$###########8#888%%%%%%8V+.-::::::::~:::+++==xYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx***********************************************xx***x***********************************xV#%@@@@@%8#V*+::::::::::::::::::::~----~~~~~~~::::~~~----... ..----------~=Y#####$VVYYYYYxY$$YxY$$$VxxxxY$$$VYYYYYYV#VY$$$VV##$$$$$####$YYY$$Vx**xxx*====*YYx*===+++++++++++++++:++++:++::::::::::::::::::::::+::++++++++++**==VY*YxxYV$$$Y**=*VVY=======================*********************xY#%@@@@@@8Vx***x**xxxxxxxxxxxxxxxxxxxYV$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVV$888##888888888888888888888888888888######################$######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########################################################VYYxxxxxYYYVV$$$###$Vx*x#88888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$VV$$V$VVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$###8888888888888888##8888############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888##8#####8########8#88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #8888##8888#8#8#######8#####8#######8#########$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################################################################################################8####88###8##########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVV$$$$$###########888888%%%%%%#x:-~:::~---~::++===*YVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYVVVVVVVVVVVVVVVYYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx*********************==========*****************x***xx**x***********************************xV#%@@@@@%V=::::::::::::::::::::~-----~~~~~~~~~~~~~~--------------------~:+*V###$$VYYYYYYxxYV$##$$$VYxxxY$#$YYYYxxxY#$YV$Y**$#$YYYYYV####VYY$$$x**xxx*====*xx*====+++++++++++++++:::::::::::::::::::::::::::::::::++++++++++=*+=Yx=YxxxY$V$$x***VVY========================******************xV8%@@@@@@%$x******xxxxxxxxxxxxxxxxxxxxxxYYV$$$$$$$VVVVVYYYYYYYYYYYYxxYYYYYYYYVVVVVVVVVVVVVVV$8888888888888888888888888888888888###############################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##########################################################VxxxxxxYYYVVVV$$$#####VxY#88888##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###888888888888888888#88############################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888##########8######8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#88#8##88#88##8#88##########8######8###########$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############################################$###########################################################################################################8##8##8###8##########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$$$$$$############88888%%%%%#x+::::~-.--~:+==***YVVVYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYxxxxxxxxYYYVVVVVVVVVVVVV$$VVYV$$VVVVVV$$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx**************===================***************xxx*x*****************************************xY$8%@@%V=:::::::~~:::::::::::::~~~~~~------------------------------~+x$$###$VVYYYxxxxxxxxYV$$$VYxxxxxY$$YxxxxxxY$#VY$V**Y$$YYYYYYY$###$YYV$$Yx*xxx*====*xx*===++++++++++++++++:+:::::::::::::::::::::::::::::+:+++++++++++++=YY*xxxxx$YxVV***YYx=========================**************xY#%@@@@@@@%$Y******xxxxxxxxxxxxxxxxxxxxxxx***xYV$$$$$$VVVVVYYYYYYYYYYYYxxxYYYYYYYVVVVVVVVVVVVVVV#888888888888888888888888888888888######################$##$###$#$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#############################################################VxxxxxYYYYVVVV$$$$$$####$$####$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##888888888888888888###8############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#####8#8#8###8#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#888#888###888###8##########8##################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################################################################################################################################8##8#8##88##8##############$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$#$##########88#88888%%%8V*++++::~::+=*****YYVVYYYYYYYYYYYYYYYYYYYYYYxxxYYYYYxxxxxxxxxYYVVVVVVVVVVVVV$$VVYY$$VVVVVV#888888###$$$$VVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxx***********========================*************xx**x***x****************************************xY$#$*+:::::~~~~~~~~~:::::::::~~~----~~~~---------------------~:=Y$####$VYYYYYxxxxxxxxxxxYYYxxxxxxxY$VxxxxxxxV##VV$VVV$$VYxxxxYY$##$#VVVV$Yx*xxx*====***===++++++++++++++++++:::::::::::::::::::::::::::::::+++:++++++++++=YV**x**xV$Y*Vx**Yx==========================************x$8%@@@@@@@%#Y********xxxxxxxxxxxxxxxxxxxxxx***====*YV$$$$$VVVVYYYYYYYYYYxxxxYYYYYYYYVVVVVVVVVVVVVV$#88888888888888888888888888888888###################$###$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################################8#8##########$YxxxYYYYYVVVVV$$$$$$$$#$$$$$$VVVVVVVVV$$$$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###8888888888888888#8##88############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888##8####88#######8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#88888#88888##8############8###8#8#############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################################################################################################888888888#####88###8#####$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVVVVVVVVV$$$$$##############888888%%%8#Yx==++++==*****xxYVVYYVYYYYYYYYYYYYYYYYYYxxxxYYYYYYxxxxxxxxYVVVVVVVVVVVVVVV$$VYYV$$VVVVV$888888888888888888####$$$$$$VVVVVYYYYYxxxxxxxx*********===========================*************xx**x*********************************************==++:::~~~~---.-~~~~~~::++======++==**===+:~~------~~~~~~:+=*xV$V*x$VVYYYYxxxxxxxxxxxxxxxxxxxxxxxYY*xxxxxxV$#$$$VV$$$VxxxxxxxY$####$$VYVx**xxx*==========++++++++++++++++++:::::::::::::::::::::::::::::::++++++++++++++=xY*=**=*x$$xxx**x*=========================**********xV#%@@@@@@@@%#Y**********xxxxxxxxxxxxxxxxxxxxx*===++++++*Y$$$$VVVYYYYYYYYYYYYxxxYYYYYYYYYYVVVVVVVVVVVVV$88888888888888888888888888888888####################################$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################88##8##8#8#8#8####YxxxYYYYYVVVVVVV$$$$$$$$$$VVVVYYVYVYVVVV$$$$$$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#8888888888888888#88##88############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#8####8####8#######8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8##8#88##8###8#######8###########################$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################################################################################################################################888888888888####88###8#8###$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYVVVVVVVVVV$$$$$$###############88888%%%88Vx*********xxxYYVVYVVVYYYYYYYYYYYYYYYYxxxxxxYYYYYYxxxxxxYYVVVVVVVVVVVVVVVVVVYxY$$VVVVV$888888888888888888888888888888########Vxxxxxxx**********============================*************xxxx*********************************************++::::~~~~~-. .-~~~=$#$VYxx**xxxxxxxxxxxxx****====*******xxxxV$Y*xVxYYxxxxxxxxxxxxxxxxxxxxxxxx*xYVxxxxxxV$#$$$VYVx$$Yxxxxxxxx$####$$VYYx*****==========++++++++++++++++++++:::::::::::::::::::::::::::::+:++:+++++++++++xY*=====*V$$Yx**x===========================******xV#%@@@@@@@@@@8Vx*********xxxxxxxxxxxxxxxxxxxxxx*==++++++++++*YV$VVVVVYYYYYYYYYYYxYxYYYYYYYYYYVVVVVVVVVVVVV#8888888888888888888888888888888######################################$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############################8##8##88#8#8#88#88#88#88#88#8#88###8#VYxYYYYYYYVVVVVVVV$$$$$VVVVYYYYYxxxxYYYVVV$$$$$###$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##88888888888888888###88#############################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8##############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88888#88#88#8888####8##8#8#8####8#8#8############$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######################################################################################################################################################8##8888888#88#88##8##8##8###$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVV$$$$$#$#$##########8#88888%%%8$VYYxxxxxxxYYYVVVVVVYYYYYYYYYYYYYYYYYxxxxxxYYYYYYxxxxxxYYVVVVVVVVVVVVVVVVVVYxY$$VVVVV$#8888888888888888888888888888888888888#Yxxxxxxx********===============================*************xxxx*x******************************************++::::~~~~--. .-~~:V%@@@@%8#$YYx*****x**********************xxV$$$$VYYxxxxxx*xx*x*xx*x***********xYxx*xxY$$$$$$YY$V$VxxxxxxxxxV#####$VYxx*****========+++++++++++++++++++++++:::::::::::::::::::::::::::::::+:::+++++++++*Y=======*$$$Yx***==========================*=**Y#%@@@@@@@@@@@8Vx*********xxxxxxxxxxxxxxxxxxxxxxx*==++++++++++::+*YVVVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV#888888888888888888888888888888#########################################$$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############################8#8#88888#88#8888#88888#8#8#8888#####8#VYYYYYYYYVVVVVVVVVVVVVVVYYYxxxx*****xxYYVV$$$$$####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$#$$$##$$$###$#$#########8888888888888888####8#############################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8###8#########8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8888#88#8#8#8##8#####88##########8#88############$$#$$$$$$$$$$$$$$$$$$$$$VV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#####################################################################################################################################################8#88888888888888#88##88##8####$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVV$$$$$$$##############888888%%8VVVVVVVVVYYYVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxYYYYYYYYxYYxYVVVVVVVVVVVVVVVVVVYxxY$$VVVVV#88888888888888888888888888888888888888$xxxxxxx*********================================**********xxxxxxxx******************************************+:::::~~~~~---~~~~Y@@@@@@@@@@@%8#VYx***************xxxxxx***xxYV$$$VYxxxxx***********************xYx***x$$#$$#$xYV$$Yxxxxxxxxx$#V$#$$VYx******======++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::++:+++++++*x========V$$YYx**=========================**Y$8%@@@@@@@@@@@8Vx*********xxxxxxxxxxxxxxxxxxxxxxxxx==++++++++++:::::+=YVVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$8888888888888888888888888888888########################################$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################################8#88888#8#8#88#888##88#88#8#88#####8#VYYYYYYYYVVVVVVVVVVVVVYYYxxxx**====**xYYVVV$$$$####$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$#$#$#$#####$$#$##$#####$##########################888888888888888#####8##############################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888####8######8#8###8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 888888888#8##888#####8###########################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#####################################################################################################################################################88888888888#888#88888##8#######$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVV$$$$$$##$###########8#8888888#VVVVVVVVYYYVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxYYYxYxxYYYYYYVVVVVVVVYVVVVVVVVYxxx$$VVVVVV#8888888888888888888888888888888888888#Yxxxxxx*x*******==============+========+===========*********xxxYYxxx*****************************************+:::::::~~~~~~:::x%@@@@@@@@@@@@@@@%%8$VYx*****xxxxxxYYYYYYYYYYV$##$VYxxx*************************xx***x$$$$V##Vx*V$$Yxxx***xxx$$=*$$$Yxx****======+++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::+::++++++++++==+=======Y$#$YY**=======================*Y$8%@@@@@@@@@@@%8Vx**********xxxxxxxxxxxxxxxxxxxxxxxxx=====++++++++::::::::=YVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$8%%88888888888888888888888888###########################################$#$#$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##############################8##8###8888888888888#8888888#8#8#88##8888#VYYYYYYYYVVVVVVVVVVYYYYxxxx***====***xxYYVV$$$$$######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################$###########################################888888888888888#8###8##############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888###8###8#8##8#8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8888888##8#8#8###88#8################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################################################################################################################8#88888888888888#8#8#88#88#88###$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVVYVYYYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVV$$$$$$$$$##############888888$VVVVVVVVYYVVVYVVVVVYYYYYYYYYYYYYYYxxxxxxxxxYxxxYYYYYYYYVVVVVVVVYVYVVVVVVYxxxY$VVVVVV$88888888888888888888888888888888888888$xxxxxxxx*******====================++++++++==========*********xxYYYxxxx**************************************+::::::::::::::+=x$#%@@@@@@@@@@@@@@@@@@%8#$VYxYYVVVVVVV$$$$$$###8###VYxx*****************************xV$$$V$#$x**V$Vxxx******xVY++V$VYxx**======++++++++++++++++++++++++:++:+::::::::::::::::::::::::::::::::::+:+++++++++++++++===x##$YYx*====================*Y$8%@@@@@@@@@@@@%#Yx**********xxxxxxxxxxxxxxxxxxxxxxxxxx*=====+++++++++:::::::::=YVVVYYYYYYYYYYYYYxxxxxxYYYVVVVVVVVVVVVVV$8%%%8888888888888888888888888###########################################$$###$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$####################################8#8#88#8888#8888#88##8#8#8#8888#8###888#YYYYYYYYYVVVVVVVVVVYYYxxx*****===****xxYVVV$$$$########$#$$#$$#$#$$$$$$$$#$$$$$$$$$##$####################################################################888888888888888####################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#######8#8#8###8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8888888#88888##8#88##8####8#8#8#8#8#8###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################################################################################################8#8888888888#8888888888888#88#####$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV$$$$$$$$$$##############8888#$VVVVVVVYYYVVYYVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxYYYYYYYVVVVVVVYVVYYVVVVVYYxxxV$VVVVV$88888888888888888888888888888888888888#Yxxxxxx*******================++++++++++++++++==========********xxYYYYxxx*x**********************************x+:::::::::++++=*****YV#%@@@@@@@@@@@@@@@@@@@@%%8##$$$$$$#$YYV$$$$$VYV##$Yx****************************V$VYYY$#Vx**Y$Vx*********VY++Y$Vxxx*======+++++++++++++++++++++++++++:+++:::::+:::::::::::::++::::::::::+:+++++++++++++++++===*$##VYY*======*=========*xY$8%@@@@@@@@@@@@%8$Y************xxxxxxxxxxxxxxxxxxxxxxxxxx*========+++++++:::::::::::=YVVYYYYYYYYYYYYxxxxxxYYYYYVVVVVVVVVVVVV#8%%%%88888888888888888888888################################################$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#######################8#############8###8#88###88888888###8#8888#888#8##88##8888#YYYYYYYYVVVVVVVVVVYYYxxx************xxYYVVV$$$#############$###$$###$###$##$##############################################################################888888888888888#####8#############################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##88##8###8#####8##88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88888#8#8#8#8#8##8###8##############8###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################################################################################################888888888888#8#88#88888888#888#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYVYVYYVVVVVVVVVVVVVV$$$$$$$$#################888$VVVVVVVVYYVVYYYVVVVVYYYYYYYYYxYxxxxxxxxxxxxxxxxYYYYYYYYVVVYVYVVYYVYVVVVVYxxxY$VVVVV$88888888888888888888888888888888888888#$xxxxxxx******=================++++++++++++++++============*******xxYYYYYxxx*x*******************************x*::::~~~:::++=**********xV$8%@@@@@@@@@@@@@@@@@@@@@%%88####$$$##$Yx**xV$$#$VYxxxxx********************V$$xYxV##Yx=*YVVx*********VV=*V$Yx**======++++++++++++++++++++++++++++++++:+::::::::::::::+:+::+::::::::+::++++++++++++++++++==*$##$VV*===========*YV$#8%@@@@@@@@@@@@@%8$Yx*************xxxxxxxxxxxxxxxxxxxxxxxxxx***========+++++++:::::::::~~:=YVYYYYYYYYYYYYxxxxxYYYYYYVVVVVVVVVVVVV#8%%%888888888888888888888888#############################################$##$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########################################8######8###8888888#8888#8#888#8#8#888888##8##88888YYYYYYYYYVVVVVVVVVYYxxx************xxxYYVV$$$$###########################################################################################################8888888888888888##################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8###88###88###88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 888888888#8###8##88#8####8#8######################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########################################################################################################################################################88888888888888#8##888#8#888888#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYVYYVYYVVYVYVVYVVVVVVVVVVVV$$$$$$$$$$################88$VVVVVVVYYVVYYYVVVVVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVYYYYYYVVVVYYxxxV$VVVYV#88888888888888888888888888888888888888#Yxxx*xxx*****==================+++++++++++++++++++============*****xxYYYYYx****x******************************:~~~~~~~:::++**************xYV#%%@@@@@@@@@@@@@@@@@@@@@@@%%%88888#$VVVV$$$##$YYYxVYYx****************x$$$xxY$##Yx=*VVVx*******=*Y$$$$$Y***======+++++++++++++++++++++++++++++++++++++::::+::::::::++:++:::::::+++++++++++++++++++++==*$##$YVY========*V#%%@@@@@@@@@@@@@@@%8$Y***************xxxxxxxxxxxxxxxxxxxxxxxxxxx*****========++++++:::::::::::~~+*YYYYYYYYYYYYYxxxxxYYYYYYVVVVVVVVVVVVV8%%%%%8888888888888888888888####################################$$$###$###$##$##$$$$$$$$#$$$$$$$$$$$$#$#$$#$$####################################8###8###8#88##88#8##8#88888888#8#8#888#88###8#88####88888VYYYYYYYYVVVVVVVVVYYxxx***********xxxYYVVV$$$$##########################$################################################################################888888888888888###################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##8##8##8##8#888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 888888#8888##888#88####8###########8#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####################################################################################################################################################88888888888888888888888888#8#88######$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$##############8###VVVVVVVVYYVYYYYVVVVVYYYYxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVYYYYYVVVVYYYxxY$VVYYV#888888888888888888888888888888888888888$xxxxxxxx*****===============++++++++++++++++++++++++===========****xxYYYYx****xxxx*x***********************=+:~~~~---~~:+++=*****************xY$8%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%8888888###VVV#$$VYx**************V$$$YY$##VY**xVVV***********Y$$$$Y***=======++++++++++++++++++++++++++++++++++++++:+++:+++:+++:++++:::++++++++++++++++++++++++==x$##$xx$x=======V@@@@@@@@@@@@@@@%8#Vx****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******=======++++++::::::::::~~~~+xYYYYYYYYYYYYxxxxxYYYYYYVVVVVVVVVVVV$8%%%%%8888888888888888888888##################################$$$$#############$$$$$$$$#$$$$$#$#$$$$$$$$##$##########################################8##8#88##8#88888#88#8#888888#888#88#8#88#88###888888VYYYYYYYYVVVVVVVVYYYxxxx*********xxxYYYVV$$$$###########################################################################################################888888888888888###################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888#8#888#8##8#8#88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%% 888888#8#88888888##########8#8#88#################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########################################################################################################################################################88888888888888888#88888#888#888#######$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#################8#$VVVVVVVYYVYYYYVVVVVYYYYxxxxxxxxxxxxxx*xxxxxxxxxYYYYYYYVVVYVVVYYYYYYVVYYYYxxxVVVYYY$888888888888888888888888888888888888888#Yxxxxxx*x****================++++++++++++++++++++++++++==========***xxxYx*****xYxxxx**x************xx*x****+:~~~--...-~::+++=*********************xV$8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%888888#Vx******x$$Y$V$##Vxx**VVVY************xYYYx**========++++++++++++++++++++++++++++++++++++++++++++++++:++++++:+:+:++++++++++++++++++++++=*x$##$YV$V*======x#8%%%%%%%%8##$Vx**=****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******=====+++++++::::::::::~~~~:=xYYYYYYYYYYxxxxxxYYYYYYVVVVVVVVVVVV$8%%%%%888888888888888888888##################################$$$$#######$####$$$$$$$$$#$$$$#$#$$##$$#$##$##################################8#88#88#8####888#88#8#888#888#8#88##8#8#8#88#888#888###888888#YYYYYYYYYVVVVVVVYYYYxxxx*****xxxxxYYVVV$$$$$##########################################################################################################88888888888888#8##################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8##88##88#8#8##8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%% 88888888#8#8#8###888888###888#####8##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################################################################################################88888888888888888#88#888888#88888######$$##$#$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$#$###############$VVVVVVVYVYYYYYVYVVVYYYxxxxxxxxxxxxxx****xxxxxxxYYYYYYYVVVVVVYYYYYYYVVYYYYxxY$VVYYV#888888888888888888888888888888888888888$xxxxx***x***=================++++++++++++++++++++++++++++=========***xxYx****xxxxxxxxxx******xxxxxxxxxxxx**+~~~------~::+++=**************************xY$#8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#******V$$$$$###xVx*xVVVY*************==============+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==*Y$##$YV$$Y========*xxxxxxx****===******************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******======++++++::::::::::~~~~~:*YYYYYYYYYYxxxxxYYYYYYYYVVVVVVVVVVV$8%%%%%88888888888888888888##################################$#$$############$#$####$##$###$$$#$$#$#$$$#$##################################8#88#88##8#8##88##888#888888##8888#88#88#88888##88######888888VYYYYYYYYVVVVVVVVVYYYxxxxxxxxxxYYYYVVV$$$$############################################################################################################88888888888888####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#88#8##88#88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888%%%%%%%%% 8888888##888#88#888#####8####8#88##################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########################################################################################################################################################8#888888888888888888888888888888888########$##$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$###################$VVVV$VVYYYYYYYYYVVYYxxxxxxxxxxxxxx****xxxxxxxxYYYYYYYVVVYVYVYYYYYYYVYYYYxxxVVYYYY$888888888888888888888888888888888888888#Yxxxxxxx*****================++++++++++++:::::::++++++++++++========**xxxx******************xxxxxxxxxxxxxxx*=~---~~~~~:::+==*******************************xYV#8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%V*****x$$##$###$$$**YVVVY***********==================+=++++++++++++++++++++++++++++++++++++++++++++++++++++:++++++++++++++++++++++++==*Y$##Vx=V$V====================*******************xxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxx*****======++++++:::::::::~~~~~~:+xYYYYYYYYYxxxxYYYYYYYYYYVVVVVVVYYV#8%%%%%8888888888888888888####################################$$$###########$#$####$#$#$$####$#$$$##$$####################################88##88###8#888#8#8#88888#888888#88#888##88#8#88#8#88###8#88888#YYYYYYYYVVVVVVVVVYYYYYxxxxxxYYYYVVV$$$$#############################################################################################################888888888888#88###################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#####8#8#88#88##8#8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888%%%%%%%%% 8888888888888#88888#8#8#88#88##88#####################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$########################################################################################################################################################8##8888888888888888888888888888888888########$####$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$#$##############$VVVV$VVVVYYYYYYYYVVYxxxxxxxxxxxxxx******xxxxxxxYYYYYYYVVVYVYYYYYYYYYYYYYYxxVVVYYYV8888888888888888888888888888888888888888$xxxxxx*xx****==============+++++++++++:::::::::::++++++++++++========***xY***********==********xYYYYxxxxxxxxx=+:~~~~~::+=***************************************xY$#8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#Y******V$$$#$##$$#$**VVVVx***********==================+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==*Y$##Vx=V$Y====================******************xxxxxxxxxxxxxxxxxxxxxxxxxxxx***xxxxxxxxxx******=====++++++:::::::::~~~~~~~:*YYYYYYYYYxxxxYYYYYYYYYVVVVVVVVYYV#%%%%%%888888888888888888######################################$###########$$$$###$####$#############$####################################888##88#8###88#8#8#8#8888888888888#8#8#8888888#88###8##8888888$YYYYYYYVVVVVVVVVYYYYYYYYYYYYVVVV$$$$$$#########################$###################################################################################88888888888#8####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##88#8#88##8#8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%% 8888888888888#88#8#8#88###8#88#88###8##############$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$#$#$#######################################################################################################################################################888888888888888888888888888888888888###########$##$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$##$#############$$VV$$VVYYYYYYYYYYVVxxxxxxxxxxxxxx*******xxxxxxYYYYYYYYVVYVVYYYYYYYYYYYYYYxYVVYYYV#888888888888888888888888888888888888888#Vxxxxxx*x*****==============+++++++++:::::::::::::::+++++++++++=======***xYx**********=========***xxYYYxYYxxxxxx********xxxx******************************************xYYV##8%%%@@@@@@@@@@@@@@@@@@@%%%88#VY*******YVV$$$$$$$$$Y**VVVV*************===================++==+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==*Y$##$YY$$*===================****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxx****xxxx**************=====++++++:::::::::~~~~~~~~=xYYYYYYYYxxxYYYYYYYYYYYVVVVVVYYYV8%%%%%88888888888888888888###################################$$##########$##$###$###$##$######$$#########################################8#888#8#8##88#88888888888#88#888888888888##88#88#88#8#8##888888$YYYYYYVVVVVVVVVVVVYYYYVYVVVV$$$$$$###############################################################################################################8888888888#888###################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888#8#8##88#888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888%8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888%8%%%%%%%%%% 88888888888#88888#8###88#88###8#8###8#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######################################################################################################################################################888888888888888888888888888888888888##############$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$$################$VVVV$VVYYYYYYYYYVVYxxxxxxxxxxxxx*******xxxxxxxYYYYYYYVVVYYYYYYYYYYYYYYYYxxVVYYYY$8888888888888888888888888888888888888888#xxxxx**x*****==============+++++++++:::::::::::::::::+++++++++++=======**xYx*********==============**xxYYYxxxxxxxxxxxxxxxxxxxx***********************************************xxYVV$$##########$$$VVYYxx***********VVV$$$$$V*$$x**xxxx****=********==============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====xV$$V$$Vx====================***************xxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************====++++++:::::::::~~~~~~~~:*YYYYYYYYxxxYYYxxxxYYYYYYYVVVYYY$8%%%%%8888888888888888888###################################$#############$###$#######$#$##$##$####$####################################8888#888888888#8888888#8888888888888#8#8#88#8###8##8##8#88888888$YYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$################################################################################################################888888888888####################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8888##8#888#8888888888888888888%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%%%%%%%% 888888888#8#88#8888#88#8#88##8####8###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$#######################################################################################################################################################8888888888888888888888888888888888888##############$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#################$VVV$VVYYYYYYYYYYVVYxxxxxxxxxxxxx******xxxxxxxYYYYYYYYVYYYYYYYYYYYYYYYYYYxYVYYYYV#8888888888888888888888888888888888888888Vxxxxxx*x*****=============+++++++++::::::::::::::::::++++++++++++=======*xYx**********===============**xYYxxxxxxxxxxxxxxxxxxxxxxx********************************************************************************xVYV$$VYV$x$$x**********=********==============================+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====*xYYYx*=====================************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***========********xxxx*****=====++++++::::::::~~~~~~~~:=YYYYYYYYxxxxxxxxxYYYYYYYVVVYYYY$8%%%%88888888888888888888#################################$$###########$###$######$##$##$#$###$########################################888#8888#8#888888888888#88#8888888888##88#8888#888#8##8#888888888$YYYVVVVVVVVVVVVVVVVVVV$$$$$$#$####8###########################################################################################################888888888#888###################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88##88#888##8#888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%88888888%%%%%%%%% 88888888888888#88#8#####8#8#8#8#8###8##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$$$#$#######################################################################################################################################################8#888888888888888888888888888888888888##############$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$#$###$##$###########$VVV$$VYYYYYYYxxYVVxxxxxxxxxxxxx*******xxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxYVYYYY#8888888888888888888888888888888888888888#Yxxxxxx*******============++++++++++:::::::::::::::::::+++++++++++=======*xYY***********============*********xxxxxxxxxxxxxxxxxxxxxxx******************************************************************************YVY$$$xxV$V$$********************=================================+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===============================**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***============********xxxx*****====++++++::::::::~~~~~~~~~+xYYYYYYxxxxxxxxxxYYYYYYYYVVYYYY#%%%%%88888888888888888888##################################################$#############$############################################888#8#88#888888888888#8888888888888888#88888888#8##888#88888888888$VVYVVVV$$$$$$$$$$$$$$$$$$######88###########################################################################################################888888888888####################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#8#8#888#8##8#888888888888888888%%%%%%%%%%%%%@%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888%888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888%8%8888%%%%%%%%% 88888888888888888888##88#8##8##8#8#88##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$#######################################################################################################################################################888888888888888888888888888888888888888########$##$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$#$################$VVV$VYYYYYYYxxxYVYxxxxxxxxxxxx********xxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxYVYYYYV88888888888888888888888888888888888888888$xxxxxxx******===========+++++++++++::::::::::::::::::::++++++++++++======*xYYx**********=**==*==*=****************xxxxxxxxxxxxxxxxxxxxxx*************************************************************************xVYV$$V*xV$$$$x*******************===================================+++++++++++++++++++++++++++++++++++++++++++++++++++++++=++==================================********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***====++++++++======*****xxxxxx*****====+++++::::::::~~~~~~~~~+xYYYYYYxxxxxxxxxxxYYYYYYYVVYYYY#%%%%888888888888888888888################################$#############$$######$#$###$#####$#$###################################8##8888#888#88#888888888888888#888888888#888#88##8888888##8888888888888#VVVVV$$$$$$$$$$$$$$$$$#####8888############################################################################################################8888888888######################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#88##8#888888888888888888%%%%%%%%%%%%%@@%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%88888888888%%%%%%%%% 88888888888#8##8#8#8#8#88##88##8###8###################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$##$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$$$#$#########################################################################################################################################################8888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$#$###############$VVVV$VYYYYYYYxxxVVYxxxx*xx*xx*********xxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYxYYY#8888888888888888888888888888888888888888#Vxxxxx*x******==========+++++++++++:::::::::::::::::::::++++++++++++======*xYYxx************==********************xxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************************xVYV$Vx*xV$$$$x***********************=====================================+=++++++++++++++++++++++++++++++++++++++++++++++=======+=============================*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**=======+++++++++++====*xxxxxxYYYxx****====+++++:::::::::~~~~~~~~:xYYYYYYYxxxxxxxxxxYYYYYYVVYYYYV8%%%%%8888888888888888888#################################################$##############################################8#8#8########88#8##8#8888888888888888#888888888#888##88#8#888#88#888888888888888#$VV$$$$$$$$$$$$$$######888888#8##########################################################################################################88888888##888###################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8###8#88#888#8888888888888888888%%%%%%%%%%%%%%@%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%8%%%%%%%%% 88888888888888888#88#8##8#8#88#88#8#8##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$############################################################################################################################################################8#88888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$##$################$VVVVVVYYYYYYxxxxVVxxxxxxx*xxx*********xxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxYY$88888888888888888888888888888888888888888#xxxxx*xx*****==========++=+++++++++::::::::::::::::::::::+++++++++++======*xYYx*x*x******************************xxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************************************************************YVYVVVx*xV$V$$V***************************===========================================+==++++++++++++++++++++++++++++++=++==================================*******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*===========++++++++++====*xxxYYYYYYxx****=====+++++::::::::~~~~~~~~:xYYYYYYYxxxxxxxxxxYYYYYYYYYYYYV8%%%%8%888888888888888888##8##8########################################$###$#####$#####################################8###8########8#888#88#88888888888#8888888888888888#888888#88####8#88888888888888888$$$$$$$$$$#$######8888888888############################################################################################################88888888#888##################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#888#8#888#88#88888888888888888%%%%%%%%%%%%%@@%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%88%%%%%%%%% 8888888888888#8#8#8#8888888#888##8##88##################$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$##########################################################################################################################################################88888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#$###################$VVVVVVYYYYYxxxxxVVxxxx***************xxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYxxxYxxxYY#88888888888888888888888888888888888888888$xxxxxxx******==========+++++++++++::::::::::::::::::::::++++++++++++======*xYYxxxxx******************************xxxxxYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************xV$VVVY**xV$VVV$x******************************==========***=============================+=++++++++++++++++++++++++====================================*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****=============++++++======**xYYYxxxxxx*****=====++++:::::::~~~~~~~~~+xYYYYYYYxxxxxxxxxxYYYYYYYYYYYY$8%%%8%%888888888888888888###########8#####################################$#$####$#####################################8#8#8########888#88888888888888888888888888888888##8888#8#8#88888888888888888888888#$$$$$$$######888888888888#############################################################################################################8888888#8#8##################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888#8##88#88888888888888888%%%%%%%%%%%%%@@@%@%@%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%% 888888888888#88#8#888#8##888#8#88##8#####################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$####$$$$$$$$$$$$$$$$$$$$$$$$##$$#$#$####$#######################################################################################################################################################888#8888888888888888888888888888888888888###########$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#$##################$VVVVVVYYYYYYxxxxYVYx*x***x************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYxxxxYxxYYV88888888888888888888888888888888888888888#Vx*xxxxx******==========+++++++++++::::::::::::::::::::::+++++++++++========*YYxxxxxx***********=*====***************xxxYYYYYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**xxxxxxx*******************************************x$$$VYx**YV$$$V$V*********************************************=========================++++++++++++++++++++=====================================**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********=====================***xxxxxxxx*****=======++++:::::::~~~~~~~~~+xYYYYYYxxxxxxxxxxxYYYYYYYYYYYY#%%%8%88%%%%%%88888888888888#######8########8#8########################################################################888#8#######8##888#8#8888#88888#888888888888888888888888#888#8#888888888888888888888##$$$$$###8888888888888888###########################################################################################################888888###88#################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8888888888888888888888%%%%%%%%%%%%@@@@@%%@%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%% 88888888888888#8888#888##8##8##8#88#88##################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#######$$$$$$$$$$$$$$$$$$$$$$$$###$$#$##$##$#####################################################################################################################################################8888888888888888888888888888888888888888888############$$$$$$$$$$$$$$$$$$$V$V$$VVVVVVVVV$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$####################$VVVVVVYYYYYxxxxxYVYx******************xxxxxxxxxxxxxYYYYYYYYYYYYYYYxxxxxxYxxYYY#88888888888888888888888888888888888888888#xxxxxxx******==========++++++++++++::::::::::::::::::::::+++++++++++========*YYxxxxxxx**********=========*************xxYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************Y$$$Vx***Y$$$$$$Vx**************************************xx***********=================+++++++++++++++++++++++============================********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******************xxxxxxxxxxxx*xxxxxxxxxxx******========++++::::::::~~~~~~~~+xYYYYYYxxxxxxxxxxxxxYYYYYYYYYV8%%8%%8%%%%%%%%%888888888#888#8#####8#########8#######################################################################88888#8#8#8##8888##8888888888888888888888888888888888888#88##88#88888888888888888888888####888888888888888888############################################################################################################88888#8#8###################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#888#8#88#8#88888888888888888%%%%%%%%%%%%%@@@@@%@%@@%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% 8888888888#88#8888###8888#8#8888###8####################$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$$###$####$$$$$$$$$$$$$$$$$$$$$$$#$#$#$$$$#$##########################################################################################################################################################888888888888888888888888888888888888888888############$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$$$VV$$VVVVVVVVVVVVVVVV$V$$$$$$$$$$$#####################$VVVVVYYYYYYxxxxxYVYx******************xx*xxxxxxxxxxYYYYYYYYYYYYYYYxxxxxxxxxxYV888888888888888888888888888888888888888888$xxxxxx*x*****=========++++++++++++++:::::::::::::::::::::+++++++++++========*xYxxxxxxxxx*****=*============***********xxYYYYYYYYYYYYYYYYYYxxYxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********xV$$$Vx***YV$$$VVYx***************************xxxxxxxxYYYYYxxxxxxxxx***********========+++++++++++++++++++++++++========*******====********xxxxxxxxxxxxxxxxxxxxxYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYxxxxxxxx*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******==========++++:::::::~~~~~~~~=YYYYYYxxxxxxxxxxxxxxxYYYYYYxY#8%88%%%%%%%%%%%888888888888888#8##8#8#8##############################$##########$####$###############################8888888#8##88888888888888888888888888888888888888888888#888#888#8888888888888888888888888888888888888888888#############################################################################################################888888##888#################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888%%%%%%%%%%%%@@@@@@@%%%@%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% 888888888888#88##88888##8#8##8#88#88#######################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$##$#######$$$$$$$$$$$$$$$$$$$$$$$#$$$########$#####################################################################################################################################################8888#8#88888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$VVV$VVV$$$$$V$$$$$$$$$$$$$$#####################VVVVVVYYYYYxxxxx*YVx*********************xxxxxxxxxxxYYYYYYYYYYYYYxxxxxxxxxxxxY#888888888888888888888888888888888888888888Vxx*xx*x*x****=========++++++++++++++::::::::::::::::::::++++++++++++=========xYxxxx**********================********xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVY$$Y***xYV$$$xx*x************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYxxxxxxx***************===+++++++++++++++++++++++++++=*******************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******==========+++::::::::~~~~~~~~=YYYYYYxxxxxxxxxxxxxxxYYYYxxYV8%8%%%%%%%%8%%%%88888888888#88#####8#########8##############################$################################8###8####88888#88888#888888888888888888888888888888888888888888#8#8#88888888888888888888888888888888888888888888888#############################################################################################################88888#8#8##################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##8888#8888888888888888888%%%%%%%%%%%%@@@@@@@@@%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% 8888888888#88#88#8888#8###888888#8##8##################$####$$#$$$$$$$$$$$$$$$$$$$$$$$$$##########$$$$$$$$$$$$$$$$$$$$$#$##$##############################################################################################################################################################8#8#888888888888888888888888888888888888888888###########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$V$$$$$V$$$$$$$$$$$$#####################VVVVVVYYYYYxxxx**YYx********************x**xxxxxxxxxYYYYYYYYYYYYxxxxxxxxxxxxYV#88888888888888888888888#88888888888888888#Yxxxxxxx******=========+++++++++++++++:::::::::::::::::::++++++++++++=========xYYYYxx**********=================******xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVY$$YxxxxVVx$Vxxxxxxxxxxx**xxxxxxxxxxxxxxxYYYVVVVVVVYYYYYYYYxxxxxxxxxx**************====+++++++++++++++++++++++++**xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxYYYVYYYYYYYYYYxxxxxxxxx**********************xxxxxxxx******===========+++:::::::::~~~~~~:*YYYYYxxxxxxxxxxxxxxxxYYYxxxx$8%%%%%%%%%%%%%%%888888888#8#888#8###################################$##################################8###########888888888#888888888888888888888888888888888888888888#8#88#88#8#888#888##8######88888888888888888888888888888#######################################$####################################################################888888#8##8################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88#888#88888888888888888%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%% 888888888888888##8888#8##8#8888#8#88########################$$$$$$$$$$#$$$$$$$$$$$$$$$$$###$######$$$$$$$$$$$$$$$#$$$$$$$$#$$##$#$####$######################################################################################################################################################88#88888888888888888888888888888888888888888############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$#####################$VVVVVVYYYYYxxx***YYx*********************x*xxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxY#8888888888888888888888888#8888888888888888#xxxxxxxx******=========+++++++++++++++::::::::::::::::::++++++++++++==========xYYYYYx********====================****xYYYYYYYYYYVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$YxxxxVV=$$xxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVVVVVVYYYYxxxx****************************===++++++++++++++++++++++=xxxxxxxxYxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxYYYVVVYYYYYYYYYYYYYYYxxx******************=*********xxxxxxx****==========++++:::::::~~~~~~~:*YYYYYxxxxxxxxxxxxxxxxYYYxxxY8%%%%%%%%%%%%%%%8888888888#8#8#8#####88####8###################################################################8#8##8888888888888888888888888888888888888888888888888888888##888#8##8#8##############88888888888888888888888#8#############################################################################################################8888888##8################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##88888888888888888%%%%%%%%%%%%@@@@@@@@@@@%@%%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%% 88888888888##8#8#8888##888#8#8888###8########################$$$$$$$$$#$$$$$$$$$$$$$$$$$####$#####$$$$$$$$$$$$$$$$$$$$$$$####$############################################################################################################################################################888#88#8888888888888888888888888888888888888888############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################$VVVVVYYYYYxxx****YYx**********************xxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888Vxxxxxxx*******========+++++++++++++++:::::::::::::::::::++++++++++++==========xYYYYYYx****=========================**xxYYYYYxxxYYVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYxYY$$#VYxxxYV$*$$YxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVVVVVVYYxxx*****=======++++=========************===+++++++++++++++++++*YYYYYYYYYYYYYYYYVVV$$$$$$VVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxYYYYYVVVYYYYYYYYYYYYYYYYYYxxx**********===========********xxxxxxx****=========++++::::::::~~~~~~:xYYYYYxxxxxx*xxxxxxxxxYYxxxx$8%%%%%%%%%%%%%%%88888888888888#8#8#8#######8###############################################################8#8#88#88888888888888888888888888888888888888888888888888888888888#8#8#####################888888888888888888888##############################################################################################################888888####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888#8888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%% 888888888888#8#888#8#8#88#8#88####8##8#####################$$$#$$$$$#$#$#$$$$#$$$$$$$$$$#####$####$$$$$$$$$$$$$#$$$$$$$#$###$###$#########################################################################################################################################################8#888888888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################$VVVVVYYYYYxxx****YY***********************xxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxY$8#88888888888888888888888888#88888888888888Yxxxxxxxx******=======+++++++++++++++++:::::::::::::::::+++++++++++++==========xYxYYYYx*****=========================****xxxxxxxxxYYVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$#$VYYYYY$$*$$YxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVYYxxxxx******=====+++++++++++++++++===**********===++++++++++++++++=YYYYYYVVVV$$$################$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYVVVVVVYYYYYYYYYYYYYYYYYYYYxxxx********============*********xxxxxxx****=======+++::::::::~~~~~~~+xYYYYxxxxx*x****xxx**xYYxxxY8%%%%%%%%%%%%%%8888888888888#8#8#######8##############################################################8888##8#888#8#88888888888888888888888888888888888888888888888888888#888888#####8#################8888888888888888888###########################################$###################################################################8888#####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888##888#8888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%% 8888888888#8#88#8#8888#8#8888#8##888########################$$#$$##$$$$#$$$$$$$#$$##$$$######$####$$$$$$$$$$$$$$$$$#$$$###$###$#############################################################################################################################################################88#88888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########88888888#888#$VVVVVYYYYxxxx****YY***********************xxxxxxxxYYYYxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888#88888888888888#Yxxxxxxx******========++++++++++++++++:::::::::::::::::++++++++++++++==========xYxxxYxxx*****=========================********xxxxxxxYV$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#$VYYYYY$Y=$#VYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVYYxxxxxxx******=====++++++++++++++++++++++===*********==+++++++++++++=YV$$$$##################################################$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx*x**x***===************x*xxxx*******===++++::::::~~~~~~~~=YYYYxxxxx********x**xxYxxxx$8%%%%%%%%%%%%%%8888888888888888#####################################################################8##88#8#88#888888888888888888888888888888888888888888888888888888888888#8#8####8##################8888888888888888888#8############################################################################################################8888#8###################################################################88888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%% 88888#8#8#8#8#888######8#8#8#8#88#8#8######################$#$$###$$##$$$$$#$$$$#$$$$$$######$$###$$$$$$$$$$$$$$$#$$$$$###################################################################################################################################################################8##888888888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8888888888888$VVVVVYYYYxxxx****Yx*===*******=***********xxxxxxxYYYxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888#888888888#xxxxxxxxx*****=======+++++++++++++++++:::::::::::::::::++++++++++++++=========*YYxxxxxxxx*****========================****************xV$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVVVYYVV$$$$VVVVVVV==$$VYYYYVVYVVVVVVVVVVVVVVVVVVVVVYYxxxxxxxxx*****======++++++++++++++++++++++++++===********==+++++++++++V##############################################8###88#####$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx******xxxxxxxxxxxxxxx*******==+++:::::::~~~~~~~~*xYYxxxx**************YYxxxY8%%%%%%%%%%%%%%888888888888###8#8#8#88###############################################################8#888888##8888888888888888888888888888888888888888888888888888888888888888#8#######################888888888888888#8##############################################################################################################888888##################################################################88888888888888888888888888888%888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888#88#8888888888888%%%%%%%%%%%%@@@@@@@@@@@@%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%% 888#88#8888#8###88#8##88###8#8#888888######################$$$#####$##$$###$#$#$$$$$$$$######$$$##$$$$$$$$$$#$#$$$$$$$$##$$##$######$####################################################################################################################################################8#88#8##888888888888888888888888888888888888888888##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8888888888888$VVVVVYYYxxxx*****Yx*====******=**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888#8#8888888888888$xxxxxxxx******=======++++++++++++++++++::::::::::::::++++++++++++++++=========xYxxxxxxxxx******=====================********************xV$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$VVVVVV$VV$VVVVV$$$$#####88###$$$VVVVVYYxxxxxxxxxxx******=====++++++++++++++++++++++++++++++===*******==+++++++++V#################################################888#8#888#$VYYYYYYYYYYYYYYxxxxYYYYYYYVVYYYYYYYYYYYYYxYxxxxxxxxxx*****xxxxYYYYYYYYxxx******===+++::::::~~~~~~~~:*xxxxxxx*************xYxxxx#8%%%%%%%%%%%%%888888888888#8###888#8##############################$#################################888#88#88888888888888888888888888888888888888888888888888888888888888888#88#8#######################88888888888888#######################################$########################################################################88###8#8###############################################################8888888888888888888888888888%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%% 888#8#888##8888##888#8#8#8#88#88#88888######################$$###$$###$#$#$$$#$$$#$##$$#$###$$$$##$$$$$$$$$$$$$$$#$$#$#$################################################################################################################################################################8##88888#888888888888888888888888888888888888888888##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########8##8#8888888888$VVVVYYxxxxxx*****xx*====****===**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#8#88888888888888888888#888###8#888888888888Vxxxxxxxx******=======++++++++++++++++++:::::::::::+++++++++++++++++++========*YYxxxxxxxxx******========================*==****************YV$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VV$V$$$$$$$$$$$$$$$$$$$$$####$$$$$$$$$$$$$$$$$$$$$$$$$$$##8888888888888888888#$VYYxxxxxxxxxxxxxx******=====++++++++++++++++++++++++++++++++====*****==+++++++V##############################################8####88888#888##$VYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxxxx***********xxxxYYYYYYYxx******==++++:::::~~~~~~~~~+xxxxxxx**************xYx*x$8%%%%%%%%%%%%%%8888888888888##8#88##8#88############################$####$##$#######################88#888888888888888888888888888888888888888888888888888888888888888888888888###########################88888888#8##############################################################################################################8#8888####################################################################888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888888888888888888888888888#8888888888#8888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%% 8888888##8#8#8888####8##8#88#88#8#888#8####################$$#$###$$#######$#$#$$$#$#$$######$$$$##$$$$$$$$$$$$#$$$#$#$$###$##############################################################################################################################################################8##8888888888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########8####888888888$VVVVYYxxxxxx*****xx======*======*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$#8888888888888888888888888888#8#888888888888Yxxxxxxx*******=======+++++++++++++++++++::::::::::+++++++++++++++++++=======*xYYxxxxxxxxx*****==================******=====****************xY$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###88888888888888888888888888888888888888888888888888888888#$Yxxxxxxxxxxxxxx******======++++++++++++++++++++++++++++++++++====****==+++++V###############################################88##8#8888888888#$VVYYYYYYYYYxxxxxxxxxxxxxxxxxxYYYYYYYYYYYxxxxx*****************xxxYYxxx*****===++++:::::~~~~~~~~~=xxxxxxx**************xx**V8%%%%%%%%%%%%%%8888888888888####8##8#8##8#########################$#$######$##$######################88888888888888888888888888888888888888888888888888888888888888888888888#8####88######################8#8888#88####################################$#####$##############################################################8##8#8##888###################################################################8888888888888888888888888888%%88888888888888888888888888#88888888888888888888888888888888888888888888888888888888#8888888#888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%% 888#8#8888#8#8####8##88#88##8#888##888##################################$$#$$#$##$$##########$$$$#$$$$$$$$$$$$#$##$$$##$$#################################################################################################################################################################8#88888888888888888888888888888888888888888888888##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########888888888888$VVVVYxxxxxx******xx=============*********xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxY##8888888888888888888888888#8#88#88#88888888#Yxxxxxxxx*****========+++++++++++++++++++:::::::::+++++++++++++++++++=======**YYYxxxxxxxxx*****==================****x************************xV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##888888888888888888888888888888888888888888888888888888888888#Yxxxxxxxxxxxxxx*****======++++++++++++++++++++++++++++++++++++=====***=+++=V################################################8#8#8888888888888##$VVYYYYYYYxxxxxxxxxxxx******xxxYYYYYYYYxxxx******===========*=***xxx******===+++::::::~~~~~~~~:*xxxxxx***************x**Y88%%%%%%%%%%%%%888888888888#8#88#8#8#8##############################$#######$##$####################88888888888888888888888888888888888888888888888888888888888888888888888#8#8#############################8#8######################################$####$$######$###$###################################################8#8#######88###8###############################################################88888888888888888888888888888%%88888888888888888888888888#8888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%% #88##8#88#88#88##88####88#88#88888#8#################################$##$$$################$#$#$$$$$$$$$$$#$#$$#$#$####$#################################################################################################################################################################88#8888#88888888888888888888888888888888888888888888#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############88888888888$VVVVYxxxxx*******xx============**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV###888888888888888888#8888#888##88#888888888#xxxxxxxxx*****========+++++++++++++++++++:::::::::+++++++++++++++++++======**xYYYxxxxxx********==================****xxxxxxxxx*****************xV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888888888888888888888888888888888888888888888888888888888888888#YxxxxYYxxxxxxx******=====++++++++++++++++++++++++++++++++++++++=====**=++=$#################$###$$$#$####$$$###############8888888888888########$$VYYYYYYxxxxxxxxx*x**********xxxYYYYYYYxxx****================**********==++++::::::~~~~~~~~+xxxxxxx**************xx*x#8%%%%%%%%%%%%%8888888888888#8#8#8##88#88###############################$########$#$################8#8888888888888888888888888888888888888888888888888888888888888888888888888##88##8#######################88#8########################################$##############$###############################################8##########888##################################################################888888888888888888888888888888%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%% 88#8#8#8#888#8#88##888#8####8##8#8#88#######################$##$##$#######$###########$######$$$$$$$$$$$$$#$#$$###$$######################################################################################################################################################################8#888888#8888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8#8#888888888$VVVVYxxxxx*****==xx============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxx$##88888888888888888888888888#88##88888888888$xxxxxxxx******=========++++++++++++++++++::::::::+++++++++++++++++++=====***xYYYxxxxxx**********=================****xxxxxxxxxx******************Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##88888888888888888888888888888888888888888888888888888888888888888888888888$YxxYYYxxxxxxx*****======++++++++++++++++++++++++++++++++++++++++=====*=*V####################$#$$$$$$$#$$$$$################888888################$VYYxxxxxxxxx*xx***************xxYYYYYYYYYxxx**===============********===++++:::::~~~~~~~~:=xxxxxx***************x**V88%%%%%%%%%%%%88888888888888#8#88###8###################################$##########$###############8#888888888888888888888888888888888888888888888888888888888888888888888#88##8#8###########################888#####8################################$##$$##$#####$##$##$#$#################################################888##88##################################################################8888888888888888888888888888%%88888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%% #8#8#8#8##88#8#8888##8##88#######8##8########################$######$#$###$$#####$#$##########$$$#$$$$$$$#$$#$$###$$$#$#####$############################################################################################################################################################8#88888888888888888888888888888888888888888888888888#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########88#8888888888$VVVYYxxxx*****===*x=============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxY###888888888888888888888#8888#8##8#8#88888888$xxxxxxxxx*****=========++++++++++++++++++++:::::+++++++++++++++++++====****xxYYYxxxxx***********=================*****xxxxxxxxx*******===*********xV$$$$$$$$$$$$$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888#$YYYYYYxxxxxx*****=======++++++++++++++++++++++++++++++++++++++++++====V$#################$#$$$$$$$$$$$$$$VV$$$######################################$Yxxxxxxxxx*x******************xxYYYYYYYYYYYYx**=============******====+++:::::::~~~~~~~:*xxxxx****************x*Y#8%%%%%%%%%%%%88888888888888888##8888################################$#$###$$##$###################88888888888888888888888888888888888888888888888888888888888888888888888888888##88#8#####################8#######################################$$##########$#$######################################################8#8#8#8###8##################################################################8888888888888888888888888888%%%888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%% 8##888#88#888##8#8#8#8#88##88888#88#8###8##################################$#####$$##########$##$#$$$$$$#$$#$$$######$$#$################################################################################################################################################################8888#8888#888888888888888888888888888888888888888888#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########88#8888888888$VVYYYxxxx*****===*x=============************xxxxxxxxxxxxxxxxxxxxxxxxxxxxV##888888888888888888888888#888####8##88888888$xxxxxxxxx******=======+=+++++++++++++++++++:+:+:+++++++++++++++++=+===*****xYYYYxxxxx***********============***=**********xxxxxx******======*******xV$$$$$$$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYxxxxxxx****=*====+++++++++++++++++++++++++++++++++++++++++++++==V$##############$###$$$$$$$$$$$$$$$VVVV$$$######################################$VYxx***********************==**xxYYYYYYYYYYYYxx***=========*****=====+++::::::~~~~~~~~=*xx*x************x***xxx$88%%%%%%%%%%%%8888888888888####8#8##88################################$##########$#################888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8#8#888####################8#####8#############################$#####$##$$##$#################################################################8#8##################################################################88888888888888888888888888888%888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%% 8##8888###88###8###8888#8#888##8#88888########################$##$###$####$##$###$$##########$##$#$$$$$$$$###$####$#$######################################################################################################################################################################888888888888888888888888888888888888888888888888888########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8##888#8888888#VYVYYxxxx*****===*x==+=========*************xxxxx*xxxxxxxxxxxxxxxxxxxxxx$##8888888888888888888888#888#8###8#8888888888Vxxxxxxxxx******========+++++++++++++++++++++++++++++++++++++++++++====****xYYYYYxxxxx*********=*============****************xxxxx****===========*****V$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYxxxxxxx****=======++++++++++++++++++++++++++++++++++++++++++++++xV#############$####$$$$$$$$$$$$VV$$VVVVVV$$#######################################$Vxx***********************===**xYYYYYYYYYYYYYxxx***=====******=====+++::::::~:~~~~~:*****************x****xxY888%%%%%%%%%%%8888888888888888#8##88####8###########################$##$###$#$####$$###############888888888888888888888888888888888888888888888888888888888888888888888888#888#88888888##############88#####################################$#####$##$##########$#$#$#$#####################################################8#8##8##8############################################################8888888888888888888888888888888888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%% #8##8##88##8#88##8#8#8#888#8##8888##8################################$######$##$$##$#########$$#$$$$$$$$$$##$##$#$$######################################################################################################################################################################8##8#88888888888888888888888888888888888888888888888#########$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########888888888888#VYYYYxxx******====x=++==========*=**********xxxxx**xxxxxxxxxxxxxxxxxxxxx##8888888888888888888#8888#8888##88#8888888888Vxxxxxxxxx******========++++++++++++++++++++:++++++++++++++++++++=====****xxYYYYYxxxxx****====================***************xxxxxx***============*===*V$$$$$$#####888888888888888888888888888888888888888888888##88##888888888888888888888888888888888888888888888#$VYYxxxxxxx*******====+++++++++++++++++++++++++++++++++++++++++++++=x#############$$#$$$$$$$$$$$VVVVVV$VVVVVVVV$$#######################################$VYx*********************=*====*xYYYYYYYYYYYYYYxxxxxx**********===+++::::::::~~~~~~=*********=*******x***xxx$88%%%%%%%%%%%8888888888888888##88#8##8####################################$#######################888888888888888888888888888888888888888888888888888888888888888888888888888#8#88888888888#############8#8###################################$##$#############$$#$#$##$#$#############################################8########################################################################888888888888888888888888888%%%888888888888888888888888888888##8#8888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%% #8#8##8##8##8##8#8##8##888##88#88##88##########################$##$####$##$#####$####$#######$$####$$$$$$$$##$####$########################################################################################################################################################################8#88888888888888888888888888888888888888888888888#8##########$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$######88#88888888888#VYVYYxxx*******===*=+++===========**********xxxx**xxxxxxxxxxxxxxxxxxxxxY##8888888888888888888#888#88########8888888888Vxxxxxxxx********=======++++++++++++++++++++++++++++++++++++++++======****xYVYYYxxxxxxx**=====================****************xxxxxx**===============***Y####8888888888888888888888888888888888888888888888#88#8###########88#8#8888888888888888888888888888888888888#$$VVVVVVVV$$VVVVVVVYYxx**==+++++++++++++++++++++++++++++++++++++++*##############$$$$$$$$$$$VVVVVVVVVVVVVVVVVV$$#########################################$Vx***********************====*xYYYYYYYYYYYYYYxYYYYYxxxx******==+++::::::::~:~~~+=**********==*********xxV888%%%%%%%%%%888888888888888#88#888#8#####################################$########$##############888888888888888888888888888888888888888888888888888888888888888888#888888#88888888888888888#8######8####################################$##$#######$#$###$#$#$#$#######################################################8#8#8#################################################################8888888888888888888888888888%88888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%% #88####88#8##88#88###8####8##88##8###8########################$###$###########$#$################$#$$$$$$$$###$#$##$$####$###############################################################################################################################################################888888888888888888888888888888888888888888888888888#8#########$$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############888888888888VYVYxxx********===*+++++===========********xxxxx***xxxxxxxxxxxxxxxx*xxxV##88888888888888888888888888##8######888888888Vxxxxxxxxx*******=======++++++++++++++++++++++++++++++++++++++=======****xYVVYYYxxxxxxx*=======================***************xxxxxx***===============***V8888888888888888888888888888888888888888888888888#8##8##############8####88888#88888888888888888888888888888888#####$#$$###########$$$VVYx*=++++++++++++++++++++++++++++++++++=$#############$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$#$#######################################$VYx***********************===*xxxxxxxYYYYYYYYYYYYYYYxxxx****==++::::::::::~~~:=*********===*********xxY#88%%%%%%%%%%%888888888888888##888#8#####################################$#$#######$#$#######8###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888#8#####8######8#############################$##$$$######################$#####################################################################################################################8888888888888888888888888888%%8888888888888888888888888888888####8888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%% #8##88#8##8##8####8#8#88#8##88##8#88#8################################$##$##$####################$$##$$$$$#$####$##########################################################################################################################################################################88888888888888888888888888888888888888888888888888##########$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########88888888888888VYYYxx********====*++++++==========********xxxx***xxxxxxxxxxxxxxxx****x$##88888888888888888#88#88888#####8##8888888888Yxxxxxxxxx*******=======+++++++++++++++++++++++++++++++++++++========****xVVYVYxxxx*xx**=======================***************xxxxxxx**================**x$888888888888888888888888888888888888888888888###88########################88888#8#888888888888888888888888888######$$$$$$$$$$$$$#########$$Vx*=++++++++++++++++++++++++++++++=$#############$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVV$$$###############################$##########$Yx**********************===*xxxxxxxxxxYYYYYYYYYYYYxxxx****==++::::::::::~~~+=********=====*******xxx$888%%%%%%%%%%888888888888888##8##8#8#############################################################888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888#888#88#8##################################$#$##$##$####$$#$$$#$###$##$##$##$###########################################888###################################################################88888888888888888888888888%%8888888888888888888888888888888#88#####88888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%% #8#88#8#88##8#888##888##8#8#8##88##88##################################$$######################$##$$#$$$#$##$##$$#$######################################################################################################################################################################8#888888888888888888888888888888888888888888888888888#########$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########8888888888888$YYYxx********=====++++++==========********xxxx*****xxx*xx*xxxxxx*****x##8888888888888888888#8#8##88#8######8888888888Yxxxxxxxxx*******========+++++++++++++++++++++++++++++++++++========****xYVVVVYxxxxxx*x**=======================********xxx****xxxxxx***====+++========***x#8888888888888888888888888888888888888888888####8###########################8888888#888888888888888888888888########$$$$$$$$$$$$$$$##########$$Vx*++++++++++++++++++++++++++++V##############$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVV$$##################$##############$##########$Yx****==*****************=*xYxxxxxxxxxxxYYYYxYYYxxxxx****=+++:::::::::~~~:=********=====*******xxxY888%%%%%%%%%%8888888888888888#88#8################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8####8################################$##$$###$##$###$$##$####$#$##$#################################################8################################################################888888888888888888888888888%%88888888888888888888888888888#88#8####888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%% #88#88#88#88#8##88#88#88#88##8#88##88#8######################################################$#$###$$$#$$$#$###$######################################################################################################################################################################8###8888888888888888888888888888888888888888888888888888#########$###$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############888888888888$YYYxx********===+=++++++============*****xxxxx****x*xxxxxxxxxx*******Y##8888888888888888888#8##8#88########8888888888Yxxxxxxxxx*******========+++++++++++++++++++++++++++++++++=========****xxVVVVVYxx*xxxx***=======================********xxxxxxxxxxxxx***==++++++========***V888888888888888###88888888888888888888888888######8###########################88888#888888888888888888888888#########$$$$$$$$$$VVVVV$$$$########$Vx=+++++++++++++++++++++++++Y##############$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVVVV$$#$################################$##########$Yx****=*******************YYYxxxxxxxxxxxxxxxxxxxxxx****==++:::::::::~~~~+=*******=====**x****xxxY#888%%%%%%%%%8888888888888888#888#88#################################$#######$##################888888888888888888888888888888888888888888888888888888888888888888#8888888#8888888888888888888888888##88####################################$###$########$$#$#####$###$###$##########################################8###################################################################8888888888888888888888888888%8888888888888888888888888888888#8#####8#88888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%% 88####88#8#88####88##8#8#8#8##8##88##8##################################$######$#############$####$$$$#$$#$##$#$##########################################################################################################################################################################8#8888888888888888888888888888888888888888888888888############$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########8888888888888$YYYx*********===+=++++++============*****xxxx******x**xxxx*xxxx******V##88888888888888888888#888#8#8#######8888888888Vxxxxxxxxx*******========+++++++++++++++++++++++++++++++===========***xxYVVVVYxxxx********======================********xxxxxxxxxxxxxx**==+++++++=======***Y#888888888888######8888888888888888888888888##################################888#8##8#88888888888888888888###########$$$$$VVVVYYYYYYYYYVV$$#######$Y*+++++++++++++++++++++++Y##############$$$$$$$$$$$$VVVVVVYYVVVVVVVVYVYVVV$$#####################$#############$##########$Y************************YYYYxxxxxx*x***xxxxxxxxxx****==++:::::::~~~~~:==***=**======*x****xxxx$888%%%%%%%%%88888888888888888###8##############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88################################$#$##$####$######$#####$#####$##$#$#########################################8########8###########################################################88888888888888888888888888%%8888888888888888888888888888888#8########8888#888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%% 8#8#88#88#8##8#8#8#8#88##88####88#8#8######8################################$################$#######$###$########$#####################################################################################################################################################################8#8888888888888888888888888888888888888888888888888888###################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########8888888888888#YYYx********====+=++++++============******xxx*************xx********x$#8888888888888888888#8#88888#8######88888888888Vxxxxxxxxx********========+++++++++++++++++++++++++++++===========****xxVVVVYxxxxxx********=====================*********xxxxxxxxxxxxx***==+++++++=======**x$8888888888##########88888888888888888888888####################################8#8#####8888888888888888888###########$#$$VVVYYYYYYYYYYYYYYYV$$######$Y*+++++++++++++++++++++x##############$$$$$$$$$$$$$VVVYYYYVVVVVVYYYYYYVVV$$#$#####################$#$###########$#########Vx***********************xYYYYxxx*********xxxxxxx****==+++::::::~~~~~:===**==**=====*x****xxxxV888%%%%%%%%%88888888888888888##8#8#8#######################################$###################8888888888888888888888888888888888888888888888888888888888888#888888888888888888888888888888888888888888#############################$####$####$#####$$$$#$######$###$#################################################8################################################################8888888888888888888888888%8%%88888888888888888888888888888888##########8888#88888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%% ########8#8#8#8######8###88#8#8##88#8##8#################################$##########################$$$$#$#########$#####################################################################################################################################################################88888888888888888888888888888888888888888888888888888###########$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########888888888888#YYYx*******=====++++++++============******xxx**************x********x##888888888888888888888#####8#########8888888888Vxxxxxxxxx********========+++++++++++++++++++++++++++=+===========***xxYVVVYxxxx*x**********==========**========*********xxxxxxxxxxxx****==++++++++======***V#8#88888#8###########888888888888888888888888#######################$#####################88888888888888888##########$$$$VVVYYYYYYYYYYYYYYxYYYV$$#####$x=+++++++++++++++++++*$##############$$$$$$$$$$$$$VVYYYYYVVVVVYYYYYYYVV$$$#$##$################$$$$######################$Yx**********************xYYYYYxx*****************====+++::::::~~~~~~+===*=========**x***xxxxY#888%%%%%%%%888888888888888888#8#8#####################################$#$#$###################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8##########################################$$##$$####$#######################################################88###############################################################88888888888888888888888888%%8888888888888888888888888888888888#########8888#88888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%% 88#88#88#88##8#88#8#8###8#########888#8#8########################################################$#$##$#####$#$######$###################################################################################################################################################################88#88888888888888888888888888888888888888888888888888##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############8888888888888YYYxx****=======++++++++============*******x************************x##888888888888888888888#888#8########88888888888$xxxxxxxxx********=========++++++++++++++++++++++++++===========*****xxVVVVYxxxx***********===========***=======*********xxxxxxxx**x*****==+++++++++=====***x#888#8#8###############8888888888888888888888####################$#$$$#$###################8888888888888888###########$$$VVVVYYYYYYYYYxxxxxxxxYYYV$$###$V*++++++++++++++++++=$##############$$$$$$$$$$$$$$VYYYYYVVVVVYYYYYYYYYV$$$####$#$##############$$$$$$$$########$$#$#######$Y***********************xYYYYYxx**************=====++++::::~~~~~~~:=============**xx**xxxxx$888%%%%%%%%%88888888888888888#88#8########################################$##################8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888#8##########################$########$#$##$#$###$#$#$$#$#$########$#########################################8####8###########################################################8888888888888888888888888%8%88888888888888888888888888888888#8#8########88#888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%% 8#8888###88#8##########88###8######888##############################################################$#############$#####################################################################################################################################################################888888888888888888888888888888888888888888888888888888####################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########88888888888888VYYxx***========++++++++============******x*************************Y##888888888888888888#888##8####8#####88888888888#xxxxxxxxx********==========+++++++++++++++++++++++=+===========*****xYVVVYxxxxxxx*******=============****=====***********xxxxxxx********==+++++++++=====****$########################8888888888888888888888##################$$$$$$$$####################8888888888888888#########$$$VVVVVVYYYYYxxxxxxxxxxxxxYYVV$###V*+++++++++++++++++=$############$##$$$$$$$$$$$$$VVYYYYVVVVVVYYYYYYYYVV$$$$####$##############$$$$$$$$$$######$#$$########$Vx**=====*************==*xYVYYYxx********=*========+++::::~~~~~~~:+=============**x**xxxxxV888%%%%%%%%%888888888888888888#8############################################$#$#############8#8#888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888888888888888888#########################$####$####$$$#$#$#$$$#$$#$$##$$$########$########################################8################################################################888888888888888888888888%8%888888888888888888888888888888888##############88#88888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%% ###8#####8#########8####8#8##8#888#88##########################$####################################$$#$##########$####################################################################################################################################################################8#888#8888888888888888888888888888888888888888888888888##################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$############8888888888888$YYxx***========+++:++++==============******************************V##8#888888888888888888888####8######888888888888#Yxxxxxxxx*********=========+++++++++++++++++++++++=============****xxYVVVxxxxxx*********=============******===***********xxxxxxx**========++++++++++====****V#####8##############$####8888888888888888888888#################$$$$$$$$$$$#################8#88888888888888888#####$$$$VVVVVYVYYYYxxxxxxxxxxxxxxxxYYV$##V*+++++++++++++++++V###############$$$$$$$$$$$$$$VVYYYYVVVVVYYYYYYYYYV$$$#####$#$############$$$$$$$$$$$$#$##$#$$$$#$######$x*=======*********=*====*YYYYYYxx******==========+++:::::~~~~~~~+=============**xxxxYYxYY888%%%%%%%%%888888888888888888###8############################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#############################$#$$##$#$$###$#$$$$#$#$#$$$#$####$#$$$#########################################################################################################888888888888888888888888%888888888888888888888888888888888888################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%% ##8###########8###8######8###8########8############################################################$###$$##$#############################################################################################################################################################################88888888888888888888888888888888888888888888888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$############8888888888888#YYxx***=========++::+++==============******************************$####8888888888888888888###8###8######88888888888#Yxxxxxxxxx*******==========+++++++++++++++++++++++=============****xxVVVYxxxxxxx****=*==*============************xx*******xxxxxx**========+++++++++++====***x#################$$$$$$###8888888888888888888888##############$$$$$$$$$$$$$$$$$###############88888888888888888888####$$$VVVVYVYYYYYxxxxxxxxxxxxxxxxxYYV$#V=++++++++++++++++Y################$$$$$$$$$$$$$$VYYYYVVVVVVYYYYYYYYYV$$$$########$########$$$$$$$$$$$$$$$$#$$$$$#$$#$#####$Y*========*******=======*xYYYYYxx******==========++:::::~~~~~~~:=============**xxxxYYYYY#888%%%%%%%%8888888888888888888888############################################################8888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888888888888888888################################$#####$##$#$#$$#$#$$$$$$$$##$############################################################################################################888888888888888888888888%%%88888888888888888888888888888888888################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%% #######################8########8#88#88############################################################$$$###$###############################################################################################################################################################################8#888888888888888888888888888888888888888888888888888######################$#$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########88888888888888#Yxxx**==========++::+++==============******************************$####888888888888888888##8############88888888888#Vxxxxxxxx********==========++++++++++++++++++++++============******xxVVVYxxxxxxxx***================***********xxxxx******xxxxxx*==========+++++++++++===***x$#############$$$$$$$$$$####88888888888888888888################$$$$$$$$$$$$$$$$$$#############8888888888888888888888##$$$VVVVYYYYYYYYxxxxxxxxxxxxxxxxxYYV$Y=+++++++++++++++x#################$$$$$$$$$$$$$VVYYYYVVVVVYYYYYYYYYYV$$$##$##############$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####Vx==========******=======*xYYYYYxx******========++:::::~~~~~~~:=============**xxxYYYYYY#888%%%%%%%%%888888888888888888##8##########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8############################$$#$#$####$#$#$$##$$#$##$$#$#$##$#$$$#$#####################################8#8#############################################################88888888888888888888888%%8%8888888888888888888888888888888888##################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%% 8##88##8##############8##8#########8888##############################################################$###################################################################################################################################################################################8#888888888888888888888888888888888888888888888888888#####################$###$$$$$$#$##$#$$#$$$$#$$$$$$$$$$$$$$$$$#$##############888888888888888Yxxx**==========++::+++==============****************************=x$####888888888888888888#8############8888888888888$xxxxxxxxx********=========+++++++++++++++++++++=============*****xxYVVVYxxxxxxxx***=========****==***********xxxxxxx******xxxxx*==========+++++++++++++==***Y#############$$$$$$$$$$$####88888888888888888888##############$$$$$$$$$$$$$$$$$$$$###############88#88888888888#8##8####$$VVVYYYYYYYYYYxxxxxxxxxxxxxxxYYYVVx+++++++++++++++x#################$$$$$$$$$$$$$$VYYYYVVVVVVYYYYYYYYYVV$$$$$##$###$######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$Y===========******=======*xYYYxxxx******======+++::::~~~~~~~:+============***xYYYYYYY$888%%%%%%%%%8888888888888888888##############################################################88#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##################################$$###$$$$#$$$#$$$$$$$#$#$#$$##########################################8################################################################8888888888888888888888%%88888888888888888888888888888888888888################88888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%% ###########8##8##8###############8##88######8######################################################$$##############$###################################################################################################################################################################8#88888888888888888888888888888888888888888888888888#888####################$#$#$$$$#$#$$#$#$$$#$$$$$#$$$$$$$$$$$$$$#$#$$###########8#88888888888888Vxxx**==========+++:+++=============******=*********************==x$####88888888888888888888############888888888888##xxxxxxxxx********=========+++++++++++++++++++++=============*****xxVVVVYxxxxxxxx***==========****************xxxxxxx******xxxxx**=========+++++++++++++==***x$############$$$$$$$$$$$$####88888888888888888888#############$$$$$$$$$$$$$$$$$$$$$####################8#88888#88###8######$$VVVYYYYYYYYYxxxxxxxxxxxYxYYYYYV=++++++++++++++*##################$$$$$$$$$V$$$VVYYYYVVVVVYYYYYYYYYYV$$$$$$$$$####$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$Y*============****========*YYxxxxxx**xx*======++::::~~~~~~~~+=+==========***xYYYYYYYV888%%%%%%%%%8888888888888888888#############################################$############8#8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88########################$##$#$$#$##$$#$$#$$$#$#$$#$#$###$#####$####################################88#############################################################8#888888888888888888888%%%%88888888888888888888888888888888888##################8#888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%% ######################8##8#####8####8#8############################################################$$###################################################################################################################################################################################8##8888888888888888888888888888888888888888888888888888######################$$##$$$$$$##$$$$$#$$$$$$#$$#$#$$$$#$$$#$$#$$############88888888888888$xxx**==========++:::++=============******=*********************==Y#####888888888888888888#8#8##########8888888888888#Yxxxxxxxxx*******=========++++++++++++++++++++++============*****xYVVVVYxxxxxxxx***==========****************xxxxxxxx**x*********==========+++++++++++++=***xV##########$$$$$$$$$$$$$$$$###88888888888888888888###########$$$$$$$$$VVVVVVVVV$$$$$#########################88##8888##88####$VVVYYYYYYYYYYxxxxxxYYYYYYYYYYVx++++++++++++++=$###############$##$$$$$$$$$VVVVVYYYYVVVVVYYYYYYYYYYYV$$$$$$$####$$#$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####$V*============*xx**====***xYYxxxxxxxxxx*====+++::::~~~~~~~~+============***xYYYYYYYY888%%%%%%%%%88888888888888888888############################################################88#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888############################$#$$######$$$$$$#$$#$$##$$$$$#$######$####################################8##8##########################################################88888888888888888888888%8%8888888888888888888888888888888888888##################888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%% ##########8###############8#######8#888####8#######################################################$$##$##############################################################################################################################################################################8###88888888888888888888888888888888888888888888888888#8###########################$$$$$$$#$$#$$#$#$#$#$$$$$#$$$$$$##$##$#############888888888888888#Yxxx*==========++:::++=============******=********************===V$####88888888888888888#88###########8888888888888##Yxxxxxxxxx*******=========+++++++++++++++++++++============*****xxYVVVVYxxxxxxxx***=========***x********xxxxxxxxxxxxxxxx**********=========+++++++++++++=***xx$#########$$$$$$$$$$$$$$$$$###88888888888888888888###########$$$$$$VVVVVVVVVVVVV$$$$#########################8###8##8#####888#$YYYYYYYYYYYYYxxxYYYYYYYYYYYVV*+++++++++++++=$##################$$$$$$$$$VVVVVVYYYVVVVVVYYYYYYYYYYV$$$$$$$$$####$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$V*============*YYYx*====*xYYxxxxxxxxx***==+++++:::~~~~~~~~:+=+=========***xYYYYYYYY#88%%%%%%%%%88888888888888888888##8#8######################################################8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##############################$#$#$#$$#$#$#$$$$$$#$#$#$$#$$##$#$#$$###############################################################################################8##8888888888888888888888%888888888888888888888888888888888888888##################888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%% #################8##8##########8###888#88############################################################$###################################################################################################################################################################################88#88888888888888888888888888888888888888888888888888#######################$$##$$#$##$#$$##$#$$$#$$#$#$$$$##$#$$$$#$###############888888888888888Vxxx*==========++:::++=============*****==********************===$$####88888888888888888888###########8888888888888##Yxxxxxxxx*********========+++++++++++++++++++++============*****xxYVVVVYxxxxxxxx***==========**xxxxx***xxxxxxxxxxxxxxxxxx**********=========++++++++++++=***xxV#########$$$$$$$$$$$$$$$$$$####8888888888888888888#######$$$$$$$$$VVVVVVVVVVVVVVV$$$###################################888#888#VxxxxxxxYYYYYYYYYYYYYYYYYYVVV*++++++++++++=V################$##$$$$$$$$$VVVVVYYYYVVVVVYYYYYYYYYYYV$$$$$$$$$$$##$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$x=+=+++++====*YVVYx**===*xxxxxxxYYYx**===++++:::~~~~~~~~:+=++========***xxYYYYYYY#888%%%%%%%%888888888888888888888##8#####################################################8#88#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8##8##8############################$$$##$###$$$#$#$#$$$#$#$$$$#######$##################################8##8##########################################################88888888888888888888888%8%8888888888888888888888888888888888888#8#################888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%% #####################8###88#######8#888#####8#######################################################$#####$###########################################################################################################################################################################8##888888888888888888888888888888888888888888888888#888#8#######################$##$#####$$######$$#$$#$$####$#$$#$$#$###$###########8#888888888888888$x*x*==========+++::+==============*****==********************==*$$#$$#88888888888888888#88###8#######8888888888888##Yxxxxxxxxx*********=======++++++++++++++++++++++===========*****xxYVVVVYxxxxxxxx***==========**xxxxxx*xxxxxxxxxxxxxxxxxxxxx********=========++++++++++++=***xxY#########$$$$$$$$$$$$$$$$$$####88888888888888888888##$#$#$$$$$$$$$VVVVVVVVVVVVVVVV$$$##########$##########################8#888#$Yx**====*xxYYYYYYYYYYYYVVV$V*++++++++++++V###################$$$$$$$$$$VVVVVYYYYVVVVYYxYYYYYYYYYV$$$$$$$$$$##$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$x=+++++++++==*YVVYYYx*==*xxxxxxxxYYx*===++++:::~~~~~~~~:++++========***xxYYYYYYY$888%%%%%%%%888888888888888888888#8########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##############################$$$###$#$#$$$#$$$$#$#$$#$$$#$#$###$###############################################################################################888888888888888888888888%%%88888888888888888888888888888888888888###################88888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%% #################8#################8#8########8######################################################################################################################################################################################################################################8###88888888888888888888888888888888888888888888888888888#########################$#$###########$$$###$$###$######$#$##################8888888888888888#Y*xx*=========+++::++=============*****==*******************===*$$$$##88888888888888888888###########8888888888888##Yxxxxxxxxx*********=======+++++++++++++++++++++============****xxxYVVVYYxxxxxxxx*****========*xxxxxxxxxxxxxxxxYxxxxxxxxxxxx*********========++++++++++++=***xxYV########$$$$$$$$$$$$$$$$$$$#####888888888888888888##$#$$$$$$$$$$$$VVVVVVVVVVVVVVVV$$$#########$$##########################88#8#8#Vx**=+++++==***xxYYYVVVV$$$$x+++++++++++Y###################$$$$$$$$V$VVVVVYYYYVVVVYYxxxYYYYYYYV$$$$$$$$$$#$$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x=+++++++++++*YVYYYYYx**xxxxxxxxxxx**===+++::::~~~~~~~:++=+========***xYYYYYYYY$888%%%%%%%%888888888888888888888###8#####################################################8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8###############################$$##$$$$#$$$$$$#$$$$$#$$$$$$$$$####$$#################################8########################################################888888888888888888888888%%%8888888888888888888888888888888888888#8###################88888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%% ####################################88888#8###########################################################$#####$###$######################################################################################################################################################################88#88#8888888888888888888888888888888888888888888#88#88#######################$#####$#$######$#$######$#########$#####$##############88888888888888888V**x*=========+++::++==============****==*******************===x$$$$$#88888888888888888#888##########8888888888888##Yxxxxxxxxxx*******========++++++++++++++++++++++===========****xxxYVVVYYxxxxxx********=======*xxxxxxxxxxxxxYYYYYYxxxxxxxxxx***********=======+++++++++++=***xxYY#########$$$$$$$$$$V$$$$$$$$#####8888888888888888####$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$########$#$$$#########################888888#$x***==+++++++++==*xVV$$$$$$Y=+++++++++x####################$$$$$$$$$VVVVVYYYYVVYVVYxxxxxxxxxYYV$$$$$$$$$$$#$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*++++++++++++xYVYYYYxxxxxxxxxxxxxx**===++++:::~~~~~~~:+++++=======***xxYYYYYYYV888%%%%%%%%8888888888888888888888########################################################8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888###########################$######$#$$$$$#$$#$#$$$$$#$#$#$#$$$#$#$#$#########################################################################################88888888888888888888888%%%8888888888888888888888888888888888888888####################88888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%% ##########8###############8#####8##8888######8######################################################$#$#######$##########################################################################################################################################################################88888#88888888888888888888888888888888888888888#88#8#8##############################$$##########$########$#$#######################88888888888888888#x*x*=========+++::++==============****==******************====x$$$$$#888888888888888888888#########88888888888888##$xxxxxxxxxx********=======+++++++++++++++++++++============****xxYYVVVYYxxxxxx*********======*xxxxxxxxxxxYYYYYYYYxxxxxxxxxxx**********=======+++++++++++=***xxYY$########$$$$$$$$$VVVVVV$$$$$#####8888888888888888###$$$$$$$$$$$$$VVVVVVVVVVVVVV$$$$$$######$$$$$$$#########################888888#$Y*****===+++++++++=*YV$#$##V=++++++++x####################$$$$$$$$$VVVVVVYYYVVYVVYYxxxxxxxxYYY$$$$$$$$$$$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V*+++++++++:+=YVYYYYxxxxx*xxxxxxxx**====+++::::~~~~~~~+++++=======***xxYYYYYYYV888%%%%%%%%888888888888888888888##########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8##############################$$$$$$#$$$$$$$$#$$##$$$$$$$$#$$$#$$##########################################################################################888888888888888888888888%%%%888888888888888888888888888888888888888#####################888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%% #####################################8########8####################################################$#####################################################################################################################################################################################888888888888888888888888888888888888888888888888888#88#####################################$######$##$#$##$$$###$#################8##8888888888888888Y**x*========++++:++==============***===******************====Y$$$$$#888888888888888888#8##########8888888888888####Yxxxxxxxxx********=======+++++++++++++++++++++============****xxYYYVVYYxxxxxx*********======xxxxxxxxxxxYYYYYYYYYYxxxxxxxxxx*x*********======+++++++++++=***xxYY#########$$$$$$V$VVVVVVVVV$$$$#####888888888888888###$$$$$$$$$$$$$VVVVVVVVVVVVVV$$$$$$########$$$$$$$#$#####################88##8888#Y*******===+++++++++=xV$###V*+++++++*$##################$$$$$$$$$$VVVVVYYYYYVYVVYYxxxxxxxxYYYV$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V=+++++++::::=YYYYYYxxxx**xxxxxxx**====++++:::~~~~~~~++++++======***xxYYYYYYYV#888%%%%%%%88888888888888888888888#######################################################8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88###############################$$#$#$$$#$$#$$$#$$$$#$$$#$#$$$$$$$#$$$############################8########################################################888888888888888888888888%8%8888888888888888888888888888888888888#88######################888888888888888888888888888888888888888888888888888888888888888888%%%%@%@%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%% ####################################8888#################################################################################################################################################################################################################################################8888#888888888888888888888888888888888888888888#88##88##############################$#$##$#$#$##$#######$######$####################88888888888888888V**x*====+===++++::+==============***===******************====Y$$$$$#8888888888888888##888##########8888888888888###Vxxxxxxxxxx*******=======+++++++++++++++++++++++==========****xxYVVVVYYxxxxxx**********==*=*xxxxxxxxxxxxYYYYYYYYYYYxxxxxxxxxx*********======++++++++++++=**xYYV##########$$$$$VVVVVVVVVVV$$$$######8888888888888#####$$$$$$$$$$VVVVVVVVVVVVVVVV$$$$$$########$$$$$$$$$$#$####################8888#88#Vx*********===++++++++*Y$##$*++++++=$##################$#$$$$$$$$VVVVVVYYxYVVYVVYxxxxxxxxxxYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$Y=++++::::::+xYYYYYxxxx****xx*****=====+++:::~~~~~~~:+++++=======***xYYYYYYYY#888%%%%%%88888888888888888888888#########################################################8888#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#############################$$##$$$#$$#$$$$$#$$#$$$#$$#$$##$#$$$$$#$##########################8#######################################################88888888888888888888888%%%88888888888888888888888888888888888#88888######################888888888888888888888888888888888888888888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ################################8###8#88#######8#####################################################$##################################################################################################################################################################################8#88888888888888888888888888888888888888888888#888#8888########################$############$######$#$$##############$###############88888888888888888#*=**=====+=+++++::+==============*=*===******************====V$$$$$#888888888888888888###8########8888888888888####$xxxxxxxxx*********======+++++++++++++++++++++++=========*****xxYVVVVYYxxxxxx****************xxxxxxxxxxYYYYYYYYYYYYYYYxxxxxx**********=====+++++++++++++***xYYV##########$$$$$VVVVVVVVVVV$$$$$######8888888888888####$$$$VVVVVVVVVVVVVVVVVVVVVV$$$$$$#####$$$$$$$$$$$$$$$$$#$#################8888888#$x**********=====++++++=xV$$x+++++=$####################$$$$$$$$VVVVVVYYxxYVVVVYxxxxxxxxxxYYV$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$VV$$$$$$$$$$$$$$$$$$$$x+::::::::::=YYYYYYxxx*****x******====++++::~~~~~~~:+++++======****xYYYYYYYY#888%%%%%%%8888888888888888888888####8###################################################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#88###########################$##$$##$$$#$$$$#$$$$#$$$$#$#$$$#$$$$$$$$$$###################################################################################8888888888888888888888%8%%88888888888888888888888888888888888#88#888#####################888888888888888888888888888888888888888888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888%%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ####################################888#######8#8####################################################$###################################################################################################################################################################################88#8888888888888888888888888888888888888888888888#8#################################$##################$######$##$#################8888888888888888888x=*x*====+==+++++:++====================***************======V$$$$$#888888888888888#8888##########8888888888888#####Vxxxxxxxxx********======++++++++++++++++++++++===========****xxYVVVVYYYxxxx*****************xxxxxxxxYYYYYYYYYYYYYYYYYxxx*x***********=====++++++++++++=***xYYV###########$$$$VVVVVVVVVVV$$$$$#######888888888888#####$$VVVVVVVVVVVVVVVVVVVVVV$$$$$$$######$$$$$$$$$$$$$$$$$$#$$###############8#88#8##$x*************=====+++++*Y$Y++++=V####################$$$$$$$$VVVVVVVYxxYYVVYYYxxxxxxxxxxYV$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$VVVVV$$$$$$$$$$$$$$$$$$$*+::::::::::=YYYYYxxx*************====+++:::~~~~~~:+++++======****xYYYYYYYY#8888%%%%%888888888888888888888888########################################################88#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#############################$$#$$#$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$#########################8######################################################88888888888888888888888%%%8888888888888888888888888888888888888#8888#######################888888888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ####################################888##8####8#######################################################################################################################################################################################################################################8##88#8888888888888888888888888888888888888888888#8#88#88###############################$#########$######$########$###################8888888888888888888V*=**====++=++++::++=====================*************=====+=V$$$$$#8888888888888888##8888########8888888888888#####$xxxxxxxxx********======++++++++++++++++++++++===========***xxxYVVVVYYYxxxxx****************xxxxxxxYYYYYYYYYYYYYYYYYYxx**************=====++++++++++++=***xYYV###########$$$VVVVVVVVVVVV$$$$$$#######8888888##88####$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$#######$$$$$$$$$$$$$$$$$$$$$$$####$##$$$####8888888##Y*************======+++++*VY=+++Y####################$$$$$$$$VVVVVVVYYxYYYYYYYxxxxxxxxxxYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVV$$$$$$$$$$$$$$$V=:::::::::::=YYYYYxxx************====++++::~~~~~~:++++++=====****xYYYYYYYY$8888%%%%%%88888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#############################$$#$$$$$#$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$###########################8###################################################888888888888888888888888%8888888888888888888888888888888888888888#8##8#####################888888888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ####################################888####8#########################################################$#################################################################################################################################################################################8#888888888888888888888888888888888888888888888888#8#888###################################################$####$####################8888888888888888888#x=**====++++++++:++=======+=+=============********=*======+=$$$$$$#8888888888888888##88###########888888888888######Vxxxxxxxx********======+++++++++++++++++++++++==========****xxYVVVVYYYYxxxx****************xxxxxxxYYYYYYYYYYYYYYYYYYxx*************======++++++++++++=***xYYV$##########$$$$VVVVVVVVVVV$$$$$$########888#88888#####$$$VVVVVVVVVVVVVVVVVVVV$$$$$$$#######$$$$$$$$$$$$V$$$$$$$$$$$$$#$$$$$$$$$###8#888#88#Y*=*************=====+++++xY=++x####################$$$$$$$$$VVVVVVYYxxYYYVYYxxxxxxxxxxxYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$$$$$Y+:::::::::::*YYYYYxxx************====+++:::~~~~~~++=+++=====****xxYYYYYYY$8888%%%%%%888888888888888888888888#######################################################8888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8###8########################$#$$##$$$$#$$$$$#$#$$$$$$$#$$$$$$$$$$$$$$$########################8######################$##############################8888888888888888888888%%8888888888888888888888888888888888888888############################88888888888888888888888888888888888888888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%88%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ####################################888###8#8#8##8########################################################################################################################################################################################################################################8##88888888888888888888888888888888888888888888###88################################$############################$################88888888888888888888Y==**===++++++++:++======+++==================****=========*$$$$$$##8888888888888888#8888########8888888888888#####8$xxxxxxxxx********======+++++++++++++++++++++++=========***xxxYVVVVYYYYxxxx********xx******xxxxxxYYYYYYYYYYYYYYYYYYYxx*************======++++++++++++=***YYYY$###########$$$VVVVVVVVVVV$$$$VV$########8#8#88######$$$$VVVVVVVVVVVVVVVVVVVV$$$$$$#########$$$$$$$$$$VVV$$$$$$$$$$$$$$$$$$$$$$$####8#88888#x++====***********====++++=Y=+*#####################$$$$$$$$VVVVVVVYxxYYYYYYYxxxxxxxxxxYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVV$$$$$$$$$$$$$$$*::::::::::::*YYYYYxxx***********====++++::~~~~~~++++++====******xYYYYYYY$88888%%%%%8%8888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888####8#8#8#8########################$$#$$$$$$$$$$$$$#$$$$#$$$$$$$$$$$#$$$$$$############################################################################88888888888888888888888%%%88888888888888888888888888888888888888##8#########################8#8#888888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88#88#8##############################################################################################################################################################################################################################################888888888888888888888888888888888888888888888#8888#88#############################################################################8#888888888888888888$*==*==+++++++++:++======++++============================+=*$$$$$$###88888#888888888##888########8888888888888#####8#Vxxxxxxxxx*******=======++++++++++++++++++++++=========***xxxYVVVVYYYYYxxx********xx******xxxxxxYYYYYYYYYYYYYYYYYYYxx*************======++++++++++++=**xYYYV############$$$VVVVVVVVVVV$$$$$V$###########8####8###$$$$VVVVVVVVVVVVVVVVVVVV$$$############$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$$$$$$######8##8###x++++++===**********==++++=x=*$#####################$$$$$$$VVVVVVVYxxYYYYYYYxxxxxxxxxxxYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$VVVVVVVVVVVVVVVVVV$$$$$$$$$$V+::::::::::::*YYYYYxxx**********=====+++::~~~~~~+++++=====******xYYYYYYY$888888%%%%8888888888888888888888888######################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88##############################$#$#$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$########################8###################$$#############################8888888888888888888888%%%8888888888888888888888888888888888888888############################888#88888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8#8######88########################################################################################################################################################################################################################################8#88#88888888888888888888888888888888888888888#888#88#8#############################################################################88888888888888888888#x==*==++++++++++++======++++============================+=*$$$$$$###88#8##8#8888888#88888########888888888888#####88$xxxxxxxxx*******=======++++++++++++++++++++++=========***xxxYVVVVYYYYYxxxx*******xx******xxxxxYYYYYYYYYYYYYYYYYYYYxx*************=====+++++++++++++=**xYYYV############$$$VVVVVVVVVVV$$$$$V$$###################$$$$$VVVVVVYVVVVVVVVVVVV$##############$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$$$$$$$$$######88#88#x++++++++===*********==++++x*$#################$###$$$$$$$$VVVVVVYYxxYYYYYYxxxxxxxxxxxYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$VVVVVVVVVVVVVVVVVVVV$$$$$$$$Vx:::::::::::::xYYYYxxxx**********====+++::~~~~~~+++=+=====******xYYYYYYYV888888%%%%8888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#8#######8#####################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$########################8#################$###############################888888888888888888888%%%%88888888888888888888888888888888888888888###########################8#8#88888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888##8#88##########################################################################################################################################################################################################################################8#8888888888888888888888888888888888888888##88#888#8##############################################################################88888888888888888888V*==*=+++++++++:++======++++============================+=*$$$$$$#####8#8###88888888#88#8#########8888888888######88#Vxxxxxxxx*******=========++++++++++++++++++++==========**xxxxVVVVVYYYYxxxx*******xxx*****xxxYYYYYYYYYYYYYYYYYYYYYYxxx************=====+++++++++++++=**xYYY$############$$$VVVVVVVVVVV$$$$$VV$###################$$$$$VVYYVYYYVVYYVVVVVVV$##############$$$$$$$$$VVVVVVVVVVVVVV$$$$$$$$$$$$$$$########8#8#$*++++++++++==*********=++++xV###############$######$$$$$$$VVVVVVYYxxYYYYYYxxxxxxxxxxxxYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVV$$$$$$$V=~~~~~~:~:~~:+xYYYYxxxx*******======++++::~~~~~:++=+=====******xYYYYYYYV888888%%%%8888888888888888888888888######################################################88#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8###########################$###$$$$$$$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$#####################8###################$##############################8888888888888888888888%%%%8888888888888888888888888888888888888888#############################8###8888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88#8##8#88########################################################################################################################################################################################################################################8#8###888#8888888888888888888888888888888888888#88#8#888##############################################################################88888888888888888888#x==*=++++++++:::+======+++++==========================+++*$$$$$V$###88##8###8888888##888#######888888888888######888#Yxxxxxxx********=========+=+++++++++++++++++==========**xxxxVVVVVYYYYYxxx*******xxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYxxx************=====+++++++++++++=**xYYY$############$$$VVVVVVVVVVV$$$$$VV$$##$###############$$$$VVVYYYYYYYYYYYVVVVVV$###############$$$$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$#########8##$*++++++++++++==******==+++*V$##########$#$###$###$$$$$$$$VVVVVVYYxxYYYYYYYxxxxxxxxxxxYVV$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$Y:~~~~~~~~~~~~=YYYYYxxxx*****=======++++::~~~~~:++=+=====******xxYYYYYYY888888%%%%8888888888888888888888888#######################################################88#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#88#88#8#8#####################$##$$$#$$$$$$$$$$$#$$$$$$$$$#$$$$$$$#$$$$$$####################8##################$##############################888888888888888888888%%%%888888888888888888888888888888888888888888############################8#8888888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8#8##8888###8#########################################################################################################################################################################################################################################88#888888888888888888888888888888888888888888#88#8#8#############################################################################8888888888888888888888V*==*=+++++++::+++=====+++++==========================+++*$$$$VV$###########8888888##8#8#######8##888888888######888#Vxxxxxxxx********==========++++++++++++++++++=========***xxxYVVVVYYYYYxxx********xYxxxxxxxxYYYYYYYYYYYYYYxYYYYYxxxxx***********======+++++++++++++=**xYYV##############$$VVVVVVVVVVV$$$$$VVV$##################$$$$VVVYYYYYYYYYYYYVYVVVV###############$$$$$$$VVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$############V=++++++++++++++=******=++=V$$#######$###########$$$$$$$$$VVVVVYYYxxYYYYYYxx*xxxxxxxxYVVV$$$$$$$$$$$$$$$$$$$$$$VVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVV$$$V$V=~~~~~~~~~~~~:*YYYYYxxx******======+++:::~~~~~:++=======*******xYYYYYYY#888888%%%8888888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##88#8###888#####################$##$$#$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################888888888888888888888%%%%88888888888888888888888888888888888888888##############################888##888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88888####888#8######################################################################################################################################################################################################################################88##88888888888888888888888888888888888888888#8888888#88############################################################################888888888888888888888#x====+++++++:::++====++++++==========================++=*$$$$VV$############888888888888#######88888888888######8888#Yxxxxxxxx*******============++++++++++++++++==========*xxxxYVVVVYYYYYxxx********xYxxxxxxxYYYYYYYYYYYYYYYxxxxxxxxxxxx**********======+++++++++++++=**xYY$##############$$VVVVVVVVVVV$$$$$VVV$$#$###############$$$$VVVYYYYYYYYYYYYYYVVVV$###############$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$#############Y=+++++++++++++++=*****=+*$$$#######$#$#$##$$#$##$$$$$$$$VVVVVYYYxxYYYYYYxxxxxxxxxxxxVVV$$$$$$$$$$$$$$$$$$$$$VVVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY:~~~~~~~~~~~~+xYYYYYxxx*****======++++::~~~~~:++=======*******xYYYYYYY$888888%%%8888888888888888888888888########################################################88#8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#########################$#$$$#$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$####################8####################$##########################888888888888888888888%%%%888888888888888888888888888888888888888888#8############################888###88888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88#8##88##8##8##############################################################################################################################################################################################$###########################################88888888888888888888888888888888888888888888#8#88#88############################################################################8888888888888888888888Y*====+++++::::++====++++++==========================+++*$$$VVV$############888888888888#####8##8888888888######88888$xxxxxxxx*******============++++++++++++++++==========*xxxxYVVVVVYYYYYxxx********xYxxxxxYYYVYYYYYYYYYYYxxxxxxxxxxxxx*x********======+++++++++++++=**YYY$###############$$VVVVVVVVVV$$$$$VVV$$#$$$#############$$$$VVYYYYYYYYYYYYYYYYYVV$###############$$$$$VVVVVVVYVVVVYVVVVVVVVVV$$$$$$$$$$$$############x++++++++++++++++=*****=Y$$$#######$##$$$#$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYxxxxx*xxxxxxYVVV$$$$$$$$$$$$$$$$$$$VVVVVV$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV*~~~~~~~~~~~~~=xYYYYYxx******======++::~~~~~~~+++======*******xxYYYYYYV888888%%88888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888#8###########################$$$$$$$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$##################88#################$#$#$#########################888888888888888888888%8%%888888888888888888888888888888888888888888##############################8###8#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################88#################################################################################################################################################################################################$####$#########################################8888888#88888888888888888888888888888888888888#8888#88#8############################################################################88888888888888888888888$x====++++::::::+===+++++++==========================+++*$$$VVVV############8888888#8#########8#8888888888######88888#Yxxxxxxxx*******===========+++++++++++++++++=========**xxxYVVVVVYYYYYYxx********xYxxxxxYYYVYYYYYYYYYYYxxxxxxxxxxxxxx*********======+++++++++++++=*xYYV################$$VVVVVVVYV$$$$$$VVVV$$$$$##$#########$$$$VVVYYYYYYYYYYYYYYYYYVV$###############$$$$$$VVVVVVVYYYVVYVVVVVVVVVVVVV$$$$$$$$#$##########V=+++++++++++++++++=***xV$$$$######$$$$$$#$$$$$$$$$$$$$$VVVVVVYYxxYYYYYYYxx*x*xxxxxxYVVVV$$$$$$$$$$$$$$$$$$VVVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY:~~~~~~~~~~:~:=*xYYYYxx*****======++:::~~~~~~+++======********xYYYYYYV88888888888888888888888888888888888######################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8##8######################$$$#$$$$$#$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$##################8####################$#########################888888888888888888888%%%888888888888888888888888888888888888888888888##############################8#888#88888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################8888#88888#8#######################################################################################################################################################################################################################################888#8888888888888888888888888888888888888888#888#8##88#8############################################################################88888888888888888888888Y*===++++::::::+===+++++++==========================+++*V$$VVYV############88##88#88888#####8#88888888888######888888$xxxxxxxx*******===========+++++++++++++++++=========**xxxxVVVVVVYYYYYxx********xYYxxxxYYVVYYYYYYYYYYYxxxxxxxxxxxxxx*********=====++++++++++++++=*xYY$################$$VVVVVVVYV$$$$$$VVVV$$#$$$$$$#########$$$VVVYYYYYYYYYYYYYYYYYVV$################$$$$$VVVVVVYYYYYYYYVVVVVVVVVVVVV$$$$$$$$$##########$Y++++++++++++++++++=**xV$$$$$#####$$$$$$#$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx****xxxxxxxVVVV$$$$$$$$$$$$$$V$$VVVVVVVV$$VVVVVVVVVVVVYYVVVVVVVVVVVVVVVVVVVV=~~~~~~~~~~~:~+=*xYYYxxx****===+++=+:::~~~~~~:++======********xYYYYYYY88888888888888888888888888888888888#######################################################88##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#88##8#####################$#$$$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$#$$$$$#################8###################$##########################8888888888888888888888%%8888888888888888888888888888888888888888888888#############################8##88#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8#8##8########8##########################################################################################################################################################################################$#######################################8##888#8888888888888888888888888888888888888888888888888888############################################################################88888888888888888888888#x===++++::::::+===++++++++=========================+++=V$$VVYY#############88##8888888#######8##88888888######8888#8#Vxxxxxxx*******============+++++++++++++++++========**xxxxYVVVVVYYYYYYxx*******xxYYxxxYVVYYYYYYYYYYYYxxxxxxxxxxxxx**********=====++++++++++++++=*xYV#################$$VVVVVVVYV$$$$$$VVVVV$$$$$$$$########$$$$VVVYYYYYYYYYYYYYYYYYYV$################$$$$VVVVVVVVYYYYYYYYYVVVVVVVVVVVV$$$$$$$$####$######$*++++++++++++++++++=*xV$$$$$####$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYx*****xxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVVVVV$$VVVVVVVVVVVVYYYYVVVVVVVVVVVVVVVVVVY:~~~~~~~~~~~::+=*YYYYxx***====++++++::~~~~~~:++=====*********xYYYYYYY#8888888888888888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888888888########################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############8#8###########$#####$#########################888888888888888888888%%8%88888888888888888888888888888888888888888888#8##############################8#8###88888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888#####8#88########################################################################################################################################################################################################################################88###88888888888888888888888888888888888888888#88#88#888############################################################################888888888888888888888888V*==+++::::::::+==++++++++=====+++=================+++=V$$VYxY###$#########8#####88888####8##88888#888#8######88888#8#Yxxxxxxxx******===========++++++++=++++++++=========*xxxxYVVVVVYYYYYYxx****xxx*xYYYYYYVVYYYYYYYYYYYYYxxxxxxxxxxxxx*********=====+++++++++++++==*xY$#################$$VVVVVVVYV$$$$$$VVVVV$$$$$$#$########$$$$VVYYYYYYYYYYYYYYYYYYYV$#################$$$$VVVVVVVYYYYYYYYYVYVVVVVVVVVVVV$$$$$$$$##########V+++++++++++++++++++=*V$V$$$####$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYx*****xxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVVVVV$$VVVVVVVVVVVVVVYYVVVVVVVVVVVVVVVVVVV=~~~~~~~~~~~~:++=xYYYYxx**=====+++++:::~~~~~:++=====*********xYYYYYYY#8888888888888888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888888##88########################$$$$$#$$$$$$$$$$$$$$#$$$$#$$$$$$$$$$$$$###############8###############$############################88888888888888888888%%%%8888888888888888888888888888888888888888888888###############################8#88#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888#88#88#88#############################################################################################################################################################################################$##########################################8##8888888888888888888888888888888888888888888#888888888###########################################################################888888888888888888888888#x===++::::::::+==++++++++==*==++++++==============+++=V$$VYxx$#$$$#############888888######888##8888888#######888888#$xxxxxxx********============++=+++++++++++++========*xxxxYVVVVVVYYYYYYx*****x*xxYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*********=====+++++++++++++=**YY$#############$##$#$$VVVVVVYV$$$$$$VVVVVV$$$$$$$$########$$$VVYYYYYYYYxYxxxYYYYYYV$#################$$$$VVVVVVVYYYYYYYYYYYYVYVVVVVVVVVV$$$$$$$#####$####$*+++++++++++++++++++=YV$$$$#####$$$$$$$$$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYx*****xxxxxxxVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVVVVVVVVVVVVVVVVVY~-------~~~~:+++=xxYYxxx*=====+++++:::~~~~~:+======*********xYYYYYYY#8888888888888888888888888888888888#######################################################88#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#8#######################$#$$#$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$##############8##################$########################888888888888888888888%%%%888888888888888888888888888888888888888888888888##############################88#888#8888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888##88#8##8#######################################################################################################################################################################################################################################88##8#88888888888888888888888888888888888888888888888888############################################################################8888888888888888888888888$*==++::::::::+==++++++++==**=+++++++=============+++=V$$VY*x$#$$$########8######88888###8#8#88##8888#########8888888#Vxxxxxxx*******===========+++++++++++++++++========*xxxxxVVVVVVYYYYYYxxxxxxxxxxYVVYYYVYYYYYYYYYYYxxxxxxxxxxxxxxx**********=====+++++++++++++=*xYV###################$$VVVVVVYV$$$$$$VVVVVV$$$$$$$$$#######$$$VVYYYYYYxxxxxxxxxYYYYV$$$###############$$$$VVVVVVVVYYYYYYYYYYYYVVVVVVVVVVVV$$$$$$##########$Y++++++++++++++++++++*V$$$$####$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxxxYYYYYYx******xxxxxxVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVVVVVVVVVVVVVVVVVV+---------~~~::++*xxYxxx*=====+++++:::~~~~~:+=====**********xxYYYYYY#8888888888888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##8888##########################$$#$$$#$$$$$$$#$$$$$$$$$$$$$$$$$$$$$##############88##############$###########################888888888888888888888%%8888888888888888888888888888888888888888888888888#8##############################88888#8888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88#88#8#88##8##8#####################################################################################################################################################################################$############################################88##8##8888888888888888888888888888888888888888888888888###8########################################################################8#88888888888888888888888888x==++::::::::+===+++++++==**=++++++++============+++=Y$$Vx**$$$$$$###########8#88888#####8####8##8############88#8#88$Yxxxxxxx*******============+++=++=++++++++=========*xxxxYVVVVVYYYYYYYxxxxxxxxxxVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********=====++++++++++++++=*xY$#############$###$$$$VVVVVVYV$$$$$$VYVVVV$$$$$$$$$#######$$$VYYYYYYYYxxxxxxxxxYYYV$$#################$$VVVVVVVVVYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$##########$=++++++++++++++++++++YV$$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxxxxYYYYYY*****xxxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVVVVVVVYYYYYVVVVVVVVVVVVVVVVVx~----------~~::++=xxxxxx*=====++++:::~~~~~:++====**********xxYYYYYY#88888888888888888888888888888888888######################################################88#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88########################$$#$$#$$$$$$$$$$$$$$##$$$$$$$$$$$$$#$$##############8##########################################88888888888888888888%%%%888888888888888888888888888888888888888888888888###############################8#88#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88###8###8#8#8#######################################################################################################################################################################################$##############################################8#####888888888888888888888888888888888888888888888888##8############################################################################8888888888888888888888888$===+::::::::++==+++++++==**=++++++++=====+======++++Y$$Vx=*$$$$$$#########8####88888#8##########8############88888#8#Vxxxxxxx*******=============+++++++++++++++========*xxxxYVVVVVYYYYYYYYxxxxxxxxxYVVVVYYYYYYYYYYxxxxxxxxxxxxxxxxx*********=====++++++++++++++=*YV############$##$#$#$$$VVVVVVVV$$$$$$VYYVVVV$$$$$$$$#######$$$VVYYYYYYYxxxxxxxxxxYYV$$#################$$$VVVVV$VVYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$#########$x++++++++++++++++++++=V$$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx*****xxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVYYVVVVVVVVVVVVVVVYVYYYYYYVVVVVVVVVVVVVVVVV:-----------~::++==*xxxx*=====+++::::~~~~~~+=====**********xxYYYYYY#88888888888888888888888888888888888#######################################################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8########################$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#############8#########################################88888888888888888888%%%%8888888888888888888888%888888888888888888888888888###############################888888#888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################888#88#88###8#8############################################################################################################################################################################################$########$############################88#8#888888888888888888888888888888888888888888888888888888###########################################################################888888888888888888888888888x+=+:::::::::+==++++++++=**=+++++++++=+==+=++===++++x$$Vx=*$$$$$$$#############88888##8#8#8##8#8###8########88#8#8#8##Yxxxxxxx*******============++++++++++++++++=======**xxxxVVVVVVYYYYYYYYxxxxxxxxYVVVVYYYYYYYYYYxxxxxxxxxxxxxxxxx*********=====+++++++++++++=*xY$##############$##$$$$$$VVVVVYV$$$$$$VYYYVVV$$$$$$$$#######$$$VYYYYYYYYxxxxxxxxxxxYY$$$$$###############$$VVVVV$VVYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$##########V+++++++++++++++++++++xV$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx****xxxxxxxYVVVVV$$$$$$$$$$$$VVVVVVYYYVVVVVVVVYYVVVVVYVYYYYYYVVVVVVVVVVVVVVVVV*------------~:::+==*xxxx*==+++++::::~~~~~~:+===**********xxxYYYYYY#88888888888888888888888888888888888#######################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888##########################$#$$$$$$$$$$$$$$$$$$$$$##$$$$$$$$$$$#$###########8########################################8888888888888888888888%%88888888888888888888888888888888888888888888888888#8##############################888#8888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################88#88##88#88###############################################################################################################################################################################$#######################################################8###88888888888888888888888888888888888888888888888888888############################################################################88888888888888888888888888$+=+:::::::::+==++++++++=**=++++++++++++++=+++=+++++xV$$x=*$$$V$$$$#############88888#######################8#8#8#8###$xxxxxxxx*******===========+++++=++++++++++=======**xxxxVVVVVVYYYYYYYVYxxxxxxxYVVVVYYYYYYYYYYxxxxxxxxxxxxxxxxx**********====++++++++++++==*xV##################$$#$$$VVVVVYV$$$$$$VYYYYVV$$$$$$$$$######$$$VYYYYYYYYxxxxxxxxxxxYY$$$#$$##############$$VVVV$$$VYYYYYYYYYYYYYYYVVVVVVVVVVVV$$$$$##########V=++++++++++++++++++++=V$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxxxxYYYYYx****xxxxxxxxVVVVV$$$$$$$$$$$$VVVVVVYYYVVVVVVVVVYVVVVVYYYYYYYYVVVVVVVVVVVVVVVVVY~-----------~:::+===*xxx*==++++++:::~~~~~~:====*********xxxxYYYYYY#8888888888888888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8#8#########################$$#$#$$#$$$##$#$$$$$$$$$$$#$$$$##$$#$###########8########################################88888888888888888888%%%888888888888888888888888888888888888888888888888888888#############################88#8#888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888888888#8######################################################################################################################################################################################$###############################################888888#8888888888888888888888888888888888888888888888888###8########################################################################8888888888888888888888888888==++::::::::+==+++++:++=***++++++++++++++++++++++++*V$$*+*V$$V$$$$############888888########################8#8#88#8##Vxxxxxxx*******============++++++++++++++++=======**xxxYVVVVVVYYYYYYVYYxxxxxxYVVVVYYYYYYYYYxxxxxxxxxxxxxxxxx**********=====++++++++++++=**Y#################$#$#$$$$VVVVVVV$$$$$$VYYYYVVV$$$$$$$$#######$$VYYYYYYYYxxxxxxxxxxxYY$$$$$$$##############$VVVVV$$VYYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$#########$*+++++++++++++++++++++Y$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxx*xYYYYYx*****xxxxxxxYVVVV$$$$$$$$$$$$VVVVVVYYYVVVVVVVVYVVVVVVYYYYYYYYYVVVVVVVVVVYVVVVVV+-----------~~::++===****==++++++:::~~~~~~:+===*********xxxxYYYYYY#88888888888888888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##88#########################$#$$$$$$$$$$#$$$$$$$$$#$$$$$$$$$#$$$$##########8########################################8888888888888888888%%8888888888888888888888888888888888888888888888888888888###############################888#88#888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888888888888888##################################################################################################################################################################################$#$##################################################8#88888888888888888888888888888888888888888888888888888######################################################################8#8##888888888888888888888888888*=++::::::::++==+++:::+=***+++++++++++++++++++=++++=V$$*+*V$$V$$$$$############88888###88####8##############8##88#8####Yxxxxxxx*******============+++=+++++++++++=======**xxxxVVVYVVYYYYYYVVYYxxxxxYVVVVYYYYYYYYYxxxxxxxxxxxxxxxxx**********====++++++++++++==*x$####################$$#$$VVVVVVV$$$$$$VYYYYYVV$$$$$$$$#######$VVYYYYYYxxxxxxxxxxxxxxY$$$$$$$##############$$VVVV$$VVYYYYYYYYYYYYYYYVVVVVVVVVVVV$$$$$#########$*+++++++++++++++++++++Y$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYxx*xYYYYYY****xxxxxxxxYVVVVV$$$$$$$$$$VVVVVVYYYYVVVVVVVVVVVVVVVYYYYYYYYYVYYVVVYVYVVYVVVVVx------------~:::++===****==+++++:::~~~~~~~+==******xx*xxxxxYYYYYY#8888888888888888888888888888888888########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88#8############################$$#$$$$$##$$$#$$$$$$$$$$$#$#$#$#$$#########88######################################88888888888888888888%%%888888888888888888888888888888888888888888888888888888###############################8888888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88888888888888888######################################################################################################################################################################################$######$#####################################8#88888888888888888888888888888888888888888888888888888888##8##8#####################################################################888888888888888888888888888Y==+:::::::::+==+++::::=***++++++++++++++++++++++++=V$$*+*$$$$V$$$$$#$#########8888888#8#####################8#########$Yxxxxxxx*******===========+++=++++++++++++=======**xxxVVVVVVVYYYYYYVVYYYYYYYVVVVVYYYYYxxxxxxxxxxxxxxxxxxx***********=====+++==+++=+==**V####################$#$$$$$VVVVYV$$$$$$VYYYYYYV$$$$$$$$#######$VVYYYYxxxxxxxxxxxxxxxxY$$$$$$$##############$$VVVV$$$VYYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$##########x+++++++++++++++++++++x$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxx*xYYYYYYx***xxxxxxxxYVVVVV$$$$$$$$$V$VVVYVYYYYVVVVVVVVVYVVVVVYYYYYYYYYYYYYYVYYVVYYVVVVVY:-----------~:::+++===**===+++++::::~~~~~~+===****xxxxxxxxxYYYYYY#8888888888888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88#########################$#$$$$$$##$$$$$$$$$#$$$$$$#$$$##$##$##########8######################################8888888888888888888%888888888888888888888888888888888888888888888888888888888################################8#88888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888888888888888##################################################################################################################################################################################$###############################################8888##88888888888888888888888888888888888888888888888888#############################################################################888888888888888888888888888Y+=+:::::::::+==+++::::=***++++++++++++++++++++++++=Y$$*:*V$$$V$$$$$###########8888888888###############################Vxxxxxxxx******===========++++++++++++++++========*xxxYVVVVVVYYYYYYYVVVYYYYYVVVVYYYYxxxxxxxxxxxxxxxxxxxxx**********======+=+========**Y###################$##$$$$$$VVVVYV$$$$$$VYYYYYYVV$$$$$$$#######$VVYYxxxxxxxxxxxxxxxxxxY$$$$$$$###############$VVV$$$$VYYYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$#########V+++++++++++++++++++++*V$$###$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVYxx*xYYYYYYx***xxxxxxxxYVVVVV$$$$$$$V$$$VVYYYYYYYVVVVVVVVYVVVVVVYYYYYYYYYYYYYYYYVYYYYYVVVVV=-----------~:::++++=======+++++::::~~~~~:===***xxxxxxxxxxYYYYYYY#8888888888888888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8##########################$$#$##$$$$$$#$#$$$$$$#$$##$#$$#$$$########8#####################################888888888888888888%8%%8888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888888888888888##8############################################################################################################################################################################$####$##$##$##$####################################8888888#88888888888888888888888888888888888888888888888888##8#########################################################################88888888888888888888888888V+=+:::::::::+===++::::+=*x++++++++++++++++++++++++