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


 
3.230.76.196@honeybii.com ~
  $ cat gffgfjhg.txt

===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================*=*==***************x**************************************************************************************+~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~=V%%%%%%%%%%%%%%%%%%%%%%%%#+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++++++++=============*******$##$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVV$#888888888###$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y***=*===============================================++++++++++++++++++++=============++++++++++++++++++++++++++++++++=+===========************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#8888888888888%8%%%%8%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====================================================*=**************VY***********************************************************************************=+~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~=V8%%%%%%%%%%%%%%%%%%%%%%%%$+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++============******x$##$$$$$$$$$$VVVVVVYVVVVVVVVVVVVVV$$8888888888##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx********===========================================+++++++++++++++++++++++++++==+++=+++++++++++++++++++++++++++++++++++===========***************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$#888888888%8%%88%%%%888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ================================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++================================================**==***************$#Y*********************************************************************************=:~~~~~~~~~~~~~~::::::::~~~~~~~~~-------------------------------------:*$%%%%%%%%%%%%%%%%%%%%%%%%%%V:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++++++++============******x##$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVV$#88888888###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx***===**==========================================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=============***************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##8888%%8%88%8%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=================================================*=****************$##Vx******************************************************************************+:~~~::++=**xYYV$$####88#####$$$$VVVYYx*=+::~~~---------------------~+Y#%@%%%%%%%%%%%%%%%%%%%%%%%%%Y~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++===========*******Y##$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$#888888#8###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY**====***=======================================+++++++++++++++:::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++==============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$#8888%%%%%%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++=================================================****************$###$x***************************************************************************=++*YV$##88%%%%@@@@@@@@%@@%%@@@%@@@@@@@%%%%%88#$$VYx*=+:~-----------~=V8%@%%%%%%%%%%%%%%%%%%%%%%%%%8x~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++=============*****Y#$$$$$$$$$VVVYYYYVVVVVV$VVVVV$$$#88888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVY*=============================================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++==============**************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$88%8%8%%%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=================================================*==***************$####$Y*************************************************************************=::$%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@%%%%8#$Vx*=+~~-~:x$%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%x~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::++++++++++============******Y$$$$$$$$$VVVVYYYYVYVVV$$$$$$$###888888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVY*=========================================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++===============*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#8%%%%%%8%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==============================================*=*****************$######V**********************************************************************=+~~*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$YV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++============*****Y#$$$$$$$$VVVVYVYYVVVVVVVVV$$$$$#88888888####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYx===================================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++=============***********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#88%%%%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================++++++++++++++++++++++++++++++:+++:+:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==============================================**==***************$#######$x*******************************************************************=:~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++============*****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$#88888#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYY*===============================+++++++++++++++:::::::::::::::::::::::::::::::::~:~:~:~~~:~:::~::~::::::::::::::::::::::::::::::::+:+++++++++++++++============***********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#88%%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888%8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================+++++++++++++++++++++++++++++++:+::+:::+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===============================================*=****************x$########$Yx***************************************************************=+:~~~+8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++++++++==============****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYx=============================++++++++++++++++:::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::+++++++++++++++========**********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$88%88%888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8%8%8%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%8%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ==============================++++++++++++++++++++++++++++:++:::::::::++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=++=============================================*=***************x$##########$Y*************************************************************=:~~~~~*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++============*****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVV$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY*==========================+++++++++++++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++++++++=========*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$88%%8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%8%8888888%%%%%%%%%%%%%%%%%%%%%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ============================+++++++++++++++++++++++++++++::::::::::::::++:+:++++++++++++++++++++++++++++++++++++++++++++++++++++++=+==============================================***************x#############Vx*********************************************************=+~~~~~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++===========*****x$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVV$########$$$VVV$$$$$$$$$$$$$$$$$$$$$$$$$Vx========================+++++++++++++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~:::::::::::::::::::::++++++++++++++=======**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$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====================++++++++++++++++++++:::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++=======*************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8%8888888888888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%88888888%%8%88%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ =============================++++++++++++++++++++++++::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++=+=========================================*==****************Y###################$Yx*********************************************=+~~~~~~~~~~-~x%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8Vx+:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++=============****x$###$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$#######$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$Vx===========++======++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++=======*************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#8888888888888888888888888888888888888888888888888888888888888888888888#8##8##88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%888888888888888%%%%%%%%%%%%%%88888888%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@ =============================++++++++++++++++++++:+::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++===========================================******************Y#####################$Vx*****************************************=+:~~~~~~~~~----+8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%#V*:~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++=============***x$####$$$$$VVVVVVVVVVVVVVVVVVVV$VVV$$########$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$Vx======+====+=+=+++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++=======****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$888888888888888888888888888888888888888888888888888888888888888888888##8######8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++++:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++=+========================================*******************V########################$Yx*************************************=:~~~~~~~~-------~V%%%%%%%@%@@@@@@@@%%@%@%%@%@@@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8V*~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****Y####$$$$$$VVVVVVVVVVVVVVV$$$V$VV$$$#########$$$$VVVVVVVVVVVVVV$V$$$$$$$$$Vx=====++++==+++++++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++======****************xxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#88888888888888888888888888888888888888888888888888888888888888888888########888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++==========================================******************V##########################$VY*********************************=+~~~::::~----------+#%%%%%88##$$VVYYxxxxxxxYYYVV$##88%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%$*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****x$###$$$$$$$VVVVVVVVVVVVVV$$$$$$$$$###$$#######$$$VVVVVVVVV$$$$$$$$$$$$$$$Yx===+=++++=++++++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------~--~-~-~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++++++======**************xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$#8888888888888888888888888888888888888888888888888888888888888888888#########8##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%888888888888888888%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++========================================*=*****************V#############################$VYx***************************=+:~:=*xxxx=~----------+==**=+:~~~~~--------------~~~~::+=*xY#88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++++=============****xV####$$$$$$$$VVVVVVVVVV$$$$$$$$$$$$$$VV$$$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$VYx==+++++++++++++++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~-----------------------------~-~-~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++=======**************xxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#88888888888888888888888888888888888888888888888888888888888888888888###8######888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::+:::++++++++++++++++++++++++++++++++++++++++++++++======================================**=*****************$################################$VYx**********************=+++=xxYYYYYYx=:---------------------------------------------~=xYYV$$#88%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++============*****x####$$$$$$$$$VVVVVVVV$$$$$$$$$$$VVVVVV$$$$$VV$$$$$$$V$$$$$$$$$$$$$$$$$$VYx*=+++++++++++++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++++=======*************x*xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$88888888888888888888888888888888888888888888888888888888888888888888####8####888#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@ ============================++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++++++++++=========================================******************$####################################$VYx****************==**xYYYYYYYxxxxxx=+~----------------------------------------~+xYVYYYYYVVVVV$#88%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$=~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++============*****x$####$$$$$$$$VVVVVVV$$$$$$$$$$VVVVVVVV$$$VVVVVV$$$$$$$$$$$$$$$$$$$$$$$$VYx==++++++++++++++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~-------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++++++++++++++=======************xxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8888888888888888888888888888888888888888888888888888888888888888888888############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@ ===========================++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++=======================================*******************$#######################################$$VYx************xxYYYYYYYxxYxYxxxYxx*+~-------------------------------------:*YVVVVVVVVVVYVYYYVVV$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++============*****x$####$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$Yx*=+++++++++++++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~-----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++++++++++++========************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV88888888888888888888888888888888888888888888888888888888888888888888888###########8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@ ===========================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++======================================*=*****************x$############################################$VYYx*****xYYYYYYYxxYxxYxYxxxxxYYx*=:~--------------------------------~=YVVVVVVVVVVVYVVVVYVVYYVVVV$#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V+-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::++++++++++=============*****V#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$VYx*=++++++++++++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~---------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++++++++++++=======************x*xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8888888888888888888888888888888888888888888888888888888888888888888888888##########8###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@ *==========================+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++=====================================*=*****************x$#################################################$VYxYYYYYYYYYYxxYYxYxxxxxYxxYYxx*+~-----------------------------:xYVVVVVYVVVVVVYVVVVVVVVVVVVYVVV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#*~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++++++++++============*****Y#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$###$$$Vx*=+++++++++++++++++++++++++++::::::::::::::~~~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++++++++++++========***********xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%8888888888888888888888888888888888888888888888888888888888888888888888#############888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@ ===========================++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++=+====================================********************x##################################################$VYYYYYYxYxxYxYxYxxYxxYYxYxxYxxYYx*=:~------------------------~=YVVVVVVVVVVVVVVVYVYVVVYVVVVYVYVVYVVV$#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8x~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++============*****x$######$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYVVYVVVVVVVV$$$$$$$$$$$$#####$$$Yx*++++++++++++++++++++++++++:+::::::::::::~~~~~~~~~~~~~~-~--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++=======************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$8%%%%88888888888888888888888888888888888888888888888888888888888888888888888########8##8##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@ ==========================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++=====================================*=******************x################################################$VYYYYYxYxxYxxYxYxxYxYxxYxxxxYxxYxxxYxx=+~--------------------~+xYVVVVYVVVVYVYVVVVYVVVVVVYVVVVVVVYYVVVYVVV#8%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+++++++++++============*****x$#####$$$##$##$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#####$$$Vx*=++++++++++++++++++++++++:+:::::::::::::~~~~~~~~~~~~~~~------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++++++++++++++++======************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%%%%88##888888888888888888888888888888888888888888888888888888888888888888###############88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@ ====*=====================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::+++:++++++++++++++++++++++++++++++++++++====================================*==******************Y##############################################$VYYYYYYxxYxYYxxYYxxYYxYxxYYxxYYxYxxYxYYYYx*=:~----------------:*YVVVVYVYVVYVVVVVVVYVVVVVYVVVVVVVVVYVYVVVYVYVV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++============******Y###############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$#######$$$x*=++++++++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++++++++++++======**********x*xxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$8%%%%%%8#VV#88888888888888888888888888888888888888888888888888888888888888888888######8##8##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@ ====*=====================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++===================================*********************Y###########################################$VVYYYYYYYYxYxYxxYxxxYYxYxxYxYxYxxYxYxxYxYYxxxYxx*+~------------~=YVVYVVVYVVVVVVVVVVVVVVYVVVVVVVVVYVVVVVVYYVVVVYVYYVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++=============*****x$#################$#$$$$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$$########$$Y*=+++++++++++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++++++++++++=====***********xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV8%%%%%%8$YYYV#888888888888888888888888888888888888888888888888888888888888888888#########8#####8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%8888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@ ===========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=====================================********************V#########################################$VYYYYYYYYYxYxxxYxxYYxxxYxxYxYxYxYYxYxYxYxxxYxYxxxYYxx*+~--------:xYVYYVYVYVVVVVVVVYVYVVVYYVVVVYVVVVVVVYVVVVVVVVVYYVVYYYV$#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++++++++++=============******x#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$Y*==++++++++++++++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::++++++++++++++=====***********xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#%%%%%8#VYYYYYV#88888888888888888888888888888888888888888888888888888888888888888#88##8###########8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@ ==========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++====================================********************V#######################################$VYYYYYYYxYxxxYxYxxxxYxxxxYxxYxxxYxYYxxYxxYxxYYxYxYxxYxYYx*=:~---~=YVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVVVVVVYVVVVVYVVVVVVYVVVYY*::*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::+++++++++++==============******V####88#####################$$$$$$$$$$$$$$$$$$$$$$#########$$$Y*==++++++++++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::++++++++++++++====***********xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYV#88%%%8$YYYYYYYYV$8888888888888888888888888888888888888888888888888888888888888888888#8#####8#########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==================================*=********************$#####################################$VYYYYYYYYYxYxYxxYYxxxxYYYYYYYxYxYxYxxYxxYYxYxxYxxxYxxxYxxxYYxx*=:+xYVVVVVVVVYVVVVVVYVYVVYVYYVVVVVVVYVVVVYVVVVVVVVVVVVVVVVY*:---:*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+++++++++++==============******x####8#888#8###################$$$#$$$$$$$$$$$$$$########$$$$Y*==++++++++++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::+++++++++++++++===**********xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYV#8%888#VYYYYYYYYYYY$888888888888888888888888#888888888888888888888888888888888888888888###############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@ =========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++====================================*=*******************$##################################$VVYYYYYYxxYxxxYxYxxxxYYYVV$$$VYYxxxYxYYxxxYxxYxYYxxYYxxYxxYxxxYxYYxxxYYVVVVVVVVVVYVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++=================****V######88#8#88#####################$$$$$$$$#$$########$$$$Vx===+++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::++++++++++++++====**********xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYV88%%8#VYYYYYYYYYYYYYYV88888888888888#888#8888#888888888888888888888888888888888888888888888######8########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++++++++++==================================*==******************x$################################$VYYYYYYYxYYxYxYxxxxYYYYV$#888%88#VYYYxxxYxxYYxxYxxYxxYYxxYYxYxYxxYxYxYYYYYYYYYVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~=$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++================****Y#########8#8####################$$#$$$$#$$$$$#######$$$$Vx*==+++++++++++++++++++::::::::::::::~:~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::+++++++++++++++==**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYY$8888#VYYYYYYYYYYYYYYYYY$8888888888888#888#8##888#88888888888888888888888888888888888888888888########8######8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++==+===============================*=*******************x##############################$$VYYYYYYYxxYxxYYxxxYYYV$#88%%%%%%%%88#$VYYYYYxYYxxYxxYxxYxYxxxxxYxYxxxYYxxYxxYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=:~~~~~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%8$=---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++================****$$#############################$$$$$$$$$$$$$$$#$#$$$$$VVY**==++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++===**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYY$88#$VYYYYYYYYYYYYYYYYYYYY#888888888888###88#8#8#8#888888888888888888888888888888888888888888#88##########8####888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =*=======================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++:++++++++++++++++++++++++++=================================*********************Y############################$VYYYYYYYYYYxxxYxxYYYV$#888%%%%%%%%%%%%%%88$VYYYxxYxxYxYYxxYxYYxYxxYxYYxxxYxxYxYYxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~=#%%%%%%%%%%%%%%%%%%%%%%%%@%%8$x+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::+++++++++++================****YV$$$$######################$$$$$$$$$$$$$$$$$$$$$$$$VVVYx*==+++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++===*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYV#8#$YYYYYYYYYYYYYYYYYYYYYYY$8888##8888888#8####8##88##8#888888888888888888888888888888888888888888###8##8#########888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++================================**=*******************Y##########################$VYYYYYYYYYYYYYYYYYV$##88%%%%%%%%%%%%%%%%%%%%%8#$VYYYxxxYxxYxxxYYxYxxYxYxxYxYxYxYxxYYxYxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~+#%%%%%%%%%%%%%%%%%%%%@@%8$x+~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::+++++++++++++==================*xYYVVV$$$$$$$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVYYx**=+++++++++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++==********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYV#$VYYYYYYYYYYYYYYYYYYYYYYYYYV8888VV#888888888#8####88#888888888888888888888888888888888888888888888#################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@ =====*===================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++=+===============================*=********************V#######################$VYYYYYYYYYYYYYYYYV$$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%88#$VYYxxxxYYxxYxxYxYxxYxYYxYxYxYxxYxxYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%%%%%%@@%%8Vx+~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++===================*xxxYYYVVVV$$$$$$$$$$$$$$$$VVVVVVVVV$V$$$$$$$$$$VVVYYYYx**=+++++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++====******x***xxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$VYYYYYYYYYYYYYYYYYYYYYYYYYYYY#%8#YYV#88888888888888#8###8888888888888888888888888888888888888888888888#8########8##8#888888888888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@ ========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++================================*=********************V####################$$VYYYYYYYYYYYYYYVV$#88%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%88#$VYYYxYxYxYxxxxYxxYxYYxYxxxYxxYxYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%@@%%8$Y*+~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++====================****xxxYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYxxx**+++++++++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++===*******xx*xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY#88VYYYV#888888888888888#8##88888888888888888888888888888888888888888888###############888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ =====*==================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++================================*=********************$##################$VYYYYYYYYYYYYYYYV$#88%%%%%%%%%%%%%%8#$VxY$88%%%%%%%%%%%%%%%%88#$VYYxxxYYxxYYxxYxYxxYxYxYxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVY=:~~~~~~~~~~~~~~~~~~~~~~~~~+$%%%%@@@%%8$Y*+:~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++========================****xxxxYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVYYYxxxx*=+++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::++++++++++==******xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYY#8$YYYYYV$88888888888888888###88888888888888888888888888888888888888888#888###############88888888888888888888888888888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ ========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=================================*=******************x$###############$$VYYYYYYYYYYYYYVV$#88%%%%%%%%%%%%%88$Vx=:~~~:*V#88%%%%%%%%%%%%%%%%88#$VYYxYYxxYxxYxxxYYxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~~~~~~~~~~~~~+#%%%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$VYYYYxYxxYYxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVY=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=Vx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++===================++::++++++======*************xxxxxxxxxYYYYYYYYYYYYYxxxx*=++++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~-~-----------------------------------------------------------------------------------------------------------------------------------~~~~~-~-~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++==****xx**x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVV$$$VYYYYYYYYYYY$88888888888888888888#8888888888888888888888888888888888888888888###############88888888888888888888888888888888888888%%88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*==================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++================================*=******************Y###########$VVYYYYYYYYYYYYV$#88%%%%%%%%%%%%88$Vx=:~~-------------~+*Y$88%%%%%%%%%%%%%%%%%8#$VVYYYxYxYYxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVx+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++==================+:::::::+++++++===========*********xxxxxxYYYYYYYYYYxxxx*=+++++++++++++++++::::::::::::~:~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+:+++++++==***xx**x*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVYYYYYYYYYYYYYYYYY$888888888888888888#8##888888888888888888888888888888888888888888###########8#8#888888888888888888888888888888888888888%%88%88888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ==*=====================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++==================================*******************Y#########$VYYYYYYYYYYYV$$#88%%%%%%%%%%%88#Vx=+:~-------------------~:+xV#8%%%%%%%%%%%%%%%%%88#$VVYYYYYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+::~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++==================+::::::::::::++++++++===========******xxxxxxxYYYYYxxxxx*=+++++++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::+++++++==****x**x*xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$8888888888888888888888#88888888888888888888888888888888888888#888###############88888888888888888888888888888888888888%8888888%888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ==*=====================+++++++++++::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=+===============================********************V######$VYYYYYYYYYYYV$#88%%%%%%%%%%%88#$Y*+:~~-------------------------~:=Y$88%%%%%%%%%%%%%%%%%%88#$VYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=+:~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++==================::::::::::::::::++++++++++=========*******xxxxxxxxxxxx***+++++++++++++++++::::::::::::~~~~~~~~~~~~~~~~~~--~---------------------------------------------------------------------------------------------------------------------------------------------~---~-~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::+++++++=****xxx*xxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYY$#88888888888888888#88888888888888888888888888888888888888888888##################888888888888888888888888888888888888%%%888888888888%88888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==============================*********************$###$VVYYYYYYYYYYV$#88%%%%%%%%%%%%8#Vx=:~~--------------------------------~+*Y#88%%%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::++++++++++++==================::::::::::::::::::::+++++++++++========*******xxxxxxxx***=++++++++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++=**x*x*xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYY$#8888888888888888#8888###888888888888888888888888888888888888#8############8#####88888888888888888888888888888888888888888888888%888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++==============================*=*******************$$$VYYYYYYYYYYV$#88%%%%%%%%%%%88#Vx=:~--------------------------------------~~+*V#8%%%%%%%%%%%%%%%%%%%88##$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++=================+::::::::::::::::::::::++++++++++==========********x******=+++++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------~---~-~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::+++++=***x*xxxxx*xxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYV#888888888888888888#888##888888888888888888888888888888888888#####################888888888888888888888888888888888888%%88888%8%888%8%888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@@@%%8888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*=================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=============================*=*******************xVYYYYYYYYYYV$#88%%%%%%%%%%%88$Y*+:~~~------------------------------------------~:+xV#8%%%%%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+:+++++++++++++===============++++:::::::::::::::::::::::++++++++++++==========************=+++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::+++++=***x*xx*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYV#88888888888888#888#8#8###88888888888888888888888888888888888######################8888888888888888888888888888888888888%%88888%88%%88%888888888888888888888888888888888888#888#88888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%@%@%@%%%%%@@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=====================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++==============================*******************xxYYYYYYYYYV$#88%%%%%%%%%%%8#$x=+~~~~------------------------------------------------~:+xV#88%%%%%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx*=++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++===============+::::::::::::::::::::::::::::++++++++++++++==========*********=++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::+++++=****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYV#8888888888888#88##8#88###888888888888888888888888888888888888####################8#8888888888888888888888888888888888888888888888%8%8%88888888888888888888888888888888888#88##888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%@%@%@%%%%%%%@%@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++++::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++=+============================****************xxYYYYYYYYYVV#88%%%%%%%%%%%8#Vx=:~~~-~-----------------------------------------------------~:+*V$88%%%%%%%%%%%%%%%%%%%%%88#$$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx*==+::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++==============+:::::::::::::::::::::::::::::++++++++++++++++=========******===+++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~:~::::::::::::::::::::+++++=***x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYV#8888888888888888#####8####88888888888888888888888888888888888######################8888888888888888888888888888888888888888888888%888888888888888888888888888888888888888#8#8888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%@@%@%@%@%@%@%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================+++++++++++::::::::::::::::::::::~:~:~:~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++=+=============================*************xYYYYYYYYYYV$#8%%%%%%%%%%%8#Y*+:~~~~~~-~-~-~----------------------------------------------------~~+*Y$#8%%%%%%%%%%%%%%%%%%%%%888##$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**==++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=*=:~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++++++++============+::::::::::::::::::::::::::::::::+++++++++++++++++================+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~--~--------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++===**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV#88888888888888888#########8888888888888888888888888888888888#######################888888888888888888888888888888888888888888888888%88888888888888888888888888888888888888#8##888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@%@%%%%%%@%%@@%@%@%@%%%@@%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ========================++++++++++::::::::::::::::::::~::~:~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++============================**********xxYYYYYYYYYV$#88%%%%%%%%%%8$Y*+:~~~~~~~~~-~-~--~-------------------------------------------------------~:=xV#8%%%%%%%%%%%%%%%%%%%%%%%88##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=++::::~~~~~~~~~~~~~~~~~~~~~~~~+Y#%%%8#Y*:~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++++++++++============+:::::::::::::::::::::::::::::::::++++++++++++++++++==============+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV#888888888888888888#########888888888888888888888888888888888########################888888888888888888888888888888888888888%8888888%%888888888888888888888888888888888888#8##8#888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@%@%@%@%%%%%%@%@%@%@%%%%%%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++::::::::::::::::::::::~~::~:~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++===============================******xxYYYYYYYYYYV$#8%%%%%%%%%%8#Y*+:~~~~~~~~~~~~~~----~----------------------------------------------------------~:+*Y$#88%%%%%%%%%%%%%%%%%%%%%%8888#$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=:~~~~~~~~~~~~~~~~~~~:=V8%@%%%%@%%8V*:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++==============:::::::::::::::::::::::::::::::::::++++++++++++++++++=============++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~::::::::::::::::::::+++===***xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYY$888888888888888888###########88888888888888888888888888888888########################8888888888888888888888888888888888888888888888888%888888888888888888888888888888888888##8##888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@%@%@@%%%%%@%%%@%@@%%%%%%%%%%%888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++:::::::::::::::::::::::~::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++=============================*=**xxYYYYYYYYYYV$#88%%%%%%%%%8#V*+:~~~~~~~~~~~~~-~~-~-~----------------------------------------------------------------~:+*Y$#88%%%%%%%%%%%%%%%%%%%%%%%8888##$VVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~~~~~~+x$%%@%%%%%%%%%%@%#Y+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+++++++++++++++++============::::::+:++:+:::::::::::::::::::::::::+++++++++++++++++=============+++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYY$888888888888888888###########88888888888888888888888888888888#####################8###8888888888888888888888888888888888888888888888%%888888888888888888888888888888888888#8#88#88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%@%@%%%%@%@%@@%@%@%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=====================++++++++++::::::::::::::::::::::~~:~::~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++=============================**xYYYYYYYYYYVV$88%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------~:=*Y$#88%%%%%%%%%%%%%%%%%%%%%%%%%888###$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~~~~~~~+Y#%@%%%%%%%%%%%%%%%@%8V+~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+++++++++++++++++===========+::::++:+++++::::::::::::::::::::::::::++++++++++++++++=============++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++==***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYY$8888888888888888888######8###88888888888888888888888888888888#########################888888888888888888888888888888888888888888888%%8888888888888888888888888888888888888###8###88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@%@%@%@%%%%@%@%@@%@%@%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================+++++++++++:::::::::::::::::::::~:::~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++===========================**xxYYYYYYYYYYV$#88%%%%%%%%%8$Y=:~~~~~~~~~~~~~~~~~~~~~~~~-~--~---------------------------------------------------------------------~:=*Y$#88%%%%%%%%%%%%%%%%%%%%%%%%%%8888###$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~:=V8%@%%%%%%%%%%%%%%%%%%%%%8Y:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++============+::::++++++++::::::::::::::::::::::::::::::++++++++++++++===========++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYY$8888888888888888888###########8888888888888888888888888888888#######################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888###8####8888888888888888888888888888888%%%%%%%%%%%%%%%%%@@%%%%@@%%@@%%@@%@%%%%%%%%@@%@%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%8%8%888%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*================+++++++++++::::::::::::::::::::::::::~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++========================**xxYYYYYYYYYYVV$88%%%%%%%%%8#V*+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~---------------------------------------------------------------------------~~:+*xV$#88%%%%%%%%%%%%%%%%%%%%%%%%%%%88#####$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~~:*$%%@%%%%%%%%%%%%%%%%%%%%%%%%%#x~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++============+:::::+++++++:::::::::::::::::::::::::::::::::+++++++++++++==========+++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYY$88888888888888888#############88888888888888888888888888888888#######################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888#######8#8888888888888888888888888888888%%%%%%%%%%%%%%%@%@@%%%%%%@%%%%%%%%%%%%%%%%@%@%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%8%%8888888%8%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++::::::::::::::::::::~:~:~~::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=====================*xxYYYYYYYYYYYV$#88%%%%%%%%%8#Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~-----------------------------------------------------------------------------~:++=xV$#888%%%%%%%%%%%%%%%%%%%%%%%%%%%888####$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~=V%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::++++++++++++++++++===========+:::::+:+++++:::::::::::::::::::::::::::::::::::++++++++++++==========+++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYY$8888888888888888#88#######8####88888888888888888888888888888#8##########################888888888888888888888888888888888888888888888888888888888888888888888888888888888#8######88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%888%8%8%8%88%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =======================++++++++++::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++==================**xYYYYYYYYYYYYV$#8%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~---------------------------------------------------------------------------------------~:+==xY$##888%%%%%%%%%%%%%%%%%%%%%%%%%%%888#####$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+++++++++++++++++++===========+::::++++++::::::::::::::::::::::::::::::::::::::+++++++++++=========+++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++==****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYV#88888888888888#88##8###########8888888888888888888888888888############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#####8###8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%8888%8%8%8%8%88%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ======================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++================**xYYYYYYYYYYYYV$#88%%%%%%%%%8#Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-------------------------------------------------------------------------------------~~~~~~~:+=**YV##88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888######$VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++==========+::+++++++:::::::::::::::::::::::::::::::::::::::::++++++++++=========+++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYV#88888888888888##888#############88888888888888888888888888#8###########################88888888888888888888888888888888888888888888888888888888888888888888888888888888888##########88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%8%8888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=====================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++============*xYYYYYYYYYYYYYV$#8%%%%%%%%%88$x+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~------------------------------------------------------------------------------------~~~~~~~~~~~~~~~:+==*YV#888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYx+~~~~~:*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~:++==**xxxxxxxxxxxxx**==++:~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++=========+:++++++:+::::::::::::::::::::::::::::::::::::::::::++++++++++=========+++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYV#888888888888888#88#88###########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=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+=**xY$##888%%%%%%%%%%%%%%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYx+~~~~:Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-------------------------------------------------------------------------------------------------------------------~~~~------------------------------~~+=*xYYVVVVVVVVVVYVVVVVVVVVVVVVYVVVVVVVVVVVYxx=+:~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++=+========+:++++++:::::::::::::::::::::::::::::::::::::::::::::::::+++++++++=======+:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++==*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY$88888888888#88#8####8############8888888888888888888888888##############################8888888888#88888888888888888888888888888888888888888888888888888888888888888888888###########888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%8888888%8888888%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*====================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++======**xYYYYYYYYYYYYYYV$#8%%%%%%%%%8#Vx+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+===*xYVV$##8888%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY+~~~~~:*$%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-------------------------------------------------------------------------------------------------------------------------------------------------~:=*YYVVVVVVYVYVVVVYVVVVVYVYVYVVVVVVYVYVVVVVVVVVVVVYYx=+~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++=========+++++++::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++======++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY$8888888888888###888#88########8##888888888888888888888888################################88#888888888#8888888888888888888888888888888888888888888888888888888888888888888#8##8#######888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%88888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **===*=================+++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++====*xYYYYYYYYYYYYYYYV$88%%%%%%%%%8#Y*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++==**x$8%%%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYY+~~~~:::+Y$8%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y~------------------------------------------------------------------------------------------------------------------------------------~~--------~+*YYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYx=:~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++=========++++++++::::::::::::::::::~:~::::::::::::::::::::::::::::::::+++++++======+:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYY$88888888888####8####8#############88888888888888888888888################################8##88888#8#8888888888888888888888888888888888888888888888888888888888888888888888############88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%888888888888%8%8%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*====================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++==*xYYYYYYYYYYYYYYYVV#8%%%%%%%%%%8$x=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~:=*V8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-------------------------------------------------------------------------------------------------------------------------------------------~=xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVVVVVVVVYVYVYVVVVVVYY*:~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++:++++++++++++++++++++=========+++++++:::::::::::::::~~~:~~~~::::::::::::::::::::::::::::::::::++++++===+++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~:~:::::~:~:::::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYY#8888888#88#8########8########8###88888888888888888888888#####################################8888##88888888888888888888888888888888888888888888888888888888888888888888888#############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*=====================++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==*xYYYYYYYYYYYYYYYYY$#8%%%%%%%%%%#$x+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~~~:+x#%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=--------------------------------------------------------------------------------------------------------------------------------------~~:=x$8$VYVVVVVVVVVVYVVVVVVVVVVVVYVVVVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVYx=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++=========+++++++:::::::::::::~:~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:~~:~~~~~~::::::+++==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYV#88888888#888###############8##8###888888888888888888888#####################################8#888#88##888888888888888888888888888888888888888888888888888888888888888888888###########8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=*====================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++=*xxYYYYYYYYYYYYYYYYV$#8%%%%%%%%%%#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+Y8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY=:~~~~~~~~~~~~~~:x#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+-------------------------------------------------------------------------------------------------------------------------------~~:=*YV#8%%@%%#VVVVVVVYVYVVVYVVVVVVYVVVVVVVVVVVVVVVVVYVVVVYVYVYVVVVVYVVVYVVYY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+++++++++++++++++++++++==========+++++++::::::::::::~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::::++++++++:::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYV#8888888#8##8#######8#88##########888888888888888888888888######################################8####88888888888888888888888888888888888888888888888888888888888888888888888############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%8888888888888888%8%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*======================+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++==*xYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8#Y*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~-----------------------------------------------------------------------------------------------------------------------~~:+=*YV#8%%%@%@%%%%%%8$VVVYVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVYVVVVVVY=~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++++++++++++++++==========++++++:::::::::::::~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYV8888888##8#######################888888888888888888888888######################################88####8#8888888888888888888888888888888888888888888888888888888888888888888888##########88888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*======================++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++=*xYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$Y=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~~~~:*#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~---------------------------------------------------------------------------------------------------------------~~:+=*YV$88%%@@@%%%%%%%%%%%%%%%#VYVVVYVYVYVYVVVVVVVVVVVVVVVVVVYVVVYVVVVVVYVYVYVVVYVYVVVVVVVY*~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++===========++++++:::::::::::~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYY$88888888########8#################8#888888888888888888888#######################################88#####888888888888888888888888888888888888888888888888888888888888888888888############8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%8888888888888888%8%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *=======================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++=*YYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$x+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=------------------------------------------------------------------------------------------------------~~:++*xYV$$88%%%@%@@%%%%%%%%%%%%%%%%%%%%%$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVYVY*~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+++++++++++++++++++++++++===========+++++::::::::::::~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYY$8888888#88####8###################88888888888888888888888######################################888####888888888888888888888888888888888888888888888888888888888888888888888########8#####888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% *========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++*xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%%8$x+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~~+V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~-------------------------------------------------------------------------------------------~~~:+=*xYV$#88%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VVYVVVYVYVVVVVVVVVVVVVVVVVVVVYVVVYVVVVYVYVVVVVVVYVYVVYYYYY=~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++++============++++++::::::::::~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYY#8888888888######8###############888888888888888888888888################################################88888888888888888888888888888888888888888888888888888888888888888888##########8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=======================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++::+=xYYYYYYYYYYYYYYYYYYV$#8%%%%%%%%%8$*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~~~~~:V%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*~-------------------------------------------------------------------------------------~:+*xV$#88%%%%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVVVVVVVVVYVVVVVVYYVVVVVYVVVVVVVVVVVVVVVVVYVVYYVVVYVVYYYY*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+++++++++++++++++++++++++============+++++::::::::::::~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYY#8888888##88######8###8#########8#88888888888888888888888#################################################8888#8888888888888888888888888888888888888888888888888888888888888##8#########8#888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% =*========================+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++::::=xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%%#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~~:$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:------------------------------------------------------------------~~~~:::+++====*xxYV$#8%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VVVVVVVVVVVVVVYVYVVVVVVVVVVYVVVVVVYVYVYVVVVVVYYYYYYYYYYx:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++==============+++++:::::::::::~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::+++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV8888888888########################88888888888888888888888##################################################8#88888888888888888888888888888888888888888888888888888888888888#########8####8#88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ==========================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++:~~:=xYYYYYYYYYYYYYYYYYYV$88%%%%%%%%8#V*+~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~~-~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYY+~~~~~~~~~~~~~~~~~~~~~~~+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~-----------------------------------------------------~~~~::+=*xxYV$###888%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVVVYVVVVVVYVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYx*:~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=============+++++::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV888888888#######################888888888888888888888888##################################################8#8888#88888888888888888888888888888888888888888888888888888888888###############888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% **=========================++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++::~~:+*YYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------~-~---~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~~~~*8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+:~~~~~----------------------------~~~~~~::::++=***xYVV$##888%%%%@@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%VVVVVVYVYVVYVYVVVYVVVVVVVVVVVYVVVVVVVYVYYYYYYYYYYYYx*+~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++=+===============+++++::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~-~--~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$88888888888#8####################888888888888888888888888#######################################8######8##8##8#888888888888888888888888888888888888888888888888888888888888################888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% ===========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++::~~~:+*YYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------~---~--~-~-~-~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYY*+~~~~~~~~~~~~~:::++==**xx*$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8##$$VVYYYYxxxx*********xx*xxxxYYYVV$$$##88888%%%%%%%@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#VYVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVYYYYYYYYYYYxx*+~~---~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++=+================+++++::::::::::~~~~~~~~~~~~~~~~~~~~~:::::::::::::+++:::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~~------~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~-~~~-~~~~~~~~~~~~~~~~~~~~::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888#######################888888888888888888888888##############################################8#####8888888888888888888888888888888888888888888888888888888888888#8###############8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ===========================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++::~~~~~+*YYYYYYYYYYYYYYYYYYY$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------~----~~--~-~-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYx=:~::::+==***xYYYVVVVVVVVYY%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%@%@@%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@%@@%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8VVYVYVYVVVVVVYVYVYVVVVYVVVVVVVVVYYYYYYYYYYYYxx*=:~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++==================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~---------~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~---~~~~~~~~~~~~~~~~~~~~::++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888#####################8#88#888888888888888888888##################################################8###8#8888888888888888888888888888888888888888888888888888888888#8#8############88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ============================++++++++++++++:+:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++:~~~~~~:*xYYYYYYYYYYYYYYYYYV$#8%%%%%%%%8#V*:~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------~--~-~~---~--~-~-~-~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYx*xxYYYVVVVVVVVVVVVVVVVVVVY$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$VVVVVYVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYxx*=:~~~~~~-~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++++==================++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++:::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~---------------~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~:::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888#88######################8888888888888888888888#########################################################888888888888888888888888888888888888888888888888888888888##8###############8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%% ============================++++++++++++++++::::::::::::::::::::::::::::::++++++++++++++++++++++++++::~~~~~~:=xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%#V*:~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------~---~~-~--~-~-~~-~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYY%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#VVYVVYVYVVVYVYVVVVVYVVVYVYYYYYYYYYYYx*=++:~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+++++++++++++++++++++++++=+==================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::++++++::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~:::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV#8888888888##8####################8888888888888888888888#######################################################8#88888888888888888888888888888888888888888888888888888888##8##8############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++:+:::::::::::::::::::::::::++:++++++++++++++++++++++++:~~~~~~~:+xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V*:~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------~-~--~~--~~-~-~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%8#$YYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVY$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@%@%@@@@@%@%%8VVYVYVVVVVVVVVVVVVVVVYVVYYYYYYYYxx*+:~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::+:+++++++++++++++++++++++++====================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++::::::::::::::::::::::++++:::::::::::::~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888########################8888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888####88##8####8######88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%88888888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++::::::::::::::::::::::++:++++++++++++++++++++++++::~~~~~~~~+*YYYYYYYYYYYYYYYYYYV#88%%%%%%%%8Vx+~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------~---~--~~--~--~--~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%8#$VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVYV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@%%@@%%%%%%%%888888####$$$$$$$#8#VVYYVVVVVVVVVVVVVYVVVVYYYYYxx*=+:~~-~-~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+++++++++++++++++++++++++======================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~::::++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888#8##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####8############888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%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##888####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+~~~~~~~~~~~~~------------------------------------------------------------------------------------------------~---~---~--~-~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%@%%%%88##$VYxx*==+:::~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::++++++++++++++++++++++++++==========================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++::::::::::::::::::::::+++++::::::::::::::~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888#############8#######88888888888888888888888###############################################################88888888888888888888888888888888888888888888888888#8888#8#8###########888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%%%8888888888888888888%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%% ==============================++++++++++++++++++++:+++:++:+::+:++++++++++++++++::~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYYV$88%%%%%%%%8#Y+~~~~~~~~~~~------------------------------------------------------------------------------------------------~----~--~-~-~-~~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@%%%%8##VVYx*=++::~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::+++++++++++++++++++++++++++=========================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++:::::::::::::::::::::::++++::::::::::::::~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888######8###############8888888888888888888888##################$############################################888888888888888888888888888888888888888888888888888#8##88888###8##8###888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%8888888888%%%%%%%%%%%%%%%%%%%%%%%% =============================++++++++++++++++++++++::+:++:+::+:+++++++++++++::~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYYV$#8%%%%%%%%%#V=:~~~~~~~~~~--------------------------------------------------------------------------------------------------~~-~-~-~--~--~--~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$VVx*=+::~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::++++++++++++++++++++++++++===========================++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++::::::::::::::::::::::::::::+++++:::::::::::::~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888#8######8###########8#8888888888888888888888#################$###$#########################################88888888888888888888888888888888888888888888888888#88888888########8##8888888888888888%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%%88888888888888888888%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++++++:+:+::+::+:+++++++++++::~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8$*+~~~~~~~~~--------------------------------------------------------------------------------------------------~---~--~-~~--~~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%8#$VY*=++:~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++=+===========================+++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++++::::::::::::::::::::::::::+++++::::::::::::::~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~:::::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888###8#######8########8#8#888888888888888888888#####################$#######################################8##8888888888888888888888888888888888888888888888888#88#888#8##8#######8#888888888888888%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%%88888888888888888888%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++++++++:+:+:::++++++++++::~~~~~~~~~~~~~~~~:+xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#x+~~~~~~~~------------------------------------------------------------------------------------------------~-----~--~--~~-~--~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@%%%8#VYx*+:~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::+:++++++++++++++++++++++++++============================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++::::::::::::::::::::::::::++++++:::::::::::::::~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888##8##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##888888888888888888888888#######################$###$######################################88888888888888888888888888888888888888888888888888888888#8#8######8#8888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888%%%%%%%%%88888888888888888888%%%%%%%%%%%%8888888888%%%%%%%%%%%%%%%%%%%%%% *=============================++++++++++++++++++++++++++::+:+:+++++::~~~~~~~~~~~~~~~~~:*xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%8$x:~~~~~~---------------------------------------------------------------------------------------------------~~----~-~~--~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%8#$Y*=:~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::+++++++++++++++++++++++++++================================+++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++++:::::::::::::::::::::::::++++++:::::::::::::::~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~:::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV888888888##8###########888##888888888888888888888888###################$###$#$####$####################################888888888888888888888888888888888888888888888888888888888#88#####8#8888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%%888888888888888888888%%%%%%%%%%%%%8%888888%%%%%%%%%%%%%%%%%%%%%% =============================+++++++++++++++++++++:++++::+::+::+:::~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYV$8%%%%%%%%%8#Y+~~~~~----------------------------------------------------------------------------------------------------~---~-~--~-~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+x#8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%8$Y*+:~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++++===============================+++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++++::::::::::::::::::::::::+++++++:::::::::::::::~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:::::+++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888#####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#8888#88888888888888888%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++++++++++++=+==================================++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~-~-~~~~~~~~~~~~~~~~~~~~~~~:::::++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV888888888888#88#8888#88#888888888888888888888888888##################$$#$$$#$$$$$##$#$#$###############################8888888888888#88888888#8#8888888888888888888888888888888888#8888888888888888888888%888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%%888888%%%%%%%%%%%%%%%%%%%%% ****=========================+++++++++++++++++++++++:+::~~~~~~~~~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYV$8%%%%%%%%%%8V*:~---------------------------------------------------------------------------------------------~-~--~-~--~~--~-~----~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::++++++++++++++++++++++++++====================================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888#8#8#888888888888888888888888888888888###############$##$$$#$$#$$$$$$$$$$$################################888888888888888#88888888#88#88888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%8888%%%%%%%%%%%%%%%%%%%%%% ****=========================+++++++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~:*YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8#x+~-------------------------------------------------------------------------------------------~~-~-~-~-~-~--~--~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V8%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++++++======================================+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888888888888888888888888888888888888888888888888####################$$$#$$$$$#$$$#$$#$###############################8888888888888#8#8888#88#88888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%% ****=========================+++++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYY$88%%%%%%%%%8V=~------------------------------------------------------------------------------------------~-~---~--~~-~-~-~---~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V8%%%%%%%%%%%%8$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Y~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++++++++=====================================++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888888888888#8888888888888888888888888888888##############$###$#$$$$$$$$$$$$$#$$$$$###############################8888888888888#88#8#888#888#8888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ***=========================++++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~:=xYYYYYYYYYYYYYYYYV$8%%%%%%%%%8#x+~----------------------------------------------------------------------------------------~-~--~--~-~-~--~-~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::+++++++++++++++++++++++++++======================================+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888888888888888888888888888888888888888888#################$#$#$#$$$$$$#$$$#$$$$#$#$###########################88888888888#####8#8#888##88888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=========================+++++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V*~---------------------------------~---------------------------------------------------~-~--~--~-~--~~--~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V8%%%%%%%%%%%88$VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVYV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8=~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++++++=======================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$8888888888888888888888888888888888888888888888888#################$$#$$$#$$$$$$$$$$$$#$$$$#############################8#888888888#####88#######8#8888888888888888888888888888888888888888888888888888888%%88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **=========================+++++++++++++++++::~~~~~~~~~~~~~~~~~~~~~~~~~+*YYYYYYYYYYYYYYYYY$#8%%%%%%%%%#Y+~--------------------------~----~----------------------------------------------------~---~-~--~~-~--~---~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVY#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+:+++++++++++++++++++++++++=========================================+++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888888888888888888888#################$#$$$$$$$$$$$$$$$$$#$$#$$############################8#888888888####88#88#8#8#888888888888888888888888888888888888888888888888888888888%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =========================+=+++++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYV$8%%%%%%%%%8$*:-----------------------~~-~----~---~-------------------------------------------------~-~~--~~--~--~-~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVYYYYxxx**=*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++++==========================================++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++:+::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888################$$$#$$$$$$$$$$$$$$$$$$$##$###########################8##888888888#8###8#8#####8#88888888888888888888888888888888888888888888888888888888%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ==========================++++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~:=YYYYYYYYYYYYYYYYYV#8%%%%%%%%%8V=~-------------------~-~--~----~---~---~--------------------------------------------~~--~-~~--~~--~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**===++::::~~~~:Y%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++++++++++++++++++++++++=+=========================================++++++++:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::~::::::::::::::+++++++++::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888##################$#$$$$$$$$$$$$$$$$$$$$$#$$###########################888#888888#####88##########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#########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$#888888#88888888888888888888888888888888888888###################$$$$$$$$$$$$$$$$$$$#$$#$#$$#$########################88888888##################888888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====================+=+===xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$88%%%%%%%%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#88888##################88#8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====+=======+===++=*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV#8%%%%%%%%8$*:--~~~~~~~~~~--~-~~-~--~-~~-~--~--~--~-~---~-----~---~-----~---~--~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~~~~~:Y%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++++================================================+++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=+++::::::::~~:::::::::::::::+=+++++++++:::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~----~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#8888####88888888888888888888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$########################8#8888######################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#################$#$#$$$$$$$$$$$$$$$$$#$$#####$##########################888#8###################88888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+====+=====*xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$88%%%%%%%%#Y+~~~~~~~~~~~~-~--~--~---~--~---~--~-~--~~-~--~~--~~--~-~~-~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~-~-~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~~:x8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++===================================================+++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+=====+::::::::~~::::::::::::::+===+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++=====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888####88888888888888888888888888888888888888##################$$##$#$$$$$$$$$$$$$#$#$###$#$$##########################8888####################8888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+==+==+==*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYY$8%%%%%%%%8#x+~~~~~~~-~~~-~--~~---~--~-~-~-~-~---~--~-~-~--~~--~-~~--~~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~----~--~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=V8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~~~=$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++=+==================================================++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+======+::::::~:~:~:::::::::::::+====+++++++:::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~~-~~~~-~-~---~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888####88888888888888888888888888888888888888888#8###########$#$#$$$$$$$$$$$$$$$$$$$$#$##$#$###########################88#8#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===+==+====xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYV$8%%%%%%%%8$*:~~~~~~~~~~~~~~~~~~--~~-~--~~--~-~~--~~-~-~-~--~-~-~-~----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~--~---~-~~--~-~-~~--~~~-~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Y8%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY*:~~~~~~~=Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V:-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=+=================================================++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::+======+::::::::~~::::::::::::::+====+++++++++:::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~----~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8888#8#8888888888888888888888888888888888888888###############$#$$$$$$$$$$$$$$$$$$$######$############################8888####################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%%%%%%%%%%%%#VYYYYYYYYYYYYYYYYYYYYYYYYx::+=Y#8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++===================================================+++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:+======+::::::::~~~:::::::::::::=====+++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88#8##888888888888888888888888888888888888888888###############$$#$$$#$$$$$$$$$$$$#$$#$#$##############################8#8#####################8888888888888888888888888888888888888888888888888888%%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =====*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxYV#8%%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~-~--~--~-~~-~--~--~--~-~~-~-~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----~-~-~~--~--~--~-~-~--~-~-~----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%#VYYYYYYYYYYYYYYYYYYYYYYYYx+*#%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++=++===================================================+++++++++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::=======+::::::::~~::::::::::::::=====+++++++++:::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~---~---~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888##8888888888888888888888888888888888888888888#8#############$#$#$$$$$$$$$$$#$$#$####################################888#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ===*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%#Y+~~~~~~~~~~~~~~~~~~~~~~~-~-~---~--~---~-~~--~--~---~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~~----~--~--~-~~-~--~-~~--~--~-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x#%%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx::Y8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~~~~----~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=+===================================================+++++++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::=======:::::::~~~:::::::::::::::=====++++++++++::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88##8#88888888888888888888888888888888888888888888############$#$$#$$$$$$$$$#$$$$$##$#####$############################888#####################8888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% =*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYV#8%%%%%%%%#Y+~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~-~--~-~-~--~--~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~----~---~--~--~--~~-~--~-~---~---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$8%%%%%%%%%%%8$YYYYYYYYYYYYYYYYYYYYYYYYx+~~=Y8%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#=~~~-~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++===================================================++++++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+======+::::::::~~:~:::::::::::::=====+++++++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~----~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88##8888888888888888888888888888888888888888888888#############$$$#$$$$$$$$$$$$$$##$###################################88#####################88888888888888888888888888888888888888888888888888888%%%8888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYxxYYYV#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%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$+~~~~-~-~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++====================================================+++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+======+::::::::~~~~:::::::::::::+====++++++++++++:::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~--~-------~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++====******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY##888#88888888888888888888888888888888888888888888888#########$###$#$$$$$$$$$$$#$$$##$###############################88888####################88888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYxxxYxYYV#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-------------------~----~-----~---~-~-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+*Y$8%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYx=~~~~~~~~+x#%@@%%%%%%%%%%%%%%%%%%%%%%%%%@%V+~~~~-~--~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=====================================================+++++++++++:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+======+::::::::~~:~:::::::::::::+====+++++++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~---~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++====******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#8#8#888888888888888888888888888888888888888888888888###########$$#$#$$$#$$$$$$$#$#$################################8888888##################888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxYYxxYYYY$#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~------------------~-----~-~---~------~------------------------------------------------------~--~~~~~~~~~~~~-----------------~~~:=*Y$88%%%%%%%%%%%%%%8#VYYYYYYYYYYYYYYYYYYYYYYYY=~~~~~~~~~~:*V8%@@%%%%%%%%%%%%%%%%%%%%%%#*~--~~--~--~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++++++++=====================================================++++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::=======::::::::~~~~:::::::::::::+=====+++++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--~---~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====******x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##88#8888888888888888888888888888888888888888888888888##########$#$$#$$#$$$$$$$#$$#$###############################888888888###############8888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYxYxYYYYY$8%%%%%%%%8$=:~~~~~~~~~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-----------------------~-~----~----~-----------------------------------------------------------------------------------------~:=xV#8%%%%%%%%%%%%%%%%88#$YYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~+x$%%@@%%%%%%%%%%%%%%%%%8Y:~~~~~~----~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++=============================================*======++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::======+::::::::~~~~:~:::::::::::+=====+++++++++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888888888#8######$#$$$$$$$$$$$$$$$$$$#$#############################8#88888888###############88888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxYYxYYYYY$#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------~----------------------------------------------------------------------------------------~:=xV#8%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYY*~~~~~~~~~~~~~~~:=x$8%@@@%%%%%%%%%%@%#=~-~~~~~--~--~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::++++++++++++++++++++=========================================*==**=*=*===+++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~~~~~~~~~~~~~~~~~:::+======+::::::::~:~~~~:::::::::::======+++++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~-------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88#888888888888888888888888888888888888888888888888888#8#####$$$$$$$$$$$$$#$$$###$###############################88888888#8#############888888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxYYYxxYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------~-------------------------------------------------------------------------------------------~:=xV#88%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx:~~~~~~~~~~~~~~~~~:+*V#8%@@@%%%%%%8Y:~~~~~~~~-----~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++====================================*=======*=*=*====+++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~~~~~~~~~~~~~~~~~:::+======:::::::::~~~~~~::::::::::+======+++++++++++++++::::::::::::::::::~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~---~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$#$$###$############################888888888888############8888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------~:=x$#8%%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+~~~~~~~~~~~~~~~~~~~~~:=xV#8%%@@%#*~~~~~-~-~~----~~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++=+===================================**=*==****=*=*===+++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~~~~~~~~~~~~~~~~~:::+=====+:::::::::~~~~~~::::::::::+=====++++++++++++++++::::::::::::::::::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-----~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$$$###############################8888888888888###########8888888888888888888888888888888888888888888888888888888888%%%%888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------~:+*Y$#8%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*:~~~~~~~~~~~~~~~~~~~~~~~~~:+*xYVY+~~~~~~~~~~~----~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++=+=================================*==****=**=*****==+++++::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~--~~~~~~~~~~~~~~~~::::+=====+:::::::::~~~~~~~~:::~::~:======++++++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$#$###$############################88888888888###8#######88888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%%%%%888%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~~::=xV$88%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~-~~~~~-~--~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++=+=================================*==*=************==+++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~---~--~~~~~~~~~~~~~~~~::::+=====+:::::~::~~~~~~~~::~:::~::=======++++++++++++++++:::::::::::::::::~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$$$$############################8##8#8888888888888#########88888888888888888888888888888888888888888888888888888888888%%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%%8%888%%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYxYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~:+=*YV#88%%%%%%%%%%%%%%%88#$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~--~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++======================================**=***********==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~-~--~-~~~~~~~~~~~~~~~~::::+====+:::::::~::~~~~~~~:~:~:~::+=======++++++++++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~-------~-------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$$$###$############################888888888888888########888888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888%8888%8%%%%%%%%%%%%%%% VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxYYYxYxYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------~~~::+=xV$#8%%%%%%%%%%%%%%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::+++++++++++++++++++++======================================**************==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~--~-~~~~~~~~~~~~~~~~::::+====+::::::::~:~~~~~~~~::~~~::+======++++++++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-----~----------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$$$$##$#$#######################88#888888888888888#8######88888888888888888888888888888888888888888888888888888888888%%%%%88888%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888888888888888888888%8888%88%%%%%%%%%%%%%% =*xYVVVYYYYYYxxxx***===++++::::~~:*xxxYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------~~:+=*xxYV#88%%%%%%%%%%%%%%%888#$VYYYxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~-~~~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++====================================*==**************==+++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~~--~~-~~~~~~~~~~~~~~~::::++=+++::::::~:~~~~~~~~~~~~~~:~:=======+++=++++++++++++++:::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~---~-~~~~~-~-~~----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888#####$$$$$$$$$$$$$$#$$$###$##################8##8#8#8888888888888888######88888888888888888888888888888888888888888888888888888888888%%%%%%%8888%%%%%%%%%%%%%@%@@%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888888888888888888888%88888888%%%%%%%%%%%%% ~~:+++++:::::::~~~~~~~~~~~~~~~--~*xxxYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~~~:+=*YV$##88%%%%%%%%%%%%%88888##$VYYYYYYxxYxYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~-~~-~--~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++====================================****************==+++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~--~--~~~~~~~~~~~~~~~~~~::::+++++:::::::~:~~~~~~~~~~~~~~:::========++=+++++++++++++++:::::::::::::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~~~~~~-~~~-~~-~~---~------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$888888888888888888888888888888888888888888888888888888888####$$$$$$$$$$$$$$#$$$###$##################8#8#8#88888888888888888#8####88888888888888888888888888888888888888888888888888888888888888%%%%88888%%%%%%%%%%%%%%%@%%%%%%%%@%%%%%%%%%%88888888888888888888888888888888888888888%8888888888888888888888888888888%%%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------~~~:+=*xY$##88%%%%%%%%%%%%%%%8888##$VVYYYxxxYxYxxYxxYxYYYYYYYYYYYYYYYYYYYYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~-~~~~~-~-~~~~~~~~~~~~-~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++==+===============================*=*=*=*************==++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~--~~~-~~~~~~~~~~~~~~::~::+++++:::::::~:~~~~~~~~~~~~~~::+=======+=+=+++++++++++++++:::::::::::::::::~~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~-~~-~---~-----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$$$$$$$$#$$######################88#8888888888888888888#8##88888888888888888888888888888888888888888888888888888888888888%%%%%8888%%%%%%%%%%%%%%@@%%%%%@%@%@%%%%%%%%%88888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~---~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~-~-~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------~~::+=*xY$##88%%%%%%%%%%%%%%%88888###$VYYYYxxYxxYYxxxxYYxxxxxYYYYYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~--~-~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++====================================*****************==++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~--~-~-~~~~~~~~~~~~~~~~~:::::++++:::::::~::~~~~~~~~~~~~~~::==========++==++++++++++++++::::::::::::::::::~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~-~~~~-~-~-~~--------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888##$$$$$$$$$$$$$$$#$$#$$#####################8#8888888888888888888888###88888888888888888888888888888888888888888888888888888888888888%%%%%%888%%%%%%%%%%%%%%%%%%%%%@%@%%%@%%%%%%%%8888888888888888888888#888888888##8888888888888888888888888888888888888888%%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~-----~*xYYYYYYYYYYYYYYYYV#8%%%%%%%8V=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~~~::=*xYV$#888%%%%%%%%%%%%%%%%%888##$$$VVYYYxxxYxxxYxYxxYxxYxxYxxxxYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--~~-~~--~~~~~~~~~~~~~~~~-~~~-~~~~-~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::+:++++++++++++++++++++===================================******************==+++++++::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~--~-~-~~~~~~~~~~~~~~~~~::::::+++:::::::~~~~~~~~~~~~~~~:~::==========+===+++++++++++++++:::::::::::::::::~::~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~-~---------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#888888888888888888888888888888888888888888888888888888888#$$$$$$$$$$$$$$#$$#$$$##$################8##888888888888888888888888##88888888888888888888888888888888888888888888888888888888888888%%%%%%%8%%%%%%%%%%%%%%%@%@%@%%%%%%%%%@%%%%%%%88888888888888888888888888#88888#888888888888888888888888888888888888888888%%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~-----~*YYYYYYYYYYYYYYYYYV#8%%%%%%%8$=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------~~::+=*xY$##88%%%%%%%%%%%%%%%%8%8888##$VVYYYYYYYYxxxYxxYxYxxxYYxxxxxxYxxxxxxxYxxx*=+~~~~~~~~~~~~~~~~~--~~-~~-~-~-~-~~--~~---~---~--~-~~~~~~~~~~~~-~~~~~~-~~~~~~~~~~---~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+++++++++++++++++++++==================================*==*****************==+++++++:::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~--~~-~~~~~~~~~~~~~~~~~~::::::++:::::::~::~~~~~~~~~~~~:::::=============+==+++++++++++++:::::::::::::::~~:~:~~~~~~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~-----~-------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#88888888888888888888888888888888888888888888888888888888###$#$$$$$$$$$$#$##$$$$$$###################8888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888%%%%%%%88%%%%%%%%%%%%%@%@%@%%%@@@@@@@@%%%%%%%888888888888888888888#88888#888##88#8888888888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~--------~*YYYYYYYYYYYYYYYYYV#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------~~:+=*xYV$#888%%%%%%%%%%%%%%%%%88888##$$VVYYYYYYYxxxYYxxYYxxYxxYxxxYxYxxYxxxxxxxxxx*+:~------~--------------~-----~---~---~----------~---~~~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++====================================*=*****************=++++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~-~---~~~~~~~~~~~~~~~~~:~:::::::+:::::::~:~:~~~~~~~~~~::::::==============+=++++++++++++++:::::::::::::::::~~~~:~~~~:~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~-~~~~~-----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888##$$$$$$$$$$$$###$#$#$#$$###############8###88888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%8%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%888888888888888888888888#888888#88#8888888888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~------~~~=xYYYYYYYYYYYYYYYYV#8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------~~~::+=*xYV$#888%%%%%%%%%%%%%%%%%%%88888##$$VYYYYYYxxYYYxxYxxxxYxxYxxxYxxxxYxxxxxxxxxxx*=+:~------------------------------------------------------~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++==================================*==******************=+++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~--~~~~~~~~~~~~~~~~~~:~:::::::::::::::~~:~~~~~~~~~::::::::================++++++++++++++::::::::::::::::::~~~:~:~~~:~:~~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~---~-------------------------------------------------------------------------------------------------------------------------------~-----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888888888888888888888###$$$$$$$$$$###$#$##$$##$###############888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@%%@@@@@@@@@@@@@%%%%%%%888888888888888888888#8888##8#88#88888888888888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~------~~~~~=xYYYYYYYYYYYYYYYYV$8%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------~~~:++=*xYV$##888%%%%%%%%%%%%%%%%%%%%8888##$$VVYYYYYYxxYYYxYxxYxxYxYYxYxxYxxxYxYYxYYxxxxxx**=+~~---------------------------------------------------------~~~~~~~~~~~~-~~~~~~~-~~~~~~~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++=================================*=*******************=+++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+::::::::~~:~~~~~~~~::::::::+================+++++++++++++++:::::::::::::::::::::~~:::~~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~-~-----------------------------------------------------------------------------------------------------------------------------------~---~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##8888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$$$#$###$$$$##########8#8#8##8##888888888888888888888888888888888888888#88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#88#888#88#8888888888888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~----~~~~~~~=xYYYYYYYYYYYYYYYYV#8%%%%%%%%8Y+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------~~~::++=*xYV$##888%%%%%%%%%%%%%%%%%%%%%88888##$$VYYYYYYYxxxxYxxYYxYxxxYxxYxxxxxxxxxxxxxxYxxxxx***=:~-------------------------------------------------------------~-~~-~~~~~-~~-~~~~~~~-~~~~~~~-~-~--~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++++=+===============================**********************=+++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::++::::::::::~~~~~~~~~::::::::+==================++++++++++++++::::::::::::::::::::~::~::~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~---------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$##8888888888888888888888888888888888888888888888888888888###$$$$$$$$$$$#$$$#$#$$#$$########8#8#88#888888888888888888888888888888888888888888#88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888888888#8#8#88888888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~--~~~~~~~~~~=YYYYYYYYYYYYYYYYYV$8%%%%%%%%8$*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------~~~::::+=*xYV$$##888%%%%%%%%%%%%%%%%%%%%%%%8888###$$VVYYYYYxxxxYYYxxYxYxYxxxxYxYxxYxxxYxxxxxxYYxxx**===+:~-----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++++++=+================================*=********************=++++++++++:::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::++::::::::::~~~~~~~~:::::::::+===================+++++++++++++::::::::::::::::::::~:~:~:~~::~:::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-~~----~-----------------------------------------------------------------------------------------------------------------------------~-----~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY####888888888888888#88888888888888888888888888888888888888##$#$$$$$$$$$$#$$$#$$#$$$$######88#88#88888#88888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#888#8##88##8#8888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~=YYYYYYYYYYYYYYYYYY$8%%%%%%%%%8V+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------~~~:::++=*xYVV$$##888%%%%%%%%%%%%%%%%%%%%%%%8%8888##$$VVVYYYYYYYxxxYxYxxYxxYxYxYxxxYYxxxxxxxxxxxxxYYxxxx*=+:::~~---------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++++++++++++++++++++++==================================*********************=++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::++++:::::::::~~~~~~~:::::::::++====================+++++++++++++:::::::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~----------------------------------------------------------------------------------------------------------------------------------~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##888888#88888888#8888888888888888888888888888888888888888##$$$$$$$$$$$$$$##$#$$###$######88#888#888888888888888888888888888888888888888888#888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888#88888##8##8#8#888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~=xYYYYYYYYYYYYYYYYY$8%%%%%%%%%%8Y+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-------------------------------------------------------------------------------------------------------~~~::::+==*xYYV$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%88888##$$$VYYYYYYxxxxxYxxYxxYxxYxYxxYxxxYYxxxYxYxxYxxxxxxxxxx*=+::~---------------------------------------------------------------------------~-~~~~~~~~-~~~~~~~-~~~~~~~~~~~~-~~~~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::+:++++++++++++++++++++=+====================================*******************=++++++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::+++++:::::::::~::~~::::::::::+++====================+++++++++++++::::::::::::::::::::::::::::::::~:~~~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~-~--~---------------------------------------------------------------------------------------------------------------------------~----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++=*****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$##888#8888#888#888888888888888888888888888888888888888888##$$$$$$$$$$$$#$$##$#$$#$#######8888888888888888888888888888888888888888888888888###8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888888888###8##8##8##888888888888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~=xYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%#Y=+++::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-------------------------------------------------------------------------------------------~~~~~~::::+==*xYYVV$$#88888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888###$$$VVYYYYYYxxxxxxxxxYxxxxYxxxxxxYxxxxxxxxxxYxYxxxxxxxxxx**=+:~~--------------------------------------------------------------------------------~-~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++=+====================================********************=+++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++::::::::::::~~::::::::::+++=======================+++++++++++::::::::::::::::::::::::::::::::::~~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~---~-------------------------------------------------------------------------------------------------------------------------~----~--~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+==*****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#####88888#88888888888888888888888888888888888888888888888###$#$$$$$$$$$$$#$$#$$#########888888#888888888888888888888888888888888888888888#8#88888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%8888888888888888888#888#####8#88#88##888888888888888888888888888888888888888%%% ~~~~~~~~~~~~~~-~~~~~+xYYYYYYYYYYYYYYYYYY$8%%%%%%%%%%%88#$$$VVVYYxxx*===++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~-------------------------------------------------------------------------------~~--~~~~~~~~:::++==*xYYVV$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888###$$$VVYYYYYYYxxxxxYxYYxYxxYxxYxxYxxYxxYxYxYYxxxxYxYYxYxxxxxx**=+:~--------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+:+++++++++++++++++++++++=+==================================*********************=+++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++=++++:::::::::::::::::::::::+++========================+=+++++++++:::::::::::::::::::::::::::::::~::~:~:::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~-~-~---------------------------------------------------------------------------------------------------------------------------~-------~~~~~~-~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##88#8#8#88888##88##88888888888888888888888888888888888888##$$$$#$$$$$#$#$##$#$#$$#######888888888888888888888888888888888888888888888888#88#8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888#88#88#8####8####8888888888888888888888888888888888888888%% ~~~~~~~~~~~~~~-~~~~+xYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%888888###$$VVYxxx**=++++::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::++++++++===+======***xxxxxYYVV$$$##8888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888###$$VVVYYYYYYYYxxxxxYxxxxxxxxYYxYxxYxYYxYxYxYxxxxYxYxxxxxYYxxxxx*==+:~~------------------------------------------------------------------------------------------~~~~~~~-~~~~~-~~~~~~~~~~~~~~~-~~~~~~~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::+++++++++++++++++++++++=+=====================================********************=++++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::+++=++++::::::::::::::::::::::++++==========================++++++++++::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~--~-~-----------------------------------------------------------------------------------------------------------------------~-----~~--~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$####8##88#8#88##88888888888888888888888888888888888888888##$$#$$$$$$$$$#$$$$#$$$#########88888888888888888888888888888888888888888888888##8#8888888888888888888888888888888888888888888%%%%%%%%%%%%8%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#88#88#8##8#8#8###8888888888888888888888888888888888888888 ~~~~~~~~~~~-~~~~~~+xYYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888##$$$VVVVYxxx*******====+++===+++++++++++++++++++==========**********xxxxxxxxxYYYYYYYYVVVVVVVVVV$$$$$$$$$$#############8888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$VVVVYYYYYYYYxxxxxxxxYxxYYxxYYxxYxxYxxYxYxxYxxYxxYxxxxxxxxxxYxxx*=++:~~------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++++++++++++++++++=====================================********************==+++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++++:::::::::::::::::::::++++==========================++++++++++++::::::::::::::::::::::::::::::::~:~:::::~~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~~~-~----------------------------------------------------------------------------------------------------------------------~--~-------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#####8##8#8#888#8###88#8888888888888888888888888888888888####$$$$$$$$$$#$$$$#$$##$#######88888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888#8888#####88##8#8###8888888888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYYYYV#8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888########$#$$$###$$$##$$##################8888888888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$$VVVVYYYYYYYxYxxxxxxYxYxxYYxxYxYYxxYxYYxYxxYxYxxxxxxYxYxxYYxxYxxxxxx**=+:~~------------------------------------------------------------------------------------------------------~~~~~~~~~-~~~~~-~~~~~~~~~~~~~~-~~~~~--~-~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++=+==================================***********************=++++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++++++:::::::::::::::::::::++++===========================++++++++++++:::::::::::::::::::::::::::::::::::::::~:~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------~--~---~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV####8##88#8####8#8#88#88888888888888888888888888888888888###$#$$$$$$$$$$#$#$#$#$$#######88888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%8%%%@%@@%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888#88888#8#8#8#######8#888888888888888888888888888888888888888 ~~~~~~~~~~~~~~~~:xYYYYYYYYYYYYYYYYYYYYYV$$$######88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888###$$$$VVVYYYYYYYYYYYxxxxxxxxYYxxxYxYxxxxxxxYxxYxxxYxxxxYxxxYxxxxxxxYxxYYYYxxxx*==+:~~-----------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::++++++++++++++++++++++++=====================================**********************==+++++++++++++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::++++++:::::::::::::::::::::+++++===========================++++++++++++++::::::::::::::::::::::::::::::::::::~::::::~:::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------~------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+==******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########8#8##8##888##888888888888888888888888888888888###$$$$$$$$$$$$$$$$#$$#########8888888888888888888888888888888888888888888888#####8888888888888888888888888888888888888888888%%%%%%%%%%%%%8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888888###8###########888888888888888888888888888888888888888 ~~-~~~-~-~~~~~~:*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVV$$$$$####88888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%%%888888888###$$$$VVVYYYYYYYYYxxxxxxxxYxxYxYxxxxYxxxYYxYxxYxxYxYxYxxxxYxxxxxYxYYxxxxxxxxYYYxxx**=++:~~----------------------------------------------------------------------------------------------------------------~~~~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+:+++++++++++++++++++++++======================================*=********************==+++++++++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::+:+++::::::::::::::::::::++++++===*****=====================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~-~--------------------------------------------------------------------------------------------------------------------------~----~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$###################8##8888888888888888888888888888888888###$$#$$$$$$$#$$#$$$$$##########888888888888888888888888888888888888888888888#######88888888888888888888888888888888888888888%%%%%%%%%%%%%8%%@@@%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#88##88##########88888888888888888888888888888888888888 -~~-~-~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$#####888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%8%%8888888888888888888888888888888888888888888##888#########$$$$VVVVYYYYYYYYYxYxxxxxxxxYxxYxYxxYYxxYxxYxxxYxxxYxxYxxxxxYxxxYYxxYYxxxxYxxYYYYxxxxxx*==+:~~----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~---~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+++++++++++++++++++++++++++=====================================**********************==++++++++++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++::::::::::::::::::++++++++====******=====================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----------------------------------------------------------------------------------------------------------------------------~---~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$######8######8#####88##88888888888888888888888888888888####$#$$$$$$$#$#$$#$$#$$########888888888888888888888888888888888888888888888##8##8#888888888888888888888888888888888888888888%%%%%%%%%%%%%8%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%88888888888888888888888888#############88888888888888888888888888888888888888 ~~-~~-~~~~~~~~~*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$#$$###############8##8888####88##8##########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxYYxxYxxxYYxxYxxYxxYYxxYYxYxxxxxYxxxxxxxYxxYxxxxYxxxxxYYYYYxxxx**=++:~~-----------------------------------------------------------------------------------------------------------------------------~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::++++++++++++++++++++++++++=======================================**********************===++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::++++++++=====*********===================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:::~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-----------------------------------------------------------------------------------------------------------------------~-~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++==*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#########8############888888888888888888888888888888888#####$$$$$$$$$$$$$$#$$$#$#######88888888888888888888888888888888888888888888########888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%8888888888888888888##88##8#8############8888888888888888888888888888888888888 ~-~~~~~~~~~~~~+xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYYVYVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYxxYxYxxxYxxxxxxxxYxxxxxxxxxxYxYxxxxxxxxYxxYxxxxxxxYxxYYYYYYxxxxx*=++:~~~-----------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::++++++++++++++++++++++++++=+========================================**********************====++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::++++++++======*********===================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~:~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$######8##########8##8#888888888888888888888888888888888#####$$$$$$$$$$##$$$$$$#$#######88888888888888888888888888888888888888888888####8#8#888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%888%8888888888888888888#88################888888888888888888888888888888888888 -~-~~~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYxxxxxxxxxYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxYYxxYxYxxxYxxxxYxxxxYYxYxYxYxxYxxYxxxxYxxxxxxYxxYYYYYYxxx***=++::~~-------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-~-~~~-~~~~~~~~~~~~~~~~~~~~~-~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::+++++++++++++++++++++++++++=========================================**********************=====++++++++++++++:::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::++++++++=====************====================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$######################88888888888888888888888888888888#####$$$$$$$$$$##$##$$$#$$#######888888888888888888888888888888888888888888##########88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88888888888888888888#888#8################888888888888888888888888888888888888 ~~~~~~~~~~~~~~=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYxYYxYYYYxxYxxxxxxxYxYYxxYYxYxYxxYxxYxxxYxxYxYxxxxxYYYYYYxxxxxx**==+::~~----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::++++++++++++++++++++++++++=========================================************************=======+++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+:::::::::::::::::++++++=+======************====================+++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$###################8#888888888888888888888888888888888######$#$$$$$$$##$#$#$$$########888888888888888888888888888888888888888888#8####8#88#888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#8###8##8#####8######888888888888888888888888888888888888 ~-~~~~~~~~~~~~*xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxYxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYxYxxxxxYxYxxYxxYxxYYxYxYxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxx**==+++:~~~------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+++++++++++++++++++++++++++========================================*=*************************=======++++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+::::::::::::::+:+++++++=========*************====================+++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+===******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$######################88888888888888888888888888888888######$$$$$#$$$$$$#$##$$########8888888888888888888888888888888888888888888########8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%%%88888888888888888888888##8###########8####88888888888888888888888888888888888 ~~~~~~~~~~~~~~+=====***xxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYxYxxYxxxxYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYxxxxxxxYxxYxYxYxYxxxxYxYxxxxxYxxxxxxxYxxxxxxxxYYYxYYYYxxxxx***==++::~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++=========================================*************************==========+=++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::+::::::::::::::++++++++==========**************===================+++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~--~---------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===******x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$#####################88888888888888888888888888888888######$$$$$$$$$#$#$##$#$$$#######888888888888888888888888888888888888888888######8##8#888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%888888888888888888888#8#8############8###88888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~:::::+++==****xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYxxxxxxxxxxxxxYYxYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYxxxxxxxxxxxxxxYxxxxxxxxYxxxxxxxxYxxxxxxxxxYYYxxxxxxxYxxxx****==++::~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++=========================================******************************==========++++++++++++:::::::::::::::::::::::::::::~~~~~~~~~:~~::::::::~~~~~::::::::::::::::::::::::::::++:::+::::+:+:++++++++++=========**=************===================++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~--------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*****x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#####################88888888888888888888888888888888#######$#$$$$$$$$##$$$$#$$########88888888888888888888888888888888888888888###8#######8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%888888888888888888888##8#################8888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===*****xxxxxxYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYxxxxxxxxxxxYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxYxxYxxxxxYYxxxxxYYYxxxxxxxxxxxx******==++:~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++==+=====================================*=**********************************==========++++++++++++:::::::::::::::::::::::::::~:::~:~::::::::::::::::::::::::::::::::::::::::::::::+:+:+:++:+++++++++++++++========*****************===================+++++++++++:+::++::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$####################888888888888888888888888888888888#########$$$$##$$##$#$#$#########88888888888888888888888888888888888888888##########8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%%%%88888888888888888888#88##8################888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::++++==*===*****xxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYxYYYxxxYxYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxYYYxxxxYxxxxxxxxYxxxxxxxxYYxxxxxxxxxxxx******==++:::~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++=+========================================**=*********************************===========++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++=======********************===================+++++++++++++::+:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~--~-~----------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$####################88888888888888888888888888888888##########$#$$$$$##$#$#$$########88888888888888888888888888888888888888888#######8##8#88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%88888888888888888888#88##8################888888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+=xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx===========================+++++==+======+==++++++++++++=++++++++==++++++++++++::+++::::::~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=============================================*************************xxx*********===========+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++::+++++++++++++++++++++++========*********************==================+=+++++++++++++:::++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~----~------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$$$###################88888888888888888888888888888888#########$$##$$#$$###$$#$#$######88888888888888888888888888888888888888888########8##8#8888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%888888888888888888888#8#88####8############88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------~+xVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYVYVYVVYVVYYYVVVVYYVYYVYYVYVVYVVYx:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++==========================================*==*************************xxxxx*********============++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++====**==***********************==================++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+===********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$###################888888888888888888888888888888888########$####$$$$#$##$#$$$#######8888888888888888888888888888888888888888##8###8##88#88888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%88888888888888888888####8#################88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~-------~=YVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVYVVVVVVVYVVVVVVVVVVVYYYVYVVY=~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++============================================**************************xxxxxxxx********=============+++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++=====******************************===============++++++++++++++++++:+:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~--~-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$##################888888888888888888888888888888888#############$######$#$##$#######8888888888888888888888888888888888888888#8##88##8##888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%8888888888888888888888###8################88888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~----~:*VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYYVVYx+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++============================================****************************xYYxxxxxxx********=============+++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++====*****=****************************==============+++++++++++++++++:+++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~----~--------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+===*******xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$###################88888888888888888888888888888888###########$####$#$$#$###$#$######888888888888888888888888888888888888888##8##8#8#8#88888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#8###################8888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~~------~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYYVYVVVYVY*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++=+============================================****************************xYYYYYxxxxxxx*******==============++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=======**************************************==========++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~-~-------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$##################888888888888888888888888888888888###############$#$#$#############888888888888888888888888888888888888888#888#88#8##888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%888888888888888888888#8#8#################8888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~---~~*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYVY=~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++=+==========================================*******************************YYYYYYYYxxxxxx*********=============+++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++======****************************************===========++++++++++++++++++++++:+:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------~----~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$$$##################8888888888888888888888888888888888#################$####$###$######88888888888888888888888888888888888888#88##888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%8888888888888888888888##8#################888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~--~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVVVYYx+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++===========================================*******************************xYVVVYYYYYxxxxxxx*********==============++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++=======******xx**********************************===========+++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~-----------------------------------------------------------------------~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+====*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$#################8888888888888888888888888888888888############$####$####$##########8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%888888888888888888888##8##################888888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVVVVVVVVVVVYYVYYY*:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++==+==========================================*******************************xYVVVVYYYYYYYYxxxxxx***********============++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++========********xx************************************==========+++++++++++++++++++++++:++::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~------------------------------------------------------------------~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$################88888888888888888888888888888888888#################$###$###########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%888888888888888888888#888#################88888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~:*YVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVVY=~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++==============================================*=******************************Y$$$VVVVVYYYYYYxxxxxxxx*********==============+++++++++++++++++:::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++=+===========********xxx*************************************==========++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~--~-~---~---------------------------------------------------~-~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$################888888888888888888888888888888888888#####################$###$######8888888888888888888888888888888888888#888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%888888888888888888888####################88888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVYVVYVx+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++================================================******************************xV$$$$VVVVVYYYYYYxxxxxxxx************=*===========+++++++++++++++++++:::::::::::::::::::::::::::::+++++++++++++++++++++++++++++===============********xxxxxx************************************===========++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~--~-----~------------------------------------------------~--~-~~--~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############888888888888888888888888888888888888#####################$#$#########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%8888888888888888888888#8#8################8888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVVVVVVVVVVVVVVVY*:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++==+==========================================*=********************************xV$$$$$$$VVVVVVYYYYYYxYxxxxxxx************===========++++++++++++++++++++++:::::::::::::::::::::+++++++++++++++++++++++++++++==================*****xxxxxxxxxx************************************============+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----~---~-----------------------------~-----------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$################888888888888888888888888888888888888###########$#####$###############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%8888888888888888888888#8##################8888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVYVVVVVVY=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++===============================================*********************************x$##$$$$$$VVVVVVYYYYYYYYYYYxxxxxxxxx*********=========++++++++++++++++++++++++++++++++::++++:+++++++++++++++++++++++++++++==++================****xxxxxxxxxxYYYx*************************************===========++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-----~----------------~---~-------~----~-----~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############8888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%88888888888888888888#8#8##################888888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVVx:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+:::++++++++++++++++++++++++++++++==============================================*=*********************************xV$###$$$$$$$VVVVVVVYYYYYYYYYxxxxxxxxxx********=========+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===+================***xxxxxxxxxxxYYYYx************************************============++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-----~---~---~----~----~--~-------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$###############88888888888888888888888888888888888888###################$############88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%8888888888888888888888#88##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVYVVYVVVVVVY*~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~:::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++==============================================*************************************x$######$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxxxx********======================+++++++++++++++++++++++++++++++++++++++++++++++++++====================****xxxxxxxxYYYYYYYYYx*************************************============+++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~~~-~~~--~~~~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$##############88888888888888888888888888888888888888#######################$########88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%888888888888888888888888##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY+~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~-~~~-~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+=============================================**************************************Y$#######$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxxx**********===========================+++++++++++++++++++++++++++++++++++++++++=====================*****xxxxxxxYYYYYYYVVVVVx**************************************===========++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~-~~~-~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$#############888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%888888888888888888888####################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYx:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~-~~~~-~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=============================================****************************************x$#########$$$$$$VVVVVVVYYYYYYYYxxxxxxxxxx************================================+=+++++++++++++++++++++++++++++=++=======**======*=*********xxxxxYYYYYYVVVVVVVVVVx**************************************===========+++++++++++++++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$##############88888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%88888888888888888888888##################88888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~-~-----------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++=+=+==========================================******************************************Y$###########$$$$$$VVVVVVVYYYYYYYYxxxxxxxxx*x**********==========================================+++++=++==+===================***===**************xxYYYYYYYYVVVVVVVVVVVYx*************************************============++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++===*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$############8888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%88888888888888888888888###################8888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY+~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++=============================================*******************************************xV#############$$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxx**********=======================================================================****==**************xYYYYYYYYVVVVVVVV$$$$$Vx**************************************============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++====**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$##############888888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%88888888888888888888888###################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++===============================================********************************************Y$###############$$$$$$$VVVVVVVYYYYYYYxxxxxxxxxxxxxx*****************=******=**=*=*=============================================********************xYYYYYYYYVVVVVVVV$$$$$$$Vx**************************************============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$##############88888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%88888888888888888888#8###################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~-~-~~----------------------------------------------------------~---~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+============================================*********************************************xV#################$$$$$$$VVVVVVVVYYYYYYYYYxxxxxxxxxxxx**************************************===================================*******************x*xxYYYYYYVYVVVVVV$$$$$$$$$$Y***************************************=============+=++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++=====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$##############888888888888888888888888888888888888888###############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%88888888888888888888888##################888888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~--~--~----------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++==+=============================================*********************************************V$###################$$$$$$$VVVVVVVVVYYYYYYYYxxxxxxxxxxx********************************************=*==========================****x*********x*xxxxxxxYYYYYYVVVVVVV$$$$$$$$$$$$Vx**************************************===============++++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=====********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$#############8888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8888888888888888888888###################88888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV*:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~----~-~-----~-----------~----~-~--~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++==============================================************************************************Y$#####################$$$$$$$$VVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********************************************====*=**=====*=**=***xxxx******xxxxxxxxxxxYYYYYVVVVVVVVV$$$$$$$$$$$$$Vx*************************************=================+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=====*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$##############888888888888888888888888888888888888888##############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888##################88888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~~-~----~------~-~-~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=============================================**************************************************xV#########################$$$$$$$VVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***********************************************************xxxxx**xxxxxxxxxxxxxxYYVVVVVVVVVVV$$$$$$$$$$$#$$##$x**************************************==================++++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::+++=======*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$#############88888888888888888888888888888888888888#8##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%8888888888888888888888###################8888888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~-~-----------------------------------------~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++============================================*=***************************************************Y$##########################$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************************xxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVV$$$$$$$$$$#######$x*************************************=*=================++++++++++++++++++++++++++++++++++:::+::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++======*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$#############888888888888888888888888888888888888888################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%8888888888888888888888###################888%888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---------~---------~---~----~~----~----~-~~~~-~~~~~~~~~-~~~~~~~~~~~-~--~----~------------~---~---~-~-~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++==============================================*****************************************************x$#############################$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************xxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVV$$$$$$$$$$$########$x***************************************=*================+=++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++======*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$#$$$$$$$$$###########888888888888888888888888888888888888888################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888##################888%888888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~------~---~--~---~~-~-~~-~~-~~~-~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~-~-~~~-~~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++==============================================**=***************************************************xV################################$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x************xxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVV$$$$$$$$$$###########$Y**************************************====================+=++++++++++++++++++++++++++++++::+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++======******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##$$$$$$$$###########888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%8888888888888888888888##################888%%88888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-----~~----~-~-~~-~~-~-~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++==============================================*******************************************************Y$##################################$$$$$$$$$$VVVVVVVVVVVVYVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxxxxxxxxxxxYYYYYYVVVVVVVVVV$$$$$$$$$$##############$Y***************************************=*==================+==+++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::+++=====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###$$$$$$$############88888888888888888888888888888888888888#8##############################8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%88888888888888888888888#################888%%88888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~-~~-~~---~---------------------------------------------------------------------------------------------------------------------------------------~-----~----------~--~---~~~-~~~~~~~~~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++============================================*=*********************************************************Y$#####################################$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$#$#############$Y*****************************************=====================++=+++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#####$$$$$$##$########8888888888888888888888888888888888888888#############################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%8888888888888888888888##################888%%8888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~--~-~-~------------------------------------------------------------------------------------------------------------------~-----------~--~-----~~--~--~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~~::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++=+==============================================*=*********************************************************xV#########################################$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYxxYYxxYxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxYYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$$################$Yx*****************************************====================+=+==++++++++++++++++++++++++++++:+::+:::::::::::::::::::::::::::::::::::::::::::::::::::~~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$##$##$$$$$$#$########8888888888888888888888888888888888888888#############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%8888888888888888888888###################88%%8888888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx+~~~~~~~~~~~~~~~~-~~~---~-----------------------------------------------------------------------------------------------------~-~-~---~--~-~--~-~--~-~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++==============================================************************************************************xV###########################################$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxxxxxxxxxxxYYYYYYYYxxYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$$$$$###################VY*****************************************=*======================+==++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::::::::::~::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::+++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$####$#$$$$$##########888888888888888888888888888888888888888##############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%8888888888888888888888#################888%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------~---~~----~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==+===========================================*=************************************************************xV$##############################################$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$###################$Vx******************************************========================+=+++++++++++++++++++++++++++:++::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$##$#$#$$$$$#########8888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%888888888888888888888#8##############8#888%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY=~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~------------------------------------------------------------------------------------~----~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++==========================================*=**=************************************************************xY$##################################################$$$$$$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$########################$Vx******************************************========================+=+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~:~:~~~~:~:::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$###$###$$$$#########888888888888888888888888888888888888888##############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%888888888888888888888###################88%%%88888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVx:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~----------------------------------------------------------------------------~-~-~~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++==============================================*****************************************************************Y$######################################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$########################$Yx****************************************============================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~:~:~:~~:~~:::::::::+++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$#$#$$##$#$$$#########88888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%8888888888888888888888###############8##88%%%%8888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~--~-------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++=+===============================================******************************************************************Y$########################################################$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$$############################$Yx****************************************===========================+++++++++++++++++++++++++++++:+:++:::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~:~:~:::~:::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$#$$###$$$#########888888888888888888888888888888888888888##############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%88888888888888888888##############8#####88%%%8888888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~~-~--------------------------------------------~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~:~::::::~:::::::::::::::::::::::::::::::::::::::::::::::::+:+:+:+:+++++++++++++++++++++++++++++++++++++++++++++===============================================*=******************************************************************Y$############################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVYYYYYVYYVYYYYYVYYVVYVYVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$#$##############################VYx***************************************=============================+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~:::::::~::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$#$$$###$#$#######88888888888888888888888888888888888888888############################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%88888888888888888888##################888%%%%%88888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYY*=::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-----------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++++++================================================********************************************************************Y$#################################################################$#$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYVVVVVVVVYVVVVVYVVVYVVYVYYYYYYYVYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$##################################VYx***************************************==============================+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$###$##$########8888888888888888888888888888888888888888############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888###########8#####8#88%%%%%%%888888888 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-----------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~:~~~:~:~~::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++++++++++++================================================***********************************************************************Y$###################################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYVVYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$#$#$##################################VYx**************************************==============================+++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$#$$#############888888888888888888888888888888888888888##############################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888#############8#####88%%%%%%888%88888 ~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~:~:~~~:~~::~~::~:::~:::~:~:::~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++::+++++++++++++++++++++++++++++++++++++++++++++++++++=++===============================================**=***********************************************************************Y$#88####################################$##############################$$$$$$$$V$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYVVYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$########################################VYx************************************=================================+++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$###$############888888888888888888888888888888888888888############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888##########8#######888%%%%%%%88%88888 ::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~+YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~:::~:~:~:~::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++++=+=================================================**************************************************************************xY$#888##################################$#####$##$#$######################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYVVVVV$$$$$$$$$$$$#$##$####################################$$Yx************************************=================================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$#$########8888888888888888888888888888888888888888#############################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888#####8#############88%%%%%%%%%8%8888 ::::::::~::~~:~~~~~~~~~~~~~~~~~~:xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~~:~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++++++++++++++++++++=+==================================================****************************************************************************xY$888888##################################$##$##$###########################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$#$#$$#########################################$$Yxx************************************================================++++++++++++++++++++++++++:+++::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~:~~~:~~~~~:~::::::::::::::::::::::::+++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$#$###########8#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####8####8#888%%%%%%%%%%%%% ::::::::::::::::::::::::::::::+YVVVVVVVVVVVVVVVVVYx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++++++++==========================================================*=*=********************************************************************************YV#8888888888###############################$####$$##$#$#$$$#$$$$$$$$$#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$#$#$###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVYxxx*******************************==================================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::~~~~:~~~~~:~~:~~::~~~~:~~:~~~~::::~:::~::::::~:::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$##########88888888888888888888888888888888888888888############################888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888##8###############888%%%%%%%%%%%%% ::::::::::::::::::::::::::::~:*VVVVVVVVVVVVVVYY*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++++++++=============================================================**********************************************************************************Y$#8888888888###############################$###$#$$#$$$#$$$$$$$$$$$$$$#$$$###$##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$$#$#$#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVYxx********************************=================================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~::~:~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::~:~~:~~:~~:~:~::~~~~~~~:~:~:~:~~::~~::::~::::~:::::::::::::::::::::::::++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$##########88888888888888888888888888888888888888#88#############################8888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888##########8######8888%%%%%%%%%%%%% :::::::::::::::::::::::::::::+YVVVVVVVVVVVYx*+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~:~~~~:~:~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++++++=+==+=========================================================***************************************************************************************xV#888888888888###############################$$###$$#$$#$$$$$$$$$$$$$$$$#$$$#$$##$##$#$####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VVVVVVVVVVVVVYYYYYYYYYYYYVVVYVVVVVVV$$$$$$$$$#$##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYxx*********************************==============================++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~~~~~~~~~~~~~~~~~~~::::::::~::~:::~~~:~:~:~::~:~:~:::::~:::~:~::~:::~:::::::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$###########888888888888888888888888888888888888888#8#############################88888888888888888888888888888888888888888888888888888888888888888#888#88888888888888888888888888888%%%%%%@%@%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888###8#####8######8#888%%%%%%%%%%%%% :::::::::::::::::::::::::::::xVVVVVVVVVYx=+:~~~~~~~~~~~~~~~~~~~~:~~:~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~::~:~:::~::~:~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+:+:+++++++++++++++++++++++++++++++++++++++++++++++=+==============================================================***************************************************************************************YV#8888888888888###########################$###$##$#$#$$$$$$#$#$#$$$$$$$$$$$$$$$$$$#$$##$$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVV$$$$V$$$$V$VVVVVVVVVYYYYYYYYYYYYYVVVVVVVVVVVV$$$$$$#$$###############################$$$$$$$$$$$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$VVYYxx******************************=*=============================++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~~~~~~~~~~~:~:~::::::::::::::::::~:::::::~::~:~::::::::~:~::::::::::~:::::::::::::::::::::::::+++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$##########8888888888888888888888888888888888888888##8###########################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%@%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888#8#88#8#######8#8##888%%%%%%%%%%%% ::::::::::::::::::::::::::::=VVVVVVYx*+::::~~::~~~~~~~~:~~:~~::~:~~:~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~::::~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++=+=+============================================================**=**************************************************************************************xY$#8888888888#88#8##################$########$##$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$##$########$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$V$$$V$$$V$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYVVVVVVVVVVV$$$$$$#$##################################$$$$$$$$$$$VVVVVVVVVVVVV$$$$VVVVVVVVVVVVV$$VVVVVYxx******************************=============================+++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~:~:::~:~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::::~:::::::::::~::::::::::::::::::::::::::::::::::::::+++++===****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##################$####$$$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVYYYYYYYYYYVVVVVVVVVV$$$$$$$$#$###############################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYx********************************===========================++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::++++=====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$#########88888888888888888888888888888888#88888888#8############################88888888888888888888888888888888888888888888888888888888888888888##8888#8888888888888888888888888888%%%%%@%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888#88##8###8##8##8#88%%%%%%%%%%%% :::::::::::::::::::::::::::=+:::::::::::::::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++++++++++++++++++=============================================================*==**********************************************************************************************Y$#888888888888888888################$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$#$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYYVVVVVVVVV$$$$$$$##$################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYx*********************************==========================+++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$#$#########8888888888888888888888888888888888888#888#8############################888888888888888888888888888888888888888888888888888888888888888888#88##88888888888888888888888888888%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888###8##8##8##8##8888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~::~~~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++++++++==+=+===========================================================*=*************************************************************************************************xV#888888888888888888################$$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$####$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYVVVVVVVVVV$$$$$$$$#$################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYx************************************=======================+++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$#########8888888888888888888888888888888#88888#8##88############################88888888888888888888888888888888888888888888888888888888888888#888##88##8#888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888#88##8##8####88888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::~:~::~:::~::::~~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~-~----------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++==+==============================================================****************************************************************************************************Y$#88888888888888888#8#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYYYYYYYYYVVVVVVVV$$$$$$$$$$################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVVVVVVVVVVVVVYx************************************=======================+++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$##########888888888888888888888888888888888#88888888##8##########################888888888888888888888888888888888888888888888888888888888888888##8####8#8888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888#888###88#8##8888888%%%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:::~:~::~~~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~~~-~~~~~~~~~~~~-------~-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++++===============================================================****************************************************************************************************xV$88888888888888888888#8################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYVVVVVVV$$$$$$$####################################$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVVVVVVYYYYYYYYVVVVVVVVVVVVYx***************************************==*=================++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$$$$$$$$$#########8888888888888888888888888888888##88888#8#8#888##########################88888888888888888888888888888888888888888888888888888888888#888888##8##8#888888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888#8#888888888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~~:~~:~~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~------------------~----~-------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++=+==============================================================******************************************************************************************************xY$#88888888888888888888#88#############$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYVVVVVVV$$$$$$$$##$###############################$#$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVYYx***************************************=**=================+++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$$##########8888888888888888888888888888888888#88888#8#############################8888888888888888888888888888888888888888888888888888888888888#88#8#8####8#88888888888888888888888888%%%%@@@%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888#888888888#88#88888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:::~~:~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~--~---~-----------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++++++++==========================================================*=***=*****************************************************************************************************xV#88888888888888888888888##8###########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYVVVVVVVV$$$$$$$$$####################################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVYx*******************************************================+++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$$##########888888888888888888888888888888888#8#88#8#8#############################888888888888888888888888888888888888888888888888888888888888888##8####88##88888888888888888888888888%%%%%@@%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888#88888#88888888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~--~------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++++==========================================================**=*********************************************************************************************************xV$#88888888888888888888888888##########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYVYVVVVVVVV$$$$$$$##$##################################$##$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVYx*******************************************================++++++++++++++++++++++:++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########888888888888888888888888888888888#88#8#8#8888##########################888888888888888888888888888888888888888888888888888888888#8888888#######88#8888888888888888888888888%%%%%@@@@@%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888#88#88#8888888%%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~-~--~--~---~---------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++=++===================================================*==******=*********************************************************************************************************xY$#88888888888888888888888888#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$#######################################$$$$$$$VVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVYxx*********************************************==============++++++++++++++++++++:++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########8888888888888888888888888888888#888888##8#88############################8888888888888888888888888888888888888888888888888888888888##88###8###8####88888888888888888888888888%%%%@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888#8888#888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-~~~~~~~~~~-~----~-------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++++++++++=+=====================================================*****************************************************************************************************************xYV#8888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#####$#$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$$$####################################$$#$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVYx********************************************===============+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$###########88888888888888888888888888888888#8##8#88#88#####8#######################8888888888888888888888888888888888888888888888888888#888#888#8#8#####8###8#8888888888888888888888888%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888#88#888888888%%%%%%%%% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~-~~--~--~--~---~~~~-----~-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++++++++++++++++=+===================================================********************************************************************************************************************xYV#8888888888888888888888888888#8###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$##$####$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$#######################################$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVYYx**********************************************=============+++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$###########88888888888888888888888888888888#88888888##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#####8#888888888888888888888888%%%%%%%%@%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%%% :::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~-~---------~--~-~~----~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++===================================================**********************************************************************************************************************xY$#888888888888888888888888888888888#########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$#############$$$$$$$$$$$$$##$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$###########################################$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVYVYx**********************************************=============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++====***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%%%%%%@%@@@@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~---~~-~~---~--------~~~-~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-~--~--~-------~~-~----~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~:~~~:::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==============================================*==************************************************************************************************************************xV$#8888888888888888888888888888888888#8##########$$$$$$$$$$$$$$$$$$$V$$V$VV$VVVVVVVVVVVVVVV$V$VV$$V$$$$V$V$VV$$$V$V$$VV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########$###############$#$#$$$$$$$$$#####$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVYYx**********************************************==============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$############888888888888888888888888888888##88##8#88#88###8###8#8###################88888888888888888888888888888888888888888888888888888888888#8#8##############888888888888888888888888%%%%%%%%@%%@%@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% ::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~~-~~-~~--~~-----~---~-----~----~---~----~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~~--~----~------------~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++++=============================================***************************************************************************************************************************xV$#8888888888888888888888888888888888#88##########$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$###$###############$$$$$$$$$$$$$$######$$$$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVYYx**********************************************===============++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$$############88888888888888888888888888888888##88##888#88######8#####################888888888888888888888888888888888888888888888888888888#8#888#8#8######8######888888888888888888888888%%%%%%%@%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% :::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~--~~-----~----~------~----------~-----~--~----~-~~~~~~~~~~~~~~-~~~-~-~~-~---~--------~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++++===========================================*=*=*************************************************************************************************************************xYV#888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################$#$$##$$$$$$$$$#######$$$$$$$$$$$$$$$$$$$###############################################$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVYx**********************************************===============++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$$############888888888888888888888888888888888##8######8##8##########################8888888888888888888888888888888888888888888888888#88888#88#8#8#8############88888888888888888888888888%%%%%%%%%%@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% ::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-~--~-----------------------------~----~-~---~-----~~~~~~~~~~~-~~~-~----------~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=+=========================================****************************************************************************************************************************xV$#888888888888888888888888888888888888888############$#$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$##############$###$$##$#$$$$$#$#$$####$#$$$$$$$$$$$$#################################################$$$$$$$V$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVVYYx***********************************************================+++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$#############88888888888888888888888888888888##8#88#88#8#8########8###################88888888888888888888888888888888888888888888888888#8888#8##8##8#############8888888888888888888888888%%%%%%%%%@%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%%% :::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-----------------------------------------------------------~~~-~~-~~~~~------------~---~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=+===================================*=******************************************************************************************************************************xYV##8888888888888888888888888888888888888888##############$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$####################$##########$$$#$#$###$$$$$$$$$$$$$################################################$#$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVYVVYx***********************************************===============+++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$$$$$$$$$$$#############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*******x***********************************xYV#88888888888888888888888888888888888888888888#################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$#$###$#$############################################################################################$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVYx*****************************************======================+++++++++++++++++++++++++++::::::+++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$$$$$$$$$$##############888888888888888888888888888888#8####88####8##############################888888888888888888888888888888888888888888888888888#8#8#8######8##########8##8888888888888888888888888%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++================================**********************************************************x****xxx*xx*xx*x*xxxx*xxxxxxxxxxx*x***********************************xxYV$#888888888888888888888888888888888888888888888###############$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$#$##$#############################################################################################$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVYVVVVYx**************************************=========================++++++++++++++++++++++++++++++:+++:+++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$$$#$$$$$$$$#############888888888888888888888888888888888#8##8########88#######8##################8#888888888888888888888888888888888888888888888#8#8#888#88#8################88888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-~--~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++++++++++++++++++==+==============================***********************************************************x*xx*xx*xxxxxx*xxxxxxxx*xxxxxxxx**xxxx***x*x**************************xYV$#8888888888888888888888888888888888888888888888##################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$##$############################################################################################$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYYYVVVVYx***********************************============================++++++++++++++++++++++++++++++++:++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$$$$$$#$$##############88888888888888888888888888888888##8#########88##8#####8###################8#88888888888888888888888888888888888888888888888#88#8##888###8##############8888888888888888888888888%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++++++++++=+==+=============================**********************************************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx************************xYV$#888888888888888888888888888888888888888888888888###################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$#$#$#######################################################################################$#$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYVVYVVVYYx*********************************==============================+++++++++++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#$#$$$$$$$#$#############888888888888888888888888888888888###8##########8#####8#####################888888888888888888888888888888888888888888888888#8#888##88##################8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::++++++++++++++++++++++++++++++++================================********************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******************xYV$#888888888888888888888888888888888888888888888888#8#####################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$#########################################################################################$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVYx*******************************================================+=+++++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$#$$$$##$$################888888888888888888888888888888888###########8#8#8######8##################8##8888888888888888888888888888888888888888888#8#8#8#####8###################8888888888888888888888888%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~-~-~~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::++++++++++++++++++++++++++++++++================================****************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x****x*********xYV$#88888888888888888888888888888888888888888888888888#8####################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$###################################################################################$#$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVYx****************************=*==================================++++++++++++++++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#$$####$#$################8888888888888888888888888888888888###8#########8###########8#################8888888888888888888888888888888888888888888#88#8##8#######################88888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~-----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+++++++++++++++++++++++++++==+================================****************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx******xxYV$#88888888888888888888888888888888888888888888888888888#####################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$#################################################################################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**xxxxxxxYYYYYYYYYYYYYVVVVVVYx****************************==*================================+++++++++++++++++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$#$$####$#$################88888888888888888888888888888888#8######8#8####8#############################8888888888888888888888888888888888888888888#88#8######8#8#################88888888888888888888888888%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~--~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++=++===============================*****************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xxxYV$#8888888888888888888888888888888888888888888888888888888#####################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYxxxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$############################################################################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******xxxxxxYYYYYYYYYYYVYVVVVVVYx****************************====================================+++++++++++++++++++++++++++++++++:+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$########$################8888888888888888888888888888888888##8################8#8#####8###############888888888888888888888888888888888888888888#888#8#8#######8#################8888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::+:++++++++++++++++++++++++++=+============================**************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxYV$#88888888888888888888888888888888888888888888888888888888######################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYxxxxYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********xxxxYYYYYYYYYYYYVVVVVVYxx**************************=*==================================+++++++++++++++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::::::::::::::::::::~~::~:~~:~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$########$###############88888888888888888888888888888888###############8#8##########################8##88888888888888888888888888888888888888888888#######8#####################88888888888888888888888888%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++==============================***********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$##888888888888888888888888888888888888888888888888888888888###################$#$$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$$$$$$########################################################################$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx************xxxYYYYYYYYYYYVYVVVVVVYx***************************=*================================+=+++++++++++++++++++++++++++++++++::++::::::::::::::::::::::::::::::::::::::::~::~~:~:~:~~~~~~~~~~~~~~:~::::~::~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++====****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################8888888888888888888888888888888888####8##8#####8########8#####8#############8##88888888888888888888888888888888888888888888#8#8#8##8#####################88888888888888888888888888%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::++++++++++++++++++++++==============================***********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88888888888888888888888888888888888888888888888888888888888######################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYVVYVVYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$####################################################################$##$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************xxYYYYYYYYYYVYVVVVVVVVYx***************************=*===================================++++++++++++++++++++++++++++++++:++:::+::::::::::::::::::::::::::::::::~::~::~::~:~~~~~~~~~~~~~~~~~::~:~:~::~:~::~::~::~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++====***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################88888888888888888888888888888888##8##################8#######8##################88888888888888888888888888888888888888888#8#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##########################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYVYVYYYVVYVYYVYYYYYYYYYVYVVVYVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$####################################################################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYYYYYYYYVYYVVVVVVVYx*************************=*====================================++++++++++++++++++++++++++++++++:++::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~::::::~::~~::~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++===***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV###########################88888888888888888888888888888888####################8###########################888888888888888888888888888888888888888888#####8##########################888888888888888888888888888%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++++=========================**********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#88%%%%8888888888888888888888888888888888888888888888888888888888#######################$###$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYYVYVYYVVYYYYYYYYYYYYYYVYYVYYYVYVYYYYVVYVYVVVYVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################8##########8########################$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVYx**************************=====================================+++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~:~:~:~:~~~~~~~~~~:~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++===****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################88888888888888888888888888888888888#8#####8####8#88#88###########################888888888888888888888888888888888888888888####8###########################888888888888888888888888888%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++++++==+==========================*****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%8%%%888888888888888888888888888888888888888888888888888888#88########################$####$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYVVYVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$################88###8#88#8#88####8#8#############################$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVYx****************************====================================+=+++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~:~~~:~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########################88888888888888888888888888888888#########8######8#####8#########################88888888888888888888888888888888888888888#8###8###########################888888888888888888888888888%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~----~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~::::::::::::::::::::+++++++++++++++++++=+==========================******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%%%%%%%%%%88888888888888888888888888888888888888888888888888#888####################$##$###$$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYVYYVYVVVYVYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#####################8#8#8##8#8####################################$$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVY*************************========================================+++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++====*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$##########################8888888888888888888888888888888888#8#8##########8#####8##8#8######################88888888888888888888888888888888888888888################################888888888888888888888888888%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::+:++++++++++++++++++++=========================***************************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$#88%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888888888888#################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$##################################################################$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVYx**************************=====================================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV###########################88888888888888888888888888888888888#######################88#8#88##############8#8888888888888888888888888888888888888888##88##8###########################8888888888888888888888888888%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++==========================************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#88%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888888888888888888#8##8##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#$###$##############################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVVVVx*************************======================================+++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~:~~:~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYV##########################88888888888888888888888888888888888####8#88#########8#8#######8##8#################888888888888888888888888888888888888888888#####8#########################88888888888888888888888888888%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~--~~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++=======================************************************xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYV$#8%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888888#88#8##############################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVYx***********************========================================+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$###########################8888888888888888888888888888888888#################################################8888888888888888888888888888888888888888################################8888888888888888888888888888%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-~~~-~--~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::++++++++++++++++++++==+======================**********************************xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$##%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888#88#8#8###############################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############################################$#$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVV$$$$$$$$VVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVx***********************=======================================++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++===*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY##########################8888888888888888888888888888888888888#8#####8#####8#8#8#######8##8###################88888888888888888888888888888888888888###8##############################88888888888888888888888888888%8%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~-~-~~-~--~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++=======================**********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$$######%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888888888888#8####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$$#$$$$$$$$$$$####################################$##$#$$$$$$$$$$$$$$$$$$$$$$$VVVVV$VVV$V$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVYx***********************========================================+++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV###########################8888888888888888888888888888888888###############8####8########################8####888888888888888888888888888888888888888#################################88888888888888888888888888888%8%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~-~--~--~-~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++++++++++++++++++++=======================********************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$$$$$###$#####%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888#8#888###############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$############$#$####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVx***********************=======================================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:::~:~~::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV##########################88888888888888888888888888888888888888#8####8#####8####8#8#####88#8##################88888888888888888888888888888888888888###################################88888888888888888888888888888%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~~-~--~---~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::+++++++++++++++++++++=========================******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVV$$$$#######%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888888#88#8###########################$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$V$$$$$$$$$$$$$$$$$$$$$$$##############################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVYVVVVVVVVVVVVVVVY************************=======================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~::~~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$########################8#8888888888888888888888888888888888888#############8###8##############################8888888888888888888888888888888888888#88#################################88888888888888888888888888888888%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~--~~--~-~-~---~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++========================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVV$$####%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888888#88#8##8###########################$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################################$##$$$$$$$$$$$$$$$#$##$##$$$$$$$#$$$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVx*************************====================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$########################88888888888888888888888888888888888888##########################8##8##############8#####888888888888888888888888888888888888888#################################8888888888888888888888888888888%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~-~~-~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++++=========================**=***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVYYYYYxYxxxxxxxxxYYYYYYYYYVV$##%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888#88##8888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################################$##$####$#########$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVV$$Vx************************=**==================================++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++==*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY########################888888888888888888888888888888888888888#8###############88#8#############################8888888888888888888888888888888888888#8#################################888888888888888888888888888888888%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~-~--~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::++++++++++++++++++++===========================**************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVYYYxxxxxxx*******xxxxxxxYYYYYYYV$%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888#8888#8#8###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##################################################################$####$$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVV$$$$VY**************************===================================+++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++===******xxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxV########################888888888888888888888888888888888888888##8###8########8#88#######8#####8#################8888888888888888888888888888888888888#8#################################888888888888888888888888888888888%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~--~-~-~-~-~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::++++++++++++++++++++++=========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVYxxxx****========*********xxxYYYYYV%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888#88#8###################################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$Y**************************===================================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==********xxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxx$#######################88888888888888888888888888888888888888888##8####8###########8#############################88888888888888888888888888888888888##8##################################8888888888888888888888888888888888%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~-~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::+:++++++++++++++++++++=======================**=**************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVVVVVVVVVYxxx*==++++++++============***xxxYYYV%%%%%%%%%%%%%%%%%%88888888888888888888888888888#8888#8##################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$Vx***********************=====================================++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==******xxxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxxY########################8888888888888888888888888888888888888888##8#############88#8##8######8###8################88888888888888888888888888888888888#8###################################8#888888888888888888888888888888%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::+++++++++++++++++++=========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVVVVVVVYYxx*=++::::::+++===============**xxxYV%%%%%%%%%%%%%%%%%8888888888888888888888888888888888#####################################$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$VVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVV$$$$$$Vx************************=====================================++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#####################88#88888888888888888888888888888888888888888######8#######8##8###############################8888888888888888888888888888888888888####################################888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~-~-~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::+:+++++++++++++++++==========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVVVVVVVVVVYYxx*=+:::~::::+++=+++++++++++=====*xxxV%%%%%%%%%%%%%%%%88888888888888888888888888888#8#8###8#8#8##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$########################################################################$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$Y*************************===================================+++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==*********xxxxxxxxxxxxxxxxx*xx*xxxxxxxxxxxxxV#######################88888888888888888888888888888888888888888888#8##########888#88#8##8#########################88888888888888##8888888888888888888####################################8#88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~-~-~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++=======================**=************************x****xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVVVVVVVVVVYYxx*=+::~~~:::++++++++++++++++++===**xxV%%%%%%%%%%%%%%8888888888888888888888888888888#88##8#8##################################$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$#$####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVV$$$$$$$$Y*************************==================================+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==********x*xxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxx$######################888888888888888888888888888888888888888888#8#88#8########8#8##8#8############################888888888888888#888888888888888888###8##################################8888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++=+========================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYVVVVVVVVVVVVVVVVVYYxx*=+::~~~::++++++++++++++++++++===**xx$%%%%%%%%%%%%%%8888888888888888888888888888#8#88####8###############################$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$###########################################$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVVVVV$$$$$$$$$Vx***********************=================================+=++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++==********x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY######################8#88888888888888888888888888888888888888888888##8#88#####888#88###8########8##################888888888888888#888888888888888888###8#################################8#88#888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~~-~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::++++++++++++++++=+=====================***************************xxxx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******x*****xxYVVVVVVVVVVVVVVVYYxxx*=+::::::++++++++++++++:::+++++==**xx#%%%%%%%%%%%%%8888888888888888888888888888##8#8#####################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYxYYxYYYxxxYxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$##################$#$$$$$$$$$$$$$$$$$$$$$##########$$$$$$$$$$$$$$$$$$$V$VV$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVV$$$$$$$$$Vx************************==================================+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++==*******x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY###################8###8888888888888888888888888888888888888888888#8#88##8#####8#88#88########8#8###################888888888#8#888#888888888888888888######################################8888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~--~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::++++++++++++++++++======================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************xYVVVVVVVVVVVVVVYxxxx*=+:::::++++++++++++:::::::++++==**xx#%%%%%%%%%%%%%8888888888888888888888888888#8#8##8###################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVV$$$$$$$$$$Vx************************=*===============================++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::~:::::::::::::::+++==*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV######################88888888888888888888888888888888888888888888#8##888#######8###88####8####8####################88888888888#88##888888888888888888########################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~--~~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++=+=====================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********======*******YVVVVVVYYxx***xxx**==++:::++++++++++++::::::::+++===**xY8%%%%%%%%%%88888888888888888888888888888#88#88#8##################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVV$$$$$$$$$$$Y*************************=================================+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::~::~~:::::::::::::++++==*******x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$####################8#88888888888888888888888888888888888888888888#8#88#88######888#88888######8####################88888888888#8#8#888888888888888888#######################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::++++++++++++++++++======================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYx***=**=====++==*******xYYx*=+::~~~+*****==+++::++++=++++++::::::::+++===***xY%%%%%%%%%%%8888888888888888888888888888#8#8##8##############################$$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###################################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$$$Y*************************================================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::~::~:~~::~~:::::::++++==*******xx*x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#######################88888888888888888888888888888888888888888888#888##8####8###8##88##############################88888888#8#888##888888888888888888########################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++======================******************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVYxx*==============******++:~~~~~~~=******==++++++++===++++::::::++++===***xxV%%%%%%%%%%8888888888888888888888888888#8#88#8##################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$##################################$#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVV$$$$$$$$$$$$Y***************************=============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::~::::::::::~:~:~~::~~:~::::::++==********x*x**xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxY####################8#8#8888888888888888888888888888888888888888888##888########8#8#8##8########8##############8#####888888888888#8##888888888888888888#####################################8#888#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::++++++++++++++++++======================*******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVx*===========++=*=***=+::~~~~~~+*******==++++++======+++++++++++===****xY$%%%%%%%%%8888888888888888888888888888#88######################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$############################$$$$$$$$$$$$#$$###$##$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVVV$$$$$$$$$$$$Y****************************=============================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::~:::~~:~::~:~~~:~~~~~~::::::::++==**********x*xx***x**x**xxxxxxxxxxxxxxxxxxxxxV#####################8#88888888888888888888888888888888888888888888#888##88######88#88888#8##8#8#8#############8#####88888888#8#8#88#88888888888888888#8#######################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~-~--~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++======================******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVVY*===========::+===****=::~~~~+********===+++==========+========*****xxY#%%%%%%%%888888888888888888888888888#888####################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$$##################################################$###$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVVV$$$$$$$$$$#$Y****************************============================+==+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::~:~:~~~~~~~~:~~~~~:~:::::::++==*********xx*xx*x*x****xxxxxxxxxxxxxxxxxxxxxx$#################8#8##8#8888888888888888888888888888888888888888888888888#8######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*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$#$$##$######################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVV$$$$$$$$$$$$$Y******************************============================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::~:::~~:~:~~~~~~~~~~~~~~:~::::::++===***********x**xx*x**x*xx**xxxxxxxxxxxxxxxxxY#################8#8#88#888888888888888888888888888888888888888888888#888#8#####8888##88####8#####888############8####88888888##8#88##88888888888888888#8#######################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+:+++++++++++++++++++=====================*=**************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYVVVVVVVVVVVVVVVVVVY*=================*******=*****xx*****===========*****x********xxxxYV%%%%%%%888888888888888888888888888#8#8####################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#$###$#$#################################8########################$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$##$Y*****************************=============================+++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~:~~:::::++===***********x*xxx*x**x*xxx*xxxx*xxxxxxxxxxxxY################88##8888888888888888888888888888888888888888888888888#88888#8####8#88#88#8###8##8888############88####88888888#8#8####88888888888888888#######################################8#8#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++=====================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYVVVVVVVVVVVVVVVVVVVVY*=***==============*********xxxxxx*****====*******xxx**=*xx**xxxxxxY$%%%%%%%88888888888888888888888888#888#8##################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x************xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$##$###$###################8#88##8###############################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVV$$$$$$$$$$$#$Y******************************=============================+++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::~:~:~~:~~~~~~~~~~~~~~~~~~:::::+++==*******************xx****xx**xxxxxxxxxxxxxxxV#################88#8#8888888888888888888888888888888888888888888888888#8####8####88#8888##8#####8#8############88####88888888##88####888888888888888888#######################################8#8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++====================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVYx*xxx***=============********xxx*xx***************xxx*=+=*xxxxxxxxxYY#%%%%%%%88888888888888888888888888#8##################################$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x******************xxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##################8###8##88#8####################################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVV$$$$$$$$$$$#$$x********************************==========================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::~:~:~:~~~~~~~~~~~~~~~~~~~:::::++===*******************xx*x*x**x*x*xxxxxxxxxxxxx$###############8##8#8888888888888888888888888888888888888888888888888#8888#######888##88#88######8888###########888###88888888#8######888888888888888888#########################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::++++++++++++++++++++=====================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVYx*xYVx*****============****************************xxx+:+xxxxxxxxxxxxY8%%%%%%8888888888888888888888888888#8#8###############################$$#$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$###################8#######8#######8############################$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVVV$$$$$$$$$###$Y*********************************==========================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::~::::~:~~~~~~~~~~~~~~~~~~~~~::::+++===*******************x**x**xx*x**x**xxxx*xxxxY#################8888888888888888888888888888888888888888888888888888888#88###8###88888888#####8###888###########88####888888#8#8#8###8888888888888888888########################################88#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~--~~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::+++++++++++++++++++++++====================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYVVYYYYYxxx***xx******============*****************===*****==*xx*+=xxxxxxxxxxxxxV%%%%%%88888888888888888888888888###8##################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################8######8##8#########################$#$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$##$$x**********************************=========================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~~~:~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::~~:::~:~~~~~~~~~~~~~~~~~~~~::::+++===**************************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#################################$##$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$############################################################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$$##$Y***********************************==========================++++++++++++++++++++:+::+:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::~~~::~~:~~~~~~~~~~~~~~~~~~~~::::++===*****************************xx*xx*xxxxxxxxxV################8#888888888888888888888888888888888888888888888888888888888#8#8##88888888#8#8#88#8#888###########8#8###888888888#8#8###888888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~-~~--~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::+++++++++++++++++++++++=====================************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxx**==========================*=***=******======================================**xxxxxxxxxxxxxxxxx#%%%%%%%8888888888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$####################################8#####8################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYVVV$$$$$$$$$$##Vx*************************************=======================++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~::~:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++==*******************************xx***xxxxxxxxx$###############8#8#88#88888888888888888888888888888888888888888888888888888##88##8#88888888##888#8#888############888#888888888########888888888888888888########################################88888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~---~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::+++++++++++++++++++++++=======================***********************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYx**============+++++++++===============================================+++++++++==******xxxxxxxxxxxxY8%%%%%%888888888888888888888888##8###################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******************************************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$##$######################################8##################################$$$$$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYVVV$$$$$$$$$$#$x*************************************========================+++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+++==***********************************xxxxxxxxxx$###############88888888#888888888888888888888888888888888888888888888888888###8###8888888888##8#8#8888###########8888##88888888#8######888888888888888888##########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~--~-~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::+++++++++++++++++++++++==========================*************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx*=============++++++++++=+==========++=============================++++++:::::+++===*****xxxxxxxxxxx$%%%%%%8888888888888888888888888#################################$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******************************************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$#########################################################################$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVV$$$$$$$$$$#$Vx**************************************=======================+++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~:::::::::::::::::::::~:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***********************************xx*xxxxxxY###############888888888888888888888888888888888888888888888888888888888888###8###8888888888#8##88#88888###########8###88888888#########888888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~~~-~~~~-~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::+++++++++++++++++++++++=+======================*************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx**==================+==============++++++++++=====================++++++::::::::++=======***xxxxxxxxxY8%%%%%%88888888888888888888888##8#################################$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************************************x*xxxxxxxxxxxxxxYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$#####################################################################$##$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYYVV$$$$$$$$#$#$x***************************************=======================++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~:::::::::::::::::::::~:::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***************************************xxxxxV###############888888888888888888888888888888888888888888888888888888888888#88#8###888888888#888##8#888############88##8888888##8#88##8#888888888888888888#########################################88#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~-~~---~-~-~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::++++++++++++++++++++++++========================*************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYx**************========================++::~::::+==================++++::::::::::::++========**xxxxxxxxxV8%%%%%%%8888888888888888888888###################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************=**====**********************xxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$##$$#######################################################################$#$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVYVV$$$$$$$$$$$$Y*****************************************======================+++++++++++++++++++++++:+++:::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~:~::::::::::::::::::::::~::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:::++===***************************************xxxxxV##############8888888888888888888888888888888888888888888888888888888888888888#8###88888888#8#8#88888888############8#8888888#8#########888888888888888888#########################################8#88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~-~--~~--~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::++++++++++++++++++++++++++========================*************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxx*************************===============++:::::++===========++====++::::::::::::::++=========*xxxxxxxxxx$%%%%%%%%888888888888888########################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************=============*********************xxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$##$#$########################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYYV$$$$$$$$$$$$$x****************************************======================+++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~:~~~~~~~~:~::::::::::::::::::::::::~:::::~~~~~~~~~~~~~~~~~~~~~~~~~~:::+====******************************************xx$##############8888888888888888888888888888888888888888888888888888888888888#8#88##8#8888888#8#8####88888#8#########8#8#88888888888######888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~-~-~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::++++++++++++++++++++++++========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYxx****xxxxx*************************===========+++=====*=========++==++++::::::::::::++==========*xxxxxxxxxY8%%%%%%%88888888888888888################$###$###$##########$###$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxx*x**x***********************================********************xxxxxxxxxxxxxYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$##$$$##########$###############################################################$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVYVV$$$$$$$$$#$$Yx******************************************====================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~:~~~~~~~:::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~::++===****************************************x**xx###############88888888888888888888888888888888888888888888888888888888888888#8#8###888888888##88##888888#8########88##888888888#########888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~-~-~-~~-~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::+:+++++++++++++++++++++++==========================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxx****xYVVVVx**==************************=============**********===++==++++::::::::::++++==========*xxxxxxxxxV%%%%%%%%8888888888888888888888##################$$#$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*xxx***x*x**********************==================*********************xxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYYV$$$$$$$$$$#$$x*xx*x*************************************=====================+++++++++++++++++++++++++:++::+::::::::::::::::::::::::::::::::~:~~~~~~~:::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~::++===*******************************************xY##############88888#8888888888888888888888888888888888888888888888888888888##8#88###888888888888888#8888888########8##8#8888888#8#8######888888888888888888##########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~-~-~-~~~~-~--~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::++++++++++++++++++++++++===========================*************************x*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxx*******xVVVVYx*=+=*xxxxxxx*******************=********************======++++:::::::+++++===========*xxxxxxxxxx#%%%%%%%%88888888888888888888#8#######################$###$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxx*x*x****x**************************======================*****************xxxxxxxxxxxxxYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$################################################################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYYV$$$$$$$$$$##$Yx*xxx***x*x**********************************===================+++++++++++++++++++++++++:+:++:::::::::::::::::::::::::::::::::~:~~:~~~:::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~:::+===*******************************************xV#############888888888888888888888888888888888888888888888888888888888888888##88####88888888#88#8#8#888888##########8##88888888#8#####8##888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~-~~-~-~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-----~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+++++++++++++++++++++++++=+=========================*************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYx*==*=******xYYYx***xYYYVVVVYYYYxxxx*******===************************=======+++++::+++++++===========*xxxxxxxxxxY8%%%%%%%%88888888888888888#8################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**xx***xx**x******x***********************=========================*****************xxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$################################################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVYVV$$$$$$$$$###Vxxxxx**x*x*x**********************************==================+++++++++++++++++++++++++++:+++:::::::::::::::::::::::::::::::~::~~:~:~:::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~::++===*******************************************x$##############8888888888888888888888888888888888888888888888888888888888888#8#8888#888888888#8888888888888##########8###88888888######8##888888888888888888#########################################888#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~--~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::++:++++++++++++++++++++++++===========================***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYx*==========********xYVVVVVVVVVVVVVVVYYYx***=+==***=====***************==========++++++++++=============*xxxxxxxxxx$%%%%%%%%%888888888888888888#8###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*******x****************************===========================****************xxxxxxxxxxxxYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$##############################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVYVV$$$$$$$$$$#$$xxxxxxxxxx*xx*********************************===================++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::~:~~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~:::++===*******************************************x$#############888888888888888888888888888888888888888888888888888888888888888#8#8###888888888888888#88888888#########88##888888#8##8###8##888888888888888888#########################################8888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~~-~~---~~-~-~-~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::+:++++++++++++++++++++++++++===========================**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYx*====++++=======***=*YVVVVVVVVVVVVVVVVVVVVY**======+::::::+=***********==++==========++++===============**xxxxxxxxxY8%%%%%%%%88888888888888888888###############################$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***************************************============================****************xxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#####################################################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVYVV$$$$$$$$$$$#Vxxxxxxxx*xxx**x*******************************===================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::~~:~~:~:::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~::+====*******************************************x##############888888888888888888888888888888888888888888888888888888888888888#88888#8888888888##888#88888888##########8##8888888888###88##888888888888888888#########################################888##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%%% ~~~~~~~~~~~~~~~~~~~~~~~--~~--~--~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+==========================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxxx**===+++++++=======**xYVVVVVVVVVVVVVVVVVV$$Y***=+=+::::::::::=*********==:::+===============*********====*xxxxxxxxxxV%%%%%%%%%88888888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x*****************************************=============================****************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$#$######################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYVYYYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$#$xxxxxxxxxxxx*x*x**x*****************************==================++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::~::~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::+====*******************************************Y#############88888888888888888888888888888888888888888888888888888888888888888#888##8888888888#8888888888888########888##88888888#########888888888888888888##########################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ~~~-~~~~~~~~~~-~~~--~~-~~--~~--~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+============================**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYxx****=====+++++++=====**xYVVVVVVVVVVVVVVVVVV$Y=***==+:::::::::::+=********=++:+=============******xxxx****=*xxxxxxxxxxx#%%%%%%%%%8888888888888888888##8################################$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxx*x**x***************************************===============================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$##$##$$##$##$###########################$#$#$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$$#Yxxxxxxxxxxxxxxxxx*******************************=================++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::+====******************************************xV#############888888888888888888888888888888888888888888888888888888888888888#888888#888888888888#88888888888###########888888888####8##8##888888888888888888#########################################8##8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~~~~~~~~~~~~~~-~-~-~~~-~~~-~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::++++++++++++++++++++++++++==+===========================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYxx*******======++++++++=====*xVVVVVYVVVVVVVVVV$Vx+:=*===::::::::::::+********===++===========****x*=++=xxxxx***xxxxxxxxxxxY8%%%%%%%8888888888888888888#8#8##########################$####$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x********************************************================================****************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$##$$##################$#$##$#$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYYxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYVVYVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxx*xx*x*****************************=================+++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::::~:::::~~~~~~~~~~~~~~~~~:::+====******************************************xV############8888888888888888888888888888888888888888888888888888888888888888#8#888#8#888888888888#8888888888#########8#8#88888888##8######888888888888888888#########################################88#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~~~~~~~~~~~-~~-~-~-~-~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+++:+++++++++++++++++++++++=+============================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYxx********========++++++++======xVVVVVVVVVVVVVVVV*:::====+:::::::::::+=*******===++====*****=*****x**===*xxxxxxxxxxxxxxxxxxx$%%%%%%%%888888888888888888888################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x********************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$##$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVV$$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxx*x****************************=================++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::~:~::::::::::::::::::::::::::::::::~:::::~::~~~~~~~~~~~~~~~~:::+====***************************************x**x$############8888888888888888888888888888888888888888888888888888888888888888#88#88###88888888888888888888888#########8#88888888888#####8##888888888888888888#########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~~~~~~~--~-~~~~--~~--~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++=+==========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVYx**==============++++++++======xVVVVVVVVVVVVVx+:::=*===::::::::::++=*******==++++===***********xxx*********xxxxxxxxxxxxxxx8%%%%%%%8888888888888888888#88###############################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*********************************************==================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxx*x**x**************************===============++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~:::+===****************************************x**x#############8888888888888888888888888888888888888888888888888888888888888888888#88##888888888888888888888888#########8#8#888888#8######8##888888888888888888#########################################888#8#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ~~~~~~-~~-~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++=+===========================***************************x**x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVYYYx*=++==========++++++++=====xVVVVVVVVVVY*+::+=**=*=:::::::++==********===+++===***********xxxx*****===**xxxxxxxxxxxxxV%%%%%%%%888888888888888888888#################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*********************************************=================================***************xxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYVYVYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVV$$$$$$$$$$$$#$xxxxxxxxxxxxxxxxxxxxxxxx****************************===============++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::~::~::~~~~~~~~~~~~::::++===******************************************Y############8888888888888888888888888888888888888888888888888888888888888888#88#888##888888888888888888888888########8#8#8888888888#8#888##888888888888888888##########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%%% ~~--~--~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:+++++++++++++++++++++++++===+==========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVYx*========+==+++++++++++==*YVVVVVVVx=:::+=*****=:+++=====********=====+====**********xxxxx***=======*xxxxxxxxxxxxx#%%%%%%%%888888888888888888888#########################$##$##$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x************************************************=================================***************xxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxx*x****************************==============+=++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::~~~~~~~~~~~~~::::+===*****************************************xY############888888888888888888888888888888888888888888888888888888888888888888888888#8888888888888888888888888#######8#88#88888888#####888#888888888888888888##########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -~~----~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++============================*********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVV$VVVVVVVVVVVVVVVVYYx**=++++++++++++++++=+==*YVVVY*+::::+=====+=++========================***********xxxx**========**xxxxxxxxxxxxY8%%%%%%%88888888888888888888#########################$######$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===============++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~:::::+===*****************************************xV############8888888888888888888888888888888888888888888888888888888888888888#88#888#8#888888888888888888888888########88##88888888#8#8#####888888888888888888##########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% --~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++==+===========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVV$$$$$$$$VVVVVVVVVVVVVVVVVY*=++++++++++++++++=+==***=+++++++++++++=++++++++++++================********xxxxx***======**xxxxxxxxxxxxx$%%%%%%%%88888888888888888888################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*x*******************************************================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYVVVVV$$$$$$$$$$$$#$xxxxxxxxxxxxxxxxxxxxxxxxx**x***************************==============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~::~~:~~~~~~~~~~:::::+===*****************************************xV###########888888888888888888888888888888888888888888888888888888888888888888#88#88##8#88888888888888888888888########8#8#8888888###8###8##88888888888888888###########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++==+==========================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVYx=+++==+++++++++=+==+======++++++++++++:::::++++++++++++++++++++=========***xxxx********xxxxxxxxxxxxxxx8%%%%%%%8888888888888888888###############################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx**x**********************************************================================**************x*xxxxxxxxxxxxYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=*=============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::~~:~~~~~~~~~~::::+===*****************************************x$###########888888888888888888888888888888888888888888888888888888888888888888888888##8888888888888888888888888########88##8888888#88###8###888888888888888888#########################################8#8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++=+============================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$V$$V$$$$$$$$$$VVx=+===++++++++++=+====+++++:::::::::::::::::::::::::::::::::::::++++++==****xxxxx***xxxxxxxxxxxxxxxxV8%%%%%%%888888888888888888###############################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x*******************************************=================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVYVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVV$$$$$$$$$$$#$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=============+=+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~:::::+===*****************************************x$###########888888888888888888888888888888888888888888888888888888888888888888#888888##888888888888888888888888#########8#8888888#8####8#8##888888888888888888#########################################888#8#88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++==+=============================********************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx=====+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::+++++===**********xxxxxxxxxxxxxxxx8%%%%%%888888888888888888#############################$###$$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************************************==================================**************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$###$##$##$######$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVV$$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************============+=++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~::~~:::~~~~~~:::::+===*******x*********************************Y############88888888888888888888888888888888888888888888888888888888888888888#8888#88#888#888888888888888888888########8##888888888#####8###88888888888888888##########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++==+============================***********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y==+=++++++++++::::::::::::::::::::::::+++++++++++++++++++++++++:++++++======**********xxxxxxxxxxV8%%%%%%88888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**********************************************=================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########################$#####$#$#$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************=============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~::::+====*********x******************=***********Y###########88888888888888888888888888888888888888888888888888888888888888888888888#8##8888888888888888888888888########888888888888#####88##88888888888888888###########################################88##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++=+=============================************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x=+++++++++++:::~~~~:::::::::::::+:+++++++++++++++++++++++++++++++++++++=+======*******xxxxxxxxx#8%%%%%88888888888888888###############################$#$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************===================================**************xxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$VV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################$$$$$$$$$$$$$$$$$VVVVVVV$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVV$V$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************==============++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::::~::~:~~:::~~~~~::::++===*********x****x***********===***********Y###########88888888888888888888888888888888888888888888888888888888888888888888888888##88#888888888888888888888########88#88888888#8###8#8##88888888888888888###########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++=+=+============================************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$x=++==+++++:::~~:::::::::::+:++++++++++++++++++++++=+==+=++++++++++++++++========****xxxxxxxxxV8%%%%%88888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******x*******************************************===================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************=============++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~:~:~::~~:::~:~~~::::++===********x****xx**********====**********xV##########88888888888888888888888888888888888888888888888888888888888888888888888888##8#88##88888888888888888888#######888#88888888###8888##88888888888888888##########################################88#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++=++============================*************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####V*=+====+++::::::::::::::++++++===****====================+++++++++++++++===========***xxxxxxx#8%%%%88888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***xx**************************************************===================================***************xxxxxxxxxxxxYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************===========+++++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::~::::~:~:~:~~::~:~:~::::++===*******xxx**xxx*********=++=************V##########888888888888888888888888888888888888888888888888888888888888888888888888888#88##88#8888888888888888888########8##88888888####8#8##88888888888888888##########################################8#88#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888%% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++==============================***************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########$*=+====++++++::::::::+++++++=**xxxYYxxx******===============++++++++++++============****x*xxV8%%%%%88888888888888888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*****************************************************==================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVV$$$$$$$$$$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===========+=++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~::::::::::::::~::~:~~::~~:~~:::++===********xx**xxxx*******=+++=************$##########888888888888888888888888888888888888888888888888888888888888888888888888#8###8###888888888888888888888########88#8888888######8###88888888888888888###########################################8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888%% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++=+===+===========================****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$##########$Y=+++=====++++++++++++++++++=*xxxxxxYYYYxxxx******=+++===========++++++++++===========*****xxx#8%%%888888888888888888###############################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x********************************************************==================================****************xxxxxxxxxxxxxYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##########################$#$$$$$$$$$$$$$#$$$$#$$$$$$$$$$$$$$############$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVV$$$$$$$$$$$#Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************=*===========++++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~:~:~::::~:::++===*******xxxx*xxxx*******++++************x$##########888888888888888888888888888888888888888888888888888888888888888888888888888#88###8##888888888888888888#######88##8888888######8###88888888888888888##########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++=+============================*==**************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$#########$Y=++++++====++++++++++++++++=**xxx*=*xYYYYYxxxxx*****=++=============++++++++==========******xxV8%%%88888888888888888#8###############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*x********************************************************=====================================***************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$#$$$##############$$$$$$$$$$$$$$$$$$$$$$#$#$$$##$###$############################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVVV$$$$$$$$$#$VYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************=============+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~::::~::::~:~::~::~:~~::~:::::::++===*******xxxxxxxxx******=+++=************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$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVVVVV$$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x************************===========+=++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~:::~:~:::~:~:~~:~:~~:~~~:~:::::+===******xxxxxxxxxx*****=++++=************x#########88888888888888888888888888888888888888888888888888888888888888888888888888888##8######888888888888888888#########8#8888888##8##888##8888888888888888###########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++==============================*=****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#########Vx=+++++++++++++===+++++++++++===*xxYYYxYYYYYYxx*******xxxxxx***=========================*******xxxY8%%8888888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx********************************************************=====================================**************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVVV$$$$$$$$$$#$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************===========++=++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::~~::~:~~:~:~::~~::~~:~::~::::::+====******xxxxxxxxx*****=++++=************Y#########88888888888888888888888888888888888888888888888888888888888888888888888888888#####8####88888888888888888#######8##88888888######8#8#8888888888888888############################################8#8#8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++==+===========================*=******************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$$######$Y*+++++++++++++:+====+++++++++=====*xxxYYYYYYYYYxx*==+===*xxxxxx**=============*****======********x*x$8%%888888888888888888###############################$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************************************************=====================================**************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$$$$$$$$$$$#$YYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************==========+=++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::~:~::::~::::~~~:~~~~::~~:::::+====*******xxxxxxxx****=+++++*************Y#########888888888888888888888888888888888888888888888888888888888888888888888888888####8######888888888888888888#######8###8888888#8###8#8##8888888888888888###########################################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++=+==============================*******************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#####$x=++++++++++++++::+=======+++=+======***xxxxYYYYYYxx*=+++++=**xxx***===========********===************x#88%88888888888888888#################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx**x********************************************************======================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYVVVVVVV$$$$$$$$$$$$#VYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************===========+=+++++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~::~:~~::::::~~~~:~~~~~:::::++====*****xxxxxxxxx****=++++=*************Y########8888888888888888888888888888888888888888888888888888888888#8888888888888#88888##########88888888888888888##########888888888####888##8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++==+===========================*=******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxx*xxxxYYYYYYYYYYYYYYYYYVVVVVVYYYx*******xYYVVV$$$$$$####$$Vx=++++++++++++++++::++==================****xxxxxYxxxx*=++:::+=*xx****===========********************x*xY8%88888888888888888888################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx**x********************************************************======================================***************xxxxxxxxxxxxxYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVV$$$$$$$$$$#$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************===============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~::::~::~::::~~~~::~~~~:::::++====*****xxxxxxxx****=++++:=*************Y########888888888888888888888#8888888888888888888888888888888888888888888888888888#88###########88888888888888888#######88#88888888###8######8888888888888888############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++=+==============================********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*=++++++====****xxxYYYYYxxxxx*==+++++++++++++==**xYYV$$$Vx*=++++++++++++++++++:::++======================***xxxxxxxx*=+++++=******============**********************x$88888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************************************=====================================****************xxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$##$##########################################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$#$$Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::~:~:~::~::~~~~~~~~~~:::::++=====****xxxxxxxxx***=+++++==************V###8####888888888888888888888$888888888888888888888888888888888#8888888888888888888888##########88888888888888888#######8##88888888######8###8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888888 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==============================********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=+::~~~~~~:::::::++++++++++::::::::::++++++++++++++++++==+++:+++++++++++++++++++::++=========================*****xxxxx**===******==============*********************xx#88888888888888888888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x**x***************************************************=*=====================================***************xxxxxxxxxxxxxxxxYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$#######################################################################$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$$##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$$$$$$$$$$#$#VYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*************************================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:::~:~~::~~:~::~~~~~~~~~::::++=====*****xxxxxxxx***++++:===**==********V#######8888888888888888888888V88888888888888888888888888888888888#8#888888888888#8888###########888888888888888888##########88888888###8#88##8888888888888888############################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++++=============================***********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++:::~--------~::::::::::::::::~~~~~~~::::::::::+++++:+:::::::::::::::++++++++++++++++=====**********============+++++====*****=============================*************x#8888888888888888888###################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx****x***************************************************========================================****************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$#########################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$$#$#VYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x***********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~::::~:::~~:~::~~~~~~~~~::::++=====******xxxxxx***=++++:===**==********V##8###888888888#888888888888#Y#8888888888888888888888888888888888888#8888888#88#888#8###########888888888888888888#######8##8888888#8#8#88#8#8888888888888888###########################################88#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=+============================*********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++++++++::::::::::::+:+::::::::::::::::::::::::+++::::::++::::::::::::::::::::+:::++++++====*************===========+++:++++++=++++++===========================***********Y888888888888888888888##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***x****************************************************=======================================****************xxxxxxxxxxxxxxYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$##$$####################################################################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVYVVVVVV$$$$$$$$$$#$#$YYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************==============+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::~~:~~:~~::~~::~~~~~~~~~~:::++======****xxxxxxx***=++:::==***==********V######8888888888888#88888888#x#88888888888888888888888888888888888#8#88888888888#88#8###########888888888888888888######8###88888888#####88##8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++=+==============================***********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**==+++++++++++++++++++++++++++++:::::::::+:+::+:+++++++::::::::::::::::::::::::::::::::::++++===*************===============+++++++++=================================*********$888888888888888888888##################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x***************************************************=======================================****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$##$######################################################################$#$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$#$#$YYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x**********************============+=+=+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~~:~:~:~:~:~:~~~~~~~~~~~~~::::+======*****xxxxxx***+++:::==***==********$#####88888888888888888888888#x$88888888888888888888888888888888#88888888888888888#8#8###########888888888888888888######8##88888888#8#8##88##8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::~::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++==============================********************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*======+==++=+++==++++++++++++++++++:::::::::::::+:+++:++++:::::::::::::::::::+:++::::::::::::+++===========================================================================*****x888888888888888888888###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***x*x***************************************************=====================================*****************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$#$#$#########################################################################$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVV$$$$$$$$$$$$#$YYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************==============+=++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~:::~::~:~~:~~~~~~~~~~~~~~:::+======*****xxxxxx***+++:::==***==********$#####88888888888888888888888#xV88888888888888888888888888888888#88#8#8888888#88#8#8#############888888888888888888#######8##88888888#8##88###8888888888888888###########################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888888 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::::::::::::::::::::::::::::+::+:++++++++++++++++++++++++++++++++++============================**********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**==============+======++++++++==++++++++::::::::::::::::::::::::::::::::::::::::::::+:::::::::::+++++=====================================================+++=++==============*****V88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x****************************************************======================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$##########################################################################$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$$$##YYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************=================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~:~::~:~~::~~~~~~~~~~~~~:::+=====******xxxxxxx*=++::::==***===*******$#####88888888888888888888888$xY8888888888888888888888888888888#8#88#888888888#8##8#88##########8888888888888888888######88#888888888###8##8##888888888888888############################################888888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:~::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=+=============================********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*============+=+=+++=+===+++++======+++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++=============================================++++++++++++++++++++++++==*****#88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x***************************************************=====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$##$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVV$$$$$$$$$$####VYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************================+++++++++++++++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::~::~::~:~~:::~~~~~~~~~~~~~::++=====****xxxxxxxx*=++::::==**====******x$####888888888888888888888888$xY888888888888888888888888888888888#88#8888888888##8888###########8888888888888888888######8#8888888888##8#8#8##8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::~::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=============================********************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**====+++++++++++++++++++=+=+==+=======+++++++++::::::::::::::::::::::::::::::::::::~~:::::::::::::::::+++++++=================================++++++++++++++++++++++++++++++++++===****x88888888888888888888##########################$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*x*x*************************************************====================================****************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$######################################################################$##$$$$$$$$$$$$$$$$$$$$$$$$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$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x***x*********************************************====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$###$##################################################################$##$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVV$$$$$$$$$$####VYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************================+=+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~:~:::~~:~:~::~~~~~~~~~~~~~::+=====***xxxxxxxxx*=++::::+=**====******x$###8888888888888888888888888$xx#888888888888888888888888888888888##8888888888#8################8888888888888888888#######8##8888888#####888##8888888888888888###########################################88888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++==+==========================*******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**===+++::::::::::::::::::++++=======++++++++:::::::::~~::::::::::::::::::::::::::::::::~:~~~~~~~~:::::::::::::+:++++++++++++++=+===========+++::::::++++++++++++++==============***********xV8888888888888888888#####################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*x***x*******************************************====================================******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$#######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVVV$$$$$$$$$$#$##$YYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************==================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~::~:::~::~:~~~~~~~~~~~~~~:+=====***xxxxxxxxx*+++::::+=**====*******$###8888888888888888888888888$xx$88888888888888888888888888888888#8#8#8888888#888#8#############8888888888888888888######8#8#888888888##8#8###8888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ----------------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++===========================*****************************************x***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYx**===++:::~~~~~~~~~~~:::::+++====+++++++++::::::::::::~~~::++++++:::::::::::::::::::::::::::~:~:~~~::::::::::::::::++++++++++++++===========++++::::++++++==================*************xxxxx$888888888888888888#8###################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xx*xx*x**********************************************=====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$$$#$####################################################################$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$$$###$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************================++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~~::~:~:~:~:~~~~~~~~~~~~~~~~:+======**xxxxxxxxx*+++::::+=**====*******$###8888888888888888888888888$xxV8888888888888888888888888888888#888#8888888#8#8#88#############8888888888888888888#####8###888888888#88#88#8#888888888888888############################################8#888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% --------------------------------------------------------------------------------------------------------------------------------------------------------~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==+=========================*=*****************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYx**===++:::::~~~~~:::::+++++++==*****=+++::::::::::::~~~::++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::++++++++++==============++++++++===============******************xxxxxxxY#8888888888888888888####################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x****************************************************===================================*******************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$#$$####################################################################$$$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$#$###$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************================+++++++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~:~::~:~:~~~~~~~~~~~~~~~~~~~:=======*xxxxxxxxx*+++::::+=**====*******$##88888888888888888888888888$xxY8888888888888888888888888888888888#888888888#8#####8##########88888888888888888888#######88#88888888888#8#8##888888888888888############################################8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% -----------------------------------------------------------------------------------------------------------------------------------------------~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=============================*****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYx**=====++++++++++++++++==*xYYVVVVY*+::::::::::~:::~~::+++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::++++++=====================================================*******xxxY#8888888888888888888####################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x****x**************************************************==================================*******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$###$#################################################################$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$$#$###$YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************================++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~::~:~:~:~~~~~~~~~~~~~~~~~~~:+=====**xxxxxxxxx*+++::::+=**====*******$#888888888888888888888888888$xxx#8888888888888888888888888888#888###88888888##88###############8888888888888888888######8#8#88888888#8#8#88##888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++===+========================*****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***xYYYYYYYYYYYYxxx******=========**xYYVVVVVYx=+:::::::::~~~~~:::::+++=+++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~:::++++====================*=======================================****Y888888888888888888#8##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx******************************************************====================================******************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$#$#$#####################################################################$#$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVYVVVVV$$$$$$$$$$$####$YYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************=================+++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~~~~~~~~~~~:+=====**xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxx#88888888888888888888888888888##8#8#8888888#888##8############88888888888888888888######88#8888888888#8##8###888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++==+==========================*****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**=====*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYx=++:~~~~~~::::::::::+++++===+=+++++++++++++++:::::::::::::::::::::::::::::::::::~~~~~~~::+++==============================================================***Y888888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************====================================*****************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#################################################################$#$$$#$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$$$####VYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************===============+++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~:~~:~::~~~~~~~~~~~~~~~~~~~~:======*xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxx$888888888888888888888888888#88#8##88888888#8#################88888888888888888888#####88#8#88888888888#888##8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% -------------------------------------------------------------------------------------------------------------------------------~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++=+==========================****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=++=======*YYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYYx*++:::~~--~~~~:::++++++=+::::+====++++++++++:::::::::::::::::::::++:++++:::::::::::~~---~~::++=============================================================****xY888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*x**********************************************************====================================******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$#########################################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$######VYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*********************===============+=++++++++++++++++++++++++++++:++:+:::::::::::::::::::::::::::::::::::~:::~~:~~~:~~~~~~~~~~~~~~~~~~~:+====**xxxxxxxxx*+++::::+=**====*******V#888888888888888888888888888$xxxV8888888888888888888888888888##88##8888888888#################88888888888888888888#####888#888888888#8#8888##888888888888888############################################8#88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% --------------------------------------------------------------------------------------------------------------------------~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~~:~:::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=+===========================***********************************x***xxxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*+::::+++======*xYYYYYYYYYYYYYYYYYVVVVYVVVVVYx*=++++:::~~~~~::::++++=====+:::::+==+++++++:::::::~~~::::::::::::+++++++++++++++:++:::~~~~~~::+++========================================*=*******************xxxxxV888888888888888888#8################################$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx************************************************************=====================================******************xxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$#######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVV$$$$$$$$$#$####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx********************==================++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~:~::::~~~~~~~~~~~~~~~~~~~+====**xxxxxxxxx*+++::::+***====*******Y#888888888888888888888888888$xxxY#88888888888888888888888888#8#8##8#8888888#8888##############88888888888888888888######8#8#888888888#888888#8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::+::+++++++++++++++++++++++++++++++++++++=+=========================**************************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~:::::++======*YYYYYYYYYYYYYYYVVYVVVVVVVYx=++++++:::::::::::::::::::+===+::::+++++:::~~~~~~~----~~~:::::::::++++++++=+=+==+++++++:::::::++++============================***************x*xxxxxxxxxxxxxxxxxxxxxYV888888888888888888#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*******************************************************=======================================******************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$#$$###$YYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*******************==================+++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::~:~~:::~::~~~~~~~~~~~~~~~~~~~:====**xxxxxxxxx*+++::::+***==*********Y#888888888888888888888888888$xxxx#888888888888888888888888888#8#8##88888888###################88888888888888888888#####8#888888888888888#888#888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888888% ----------------------------------------------------------------------------------------------------------------~-~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++=+=+========================*************************************xx*xxx***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~:::::++======*xYYYYYYYYYYYVYYVVVVVVYx*=+++++++:::::::::::::::::::::====++::+::::::~~~~~~~~~~~::::::::::::+++++++========++++++++++++++++===================**************xxxxxxxxx**x**x****xx**xxxxxxxxxxxxxV88888888888888888888####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*xx******************************************************========================================*******************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYVVVVVV$$$$$$$$$$$####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx**********************==================++++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::~::~:~~~:~~~~~~~~~~~~~~~~~~~:+===**xxxxxxxxx*=+++:::+***==*********Y#888888888888888888888888888#xxxx$88888888888888888888888888#88####888888888##################88888888888888888888######888#888888888#88888#8888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ---------------------------------------------------------------------------------------------------------~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::::::::::::+++:++++++++++++++++++++++++++++++++++=========================**************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~~~~~:::::++======*xYYYYYYYYYYYVYVVVVYx*=++++++++:::::::::::::::::::::+=+++++::~::::::::~::::::::::::::::+:+:+::++++++++++++++++++=====================***********xxxxxxxxxxxxx**********************=***=*******Y888888888888888888#################################$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**************************************************===========================================*=*****************x*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$########################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x**x*xxxxxxYYYYYVVVVV$$$$$$$$$$#####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*******************==================++++++++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~+====*xxxxxxxxxx=+++:::+***==*********x#888888888888888888888888888#xxxxV88888888888888888888888888##8#8###8888888#####8############888888888888888888888#####8#88#88888888888#888##888888888888888#############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888888%% ---------------------------------------------------------------------------------------------------------~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~:::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++=+=========================************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=+:~~~~~~~~~~~~~~~:::::+++======*YYYYYYYYYVVYVVYx===+++++++++::::::::::+++======+++++:::~~--::::::::::::::::::::::::::::::::::++++++++++++++====================********xxxxxYYYYYxxxx********===============================x888888888888888888#####################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************============================================*********************xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################$#$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****x**xxxxxYYYYVVVVV$$$$$$$$$$$#$###VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*******************===================+++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~:====*xxxxxxxxxx=+++:::+***==*********x#888888888888888888888888888#xxxxY#888888888888888888888888888#####888888#88###88############888888888888888888888#####888888888888888888888#888888888888888############################################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ---------------------------------------------------------------------------------------------------~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~::~:::::::::::::::::::::::::::::::::+:+:+++++++++++++++++++++++++++++++++++=========================***********************************x*x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxx*=+:~~~~~~~~~~~~~~~~~~~::::::++=======*YYYYYYYYVYYx=====+++++++++::::::++========+++++::::~~--~~:::::::::::::::::::::::::::::::::+++++++++++====================*********xxxxxxYYYYxxxx*******===========++++++++++++++++++++++++*#88888888888888888######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*xx**************************************====================================================*******************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$#####################################################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYVVVVV$$$$$$$$$$#####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*********************=================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxxxxxx=+++:::+***==*********x$888888888888888888888888888#Y**xx#888888888888888888888888###88####888888###################888888888888888888888#####88888888888888#88888##888888888888888#############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -----------------------------------------------------------------------------------------~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++++++++++++++===========================**********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxxxxxYYYxxYYxYYYYYxxxxxxxxxxxxxxxxxYxxx*=+:~~~~~~~~~~~~~~~~~~~~~~~::::::++=======**xYYYVYYx*======++++++++:::::++=======+++:::::::::::::::::::::::::::::::::::~~:~::~:::::+=============***********====**********xxxxxxxYYxxxx*******=========+++++++++++++++++::::::::::::+#88888888888888888####################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx********************************======================================================********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$$#####################################################################$#$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*********xxxxYYYYYVVVVV$$$$$$$$$#$####$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*********************===============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxxxxxx*++++::+****=**********$8888888888888888888888888888Y***x$88888888888888888888888888####88#888888#####8#############888888888888888888888#####888888888888888888888#888888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%% --------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++=+============================*********************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxYYxxxxxxxYYxx*=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++========**xYYY*========++++++++::::+=====+::~--~-~~~::::::::::::::::::::::::~:~~~~~~~~~:::::::+==*********xxxxxxxxx******************xxxxxxxxxxx*******==========++++++++++++:::::::::::::::::::+$8888888888888888##########################$############$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**x****************************=====================================================********************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$#######################################################################$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********xxxxYYYYYVVVVV$$$$$$$#$$#####VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx**********************================++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:===*xxxxxxxxxx*=++++:+****=**********V#888888888888888888888888888Yx***Y888888888888888888888888########888888#88################8888888888888888888888#####88888888888888888888##888888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++=+=========================********************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::++==========***=========+++++++:::+====+:~-....--~~:::::::::::::::::::::::~~~~~~~~~~:::::::::++YVVVYYVVVVVVYYYYYYxxxxxx**************xxxxxxxxxxx*******=========++++++++++++::::::::::::::::::::::V88888888888888#######################################$##$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx**x************************=====================================================*********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################$##$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********xxxxYYYYVVVVV$$$$$$$$$######$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx************************==============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxxxxx*=++++:+****==*********Y#888888888888888888888888888Vxx*xx#88888888888888888888888##8##8##888888#8#8###############8888888888888888888888#####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%88%%% --------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++============================********************************xx**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++==================+=+++++++::+====:-....--~~::::::::::::::::::::::~~~~~~~~~~~::::::::::+++x$##########$$VVYYVYYYYxxxxxxxxxxxxxxxxxxxxxxx*********=========+++++++++++::::::::::::::::::::~~~~:Y888888888888888#############################$##$##$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************====================================================********************xx*xxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$#$###################################################################$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx************xxxxYYYYVVVVV$$$$$$$$$######$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x********************================+++++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:==**xxxxxxxxx**=+++:+****==*********x#888888888888888888888888888$x***x$888888888888888888888888##8####88888#8####8#############8888888888888888888888#####888888888888888888888#88888888888888#############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=========================*******************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++=================+++++++++::===+~.....-~~:::::::::::::::::::~~~~~~~~~~~~~~~~~~~::::::::+=$########$#$#$$$VVYVVYYYYxxxxxxxxxxxxxxxxxxx*********==========+++++++++++::::::::::::::::~:~~~~~~~~*8888888888888###8############################$######$$###$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********************==================================================*********************xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$####################################################################$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx************xxxxYYYYVVVVV$$$$$$$$#######VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*******************=================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxxxx**=+++:+****==*********x#888888888888888888888888888$x***xY8888888888888888888888#88######8888888##################8888888888888888888888#####888888888888888888888#88888888888888############################################88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% ----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++++++++++++++++++++++===========================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++=================++++++++++===~....---~~::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:::::::+Y$##$####$$$$$$$$$VVVVVVYYYYYxxxxxxxxxxxxxxx**********=========+++++++++++:::::::::::::::~~~~~~~~~~~~=88%888888888888##################################$#$$$$$$$$$#$$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************===============================================********************x*xxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################################$#$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxxYYYYVVVV$$$$$$$$$######$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x********************===============++++++++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxxxx**==++++***************x$888888888888888888888888888#x****Y888888888888888888888888##8##8#888888#8#################8888888888888888888888#####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% -----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=++==========================****************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++================+++++++++===+-------~:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~::::::*$#$#$#$$$$$$$$$$$$VVVVVVYYYYYYYYxxxxxxxxxx************========++++++++++:::::::::::::::~:~~~~~~~~~~~~:$888888888888################################$####$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x********************==========================================***********************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$################################################################$#$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxYYYYVVVVV$$$$$$$$#######VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*********************==============+=++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=**xxxxxxxxx***==+++****************V#88888888888888888888888888#x*x*xx#8888888888888888888888#8#8##8#88888###################8888888888888888888888######888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%% ----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=+==========================*****************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++================++++++++===+----~~::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~:::::+V$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYxxxxxxxx************========++++++++++++:::::::::::::::~~~~~~~~~~~~~~:V8%88888888888##############################$##$###$$$$$$$$$$$$$$#$$$#$$$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************======================================**********************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$###########################################################$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*************xxxYYYYYVVVVV$$$$$$$#######$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx********************================+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=**xxxxxxxxx***==+++****************Y#888888888888888888888888888Y***xY#88888888888888888888888#8#8###88888####8#8############888888888888888888888888####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%% -----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++=+==========================******************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++==============++++++:+====:::+:+++++++:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~:::::*$$$$$$$$$$$VVVVVVVVVVYVVYYYYYYYYYYxxxxxxx***********=========+++++++++++::::::::::::::::~~~~~~~~~~~~~~~*8%%%8888888888#########################$#$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*********************==*========================*=*************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$$$####################################################$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx**************xxxYYYYVVVVV$$$$$$$$#######$YYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*********************===============++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=*xxxxxxxxx****==+=****************x#888888888888888888888888888Vx*xxY#888888888888888888888##8###8#888888#8#################8888888888888888888888#####8888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%% -----------------------------------------~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++==+========================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++==============+++++++=========+++++++++++:+:++::~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::V$$$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYYxxxxxx***********=========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~+#8%%8888888888##########################$#$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$##$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******************************=**===***=*****************************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$##$###$#########################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$$######$VYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx********************===============+++++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+=**xxxxxxxx*****===*****************$888888888888888888888888888$x*xxY888888888888888888888888##8####88888###################88888888888888888888888####8888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%% --------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++============================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++============++++++::+===========++++++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::=$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxx***********==========+++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~:$8%%8888888888############################$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$###$##$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************************************************xxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$####$#################################$##########$$#$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$$######$VVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*******************================+=+++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=**xxxxxxx*******==*****************Y#88888888888888888888888888$x*xxV8888888888888888888888888#####88888#8##################8888888888888888888888######888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%% --------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++=+==========================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++==========++++++::::=============++++++++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::Y$$$$$$$VVVVVVVVVVVVVYYYYYYYYYYYxxxxxxxx***********==========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~Y8%%%888888888############################$#$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYxxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx********************************************************xxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$#######################################$####$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$$######$VVYYYVVYVYVYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x*********************==============+=+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:==*xxxxxxx*******==*****************x#88888888888888888888888888#xx*x$888888888888888888888888#88##8888888##################88888888888888888888888#8###888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% ---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++++++++++++============================****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++==========+++++++::::+==============+++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V$$$$$$$VVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxx**********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~=88%%%88888888############################$#$$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**x******************************************xxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$####################################$###$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$#######$VVYVYVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*x********************===============++++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=*xxxxxxxx*******=*****************x$88888888888888888888888888#Yxxx#8888888888888888888888#888#8#8888888##################88888888888888888888888#####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% -----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++=+=+==========================***************************x***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++=========+++++++:::::+===========+++:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxx***********===========++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~:$8%%%88888888#8############################$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###$$$##$$$$$$$$$$$$$$VVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************xxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############################$##$#$####$$##$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx***************xxxYYYYVVVV$$$$$$$$##$####$VVVYVYVVVVYVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*x********************==============+=+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:+=**xxxxxxx**************************Y#88888888888888888888888888YxxY#8888888888888888888888888###8#88888###################888888888888888888888888####888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% -----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++==++===========================*****************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::+++++=========+++++++::::::::+++++++:::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:V$$$$$$VVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxx***********===========+++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~Y8%8%888888888#############################$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$$###$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************xxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######$#########################$###$##########$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***************xxxYYYVVVVV$$$$$$$$#######$VVVVVVYVVVVVVYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*x*********************==============+==++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxx**************************x$88888888888888888888888888YxxV8888888888888888888888#8#8##8##8888##8#################88888888888888888888888#####888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%% ------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++++++=++============================****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=======+++++++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=$$$$$$$VVVVVVVVVVVVYYYYYYYYxxxxxxxxxxxx***********============+++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~=88888888888888#############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$##$$#$$$$$$$$$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$################################################$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**************xxxYYYYVVVV$$$$$$$$$######$VVVVVVVVVVYYVVVVYVYVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*********************===============+=++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~:++=*xxxxxxx***************************Y#8888888888888888888888888VxxV88888888888888888888888888#8##888888#8#################888888888888888888888888#8##888888888888888888888888888888888888############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% -------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++===============================*****************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=======+++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxx***********===========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~:$88%%888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$VVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$####$#############################################$#####$###$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***************xxYYYYVVVV$$$$$$$$########VVVVVVVVYVVVVVVVVVVYVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*x*x*********************===============+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~:++=*xxxxxxxx**************************x$8888888888888888888888888Vxx$8888888888888888888888#8#8#8#888888###################88888888888888888888888#88###88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==+==============================*****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx*=+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::++++++=====++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~~x88%88888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$############################################################$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**************xxxYYYYVVV$$$$$$$$$$######$VVVVVVVVVVVVVVVVYVVVVYVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx***********************===============++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~++==*xxxxxxx***************************Y#888888888888888888888888$xY#8888888888888888888888888###8#88888###################88888888888888888888888##8###88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++=+==+=============================*******************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+++++======++++++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:Y$$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++:+::::::::::::::::~~~~~~~~~~~~~~~~~~~~+#8%888888888888##########################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYxxxxxYxxxxxYYYYYYYYYxYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$######$##############################################################$#$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***************xxYYYVVVV$$$$$$$$$$######$VVVVVVVVVVVVVVVYVYVVVYVVVYYYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x*********************===============+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxx***************************x$888888888888888888888888$xY#8888888888888888888888888#88#8888888#8################88888888888888888888888888###88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++==================================*******************************x*xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~~:::::::++++======+++++++::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:V$$$$$VVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~Y8%%%8888888888##############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###############################################################$##$###$$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx***************xxxYYYVVVV$$$$$$$$$$######VVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**x**********************===============+++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~:+==*xxxxxxx****************************Y#88888888888888888888888$xV88888888888888888888888888#8#88888888##8###############888888888888888888888888#8##888888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++=================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~~::::::::::::++++++=++++++++::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V$$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++::::::::::::::::~~~~~~~~~~~~~~~~~~~~~=#8%%%8888888888#############################$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$VV$VVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###########################################################################$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx***************xxYYYVVVV$$$$$$$$########$VVVVVVVVVVVVVVVVVVVVVYVVVVVVVYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxx*****************************V88888888888888888888888$x$888888888888888888888888#88#8888888####################8888888888888888888888#888#8#88888888888888888888888888888888888#############################################888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++++++++++==+==================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~::::::~~~::::::::::::+++++++++++++::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:+V$$$$$VVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxx***********==========+++++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~:V8%%888888888888########################$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$################################################################################$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx***************xxYYYYVVV$$$$$$$$$#######$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYVYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx***********************=================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:+===*xxxxxx*****************************x#8888888888888888888888$x$88888888888888888888888888#8#888888####################8888888888888888888888#88#8888888888888888888888888888888888888#############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::+:+:++++++++++++++++++++++++++++++++++++++++++===================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*=+++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:::::::::~::::::::::::::+++++++++++:::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:=V$$$$VVVVVVVVVVVVVYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~=#8%8888888888888###################$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVVVV$V$$$$V$VVVVV$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################################$$#$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**************xxxYYYVVVV$$$$$$$$$######$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx**********************================++++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~:+===**xxxxx**********************x*******Y#888888888888888888888$Y#888888888888888888888888#8#8#888888###################888888888888888888888888#8#88#88888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++++++++++++++++++++=+=+====================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*==++::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::~:~:~:::::::::::+++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:*$$$$$VVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~:Y8%88888888888888#####################$####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$########################################################################################$#$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx**************xxxYYYVVVV$$$$$$$$$$#####VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx**********************================++++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~++==**xxxxx*****************x************xV#88888888888888888888$V#88888888888888888888888888#88888888###8###############88888888888888888888888##888#888888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++=+=+===================================*=*********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx*==++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::~~~::::::::::::::+++++++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:x$$$$$VVVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxx***********===========++++++++++++:::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~=#8%%888888888888######################$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$###$######################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx*************xxxYYYVVVV$$$$$$$$$######V**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************==================+++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~++===**xxxx*******************x***********x$88888888888888888888$V88888888888888888888888888#888888888#8#################88888888888888888888888888#8##88888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::+::++++++++++++++++++++++++++++++++++++++++++++=+=======================================********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**=+++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::~:::::::::::::::~~:~::::::::::::+++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:Y$$$$$VVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********===========++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~:Y8%%888888888888###########################$#$#$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$####$#############$#######################################################################$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx**************xxxYYYYVVVV$$$$$$$$#$####V*==*xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************==================++++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~:+===***xxx*********************x***x******Y#8888888888888888888$$888888888888888888888888888#88888888#8#################8888888888888888888888888##8#88888888888888888888888888888888888#############################################8888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%% ~~~~~::::::::::::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++======================================************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**===+++++++++++++++++::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~::::::::::::::::~~~~~:::~::::::::::+::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:Y$$$$$VVVVVVVVVVVYVYYYYYYYYxxxxxxxxxxxxxx***********===========+++++++++++++:::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~+#8%8%88888888888######################$##$$##$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$$$#$##$############################################################################$#####$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx*************xxxxYYYVVV$$$$$$$$$$#$###V*====**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x*********************==================+++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~:+===****xx*************************xx*****xV8888888888888888888##888888888888888888888888888888888888##################8888888888888888888888#8888#8#88888888888888888888888888888888888############################################88888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::::::::::::::::::::::::::++:++++++++++++++++++++++++++++++++++++++++++++==++==================================**************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx**==========+++++++++++++++++::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~::::::::::::::::::~~~~~~~~:::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::+V$$$$$VVVVVVVVVVVYVYYYYYYYYxxxxxxxxxxxxxx***********============++++++++++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~x8%%8888888888888#################$#$###$#$##$$$$$$$$$$$$$$$$$$$$$VV$VVVVV$$$$$$$$$$$$$$$$$$$$$$$V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$###########################################################################$##$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx*************xxxxYYVVVVV$$$$$$$$$$####V*===*==**xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************==================+++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~::~~~~~~~~~~~~~~~~:+===**************************x************x#888888888888888888##8888888888888888888888888888888888888#################88888888888888888888888#88#88888888888888888888888888888888888888############################################88888888888888888888888888%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++=++==+======================================*************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***===============+++++++++++++++:+::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::~~~~~~~~:~:::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:~:+V$$$$$VVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxx***********============+++++++++++++::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~:$88%888888888888#8###################$####$##$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$$$$$$$$$$$$$V$V$VVVV$$V$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$##############################################################################$$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$####Y*=====*=*=**YVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************===================+++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~:+===******************************x**xx****xV#88888888888888888888888888888888888888888888888888888####################88888888888888888888888#88888#88888888888888888888888888888888888############################################8888888888888888888888888%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% :::::::::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++===+====================================**************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx***======================+++++++++++++++++:::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::~:~::::::::::::::::::::~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::=$$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxx**********============+++++++++++++::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~=#8%%888888888888########################$$$#$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$VVV$$VVVV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$##########################################################################$###$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx*************xxxxYYYVVVV$$$$$$$$$$$##$Y*=====********xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************===================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~:+===**************************x****xx*******x#88888888888888888888888888888888888888888888888888888####################888888888888888888888888#8888#88888888888888888888888888888888888###########################################88888888888888888888888888%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::::::::+++++++++++++++++++++++++++++++++++++++++++++++=+=+======================================***************************************xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***=============*=================++++++++++++++:+::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~:::::::::::::::::::::~:~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::*$$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxx***********============++++++++++++::::::::::::::::::::::~~~~~~~~~~~~~~~~~~:Y8%%8888888888888####################$####$$$$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVV$$$$$$$$$$$$VVVVVV$VVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$##########################################################################$##$$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx**********xxxxxYYYVVVV$$$$$$$$$$$##$Y*=*===**********xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*x*********************===================+++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~~~+====**********************x**x**x*xxxx*x****Y#8888888888888888888888888888888888888888888888888888###################888888888888888888888888888#88#88888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::::::::::::+:+++++++++++++++++++++++++++++++++++++++++++=++=+==+===================================****************************************x***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx***=============*************=**==========+++++++++++++:::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::~:::::::::::::::::~:~::~:~~~~~~~::~::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::x$$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxx***********=============++++++++++++:::::::::::::::::::::::~~~~~~~~~~~~~~~~~+$888888888888888####################$#$#$$##$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVV$V$$$$V$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##############################################################################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx***********xxxxxYYYVVVV$$$$$$$$$$$##$Y*====**************YVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYVYVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************==================+++++++++++++++++++++:++:::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~~:====*************************x*xx*x*x*x**x**x$8888888888888888888888888888888888888888888888888888###################88888888888888888888888#8#888#888888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::::::+:+:+++++++++++++++++++++++++++++++++++++++++++++++==========================================****************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**=============*=************************=======++++++++++++++:+::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~:~~:::::::::::::::::::::::::~:~~:~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~::::::::++Y$$$$VVVVVVVVVVVVYYYYYYYYYYYYxxxxxxxxxxxxxxx***********============+++++++++++++::::::::::::::::::::::~~:~~~~:~~~~~~~~~:*88%88888888888888######################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$V$V$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$################################################################################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx***********xxxxxYYYVVVV$$$$$$$$$$###$x**==*****************xYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************===================+++++++++++++++++++::++::::::::::::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~~:====********************x*xx***xx*xx**x****xxY8888888888888888888888888888888888888888888888888888###################8888888888888888888888#88#8888888888888888888888888888888888888888###########################################8888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ::+:+++++++++++++++++++++++++++++++++++++++++++++=++===========================================***************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***===============********xxxxxxxxx*****=********=======+++++++++++++++++++++++:+::::::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~::::::::~::::::::::::::::::~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::~::~~:::~~:::::::::::::+++++Y$$$$$VVVVVVVVVVVVVYYYYYYYYYYxxxxxxxxxxxxxx************============++++++++++++++:::::::::::::::::::::::::::::~~~~~~~~~~:Y8%8%88888888888#8###################$###$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$VV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#############################################################################$#$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx************xxxYYYYVVVV$$$$$$$$$$###$x*=******************=**xVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************===================+++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~~~~~~:====*********************xxxx*x***xxxx*x***x*x$888888888888888888888888888888888888888888888888888###################888888888888888888888#88#888#8888888888888888888888888888888888888########################################8##8888888888888888888888888%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++++++++++++++++++++===========================================*****************************************xx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**================*********xxxxxxxxx***===========******======+++++++++++++++++++++++++++++++:::::::::::::::::::::::~~:~~~~:~~~~~:~::::::::::::::::::::::::::::::~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++xV$$$$VVVVVVVVVVYVYYYYYYYYYYYxxxxxxxxxxxxxxx***********============+++++++++++++++:::::::::::::::::::::::::::::::::::::::+$8%%8888888888888###################$###$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############################################################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx************xxxxYYYVVVV$$$$$$$$$$$##Vx******************=**xYV$#$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*x**********************===================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:~~::~~~~~~~~~~~:=====*********************xx**xxx*****x*x*xx*xY888888888888888888888888888888888888888888888888888##################88888888888888888888888#8888888888888888888888888888888888888888888##########################################88888888888888888888888888%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++++++++++++==+==========================================*==*************************************x**x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx***===================*******xxxxxxxxx****==============*******======++++++++++++++++++++++++++++++++++:::::::::::::::::::::~~:~:~:~::::::::::::::::::::::::::::::::::~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~::::::::++++++++++*V$$$$VVVVVVVVVVVVYYYYYYYYYYYYxxxxxxxxxxxxxxx**********=============+++++++++++++++:::::::::::::::::::::::::::::::++++++++*#%%%8888888888888######################$$#$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################################################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxx***********xxxxYYYVVVVV$$$$$$$$$###$V*****************==**xV$#####$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************====================++++++++++++++++++:+++:::::::::::::::::::::::::::::::::::::::~::~:~~~~~~~~~~::+====*******************xxx*xx**xx*xxx*xxxxx*xx$88888888888888888888888888888888888888888888888888#8################88888888888888888888888#888888#8#8888888888888888888888888888888888########################################8#888888888888888888888888%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ++++++++++++++++++++++++++++++++=+============================================****************************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**=====================*******xxYYYxxxx****===================*******======+++++++++++++++++++++++++++++++++++++::::::::::::::::::::~:::~:::::::::::::::::::::::::::::::~:~~~~~~~~~~:::::::::::::::::~:::::::::::::::::::::::::::::::::~~~~~~~~~~::::::+:+++++++++*V$$$VVVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxx************===========++++++++++++++++::::::::::::::::::::::::::+++======+===Y8%%%88888888888##################$##$##$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx************xxxYYYYVVVV$$$$$$$$$$###V***************==**xV$##########$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*x*********************===================++++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:~::~::~~~~~::+====*********************xx*xxx**xx***xxx*xxxxY8888888888888888888888888888888888888888888888888#88################8888888888888888888888##88888#888888888888888888888888888888888888##########################################888888888888888888888888%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++++++++++++==============================================***************************************x**xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxx***========================******xxYYYYxxx****======================xxx*****======+=+++++=======================++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~::::::::::::::::::~~:~:::::::::::::::::::::::::::::~~:::::~~~~~~:::::+:+++++++++=V$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxx************=============++++++++++++++++:::::::::::::::::::::++++++++++++++++=V8%%%888888888888######################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#################################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx**********xxxxYYYVVVVV$$$$$$$$$$##$Y*=************=**xY$##############$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************===================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::~~:~~~~~::+=====*******************xxxxx**xxxxxxxxxxxx**xx$888888888888888888888888888888888888888888888888##8################8888888888888888888888888888888888888888888888888888888888888888888#########################################888888888888888888888888%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++++++++++++=+===============================================******************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx**============================******xYYYYYxxx***========================xxxxx*****===================*****xxxxxxxx*****===++++++:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~::::::::::::::::::~~:~:~:~:::::::::::::::::::::::~::::::::::~~::::+:::++++++++++=Y$$$$VVVVVVVVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxx***********=============+=+++++++++++++++++::::::::::::::::++++++++::::::::+++=$8%%888888888888#################$####$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$################################################8################################$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx*********xxxYYYYVVVVV$$$$$$$$$$$#$Y************=**xYV$##############$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~::+======******************x**xx*xx*xxxxxxxx*xxxxxY#88888888888888888888888888888888888888888888888###################8888888888888888888888888#88888888888888888888888888888888888888888#######################################8#8888888888888888888888888%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++++++=++=+=================================================*****************************************xxx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxx*****=========================********xYYYYYYxxx***=========================xxxxxxx*****============***xxxxxxxxxx*****===*****==++++++:::::::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~:~:::::::::::::::::~:~:~:~::::::::::~~~~~~~~:::::::::::::++:::::++++::++++++++++=Y$$$$VVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxx*x***********===============+++++++++++++++++::::::::::::++++++++++::~~~::::::++*#8%%8888888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########################################################################$#$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxx*******xxxxYYYYYVVVV$$$$$$$$$#$$$x***********=**xV$##############$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***********************====================++++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:::~~~:~~:::+=====*****************x**xxxx*x*xxxxxx*xx**xxxxxV88888888888888888888888888888888888888888888888##################8888888888888888888888888888888#88888888888888888888888888888888888########################################8888888888888888888888888%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% +++=+=================================================*=************************************x***x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx************=================***=*********xYYYYYYxxxx***=========================xYYxxxxxx******=====***xxxxxxxxxxx***================++++++++++:::::::::::::::::::::::::::::::::::::::~:~~~~~~~~~~~::::::::::::::::::~~:~~:~~:::::::~~--~~~~~~~~~~:::::::::+++++++++++++++++++++++++xV$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxx***************==============+++++++++++++++++++++++++++++++++++:::~~~::::::+++=x#8%%888888888888#################$####$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxYYYYYVVVVV$$$$$$$$$$$$Vx*********=**xV$############$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================+++++++++++++++++++:++::::::::::::::::::::::::::::::::::::::::~:::~~:~~::++======******************xxxxxxx*xxxxxx*xx**xxxxxx#888888888888888888888888888888888888888888888###################88888888888888888888888888#8888#88888888888888888888888888888888888########################################8888888888888888888888888%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ==============================================*=***************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$VY**************================*************YYYYYYYxxx***==========================YYYYxxxxxxx**********xxxxxxxxx****=====================++++++++++++:::::::::::::::::::::::::::::::~:::~~~~~~~~~~~~:::::::::::::::::~:~:~~~~~~:::::~~-~~::::~~--~~~::::::::++++++++++++++++++++++++++*V$$$$VVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*****************======+++++++++++++++++++++++++++++++++++++++:::::::::::+++++=x#8%%%88888888888####################$#$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYVVVVV$$$$$$$$$#$VVx********=*xY$$###########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************====================++++++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::~::::~~:~::++======***********************x*xxxxxxxxxx**xxxxxxV88888888888888888888888888888888888888888888888################8888888888888888888888888#8888888#8888888888888888888888888888888888######################################88#88888888888888888888888%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% =======================================*==****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVV$$$$$$$$VYx*************====******===*************xYYYYYxxxx****=========================*YYYYYYxxxxxxxx****xxxxxxxxx****============================++++++++++++::::::::::::::::::::::::~:~:~::~~~~~~~~~~~~::::::::::::::::::::~~~~~~~::::~--~::+++::~~~~~::::::::::::+++++++++++++++++++++++=V$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx**********====++++++++++++++++::::::+++++++++++++++++++++::::::::::++++====Y8%%%88888888888####################$#$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVYVYYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$######################################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYVVVVVV$$$$$$$$##$VY********=*xV$#########$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx***********************=====================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~::~::::+++======*****************x**xx*xxxxx*xxxxxxx*xxxxxxx#88888888888888888888888888888888888888888888##################888888888888888888888888#8888888888888888888888888888888888888888888########################################888888888888888888888888%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% =================================**=***************************************xx*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVV$$$$$$$$$$$$$$$Yx************************************xYYYYYYxxxx****=========================*YYYYYYYxxxxxxxxxxxxxxxxxx****=================================+++++++++++++======+++:::::::::::::~~~~~~~~~~~~~~~~~:::::::::::::::::::~~~~~~~~~::~~-~::++++++:::::::::::::::::+::++++++++++++++++++++=*YYYYYYYxxxYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*****===++++++++++++++:::::::::::::::::++++++++++++++++++++::::::++++=======*Y8%%%888888888888###################$##$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVVVVVYVYVYVYVVVVVYVYVYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$####$###############################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYxYxxxxxxYYYYYYYYYVVVVV$$$$$$$$$##$Yx*******=*xV#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************====================+++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::~:::~:::++++=====********************xx*xxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888888888888888888################888888888888888888888#8888#88888#88#88888888888888888888888888888888######################################8888888888888888888888888%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ==========================********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$#$$$VYx********************************xYYYYYYxxxxx****=========================*YYYYYYYYYYxxxxxxxxxxxxxx****==========================***===============******=======+++:::::::::~~~~~~~~~~~~~~~~::::::::::::::::::~:~~:~~~~~~~~~~~~:++++++++++:::::::::::::::+:+++++++++++++++++++++=**=======*********xxxxxxxxxxxxxx*********==*==+++::::~~~~~:::::++++++::::::::++++++++++++++++++++++=+==++++++++++++========****Y8%%8%88888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYVVVYVVYVYYVYYVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####################################################################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$##$x******=**xY$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**********************======================++++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::+++++===**********************xx*xxxxxxxxxxxxxxxxxxxxxx#8888888888888888888888888888888888888888888###8#############8888888888888888888888888#8888888888888888888888888888888888888888888#####################################88888888888888888888888888%%%%%%%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ===================*=*******************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$$$$$$#$$$Yxx*****xxx*******************xxxYYYYYxxxxx*****=========================xYYYYYYYYYYYxxxxxxxxxxxx***============================*******======********=============+++::::::~~~~~~~~~~~~~~~~:::::::::::::::::::::~:~~~~~~~:~~::+++++++:::::::::::::::::::++++++++++++++++++++++==***==++=*****************====++++++++++++++::~~~~~:::::+++++++++++++++++++++++++++++=+====================+++++=====************Y8%%8888888888888#################$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYVVYYYYYYVYVVYYVYVYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#$#####################################################################$$$$$$$$$$$#$$#########$#$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVV$$$$$$$$$###Vx*****=*xYV$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx**********************======================+++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::::~:::+++++===**********************x*xxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888888888888888#8###############888888888888888888888#8#888#88888888888888888888888888888888888888888####################################8##888888888888888888888888%%%%%%%%%@%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ===========*==********************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVV$$$$$$$$$$$$$$#####$VYxxxxxxxxxx**************xxxxYYYYYYxxxxx*****=========================xYYYYYYYYYYYYYYxxxxxxxx****===========================*********************==================+:::::~~~~~~~~~~~~~~~:::::::::::::::::~:~:~~~~~~~~~~~~:+++++:~-...---~~~~::::::::++++++++++++++++++++++=++=xxxxx******************====++++++++++++++++++++==========**=*======++++++++==============*********==============****************Y8%%8888888888888###################$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYVYYVYVYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$####$################################################################################################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYVVYVVVVVVV$$$$$$$$$$$##$Y*******xV$########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=*=====================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::~:::+++++===***********************xxxxxxxxxxxxxxxxxxxxxxxxx#888888888888888888888888888888888888888888#8##############8888888888888888888888888888888888888888888888888888888888888888888888####################################888888888888888888888888888%%%%%%%@@%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ======***********************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYVYVVVVVVV$$$$$$$$$$$$$$$##$###$VYxxxxxxxxxxxx**xxxxxxxxxxxxYYYYYYxxxx******=========================YVYVYYYYYYYYYYYYxxxxxx****============================*xxxxxx*************====================+:::::::~~:~:~~~~~:~:::::::::::::::::::~~~~~~~~~~~~~~:++++:~---...---~~~:::::+++++++++++++++++++++++===+++***=*******xxxxxx******======++++++++=================*********=====+++========***********************=====**********************Y8%88888888888888##################$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYVYYVYYYYYYYYYYYYYYYYYVYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$$$#$###$##$###############################################################################################$####$#$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$#$###$x*=*=**xV$########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx*********************=*=====================+++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::~::+++++==*************************xx*xxxxxxxxxxxxxxxxxxxxxY888888888888888888888888888888888888888888################8888888888888888888888888888#8888888888888888888888888888888888888888#####################################888888888888888888888888888%%%%@@@@%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$##$####$$YxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYxxxx******=========================YVVVYYYYYYYYYYYYxxxxxx***=============================xxxxxxxxxx********======================+::::::::::::::~::::::::::::::::::::~:~:~~~~~~~~~~~~~:++++:::~~~~~~~~~:::::::::::::::::+++++++++++++======YVx+=====*YVY**********======+::::++=========================================**************xx********=====*******x*x**************Y#8%88888888888888####################$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#####################################################8#####888#8#####8#8#################################################$$$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYVVVVVVVVVV$$$$$$$$$$#$###$Vx**=**YV$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxx***********************======================+++++++++++++++++++::+:::::::::::::::::::::::::::::::::::::::++++++==*************************xxxxxxxxxxxxxxxxxxxxxxxxx$88888888888888888888888888888888888888888##88#8##########8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *****************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx*xx*xxxxxxYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$#$###$#$$#$VYYxYYYYYYxxxxxxxxxxxxxYYYYxxxxx*******=========================YVVVYVYYYYYYYYYxxxxxx****============================*xxxxxxxxxxx******========================+::::::::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~~:+++:::::~~~~~::::::::::::::::::++++++++++++++=======*x+++=====**================++++====================***********====++++=========**********x*x*********=====************************Y#8%%888888888888###############$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#######################################################888#888888888888888888888##############################################$##$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYVVVVVVVVVV$$$$$$$$$$$$####$Y*==*xV$#######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=======================+++++++++++++++++++:+:::::::::::::::::::::::::::::::::::::::++++++===***********************x*xxxxxxxx*xxxxxxxxxxxxxxxY88888888888888888888888888888888888888888#8#8##8########888888888888888888888888888888888#8888888888888888888888888888888888888###################################8#88888888888888888888888888%%%%@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% **********************************x**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx**********x**xxxxxxYYYYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$######$####$$$VYYYYYYYYYYYYxxxxxxxYYYYYYxxxx********========================YVVVVVVVYYYYYYYxxxxxx****============================*xYYYxxxxxx*******========================++++:::::::::::::::::::::::::::::::~:~~:~~~~~~~~~~~~+++::::~~~~~~~::::::~~:::::::::++++++++++++++++++++++++++++++++++++++++===============********xxxxxxxxxxxYYYYYYYYYYYxxxxx**==+++========*******xxxx******************************=======*x#8888888888888888#################$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$###########################################88#8#8888#888888888888888888888#8#8###############################################$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVVVVVVVVVV$$$$$$$$$$$$$####$V*===*x$######$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx********************=======================+++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::++++++===************************x*xxxxxxxxxxxxxxxxxxxxxxxx$8888888888888888888888888888888888888888###88###########888888888888888888888888#88888888888888888888888888888888888888888888###################################8#88888888888888888888888888%%%%@@@@@@@@%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *****************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxx******************x**xxxxxxxYYYYYYYYYYYYVVVVV$$$$$$$$$$$$$$$#$####$$#$##$$VYYYYYYYYYYYYYYYxYYYYYxxxxx*********=======================YVVVVVVVYYYYYYYxxxxxx***=============================xYYYYxxxxxx*****===========================++++:::::::::::::::::::::::::::::::::~:~~~~~~~~~~~~++::~~-------~::::~~~:::::::::+++++++++++++:::::::+::::::::::::+++++++++++++====**xxxxxxxxxxxxxxxxxxxxxxYYYYYYYxxxxxxxxxxxxxx*===++=======****xxxxx***************========================*$8%88888888888888#################$#$$#$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$#$#$####$#####################################8##8#88#88888888888888888888888#8#888#8#88#8#####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$#$##$Y*===*Y$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx***********************=====================++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::+++++====**************************xxxxxxxx*xxxxxxxxxxxxxxxY88888888888888888888888888888888888888#8##88##8#########8888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% *********************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx*************************xxxxxxxxxxYYYYYYYYYVVVV$$$$$$$$$$$$$$##$####$#$$$$#$$$VVYYYYYYYYYYYYYYYYYxxxxxxx********=======================YVVVVVVVYYYYYYYxxxxxx**==============================xYYYYxxxxxx*****==========================*=+++++:::::::::::::::::::::::::::::~:~:~~~~~~~~~~~~:+::~--....-~:::~~~~~~::::::::+++++++++++:::::::::::~~~~~~:::::++++++++==**xxxYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=+++======***xxxx************=====++++++++++++============*V8888888888888888#################$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$##$#$########################################8##8##8888#8888888888888888888#88888######8################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$###$Y*====*Y$$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************=======================+++++++++++++++++++::::::::::::::::::::::::::::::::::::++++++====****************************xxxxxx*xxxxxxxxxxxxxxxx$8888888888888888888888888888888888888#8#8####88#######8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx*************************xxxxxxxxxxxxxYYYYYYVVVV$$$$$$$$$$$$$$$#$#$##$$$$$#$$$$$$VYVYVYYYYYYYYYYYxxxxxx*********=======================xVVVVVVVYYYYYYYxxxxx***==============================xYYYxxxxxx*****===========================*==++++++:::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~::::~~~~~~~~~~~~~~~~::::::::::+++++++++::::::~----~~~~:::+++++===**xxYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***=+++=++=***************====++++:::::::::::++++++==========Y88888888888888888##############$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$##$###$######################################8#8##8888#888888888888#88888#88#88#888##################################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$###Vx=====*Y$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx*********************=======================+++++++++++++++++++++::::::::::::::::::::::::::::::::::+++++=====****************************x*xxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888888888888##8############8888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%@@@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% **********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx**************************xxxxxxxxxxxxxYYYYYVVVVV$$$$$$$$$$$$$$$#$#$$$$$$#$$$$$$$$VVYVYYYYYYYYYxxxxxxxx*******========================*VVVVVVYYYYYYYYxxxxx***==============================*YYxxxxxxx****============================*====+++++++:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::++++++++:::::~. .-~:::+====**xYYVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*************x*x*===+++==*******xxx**====+:::~~~~~::::::::::++++++=====++++x#8888888888888888################$##$$#$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$####$#########################################8#888#8888#88#888#888#8888#88#88#8#######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$###$Y*=====*Y$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************=========================++++++++++++++++++++:::::::::::::::::::::::::::::::::++++======******************************xxxxxxxxxxxxxxxxxxxxxV88888888888888888888888888888888888888#888###8#######8888888888888888888888888888888888888888888888888888888888888888888888####################################8888888888888888888888888888%%%@@@@@@@@@%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% ***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$VVYVYYYYYYYYYYxxxxxxxxxx***************************xxxxxxxxxxxYYYYYYVVVVVV$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$VVVVYYYYYYYxxxxxxxxx*****=========================*VVVVVYVYYYYYYYxxxx***===============================*xYYxxxxxx****============================**====++++++::::::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::+++++++:::::~~~~::++++=*xxYV$$$VVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*****************x*====+==**xxxxxx**===++::~~~~~~~~~~~:~:::::::++++++++++++++*$888888888888888888###############$$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$#$#############################################8##88#88#8888888#888#88888#8#8#8########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$Y*=======Y$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx**********************========================+++++++++++++++++++:::::::::::::::::::::::::::::::::++++======******************************x*xxxxxxxxxxxxxxxxxxx$88888888888888888888888888888888888888888####8#######88888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@@%%%@%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYV$$#8888#VVVVYYYYYYYYYYYxxxxxxxx*****************************xxxxxxxxxxxYYYYYVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVYYYYYYYxxxxxxxx*****=============================YVVVVVYYYYYYYYYxxx***===============================*xYYYxxxxx****===========================***======++++++::::::::::::::::::::~:~:~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~:::::::::::++++++::~-::+:++++=====*V$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx********************======*xxxx**=====++::~~~~~~--~~~~~~~~~:::::++++++++++++++=V88%88888888888888################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#$###$#############################################8##88#8##88#8#88#8#8#8###88#8####################################$$#$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##Vx========x$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************========================+=+++++++++++++++++++:+:::::::::::::::::::::::::::::+++=======*********************************xxxxxxxxxxxxxxxxxY#888888888888888888888888888888888888888#####88######888888888888888888888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888888%%%%@@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVV$##888%%%8888#VVVYVYYYYYYYYYYYxxxxxxxx**************************xxxxxxxxxxxxxYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$VVVVVVYYYYYYxxxx******=================================xVVVVVVYYYYYYYxxxx***===============================*YYYYxxxx****============================****======+++++::::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~::::::::::::++++++:::::+++++========x$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*xxx********************======*****=====++++:~~~-------~~~::::::::::+++++++++++++++=Y#88888888888888888###############$$$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$$$$###############################################8####888#88#8##8#8##8#8###8#8#####################################$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VY*========x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************=========================++++++++++++++++++++:::::::::::::::::::::::::::::+++========********************************xx*xxxxxxxxxxxxxxY#888888888888888888888888888888888888888#8#8#8#######88888888888888888888888888888888888888888888888888888888888888888888888####################################888888888888888888888888888%%%%@@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVV$##8888888888888888#VVVVYVYYYYYYYYYxxxxxxxx*****************************xxxxxxxxxxxxxYYYYYYYYYVVVVVVVVVVVVVVV$$$$$$$$$VVVVVYYYYYYYxxxx*****====================================YVVVVVVYYYYYYYxxx****===============================xYYYYxxxx****=============================****======++++++::::::::::::::::::::~::~~~~~~~~~~~~~~~~~~~~~-------~~~~~~::::::::::::++++++++++++++===========*Y$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*x******************=======****====+++++:::~~~~--~~~~:::::::::::++++++++++++++++++x$888888888888888888###############$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$##$$################################################8#8##88#8#8###8#8#8#####8############################$##$$##$$##$$$$$$$$$$$$$$$###########$#$$$$$$$$$$$$$$$$$$$V$VVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*=========*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************===========================++++++++++++++++++++:::::::::::::::::::::::::::+++========************************************xxxxxxxxxxxxxV88888888888888888888888888888888888888######88######8888888888888888888888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888888%%%%@@@@@@@@@%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYV$$###888888888888888888888#VVVVVYYYYYYYYYYxxxxxxxx****************************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVVVVVVV$$$$VVVVVVVYYYYYYxxxx******====================================xVVVVVVVYYYYYYYxxx****==============================*xYYYYxxxx****=============================*****======+++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~:::::::::::::++++++++++++=============**Y$$$$$$VVVVVVVVVVVYVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*************===================+++++:::::::~~~~~::::::::::::++++++++++++++++++++*V888888888888888888##############$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$####################################################8##8#########8#8##################################$#$$$#$$$#$$$$#$$$$$$$$$###################$$$$$$$$$$$$$$$$V$VV$$VV$V$$$$$#$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$Y*===========*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********************==========================++++++++++++++++++++::::::::::::::::::::::::::++++========************************************xxxxxxxxxxxxx$88888888888888888888888888888888888#888####8#8######888888888888888888888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888888%%%%@@@@@@@@@%%@%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVV$###8888888888888888888888888888#VVVVYYYYYYYYYYYxxxxxxx*******************************xxxxxxxxxxxxxxxxxYYYYYYYYYYYYVVVVVVVVVVVVVVVVYYYYYYxxxxx******====================================*YVVVVVVVYYYYYYYxxx****==============================*xYYYYYxxx***==============================******=====++++++::::::::::::::::::::~:~~~~~~~~~~~~~~~~~~------~~~~~~~~~:::::::::::+++++++++++++++=============**V$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*x*********==+++++=============++++++::::::::::::::+::+:+++++++++++++++++++++++++++=Y#8888888888888888888############$###$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##$$######$######################################################8#######################################$#$$#$$$$$$#$$#$$$#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$$$$$$$##$$#$#$$#$$$$$$$$$$Y*=============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx********************========================+=++++++++++++++++++++:+::::::::::::::::::::::++++========************************************xxxxxxxxxxxxY#8888888888888888888888888888888888#8######88########8888888888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%@@@@@@@@@%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYV$$##88888888888888888888888888888888888$VVVVVYYYYYYYYYYxxxxxxx*********************************xxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVVVVVVVYYYYYYYxxxxx******======================================YVVVVVVVYYYYYYYYxxx****==============================*xYYYYYxxx***==============================******======++++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~::::::::::::++++++++++++++++==============x$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*******=++::::++===========++++++:::::::++++++++++++++++++++++++==++++++++++++++++*$8888888888888888888##############$##$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$##$$###################################################################################################$#$$$$$$$$$$$###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###$$$$$#$####$####$#$$$#$$$#$$Y*==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*********************===========================++++++++++++++++++++:++:::::::::::::::::::++++=========***********************************xxxxxxxxxxxxV8888888888888888888888888888888888888##8##8#88#######88888#888888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%@%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxYYYYYYYYYYYYYYYYYYYYYV$$##88888888888888888888888888888888888888888$VVVVYYYYYYYYYYYxxxxxx**********************************xxxxxxxxxxxxxxxxxxxYYYYYVVVYYVVVYVYYYYYYYYxxxxxx******=======================================xVVVVVVVYYYYYYYxxxx*****==============================*xYYYYYxxx***==============================xx*****======+++++:::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::++:+++++++++++++++=============*V$$$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*xx*****=++:~~~:+==========++++++::::::+++++++++++++++++++++++++===++++++++++++++++++=V8888888888888888888##############$$##$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$#######$###########################################################################################$$$#$$$#$$##########################$#$$$$$$$$$$$$$$$$$$#######################################$$###$VY*================x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$#########$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**x*******************==========================+++++++++++++++++++++++:::::::::::::::::::++++=========**********************************xxxxxxxxxxxxx$888888888888888888888888888888888888######8#88######8#8888#888#88888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYVV$##88888888888888888888888888888888888888888888888$VVVVVYYYYYYYYxxxxxxxx***********=*=******************xxxxxxxxxxxxxxxxxxxxxYYYYVVYYYYYYYYYYYYYxxxxxxxx******=======================================xVVVVVVVYYYYYYYYxxxx*****=============================**YVYYYYxxx***==============================xYxx*****======++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::+:+++++++++++++++++=============x$$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*xx**=+++:~::+=========++++++::::::++++++++++++++++++++++++====+++++::::++++++++++++x#8888888888888888888############$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$#$#######$###########################################################################################################################$$$$$$$$$$$$$$#################$#$#####$#######$###############$Vx=+++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx*********************==========================++++++++++++++++++++++:::::::::::::::::::++++=========**********************************xxxxxxxxxxxxx#88888888888888888888888888888888888####8#8888#######8##8#8#8#8888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@@%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxYYYYYxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYVV$##88888888888888888888888888888888888888888888888888888$VVVVYYYYYYYYYYxxxxxx**********======****************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYxxxxxxxxx*******=======================================xYVVYVYYYYYYYYYYxxxxx*******===========================**YVVYYYxxxx**==============================xYYxx*******======+::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::++++++++++++++++++=============xV$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*===+++===*======++++++::::++:++++++++++++++++++++++=====+++++:::::++++++++++++=*V88888888888888888888##############$#$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$#################################################################################################################################$$$$$$$$$$$######################################################$V*++++++==============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxx********************============================++++++++++++++++++++:::::::::::::::::++++++========**********************************xxxxxxxxxxxxY#888888888888888888888888888888888###########8#######8#88#8#8#8888888888888888888888888888888888888888888888888888888888888888###################################888888888888888888888888888%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxYxYxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#88888888888888888888888888888888888888888888888888888888888#VVVVYYYYYYYYYxxxxxxx*********=======***************xxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYxxxxxxxxxxx*******========================================xYVYYYYYYYYYYYYYxxxxxx*******===========================**VVYYYYYxxx**==============================xYxxx*****=========++::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::+++++++++++++++++==============x$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx**==============+++++::::+++++++++++++++======++=+======++++:::::+++++++++++++++==Y#888888888888888888#8##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#######$###############################################################################888#88####8#####8#8###88###################$$$$$$$$$$#########################################################VY=++++++===============*Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############8####$VVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx**********************============================++++++++++++++++++++:::::::::::::::++++++========**********************************xxxxxxxxxxxxV8888888888888888888888888888888888#######88#8#######8#88#88###8#88888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xxxxxxxxxYxxxxxYxxYYxxxxxxxYxYYYxxxxxxxYxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYV$$#88888888888888888888888888888888888888888888888888888888888888888#VVVVYYYYYYYYYxxxxxxx********=======**************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%%%%%%%%% xxxxYYxYYYYYYYYYYYYYYYYxxYYYYYYYYxxYYYYYxxxxxYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$##8888888888888888888888888888888888888888888888888888888888888888888888#$VVYYYYYYYYYxxxxxxx********========***************x*xxxxxxxxxxx******xxxYYYxxxxxxxxxxxxx*********========================================*YYYYYYYYYYYYYYYYxxxxxx********============================*YVVYYYYYxxx***=============================*xxx*****============+::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++:++++++++++++++==============Y$$$$$$VVVVVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*==+++==*=====++::::::::++++++++++====*********====+++++++++++==========++++++++++++=x$8888888888888888888################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###############################################################8###################8#888888888888888888888888888##8#########$$$$$$#################################################################Vx=::::+++++++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################888888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*********************===========================+++++++++++++++++++++::::::::::::++++++=========*********************************xxxxxxxxxxxY#88888888888888888888888888888888######8################8#8#8#8#888888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$###888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYYYYYYYxxxxxxx********=======***************x*xxxxxxxxxx*******xxxxYYxxxxxxxxxx***********========================================*YYYYYYYYYYYYYYYxxxxxx*******==============================*YVVVVYYYYxxx****============================*xx******============+::::::::::::~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+:+++++++++++++===============Y$$$$$$$VVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*=+::::=======++::~~:::::+++++++=====***********====++++++=====*******==++++:::++++++++=Y#888888888888888888888################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$###$##$#######################################################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*******=======******************xxxx*x***********xxxxYYxxxx*x*************========================================*xYYYYYYYYYYYYYxYxxxxxx******===============================*YVVVVVYYYxxxx*****===========================*xx*****=============+::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+:+++++++++++++===============Y$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx==+:~:+=====+++:~~~::::::+++++==***************====++======********=====+++:::::+++++++++*V88888888888888888888#8#################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$##$##########$######################################################8############8#8##8888888888888888888888888##8888#88#8###########################################################################$Y*+~~~~~::+++++++++=============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################8##88888888#$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********************=============================++++++++++++++++++++:::::::::+++++++=========*********************************xxxxxxxxxxx$888888888888888888888888888888888#####8##8#8############8######8#88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@@%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$####8#############8##8888888888888888888888888888888888888888888888888888888888888888888888#VYYYYYYYYYxxxxxxx*******======*==******************x****************xYYx**x*************=========================================xYYYYYYYYYYYYxxxxxxxxxx****==================================xVVVVYYYYYxxx*******==========================*xx*****=============+:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++++++++++++++==============*V$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx==++++=====++::~~~::::::+++++=***************===++++===********========++:::::::++++++++++=x$8888888888888888888888##################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$$#######$#$########################################################8###############88888888888888888888888888888#8#88888###########################################################################$V*+~~~~~~~:::++++++++==============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################8#88#888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx********************============================++++++++++++++++++++::+::::+++++++=========*********************************xxxxxxxxxxY#88888888888888888888888888888888####8#####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###################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$$#$#$##$##################################################8##8##8##8######8##8#888888888#88888888888#88#8#8#8##8##8##8##########################################################################$Vx+:~~~~~~~~~::+++++++++=============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$####################8##888#888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********************============================++++++++++++++++++++:++::::+++++++=========*********************************xxxxxxxxxxV8888888888888888888888888888888########8##8#######################88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$##########################8#####8#####8#######88##################8##8####8#88888888888888888888#88##8##$VYYYYYYYxxxxxxx********========***********************************xYx*************========================================*YYYYYYYYYYYxxxxxxxxxxx****===================================*YVVVVYYYYYxxxx********==========================*xx*****=============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::++++++++++++++=+===========*V$$$$$$VVVVVVVYYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*========+++:::~~~::::::+++++=xx*************========********=========+++::::::++++++++++++++++*Y#888888888888888888888#####################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$#$$#$$#################################################################8######8#8###8#88##888#88#8888#888#8###8#88################################################################################$Vx+:~~~~~~~~~~~::+++++++++=============*V$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################8##8#88#8#88888#$VVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx**********************===========================++++++++++++++++++++:+::+++++++++========*********************************xxxxxxxxxx$88888888888888888888888888888888###################8##8########8#88888#8888#888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$###########################################################################################888#8##8#8#8#8######VYYYYYYxxxxxxx********=======**************************************x************=======================================*xYYYYYYYYYYxxxxxxxxxxx****===================================*YVVVVVYYYYxxxxx********===========================*x*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++++++++++++++++++==========x$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*======+++::::~~:::::::++++++=xx*************=======*x*******=========++++++++++:::::+++++++++===*V#88888888888888888888#######################$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####$##$#####################################################8#####8########8#8##8#8#8##8###8###########################################################################################$Y*=:~~~~~~~~~~~~~::+++++++++==============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################8###8#88888%%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x*******************============================+=++++++++++++++++++++:+++++++++==*==****************x*******************xxxxxxxxxY#888888888888888888888888888888#8#####8#####8####################888888888888888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#####################################################################################################################VYYYYYYxxxxxxx*******========*************************************************======================================*xYYYYYYYYYYYxxxxxxxxxx****===================================*xYVVVVVYYYYxxxxx********============================*xx****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::++++++++++++++++++=========Y$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxx*=====+++::::~:::::::::++++++=*x***********===+::+===**************==++++++++++:::::::+++++++======*V#8888888888888888888888#######################$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#$$##############################################################8########################################################################################################################$$Y*=:::~~~~~~~~~~~~~::+++++++++==============x$$$$$$$$$$$$$$$$V$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################8#####8888%%%%%%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx*******************===============================++++++++++++++++++:+++++++++====*********************x***************xxxxxxxxxY#88888888888888888888888888888#######8######8#####################8888#88888#888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$############################################################################################################################$YYYYYxxxxxxx*********=======**********************************************=======================================xYVYYYYYYYxxxxxxxxxxxx*****===================================*xVVVVVYYYYYxxxxx*******=============================*xxx*****=============+::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::+++++++++++++++++========V$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*====++++:::~~::::::::++++++++==**********==+=++:++=+===***********===+++++++++:::~~~:::++++++========*V#88888888888888888888#8#8######################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$$$$######################################################################################################################################################################################$VY*=++::::~~~~~~~~~~~~::++++++++++=============*V$$$$$$$$$$$$$$V$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$########################8888%%%%%%%%%%%%%8#VVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx********************=============================++++++++++++++++++++++++++++===****************x*x*xxx***************xxxxxxxxx$888888888888888888888888888888####################################88888888888888888888888888888888888888888888888888888888888888##################################888888888888888888888888888%%%%%@@@@@@@@@%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#############################################################################################8####8################################VYYYxxxxxxx*********==========***=**************************************======================================xYVYYYYYYYYYxxxxxxxxxx*****====================================*YVVVVVYYYYxxxxx*******==============================*xxxx****=============++::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::++++++++++++++++++=======*V$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxx*===+++++::::::::::::::++++++++============++++=======++++==********==++++++=+++::~~~~~::++++++==========*Y#888888888888888888888#88##8#####################$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$####################################################################################################################8################################################################$Vx*====++:::::~~~~~~~~~~~::+++++++++===============Y$$$$$$$$$$$$$$$$$$$$$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################8888888%%%%%%%%%%%%%%%%%8#VVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************============================+=+++++++++++++++++++++++++===**************x**xx*xxx**x************xxxxxxxxY#888888888888888888888888888888####################################8888888##88888888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%@@@@@@@@@%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$#####################################################################################8888888888888888888888888888#888#8##################$YYYxxxxxxxx********=================*******************=*************=====================================*YYYYYYYYYYxxxxxxxxxxx*****====================================*xVVVVVYYYYxxxxx********==============================*xxxx*****=============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----~~~~-~~~~~~~~~~~~~~~~~~~~~~:::+:+++++++++++++++=======*$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxxxx*===++++++::::::::::::::+++++++++======+++++++++++=======++++++==****===++++++==++:~~~~~~::+++++=============*Y$88888888888888888888888########################$#$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$##$################################################################################################################8##################################################################$Vx*=++:++++++:::~~~~~~~~~~~~::++++++++++==============x$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################88888%%%%%%%%%%%%%%%%%8%%88888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx********************==============================+++++++++++++++++++++++++==**************xxxxxxxxxx*x**x**********xxxxxxxxV#88888888888888888888888888888###########8########################888888#88888888888888888888888888888888888888888888888888888888###################################8888888888888888888888888%%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$#####################################################################################888888888888888888888888888888888888888888#8#8##8###8#####$VYxxxxxxxx*********====================**==**********==************====================================*YYYYYYYYYYxxxxxxxxxxxx*****====================================*YVVVVYYYYYxxxxx*******===============================*xYxxx****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~----~-~-~-~~~-~--~~~~~~~~~~~~~~~~~~~~~::::+:++++++++++++++=+====x$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxx*==++++++++::::::::::::++++=+==++++++=+++++++++++++=******================++++====+::~~~~~~::+++++================xV#8888888888888888888888#############################$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$############################################################################################8#######8#8#8#######8##8##8###########################################################$Vx**==+++++++++++++:::~~~~~~~~:::++++++++++==============*V$$$$$$$$$$$$$$$V$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################88888%%%%%%%%%88888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*********************=============================+++++++++++++++++++++++==*************x*xxxxxxxxxxxxx***x*****x*xxxxxxxx$888888888888888888888888888888####################################888888#88888#88888888888888888888888888888888888888888888888888###################################8888888888888888888888888%%%%%%@@@@@@@@%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$######################################################################################88888888888888888888888888888888888888888888888888888888888888#8#$Yxxxxxxx********=====================================**********====================================*xYYYYYYYYYYxxxxxxxxxxxx****=====================================*YVVVVYYYYxxxxxx******================================*xxxxx*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~----------------~~-~----~~~~~~~~~~~~~~~~~~:::+++++++++++++++++=====Y$$$$$$$VVVVVVYYYYYYYYYYYYYYYYxxx**====+++++++++:::::::::++++==========+++++++++++++++++=***xxxx******===========++++===++::~~~~~~::++++++======+===++++++=*V#88888888888888888888888##8############################$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#######################################################################################8####8#8################8##8###############################################################$Vx*=+++======++++++++++++++::::~~::+++++++++++===============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############888%%%%%%%%%%%%%%88888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx********************==============================++++++++++++++++++++++===**********xxxxxxxxxxxxxxxxxx*********xxxxxxxxY#88888888888888888888888888888#############8#######################88888#888#88888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@@@@@@@%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYVV$$$#######################################################################################8888888888888888888888888888888888888888888888888888888888888888888888$YYxxxxxxx*******====================================******=======================================xYYYYYYYYYYYxxxxxxxxxx******====================================*xVVVVVYYYYxxxxxx******===============================**xxxxxx*****==============+:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~-~~~-~---~~~~~~~~~~~~~~~~~::::++++++++++++++++===*V$$$$$$VVVVVVVYYYYYYYYYYxx***==+++++++++++++::::::::++++=============+++++++++++::+++==*******************=====+++++=++++:::~~~~:::++++++====++++=+++:::++==*Y$88888888888888888888888##8#############################$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$##########$#####################################################################8##8#8###8#8############8#####8##88##############################################################$Yx=+:::::::::+++++=++++++++++++++::::+++++++++++++==============*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$#############88%%%%%%%%%%%%%%%8888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVYYVYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxx*************************============================+++++++++++++++++++===*********xxxxxxxxxxxxxxxxxxxx**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######8######8#############################################$VY*+:~~~~--------~~~:::++++++++++++++++::+++++++++++++==============*V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$#$#######88%%%%%%%%%%%%888888888888888888888888888#8#####88888#$VVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx*************************=========================+++++++++++++++++++===*********xxxxxxxxxxxxxxxxxxxxxx**xx**xxxxxxxx$888888888888888888888888888888#####################################8#8888#88888#8888888888888888888888888888888888888888888888888###################################88888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYYYYYYYVVV$$############################################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxxxx********===========================================================================xYYYYYYYYYYYYxxxxxxxxxx******=====================================*YVVVVYYYYYxxxxx******================================**xxxxxx*****================+:::::::::~~~~~~~~~~~~~~~~~~~~~~-------------------------------------~-----~~~~~~~~~~~~~~:::+++++++++++++++++=Y$$$$$$VVVVVVYYYx*=++++++++++++++++++:::::::::++++===============++++++++++:::::+++===****==================+++++++++++++++:::::++++++++++++++++++::~~::+==*xxxxxV$#8888888888888888888888#888#############################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$##$###########################################################################8##8#####8########8#################8#8#####8######8########8##8###############################$Vx=:~--------------------~~:::+++++++++++++++:+++++++++++===============Y$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$##$#$####88%%%%%%%%%8%%8888888888888888888888888#8###########8##88#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx*x************************==========================++++++++++++++++====******x*xxxxxxxxxxxxxxxxxxxxxxxx****xxxxxxxxY#88888888888888888888888888888#####################################8#88#88##8#88888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@@@@@@%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YYYYYYYVVV$$##########################################################################################8#8#8##8#88888888888888888888888888888888888888888888888888888888888888888888888888888888#Vxxxxxx********========================================================================*xYYYYYYYYYYYxxxxxxxxxxx*****======================================xVVVVVYYYYYxxxxx******================================*xxxxxxx******================::::::::::~~~~~~~~~~~~~~~~~~~~~-~----------------------------------------~~~-~~~~~~~~~~~~~:::+++++++++++++++++=V$$$$$$VVVVYx=+::::++++++++++++:++:::::::::+++++================+++++++++::::::+++++==***================++++++++++:::++++++++++++++++++++++++++::::::++=**xxx****xV$#88888888888888888888888888#################################$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#$$$#$########################################################################8#888888888888888888####8######8#88##8#8#8#######88#8##8#####8####8####8#######################$VYx=:~--------------------------~~~::+++======+++++++++++++++=+=============x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$####888%%%%%%%%%%888888888888888888888888#8#8#####8#######888888%%%8$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx************************===========================+++++++++++++=====******xxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxxV888888888888888888888888888888#######################################88#88#888#888888888888888888888888888888888888888888888888888###################################8888888888888888888888888%%%%%%%@@@@@@@%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% YVVV$$$#########################################################################################8######8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxxx********=====================================================================*xYYYYYYYYYYYYxxxxxxxxxxx****======================================*xVVVVYYYYYYxxxxx*******===============================*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$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx***************************=========================++++++++++++====******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$88888888888888888888888888888#######################################8#8#88888#8888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ###############################################################################################8#88#888##8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#Vxxxxx********==================================================================*xYYYYYYYYYYYYYxxxxxxxxxx*****======================================*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*************************===========================++++==========*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxY#88888888888888888888888888888#######################################8#88#8#8#88888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%@@%%@@@%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ###########################################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxxx*********==============================================================*xxYYYYYYYYxxYxxxxxxxxxxxx****=====================================**xYVVYYYYYYxxxxxx*******===============================**xxxxxxxx*****=================+:::::::::::~~~~~~~~~~~~~~~--~~------------------------------------------------------~~~~~~~~~~::::+++++++++++++++=x$$$Y=::::::++++++++++++++++::+++++++++++++++===========++++++++::::~---~~:::+++++++++===++++:::++++++++++++++++++++++=+==========++++++===*****===+++*xx*******===========*xYV$#8888888888888888888888888######################################$#$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$####$############################################################8####88#8888888888888888888888888888888888888888888888888#88888#888##8#8#8###8###88####8########$$VYx*=+::::+=++:::~~~~----------------------~~~~~~~~~::::++===**=====++++++++++++==========x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####888%%%%%%%%%%%88888888888888888888888########88888%%%%%%%%%%%%%8888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*************************========================+=+===========****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888#######################################8#88888888888888888888888888888888888888888888888888888888888##################################88888888888888888888888888%%%%%%%@@@@@@%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ####################################################################################8##8#88#8#888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VYxxxx********==========================================================**xxxxxxxxxxxxxxxxxxxxxxxxx*****===================================***xYVVYYYYYYxxxxxx********===============================**xxxxxxxx*****=================++:::::::::::~~~~~~~~~~~~~-~~----------------------------------------------------------~~~~~~~~~~::::+++++++++++++++=Y$Y+~~:::+++++++++++++::::++++++=====================+++++++:::::::~~~~~:::+++++++++=+++++++++++=**==++++++++++++++++++=========+++++++==******===++=xxx*****=================**xV$#8888888888888888888888888##########################################$$$$$#$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$#$$$##$$##################################################################8#8#888888888888888888888888888888888888888888888#88#888888#8##8#8#88#8#8#8#########8#####$$VVYx**=++:::~~::::+==:::~~~~~---------------~~~~~~~~~~~~~::::::::++==***====++++++++++++++++====x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####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#VVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx***************************==================================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#88888888888888888888888888888########################################8#8#8#8#888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@@@%@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% #########################################################################8##8####8#888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxx**********=================================================***********************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#Vxxx*********===============================================************************************=============================*****xxYYYYYYYYxxxxxxx********=================================***xxxxxxxxx*****=================+++::::::::::::~~~~~~~~~~~~~-~-------------------------------------------------------------~~~~~~~~~~::::+:+++++++++++++~-~:::::++++++++::::::::++===*******=:--====+=+++++++++++::::::~~~:::++=====******===+++++:::++++++====++++::::::++++++=*******=++~-..~+====++:::::=*****=================================**xV$#8888888888888888888888#8####################################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########################################################8###8#888888888888888888888888888888#########$$$$$######8#######8###############$$$$$VVVVYYYxxxxxx*****===========================++++:::~~:+==+:::~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::++++++++++==**======+++++++++++++++++++++++====***********xxYV$#88%%%%%%%%%%%%%%%%%8888888888888888####88888%%%%%%%%%%888888888888888888888888888888888888888888888888888888$VVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*************************===============================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################8888#8#8888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%@@@@@@@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%% ##############$##################################################8#8#8#888#88##8#8#8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$Yxxx**********==========================================**************************************===========================*****xxYYYYYYYYYxxxxxx*********=================================***xxxxxxxxx*****=================++++::::::::::::~~~~~~~~~~~~~~---------------------------------------------------------------~~~~~~~~~~:::::++++++++++++~--~:::::+:~:+++::::::::++==:=********=::===+++++++++++++++++:::::::++===************===+++::::::+++++++++:::::::++++++=********=+:~---~++==+:::~~-~+=****=====================================**xYV$#88888888888888888888888#######################################################$$$$$$$$$$$$$$$$$$$$$$$$################################################################888#8#8888888888888888#####$$VVYYxxx****============*VVVVVVVVVVVVYYYYYYxx********===++++::::++++======*=**********====================++++::~~:+=+:::~~~~~~~~~~~~~~~~~~~~~:::::::::::::++++++++++++===**======+++++++++++=++++++++++++++===*******====+==*xV#8%%%%%%%%%%8888888888888888#88888%%%%%%%%%%888888##888#88888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*************************=============================***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888#######################################88#888#8#888888888888888888888888888888888888888888888888888888###############################8#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##8##8888888888888888888888888888888888888888888888888888888888888888888888#Vxx*********====================================***************=============**************===========================**xYYYYYYYYxxxxxxxxx********================================****xxxxxxxxxxx******=================+++++::::::::::::~~~~~~~~~~~~------------------------------------------------------------------~~~~~~~~~~:::::::+:+++++++~.~~~~~~~. .::::::::::++==********=+~--:+++++++++++++++++++++++====********************===++::::::::::::::::++++++++++:+********=++:::++++:::::::+====*===============================================***xYYV$##8888888888888888888#8################################################################################################################################8#8######$$$VVYYxx***=++::::::::::::::::::::::::::++++++*YYYx*===*xxxx***=====+++:+++++++:::::::::::++=******************======================+++++++=+:::~~~~~~~~~~~~~~~:::::::::::::::+++++++++++++++====***=======++++==========++++++++==========++::::::+++++x#8888888888#88888%%%%%%%%%%%8888888####88#88#88#8#88888888888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxx**************************=======================****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#8###$$VVYx*==+++++::::::::::::::::::::::::::::::::::+++++++++*x*=====**xxxxx**=====++::::++++++::::::::::::+=****************======+================+++++++==+::::~~~~~~~~~~:::::::::::::::+:++++++++++++++++====***=======++++=====*===***=+++++=========+:~~~~~~~:+++++*#888888888%%%%%%%%%%8888888#######8#######8##8#88888888888888888888888888888888888888888888888888888888888#$VVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx**x************************======================****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888#########################################8##88#88888888888888888888888888888888888888888888888888888888##################################8888888888888888888888888%%%%%%%@%%%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ############################################8#8###8#888##888888888888888888888888888888888888888888888888888#8###8####8############8##########################888888888888888888888888888888888888888888888888888888##$$VYx****============================*******************==================*************==================**xYYYYYYYxxxxxxxxxxxx***********=============================***xxxxxxxxxxxxxx********=================+++++:::::::::::~:~~~~~~~~~~--------------------------------------------------------------------~~~~~~~~~~::::::::+:++++:~.-~~~~~~~~. ~::::::::::+++====*========++++++++++++++++++=====***xxxx******************=======++:::::::::::+++++++====++++++++++++++++++++++++:::+:::++++============================================*****************xxYVV$##88888888888888#8##########################################################################################8####8###############$$VYxx**==++:::~~::::::::::::::::::::::::::::::::::::+::+++++++++++++===*xxxxxxx***===++:::::+++++++::::::~~::::+=*************========+===++++=========++++++++==+:::~~~~:~:~:::::::::::::::::+++++++++++++++++=====***=======+++++=====*xV$$$$Vx=+++========++~~~~~~~::++++=x88%%%%%%%%%%8888888#8###8##########8#####8#8#8888888888888888888888888888888888888888888888888888888###$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx*************************===================*****xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888#######################################8#88888888888888888888888888888888888888888888888888888888888888###############################8##8888888888888888888888888%%%%%%%%@@%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ########################################8##8#888#8#8#8888888888#88888888888888888888888888888888888888################################################################8888888888888888888888888888888888888888888888888888##$VYxx***====================*********xxx**********==================*****************=***********xxYYYYYYxYxxxxxxxxxxxx**********=============================****xxxxxxxxxxxxxxxx*********================++++::::::::::::::~~~~~~~~~-~-------------------------------------------------------------------~~~~~~~~~~::::::::::++++:~ -~~~~~~~~.~:::::::::::::++==========++++++++++++++++++====***xxxxx*******=**********===========+:::::::::+++++++====*===++++++++++++++++++++++:::::~::::+=**========================================************************xxYYVV$$####8888888#8###8##8################################################################################8###8#8#8####$$VYx**==+++++++++::::~~::::::::::::::::::::::::::::::::+:++++++++++++++++===***xxxxxxxx**===++::::++++++++++:::::~~::::+=***********==========+++++++++++=====++++++++++++:::~:~:::::::::::::::::::+++++++++++++++++++======**=======+++:::++==*$###8888#Vx=++======+++:::~~:::+++++*8%%%%%8888888###############8#########888#8#8888888888888888888888888888888888888888888888888###$$VVVVVYVYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVVYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx***********************==================*****xxxxYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV888888888888888888888888888888#########################################88#888#88888888888888888888888888888888888888888888888888888888#################################8888888888888888888888888%%%%%%%%%%@%%@%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ####################################8#888##888#888#88#8#8##888888#8888888#888888#888#88#8888#88####8##################################################################################8888888888888888888888888888888888888888888##$$$VVVYYYYxxx**===*******xxxxxxxxx**********================***************************xxxYYYYYYxxxxxxxxxxxxxx************==========================****xxxxxxxxxxxxxxxxxxx**********==========*====++++::::::::::::::~~~~~~~~~~---------------------------------------------------------------------~~~~~~~~~::::::::::::+::: .~~~~~~~:::::::::::::::::+++++==+++++++++++++++++++++===***xxxxx******==========================+:+++::++++++++=======*===++++++++++++++++++++:::::~~~~~:==*=======================================*=********************************xxxYYVVV$$$###################################################################################8########$$$$$VYx*=+++:++++++++++++::::~~~:++:::::::::::::::::::::::::+:+++++++++++++++++=====*****xxxxxxx***==+:::::++++++==+++++:::::::::+=********===========++++++++::::+=====+++++++++++++::::::::::::::::::::::++++++++++++++++++++=======*=======++~~~~~:==*#8888888888$*++++++++++++++:+:++++++*#888888##############################8#8##8888888888888888888888888888888888888888888888##$$VVYx**********===*xVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYVYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx***********************================*****xxxYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx$888888888888888888888888888888#########################################88##88888888888888888888888888888888888888888888888888888888888#################################8888888888888888888888888%%%%%%%%%%@%@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%% ###############################8####8#888888#8#8#88888#88#8##88#8#8#88#8#8#8#88###8###########################################################################################################8888888888888888888888888888888888888888888888888###$VYx****xxxxxxxxxxxx**********==============***********************xxxxxxYYYxxYYxxxxxxxxxxxxx************===========================**xxxxxxxxxxxxxxxxxxxxxx**********========****===++++::::::::::::::~~~~~~~~~~~------------------------------------------------------------------~-~~~~~~~~~::::::::::::::::- .~~~~:::::::++++::::::::++++++++++++++++++++++++++====***xxx*********===========================+:++++++++++++=============+++++++++++++++++::::::~~~~~~:=**======================================*********************************************xxxYYYVVVV$$$$$$$$$$############################################8###############$$VVYYxx**=========++++::::++++++++++::~~~~~~:+++:::::::::::::::::++:++++++++++++++++++==========*****xxxxxxx***==+::::+++++++=====+++++::::::::+==****=========+++++++++++::::++=====+++++++:::::::++::::::::::::::+::+++++++++++++++++++=================++~~~~~~+==V#8888888888#x++++++++++++++++++++++x##################################8##8##8888888888888888888888888888888##$VVYYxxxxxxxxx***xxxYYx*==============xYVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx**********************=============******xxxxYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################88#88#8888888888888888888888888888888888888888888888888888888888###############################88#888888888888888888888888%%%%%%%%%%%@@%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% #############################8##8######8##8#88######8#8#8#88#8#8#8#8###8##################################################################################################$########$###################8888888888888888888888888888888888888888888888#$VYxxxxxxxxxxxxxx***********==========******************xxxxxxxxxxYYYYYYxxxxxxxxxxxxxxxx*************=========================**xxxxYxxxxxxxxYYxxxxxxxxx***********======*****====++++::::::::::::::~~~~~~~~~~~-----------------------------------------------------------------~~~~~~~~~~~:::::::::::::::::- -~~::++++++++++++++:+:+++++++++++++++++++++++=======**xxx*******===============================+:++++++++==++=============+++:::::::::++++:::::::~~~~~~:==*======================================**********************************************************xxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVYYxxYYYYx*==++++++++++++++++++:::::+++++++++:::~~~~~:+++++::::::::+:+:++++++++++++++++++++++=============******xxxYxxx**==+::::++++++++++===++++++++:::::::+=========++++++++++++++++++++======+==+++:::~~~~:+++:::::::::::++++++++++++++++++++++===================+:~~~~:===*Y#88888888888$x=++++++++++++++++++*$################################8##8###8888888888888888888888888888#$Vx**==============++++++====++=============*xVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx***********************=**=========******xxxxYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxV8888888888888888888888888888888########################################8#8888#888888888888888888888888888888888888888888888888888888888#################################888888888888888888888888%%%%%%%%%%%%%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ###########################8##8###8####8###8#8###8#######8#######8###########################################################$##$#$###############################$###$##$$####$#$#$$#$#$####################88888888888888888888888888888888888888888888#$VYxxxxxxxxxxxx*********************************xxxxxxxxxxxYYYYYYYxxxxxxxxxxxxxxxxx***************====================***xxxYYYYYYYYYYYYYYYYxxxxxxxxx************==**x****===+++++::::::::::::::~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~:::::::::::::::::::----~+=======++++++++++++++++++++++++++==+========***x*********================================+:++++++++===++==========*==++::::::~~::+++::::::~~~~-~~:========================================**********************************************************************************=================++++++++++++++++++++++++=xx**==++++++++++++++++:::::::::++++++::::~~~~:+++++++++:++++++++++++++++++++++++++==================****xYVVVYxx**==++:::+++++=*=+++======+++++::~::::::+=====+++++:::++=+++++++++++==========++::~~~~~:+=+:::::::++++++++++++++++++++++++==============*=======++++==****$888%%%%%%%%%8$Y*=+++++++++++++=x$#########################################8888888888888888888888888$Y*====**********====+::::++++++++++=============xYVVVVVVVVVVVVVVVVVVVVVVVYVVVVYVYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx***************************=*==********xxxYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxY#888888888888888888888888888888########################################8888##88888888888888888888888888888888888888888888888888888888888#######################8##8##8##8888888888888888888888888%%%%%%%%@%%%%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ##########################8##8#8#8####8##8#######################################################################$$##$#$####$#$#$#$$$$$$$$##$#$##$###$#######$#$#$#####$$$$$#$$$#$$#$#$#$$$$$$$#$#$################88888888888888888888888888888888888888888#$VYxxxxxxxxxx*****************************xxxxxxxxxxYYYYYYYYYYYYxxxxxxxxxxxxxxx*x*************==================***xxxYYYYYYYYYYYYYYYYYxxxxxxxxxxx*************xxxx****===++++++::::::::::::::~~~~~~~~~~-----------------------------------------------------------------~-~~~~~~~~~::::::::::::::::+++++:::=*****====++++++++++++++++++++++=========****************==================================:+++++++====++++===========++::~:++:::++++::::::::~~~~:+=*=====================================**************************************************************************************=============+++++++++++++++++++++++++==**==++++++++++++++++:::::::::::::++::::~~~~:+++++++++++++++++++++++++++++++=+======================**xYV$$#8Vxxx**=++:::::++++xY*******====+++:::~~~::::++++++::::~::++++++++++::::+++========+++:~~~~:+=++::+:++++++++++++++++++++++++==============xV#$Yx***==*=*****Y$%%%%%%%%88888888#$Vxx****===*xV$############################################88888##VYV#88888888888$Y*===*********=====++:~~~~~~:++++++++==============*YVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx**************************************xxxYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxV8888888888888888888888888888888########################################8#888888888888888888888888888888888888888888888888888888888888888###################8##########8###88888888888888888888888%%%%%%%%%%@%@@%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ##################################8####################################################################################$#$#$$#$$$$$$$$$$$$$$$$$$$$###$#####$###$$$#$#$$$$#$$$$$#$$$$$$$$$$$$$$$$$$$#$$##################888888888888888888888888888888888888888#VYxxxxxxxxxx***********************xxxxxxxxxxxYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxx************===============****xxYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx*********xYYxxx****====++++++::::::::::::::~~~~~~~~~~~-----------------------------------------------------------------~~~~~~~:::::::~~~~~~::::++++++===*******====++++++++++++++=+++++======********x***************===*=========================+:++++++======+++++========+++::~::+++++++++++::::::::::=**=====================================************************************x***************************************************=============+++++++++++++++++++++++=====++++++++++:+++++:::::::::::::::::::::::++++++++++++++++++++++++++++++========================*xxYV$#8%@@@Vxxx**==++::~~:+++*Vxxxxxxx*=====++::::::::::::+::::::++++++++::::~~~~~~:::+========++:::++==+:::++++++++++++++++++++++++++===========*x$#888###$$VYYxxxYV#8%888888888888##########$$$$$$#############################################88888#$Yx*==*V888888888$Y====*****xx***===++++:~~~~~~:+++++=++=================xYVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx************************************xxxYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxY$888888888888888888888888888888#######################################8#8#8#8#88888888888888888888888888888888888888888888888888888888888################################8888888888888888888888888%%%%%%%@%%%%@@%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%% #############################################################################################################$#####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$##############88888888888888888888888888888888888#$VYYYxxxxxx********************xxxxxxxxxYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxx***********=*=========*****xxYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxx******xYYYYYxxx****====+++++++++++++++++::::~~~~~~~~~~-------------------------------------------------------------~~~~~~:::::::~~~~~~~~::::++++++++++===******=====++++++++++++====+====**********xxx*****************=======*===================++=+++++======+++++++======++++:::+++::++++++++++++++++=****================================*=**********************xxxxxxxxxxxxxxxxxxxxxxxx********************************************=================++++++++++++++++++++===+++++++++++:++++++:::::::::::~~~:::::++==++++++++++++++++++++++===========================*xxYVV#8%%@@@@@@$xxxx*==++:~--~:++*VxxYYYxxx*=====+++::::::::+++++++++++++++::::~~~~~~:::::::+==============+++++++++++++++++++++++++++++===========*Y$###88888%%%%%8888888888888888###############################################################8#8888#VY*==*xYV#8888888#Y*=************=====++++::::::+++++=======================*YVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*********************************xxxYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxV#888888888888888888888888888888#########################################8888888888888888888888888888888888888888888888888888888888888888###############8#######8###8####8888888888888888888888888%%%%%%%%%%@%@@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%% ################################################################################################$####$###$$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##############8888888888888888888888888888888888###$$VVYYYxxxxx**********xxxxxxxxxYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxx********************xxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxYYYYYYYYxxx***====+++++++=====++++++++++::~~~~~~~~~-------------------------------------------------------~~~::::::::::~~~~~~~~:::::+++++++++++++===*******=====+++++++++=========*******xxxxxxx*****************************======****=*===+===+++++=======++++++++===++++:::+++:~~+++++++++++++++=*****===========================***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***************************************====================++++++++++++++++====+:::+++++++:++++++::::::::::~~::::+=======+++++++++++++=============================**xxYVV$#8%@@@@@@@@%8VYxxxx*==+:~--~:++x$VVYYxxxxx======++++::++++++=++++++++++++~::~~~::::::::::::++=====+======+++++++++++++++++++++++++++=+=========xV#8888%%%%@%%%88888888888888###################################################################88888#Vx=***xV#888888888Vx=*******+:::+=====++++++++++++++======================*xxYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*******************************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxY$888888888888888888888888888888#########################################88#8#888888888888888888888888888888888888888888888888888888888888#######################8#####8####88888888888888888888888%%%%%%%%%%%@@%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #################################################################################$###$###$#$####$###$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##$########888888888888888888888888888888888888888#####$$$$$$$$V$$$$$###$VVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxYYYYVVYYYYYYYYxxx***====++++===++++:::::::+++++++:~~~~~~~~~----------------------------------------------~~~~~~:::::::~~~~~~~~~~~::::::::+++++++++++++=====******=====++++++=*xYYxx*********xxxxxxxxxx*****************************************==++==++++++=======+++++++++++++++++++++:~~:++++++++++++==******=========================***************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx****************************===========================+++++++======++:::++++==+=+++++:::::~::::+:::+==============+===============================***xYYVVV$#8%@@@@@@@@%8$Yxx$Yxxxx**=+::::+=Y##YYxxxxxx*===+===++++:::++++==++++++++++::::::::::::::::::::+====+::++==+:++++++++++++++++++++++++++========*Y$8%%%%%%%%%88######8888#####################################################################8##888888#$Y*+**xV#88888888#Y*=***xxx*+::::+=======++++++++++================***xYYVV$$$VVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************xxxYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxY#888888888888888888888888888888########################################8#88#88888888888888888888888888888888888888888888888888888888888888#####################8#########8888888888888888888888888%%%%%%%%%%%@@@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%% ###########################################################################$#########$$##$$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$############88888888888888888888888888888888888888888888888888888888888##$VVVYYYYYYYYYYYYYYYYYYYxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYYYVVVVVVVVVVVYYYYYYxxxx***==++++===+++::~------~~:::+++++:~~~~~~~--------------------------------~~::::::~~~~::::::::~~~~~~~~~~~~~~~~::::::::::+++++++++++++=====******====+++++++xVVVVVVVx**x*xxxxxxxxxxxx*****************************************==:+==+++:::++=====+++++++++++++++++++++++:::+++++++++++==********============*************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYxxxx*************************=====================================*=++:::++++=====+++++:::::::::::+==========================================***xxYYYVVV$$#8%@@@@@@@@%8$Yx***x$8$Yxxxxx**==*Y$$$YxYYYYYxxx*==++===++++:::++++===+=++++++++~:::::::::::::::::+====+:::++++:++++++++++++++++++++++++========xV8%@@@%%88####$$######$$$$$$$##############################################################8####888888888#$VYxY$888888888$x*******xx*==+=**===================*********xxYYYYVVV$$$VVVVYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx*x**************************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxV888888888888888888888888888888#########################################8#8#8#888888888888888888888888888888888888888888888888888888888888###################8###8##8##88##888888888888888888888888%%%%%%%%%%@@%@%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% ################################################################$#####$##$$#$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########88888888888888888888888888888888888888888888888888888888888##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYVVVVVVVVVVVVVVVVYYYYYYYxxxx***=::++++++::~~-.......---~~::::++::~~~~~~--------------------------~~~::::::::::~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::+++++++++++++=====***=++++++++++++:xVVVVVVVx**xxxxxxxxxxxxxx****************************************==:++==+:~~~~:+=======+++++++++++++++++++++++++++++++++++=**********====*******************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYVVVVYYYYxxx******************====================================**=+::::+++===++++++++:::::::::+======================================***xxYYYYVVVV$#8%@@@@@@@@@8$Vx*****xxx$@@%8#$VVVVV$888V#YYYYYYYYxxx*==+++==+++++:+++++++++++++++++::::::::::::::::++++==+::~::++++++++++++++++++++++++++++=====*Y$8@@@%8#########Y*xYVY*xYV$$$$$$$$$$$#########################################################8###88888888888###88888888#$Y******xx*xx******************xYYVVVVVVVVx*=+=xVVVVVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYVYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*************************xxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxY#888888888888888888888888888888########################################88#8888888888888888888888888888888888888888888888888888888888888888####################8#8###88####8888888888888888888888888%%%%%%%%%%@@@%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #####################################################$########$#$#######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########888888888888888888888888888888888888888888888888888888888888##$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYVV$$VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$#$VVVVVVVVVVVVVVVVVVVVVYYYYYxxxxx**=::+++++::::~-.... .....---~~~:::::::~~~~~----------------~--~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::~~~:::::::::+++++++++++======**+~~~~:+++++++:+*YVVVYx**xx*xxxxxxxxxxx*****************************************=+~++=++~--~~+=========++++++++++++++++++++++++++++++++++=*******************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYVVVVVVVVVVVVVYYYxxxx***********=================================***=+::::+++==::+++=++++:::::+=================================*****xxxYYYVVVVVV$#8%%@@@@@@@@%#Y+-.-:=******x8@@@@@@%%%@@%88###YYYYYYYYxxxx*=+:++==++++++++++++++::::+++++:::::::::::::::+++===+:~~~:++++++++++++++++++=====++++====xV#8%@@@@8#####$##$#$VVVYY*++=*YYVV$$$$$$$$$$$$#################################################8##88888888888888888888#$VYxx*******xxxxxxx*xxxxxYYYVYYVV$$$$VVVVVVVVVY===+*YVVVVVVVVVVVVVVVVVVVV$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx***********************xxxxYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYxYV8888888888888888888888888888888########################################8#8##88888888888888888888888888888888888888888888888888888888888888############################88##888888888888888888888888%%%%%%%%%%%%%@@%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%% #######################################################$###$#$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########8#8888888888888888888888888888888888888888888888888888888888##$$$VVVYYYYYYYYYYYYYYVVVVVVVV$$$$#########$VVVYYYYYYYYYYYYYYYYYYYV$#88%%%%8#$VVVVVVVVVVVVVVVVVVYYYYYxxxxx**+~:++++:::::~~-.........----~~~~::::::::~~~~~~----~~~~~~~::~~~~~~~~~~~~~~--..-~~~~~~~~~~~~~~~~~::::::::::::~-~::::::::~++++++++++++======**+~~::+++++==++::+=====********xxxxx*xx*****************************************+~:+==+:~--~+===========+++++++++++++++++++++++++++++++++=**************************************************x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVYYYYxxx*****==============================*****=+:::::++=+::++==+++:::+:+****=====================*****xxxxxYYYYYYYYVVV$$#8%%@@@@@@@@%#V=~. .:=********x%@@@@@@@@@@@%888%8######$$VVYYY*==+++==+=+++++++++:::::::::+++::::::::::::+++++==++:::::+++==+++++++++++===++++++++=*Y$#8888%@@@%#####$##$###$$$$VYx**===**xYV$$$$$$$$$$$$$$############################################8#888888888888888#$VYxx*====******xxxxxxYYYYVVVV$$$##88888888#####$$$VYYYYV$$$$$$$$$$$$$$$$$$$$$#$#$##$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxx*********************xxxxYYYYYYVYVYYVYYYYYYYYYYYYYYYYYYYYYYYY$888888888888888888888888888888##########################################8#88888888888888888888888888888888888888888888888888888888888888888##########8###############8##88888888888888888888888888%%%%%%%%%%%%%@@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%% ######################################$###$##$#############$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVV$VV$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##############88888888888888888888888888888888888888888888888888888888888#######################88#8#8888888888######$$##########8888%%%%%%%%%%8#$$VVVVVVVVVVVVVVVYYYYYxxxx**=:::++++::::::~~--......----~~~~~:::::::::::~~~~~~~~~:~~~~~~~~~~~~~~~~-. .-~~~~~~~~~~~~~~:~::::::::::::::~-~:::::::::++++++++++++======**=+==============++++====*******xxxxxx*********************************xxxYYYYYx+-++==++:~:+=*=========+++++++++++++++++++:++++++++++++++=************************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxx******=====================******+:::::++++::++++++~~:+++=***============*****xxxxYYYYYYYYYYYYYYYVV$$#8%%@@@@@@@@@%8$x:. .~=**********x%@@@@@@@@@@@@@@@@@@@@@@@@@@%8#VY*==++======++++++::::::~:::::+++:::::::::+++++===+++:::++++===++++++++++++++::::::+*V8888888888%%%%%88#####$$$$$$$$$$$VVVVYYYYYYYVV$$$$$$$$$$$$$$$################################8#8###8888888888888#$VYx**=++:::=****xxxYYYVVV$$$#####888888888888888888888888#######88888##########$########$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx******************xxxxxYYYYYYVYYVVYYVYYYYYYYYYYYYYYYYYYYYYV#888888888888888888888888888888########################################888#8#88888888888888888888888888888888888888888888888888888888888888######################8#8##8#8##888888888888888888888888%%%%%%%%%%%%@@%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%% ##########################$###$#$##$#$$##$######$$$$##$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVV$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%%%%%%%%888$$VVVVVVVVVVVVVVYYYYxxxx**+~::+++:::::::::~~--------~~~~~~~~:::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-. .-~~~~~~~~~~~~~:::::::::::::::::::::~~::::::+++++++++++++++=====*******xxYYYYYYx**===========*******xx*****************************xYYV$$$$$$$YYx:~+=====++==**===+=+=+++++++++++++++++++++:++++++++++++::+*xxxxx****************************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYVYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxxxx****************xx=+::::+++++:++++++::++++*********x*xxxxxxYYYYVVVVVYVVYYYYYYYVV$#8%%@@@@@@@@@%8#$Y+- .-:+=***********x#@@@@@@@@@@@@@@@@@@@@@@@@@@%8#Yx**============++++++::::::::::::+++::::++++++=====+++++++++===+++++++++++++++::~~~~~+x$#8888888888888%%%%%%8###$$$$$$$$$$$$$$$$$$VVVV$$$$$$$$$$$$VVV$$$$$$##############################888888888888$VYx*****====**xxxxYYYVV$$$$#888888888888888888888888888#$Vx*****x*x$888#######$$#$$##$##$####$$VVVVVVVVVVVVVVVVVVVVVVYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxx*****************xxxxxYYYYYVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYY$888888888888888888888888888888#########################################88#88888888888888888888888888888888888888888888888888888888888888888########################88#8#8#8888888888888888888888888%%%%%%%%%%%@%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% ###########################$#$$#$$#$$#$$$$$#$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVV$$$V$$$$$$$$$$$$$$$$$$V$VVVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$V$$$$$$$$$$$$$$$$$$$$$$$$####################88#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%8%%%%%%%%%%%%%%%%%%%88$VVVVVVVVVVVVYYYYYxxxx**+-::++++:::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::+::::::+++:::::+::::+++======**xYYVVVVVVVVVVVVYxx*=====+====*****xx**************************xYV$#########$$$V=~:+=********====++++++++++++++++++++++++++++++++++::::::+*YYYYxxxxxxxxxxxxxx***************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYx++::+++++++++++++++++=xxxxYYxYYYYxYYYYYVVVVVVVVVVVVVVV$$#8%%@@@@@@@@@@@%8$Vx*==+---~:+==============*V%@@@@@@@@@@@@@@@@@@@@@@@@%8$VYxx****==============+++++++:::::::::++++:++++++=======++++++++++++++++:::+++++++:~~----~+=V8888888888888888888%%%8888##$$$$$$$$$$$$$$$$$$$$$$$VVYx**==**xYV$$$$$$$$####################888888888888#$Yxx*******xxxxYYYVVVV$$$$###88888888888888888888###88888#Y*********xY$88#####$$##$#######$##$#####$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx************xxxxxxxYYYYVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYV#888888888888888888888888888888#########################################88##8888888888888888888888888888888888888888888888888888888888888888##########################88#8#8888888888888888888888888%%%%%%%%%%%@%%%%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% #########################$#$#$$$#$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$#$#$##$###############8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888%888%%%%%8888888#$VVVVVVVVVVYYYYYxxx***+-~:+++++::::::::::::~::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::+::+++::::::::::~~:+++======xVVVVVVVVVVVVVVVVVVVYx==++:++==****xx************************xYV$$$VYYV$$$$$$$##$Y-~+==*******======++++++++++++++++++::::::++++++++::~~~:++xYYYYYYYxxxxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYVVY=+::++++++++++++++++=xYYYYYYYYYYYYYVVVVVVVV$$$###88%%%@@@@@@@@@@@%8#$Vx*===========================Y8@@@@@@@@@@@@@@@@@@@@@@@%8$VYYxxxx****================+++++++++++::+++++++++++========++:::::::++=+++:::::+++++++:~~---~+==#88888888888888888888888888888###$$$$$$$$$$$$$$$Vx*==++++=*xYYYYYxxYVV$$$$$$$$$###########8#8888888##$VVx**xxxYYYYYYVVV$$##888888888888888888$xV888888#$x*==*xxxYx*=*xYV$$$$##888#####$$$$#######$##$#########$VVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx**x*******xxxxxxxYYYYYYVVVVVVVVVVVVVYVYYYYYYYYYYYYYYY$888888888888888888888888888888############################################8##888888888888888888888888888888888888888888888888888888888888888##################8######8##88#888888888888888888888888%%%%%%%%%%%%@@%@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% ###########$#$######$#$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################88#8888#888#888#88888888888888888888888888888888888888888888888888888888888888888#888888888888888888888888888#$VVVVVVVVVYYYYxxxx***=-~:+++++++:::::::::::::::::::~~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~-~~:++======*YVVVVVVVVVVVVVVVVVVVVVY=:~~:+=*****xx**********************xY$$VYV$$VV$$$$$$####$Y=~~++=********====+++++++++++++++++:~~~~:::++++++:::~~~::+=xYYxxxxxxxxxxxxxYYYYYYYYYxYYxYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYVY=+::::::+++++++++++*YYYYYYYYYYYYYVVVVV$$8%%%%@@@@@@@@@@@@@%%8#$VYx*===+++=+++++++++++++++++++++++*$%@@@@@@@@@@@@@@@@@@%%%%%%8VYYYYxxxx****===========++++++========++++++++++=+====++++==+:::+++++++====+:~~::++++++++::~~~:==+V88888888888#8##88888888888888888#####$$$$$$$$$$VYYxx**xYYxx*===+++=*xVVVVV$$$$$$$$$#######888888#$$VVVVVVVVVVVV$$$$##88888888888888888888888###8888#Vx*=====****xxY$#888888888#######$$#$###$##################$VVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*xx***xxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYV#888888888888888888888888888888#############################################88888888888888888888888888888888888888888888888888888888888888888#########################8#8#88888888888888888888888888%%%%%%%%%%%%@@@%@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%% ###$##$#####$#$##$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########################8###888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888$VVVVVVVYYYYYxxx****=:~:++++++++++:::::::::::::~~~~~~~~~~~~~~~~~~~:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~---~:++=======*YVVVVVVVVVVVVVVVVVVVVVY+~--~+=****xx*************x*******xY$#$Y*xV$$$$$$$$####8####x::++===***=====++++++++++++++++++:~--~::::++++::::~~~::++=*x********xxxxxxxYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYVYYVYVYVVVVYVYVVVYVVVVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVYVY=+::::::::++++++=*YVYYYYYYYYYYVVVVV#8%%@@@@@@@@@@@@%%8#$VYx**====++++++++++++++++++++++++++++++=Y8@@@@@@@@@@@@@@@@@%%8888%888#YYYYxxx******===============+++++=======++++++=====++++++++::++++++++++++===+:++++====++++:+++++:x8888888888888###8#8##8888888##############$$$$$$$$$$$$$VVYYxx**xxYYYxx**=*xV$$$$$$$$$$$$$##8888###################8888888888888#YYY$888888888888888#$VYYYVVVV$$##888888888888#######$#$$$##$$###################$$VVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYY$8888888888888888888888888888888########################################8#8#8#8888888888888888888888888888888888888888888888888888888888888888#########8######8####8#8#88#88888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%% $#####$###$$#$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$###################888#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VVVVVYYYYYxxxx*****=+::++++++++++++++:::::::::::~~~~~~~~~:::::::::::::::::+++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::~:~:~-..-~:++++======*xVVVVVVVVVVVVVYVYYYYYY*:---:==***xxx**********xxxx*****xYV$$VxxYVV$$$$$####888%%%%%8V+:++++=====+++++++++++++++++++++:-..~~::+++++::::~~~~:++++***========*****xYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVYVYYYVYVVYVYYVVYVVVVVVVVVVVVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVY=+:::::::+++++=YYVVVYYYYYYYYYYV$#8%@@@@@@@@%88#$$VYxx*=========+++++++++++++++++:::::::::::::+x#%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%$$VVYxx******==================+++++=============+:::++++++++++++++++++++++=*xx*========++++++:+:=#888888888888###################################$$$$$$$$$$$$$$$$$VVVVVVVVYV$$$$$$VYYYVVV$$#########8888888888888888888888888888$xYV#888888888888888888888888888888888888888#####$$$####$$#########################$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYV#888888888888888888888888888888############################################8#88888888888888888888888888888888888888888888888888888888888888888####################8#8#8888##8888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%% #$$#$#$#$#$$$$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#################8##88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$VVYYYYYYxxxx****==+++++++++++++++++++++:::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::~:~~:~~~~-..-~:++++=======*xVVVVVVVVVVVVVVVYYYYYx=+~~:+==***xx************xxxxxYYV$$$$VYYVV$$$##88%%%%@@@@@@@@%8$=+++++++++::::::::::::::::+:+++:~~~~:::+++++::::~~~~::+++=$$VVYYxx***===***xYYYVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYVYYYYYYYYYYYYVYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVY++:::::::+++++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$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#VYYYYYxxxxx**+::++++++++++++++++++++++++++++::::++++++:::::::++++=+++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::~~~~~~~--.-~:++++++=======*xVVVVVVVVVVVVVYYYYYYx==+++===****xx***********xYYYYVV$##$$$VVV$##88%%%%%@@@@@@@@@@@%8%V::+++++::~~:::::::::::::::::::::::::::+++++:::~~~~~::+++=8@@@@%%%%888###$$$$$$$$$$$$$$$VVVVVVVVV$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVV*+::::::::+++++xYYYYYYYYYV$#%%@@@@@@@%#VYx********========+++++++++::::::::::::::::::::::::=$%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%$x$YYYYxx*********=======================+=====++++:~~~:+==+++++++++++++=*V$8888888##$VYx*=======+:~+V88888888888##############################################$$$$$$$$$$$$$$$$$$$$$VYYYYYY$#####################888888888888888888888888888888888888888888888888888888888888#####$$##$####$###$#########################$VVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYV#888888888#88888888888888888888############################################8#888888888888888888888888888888888888888888888888888888888888888888##8##################8##8#88#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVV$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#############888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#$YYYYxxxx*=:~~:++==++++++++++++++++++++++++++++++::::::::~~~~~~::+++++=+++++++++~~~~~::+++++++++++++:::::::::::::::::::::::::::~...-~~~:+++++++=======**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#$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYY$888888888#888888888888888888888#############################################8888888888888888888888888888888888888888888888888888888888888888888######################88#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#############8#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888$YYxxxxx=~-~:++++=+++++++++++++++++++++++++++++:::::::::::~~~~~~~~::++++++::+++~~~~~~~:+++++++++::::::::::::::::::::::::::::::--~~::++++++++++=======***VVVVVVVVVVVVVVYYYYYx*=======***xx********xYxxYV$$$$$$$$$$$$$$$##88888###$$##8%@@@@%%@%V::++++:::::::::++++====+++:::::::::++++++++::~~~~~~:+++=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%888###$$$$$$$$$$$$$$$$$$$VVVVVYYYYVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVYVVVVVVVVVx+::~::::::++++++YVV$$$8%@@@@@@%8$Vxx**********======*xxYV$$$$$$$$$$$$$$$$$$VVVYx*+:~~~:=V%@@@@@@@@@@@@@@@%8####VVV##VVV###$#8V=xYYYxxx**********=*=======================++++++++===**====+++++==xV#8888888888888888888#Y+****=+:::=$%%88888#####Y*=*****xYYV$###############$#$#$$$$$$$$VVVV$$$###88####$$$$$$$$$$$$$###########$########################8888888888888888888888888888888888888888888888#####$###$########$$#####################888%%%88$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYV#888888888888888888888888888888#############################################88888888888888888888888888888888888888888888888888888888888888888888###################8##8###8#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#################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#$VVYYYYVVVVVVVVVVVVVVVVYVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYY$888888888#888888888888888888888############################################8#8888888888888888888888888888888888888888888888888888888888888888888####################8#8#888#8888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################888#88888888888888888888888888888888888888888888888888888888888888888888#Vxx*:-~::++++++++++:::~~~~~~~:::::+++++++++++::::::::::::::::~~~~~~~~~::+++++::~~~:+=++++:~:::::::::::::::::::::::::::::::::::::++:+++++++=========**YVVVVVVVVVVVVYVYYY*==+::====*xxx******xxYVYVVVVVVV$$$$$$$$$$$$##888#$$##$$$8%%%%888#Y*+:++++:::++=*YYYVVVVVVVVVYx*=+:+++++++++++::~~~--.-~::++*#8#888888888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%88#$$VYYYYYYV$###8888888####$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=+::::::::++++++:=8%%@@@@%8$Yx*************==*xY$$######$$$$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@@@@%%88#V$88$VV$#V$$88VVYYYxxxx*************======================:::::++==========*Y$#8888888#888888888888888888Y***=:~~~:+*$8%%%%%%%88%888###$Y=++:~~~:+*$#######$$$$$$$$$$$$VVVVVVVVVYYYYYYYYVV$$##8888####$#############################$#######$##########888888888888888888888888888888####$#$##$$###$####################88%%%%8#$VVYYYYYYYYYYYVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYV#88888888##88888888888888888888#############################################888888888888888888888888888888888888888888888888888888888888888888888######################8#88888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###################$##############################88888888888888888888888888888888888888888888888888888888Vx*~-::+++++++::::::~~~--~~~~::+++=====++++++++::::::::::::::::::~~~~~~:++++++++++++++++::::::::++:+:::::::::::::::::::::::::::++++++++++========***YVVVVVVVVVVVVVYYYx==+=+:====*xxx*****xxYVVVVVVY**Y$$$$$$$$$$$$$$$#$$$$$$$##88#####Vx+++++++++++*Y$888#########$$Vx=++++++++===++::~~~-..-~::++Y#####$$#$$###$#####888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%8##$$$########88#YxxY##VVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+:::::++++++++:::+%@@@@8$Vx*x***********==*xV$##########$$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@%%88#$$###$#88$VV$#Y$$#88VYYYxxxxx*************=====================::::::========*xV#888888#8#88#8#888888888888888V***=+:~::=x$88888%%%%%%%%%%%888$x+::~::+=$##########$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYVV$##88888###$#$$#################################$############88888888888888888888888#######$##$######$##$##########88%%%88#$VVYYYYYYYYYYYYYYYxxYVVVVVVVVVVVVVVVVVVVYYYYYVVYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$V$$$$VVVVVVVVVVVVVVVVVVVVVV88888888##888888888888888888888#############################################888888888888888888888888888888888888888888888888888888888888888888888####################8##88#888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888%8%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$#######$$#$$$#$#$#$#$#$$##$$#$$$#$$$#$$#$#$#$$############8888888888888888888888888888888888888888888888$x:-::++++:::::::::~~~~~~~::++++=======+++++++++::::::::::::::::::::::::+++++++++++++++++::::+++++++::::::::::::::::::::::::++++++++++++=========**xVVVVVVVVVVVVYYYYx====~.~+==xxxx***xxYYVVVVVV$VYY$$$$$$$$$$$$$$$$$$$$$##888888#$Y*++++++++++=*V#888888888#8#####Vx*+++++++======++::~-.-~~:++*$######$#$#########$###$######8888%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%88888#Yx**V##$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=+:++++++++++::::~+8@@%Vxxxx***********=*xY$###########$$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@%%%8888##$$$$$8#$#88$VV$$Y$$#8$VYYYxxxxx**************====================::~~::+=====xV#88888##8#8##8##8####88888888888#x****=+++=x$#8888888888888%%%%%%%#x++:++=Y######$$#$$$$$$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYVV$$##8888#######################$###########$$$$$##$$#########8888888888888888#####$$##$#$$##$###########88%%%88#$VVYYYYYYYYYYYYYYYYYYYxxxYYVVVVVVVVVVVVVVVVYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxYYYYYYYVVVVVVV$$$$$$$VVVVVVVVVVVVVVVVVVYV#8888888###88888888888888888888#############################################8888888888888888888888888888888888888888888888888888888888888888888888####################8#8888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888%8%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$##$$$$$$#$$$$$$$$$$$$$$$##############888888888888888888888888888888888888$=-~::+:+::::::::::~~~::+++++==**=======++++++++++::::::::::::::::::::::+++++++++++++++++++++++++++::::::::::::::::::::::::+++++++++++=========***xVVVVVVVVVVVYYYYYx*===:.-+==xxxxxxYYVVVVVV$$$$$###$$$$$$$$$$$$$$$$$$$#8888#$V*=+::+++++++++=*$8888##############$x=+++++++=======+++::~~::++=$#########################################8888%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8#$VV#8$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYx+++++++++=++::~~~~+%@@#xx************==xV############$$$$$$$$$$$$$$$$$$$$$$$#8%@@@@@@@@@@@@@@@@%8######8###$$$$$8#$#88$VV$#x$$$VVVYYYxxxxxx**************===================:::~:::+=xY$#88888##8#8#8#8#88##8#8####8#8###Vx*====***Y$##888#88888888888888888%#Y*==*x8888####$$$$$$$$$$$$$$VVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYVV$$#88888###$#$#################$$$$VYx****xxYYYV$$$###########88888888###$##$##$######$#$$###88%%%88#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxYYYYYYYYYVVVVVV$$$$$$$$$$VVVVVVVVVVVVVVVVVV$88888888##888888888888888888888##############################################888888888888888888888888888888888888888888888888888888888888888888888################8###88#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8888888%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$$$#$$#$#$$$$$##$$$$##$$###############8##8#########8888888888888$+-~:::::::+::++++++++++++===******=====+++++++++++::::::::::::::::::::+====+++++++++++++++++++:::::::::::::::::::::::::::+++++++++++=======******VVVVVVVVVVVYYYYYYx*==+++==*YYV$$$$$$$$$$$$$$$####$$$$$$$$$$$$$$$$$$#88#$Y*++:+++++++++++++=V888###########8#8##$*+++++++++========++++::++=V####################################$####$##########88%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#$$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*++++++++=++:~~~~~~*%@%Yx***********==*Y###########$$$$$$$$$$$$$#####$$$$$#8%@@@@@@@@@@@@@@@@@%###$########$$VVV$##$#8#$VV$#xV$VVVYYYYxxxxxx**************===================+:::::+=Y#8888#8#8####88##8#####8#########VYx*==++===x$################888888888888#$$#8%%%%%%%888###$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxxxxYYYVV$##8888############$###$##VxxYYVVxxxY$$Vx===*xYV$$##############$#$$#$$#$$$$$$$$##88%%%%8#$VYYYxYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVVYYVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYVVVVVVV$$$$$$$$$$$VVVVVVVVVVVVVVVVV#8888888###88888888888888888888##############################################8888888888888888888888888888888888888888888888888888888888888888888888####################8#888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVVVYVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYxxxxYYxYxYYYxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$##$$$$#$$$#$$$##$#$$$#$##$#$#$#######################8888888888888$=~~::+:++++++++++++++====*********======+++++++++++:::::::::::::::::::+===+++++++++++++++++:::::::::::::::::::::::::::++++++++++++========******YVVVVVVVVVVYYYYYYYxx****xYV$$##$$V$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$##V=+::+++++++++++++++=*#8######$#######8###$=+:::++++++=======+++++++=V#8#######################################$###$$$#$#$$#$$###88%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=::+++++=++::~~~~~:#@%V***********==*Y$#########$$$$$$$$$##88%%%@@@@%%%88%@@@@@@@@@@@@@@@@@%%8###$#########$VVVV$#$V$##$VV$#YVVVVVVYYYYxxxxxx**************==================+::::+=*Y$###88###########8#8###########Vx**==++++==*$#########################8888888888%%%%%%%%%%%888###$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxxxxxYYYVV$##8888############$x+=*#8888888#$Y=++++++==*xYV$$$###$$$VVV$$$$$$$$$$#88%%%%8#$VYYYxxxxYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$VVVVVVVVVVVVYVVVVYVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYVVVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVV$8888888#8#888888888888888888888##############################################8888#88888888888888888888888888888888888888888888888888888888888888888####################8888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%88%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVVYYYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYxxxYxYYYYYYYxYYYxYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$#$#$$#$$###$$###########################888888888888#Y=:~:::+++++++++=====*************======+++++++++++++:+::::::::::::::+===+++++++++++++++::::::::::::::::::::::::::++++++++++++++=======********YVVVVVVVVVYYYYYYYYYYVVVV$$$##$VYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx+::++++++++++++++++++Y8#######$#########8#V++::+++=====+++++++++++++Y88######################################$#$#$#$$$$#$$#$#$#$$$#####88%%@@@@@@@@@@@@@@@@@@@@@@@%##8#$YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxYYYYYYYYYYYYYYYYY=::::++++++:~~----x%@#x*********===*V########$$$$$$$$$#8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%888##$##$#####8$$VVVV$#VV$##$V$##VVYVVVYYYYYYxxxxxx**************=================++++++=*xV##88#8##############8########Y***===+++==*V###############################8888888888%%%%%%%%%%%%888##$$$VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxYYVV$##8888####$#$Y*=xV$####Vx*=++++++++++++++==*Y$$$$VVVVVVV$$#8%%%%88#$VYYYxxxxxxxxYYYYYYYYYVVVVVVVVVVVVVVV$VVVVV$$$$######$$VVVVVVVVVYVVVVVVYVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$$VVVVVVVVVVVVVV#8888888##888888888888888888888##############################################8#888888888888888888888888888888888888888888888888888888888888888888888###################8#888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$#$$$$##$$$$$$##$##$$#####################8888888888888$x=++++++++====********************======++++++++++++++:+:+++::+:::+====+:++++++++++++::++++++++++++++++++++++++++++++++++++++========********YVVVVVVVVYYYYVVVVVVVV$$$#$$$VYVVVVVVV$$VV$$$$$$$$$$$$$$$$$$$$$$$$#V*++++++++++++++++++++++V###################$=+::++=*****==+++++++++++x#888##################################$#$$$$$$$$$$$$$$$$#$$#$$$#$$#$####8%%@@@@@@@@@@@@@@@@@@@%88888$YYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxYYYYYYYxYYYYYxxxxxYYYYYYYYYYYYYYYYx:~:::++++:~-----~#@@%V*******====x$#######$$$$$$$$$#8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888####$######8#$VVVVV#$VV$##$V$##VVYVVVVYYYYYxxxxxxx**************============xYY*==++++==xY$#8##88###8###8#############Y***==+++==**Y######################################888888888%%%%%%%%%%%%%88##$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxYYVV$##888####$$VVYYx*=+++++++++++++++=*xYV$$$$VV$$$##8%%%8#$$VYYYxxxxxxxxxxxxYYYVVVVVVVVVVV$VVVVVVVVV$$$$$$#############$VVVVVVVVVVVVVVVVVVVVVVVYYYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$$VVVVVVVVVVVVV$8888888###888888888888888888888#############################################88#8##888888888888888888888888888888888888888888888888888888888888888888####################8#88888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888%%8%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$##$$##$$$$##$###################888888888888#Vx*****=**************************=======+++++++++++++++++++++++++==+++~-::++++++++++++++++++++++++++++++++++++=+==+=+=============*********xVVVVVVVVVVVVVVVYYVVV$$$#$VVV$$VYYxYV$VV$$$$$V$$$$$$$$$$$$$$$$$##V=+++++::++++++:::::+++++x###################*++:+==*xYYYxx*==++++++++=#8888##############################$#$$$$$$$$$$$$$$$$$$$$$$##$$##$#$##$#$####8%%%@@@@@@@@@@@@%#YYV$#8#YYYYYYYYYYYYYYYYYxYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYxx*:~~:::::~-----:Y%@@@%Y****===+++xYVV$$##$$$$$$$##8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%88888888#####$####%#$$VVVVV#$VV$##$$$#$VVYVVVVVYYYYYxxxxxxx**************=========xV##$*=+++++==*Y$####8######8##############$x**==+:~:++=*x############################################8888888888%%%%%%%%%%%888##$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxYYV$$##888####$$$VVYxx*==++=*xxVV$####$$##88888##$VYYYYxxxxxxxxxxxxYYYYYVVVVVVVVVV$$$$$$VVV$$$$$$###################$VVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVVV#888888##8888888888888888888888##############################################88#8888888888888888888888888888888888888888888888888888888888888888888888#####8############8#888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYxYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#$$##################8#88888888888#VYx******************************=========++++++++++++++++++++++==+++:~ -+++++++++++++++++++++++++++++++++==+======================********xVVVVVVVVV$$$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##$$$$VVVVVVVVVVVVVYVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYV$$#88888888####$$$$##88888888888#$$VYYYYxxxxxxxxxxxxxxYYYYYYVVV$$$$$$$$$$$$$$$$$$$####################$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$VVVVVVVVVVV$888888####888888888888888888888##############################################8#888#888888888888888888888888888888888888888888888888888888888888888888###################88888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#$$####################8888888888888$Yx*******************************=========++++++++++++++++++++=++++~ -++++++++++++++++++++++++++++++=+===========================********VVVVVVV$$$$$$$#$$$$$$VV$##VYxxxxxYVVYV$$$#$Y$$$$$$$$$YxxV$$$$$#$:++=++::::+++:~~~~~~::++++=Y$###########$Y*+::::=xYV$##888#$x=+++:::++$888888#########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######$$$#$$$$$$$$$##88%@@@@%##VYxYxxY$$YYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*=:~~~~~:*V%@@@@@@@@%#VY+- -x$#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8###8888888888##$#$###%8$$$VVVVV$#$VV$###$#$xYVYVVVVVVVYYYYYxxxxxxx**************=**YV#88#$*==++++++++=*x$##########################Y**==+--::++==*V#######################################################888888888888888888888###$$$VVVVVVVVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxYYVV$$######88%%%%%%88##$$VVYYYYYxYxxxxxxxxxxxxYYYYYYYYVVV$$$$$$$$$$$$$$$$$$#################$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$$VVVVVVVVVVV#88888####888888888888888888888##############################################8##88#88888888888888888888888888888888888888888888888888888888888888888888#####################8888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$$#$##$#$##############8888888888%88#VYx*******************************==========++++++++++++++++==++++:.~:++++++++++++++++++++++++++++=+=============================********VVVVVV$$$$#####$$$$VYV##$VxxxxxxYVVYYV$$$$$x$#$$$$#$$VYV$$$$$$$V:++=++::::++::~~~---~:+=++++*xYV$$$VVYx*+:::::+=xYV$#888888$x=+++:::+*8888888#######################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$###$$#$$$$$$$##88%@@@@%##$YxV$$V$$$Vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*xx**x************xxxxxxxxxxxxxxxxxxxxxxYYYVVV$#8%@@@@@@@@@@@@@%%#$Yx*=+::~~~:+V8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8######8888888888#####$#%%$$VVVVVVV$#$VV$#####V**VYVVVVVVVYYYYYYxxxxxxx*************xV$######$*==++:::+++==*x$#########################$Y*==+::++++===*Y$$###$$##########################$$#######$##$$$#$$#$########8888888888888888888###$$$VVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxx*x*xxxxxxxYYYYYxxxxxxxxxxxxxxxxxxxxYYYYYYYYYVVVV$$$$$$$$$$$$$$$##################$$$$$VVVVVVVVVVVVVYYYYYYYVVVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVV$$$$$$$$$$$$$$$$$$$$$V$VVVVVVV$888888####888888888888888888888#################################################88#8888888888888888888888888888888888888888888888888888888888888888888####################888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVYVVVVVVVVVVVVVVVVVVYVYVYVYVYYYVYYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$###################888888888%%%8#VYx*********************************=========+++++++++++++====+++-~++===+++++++++++++++++++++=++===============================*********YVVVV$$$$###$$$$$VVV$##VYxxxxxxYVVYYYV$VV$Vx$##$######$#$$$$#88#=:+=++::::::::~~-...-:+==+++++++====+++::~-~::=xYV$$####88#$x=++::::+Y8888888######################$$$$$$$$$$$VVVVVVVVVVV$$$$$$$$$$$$$##########$$$$$$$##888%%@@@8##Vxx$$$$$$$$xxxxxxxxxxxxxx*****************************************xxxxxxxxxxxxxxxxxYY$8%%%%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%8##$$$$$##888888888#####$8%%#$VVVVVVVV$#VVV$#####Y*=VYVVVVVVVVYYYYYYxxxxxxx*********xY$##########*=+++:::++:++==*V#########################$V*====++++=====*xV$$################################$$#$#$$$$$$$$$$$$$$$$$###########8888888##########$$$$$VVVVVVVVYYVVYYVYYYYYYYxxxxxxxxxxxxxxxxxxxx***********xxxxxxxxxxxxxxxxxxYYYYYYYYYYVVVV$$$$$$$$$$$$$$$#################$$$$$$VVVVVVVVVVVVVVYYYYYYYYYYYYYVVVVVVVVVVVVVVYVVVVVVYYVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$VVVVVV$#8888#####888888888888888888888##############################################8#8###88888888888888888888888888888888888888888888888888888888888888888888####################888888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVYVYVYVYYYVYYYYYYYYYYYYYYYYYYYVVYYVYVYVYVVVYVYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$#$#$###$###########8888888888%%88$Yxx**********************************=========+=+++++++========+=====+++++++++++++++++++=++=+===+===========================**********YVVV$##$###$$$$VVVV$##VxxxxxxxY$VYxYYVVYV$YY$$#$$$$#######8%%@@%$+==++::::::::~~~-.-~:====++++++++++:::~~--~:+xYV$$$$$$$##$Y*=+::~~:+$888888######################$$$$$$$$$VVVVVVVVVVVVVVVV$$$$$$$$$$$$########$$$#$$$$#888%%%%%8##$Y=*$$$####$xxxxxxxxxx*xxx*********************************************xxxxxxxxxxxxxYY#888888%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%8##$#$$$$$$$$#888888888###$#8@@#$VVVVVVYYV$#VVYV#####Y==VYVVVVVVVVVYYYYYYxxxxxxxx****xY$##8######8###Y=++:::::~~~~+==*$##########################$x*==============xV$$######################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################$######$$$$$VVVVVVVVVVVVVVYYx*****xxxxxxxxxxxxxxxx*********xxxYYYYYYV$$$$YYYYYYYYVVVVVVV$$$$$$$$$$$$$$########8########$$$$$$VVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$VVVVV$88888####8888888888888888888888###############################################8###888888888888888888888888888888888888888888888888888888888888888888888###################8#8888888888888888888888888888%%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVVYVYYVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$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%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYYVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################8888888%88%%8#VYxx*************************************=========================++++++++++++++=++=====================================************xVVVVV$##$VVV$#$V##$YxxxxxxxxV$VYV$$YYxY$$YY$##VYYY$V##$VVVVVVVVVY*===++::::::::~~::++====+++++++=*YYVYx*+:::*V$$$$$$$$$$VY*++:~---~=8%8888888###################$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$##########$#$$$$##8%%%%%%%8$Vx*=*V$#####Vxxxxxx*************************************************************xxxxYV$88888%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%88#$$$VV$$$$$$$$$$$$#888888888###8%@@8VVVVVVVVVVYV$$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%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$#############88888888%%%%88$YYxx***************************************===++++++++=+=======+++++++=+=+=+==+=======================================************xVVYYY$#$VVV$##$###Yxxxxxxxxx$$VYV$VYxxY$$YY$#$YYYY$$##VxYYVVVVVVYYx*=+++::::::::::+++===+++++++=Y#88888#V*++x$$$$$$$V$$VY*=+::~--~:*8%8888888##################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$##########$#$$$$#8%%%%%%%8#Y===**Y$#####$xxxxxxx***************************************************************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%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYVVYVYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############888888%8%8%88$VYYxx**************************************=+:+++++++++++=========+=+================================================************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%@@@%#VVVVVVVVVVYYYY$VYYYV$$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%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYxxxxYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYVYYVYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$################888888%%8%%%8#VYYxx**********************************==+::+++++++++++++===========================================================************xV$$###$VVV$#VV$##YYxxxxxxxxY#$VV$VxxxxY##$x##$YxxxV##$x*xYVVVVYx**YYY*=++++++++:::+++++++++++++*$88####88#x+*$$$$$$VVVYx*=++:::~~::x8%%888888##################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$################8%%%%%%%8#*:::+Y$#######$xxxxxxx***********************************===*=========***===*********xV$#8%%888#####888$8888888###########8#######8#888###########$$VVVV$$$$$$$$$$888888888%%@@@@8$VVVVVVVVVVVYVYYYYYYYYVV$VVVYYxYVVVVVVVVVVVV$#88888888888888888888#8##88#########Vx*==*xY$#######################################$x===++:~~~~~::++=**YV$$$$$$$V=+++=*xV$$$$$$$$$$$$$$$$$$V$$$V$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#####$x=+++::::::+++==*V$VVYYYYVYx**xY8@@@%$VVVVV$88$VVYxx******xxx**Y################$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVYYVYVYYYVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#888#####888888888888888888888#######################################################888888888888888888888888888888888888888888888888888888888888888888888####################8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##############888888%%%%%8#$YYYxx*****************************==+:::::+++:++++++++===========================================================*************xV$$##$VVVV#$YY$#$VYxxxxxxxxV#$$V$YxxxxY$##x##VYxxx$##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$#############$$$$VVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVYVVVVVVVVYVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#888#####8888888888888888888888#######################################################888888888888888888888888888888888888888888888888888888888888888888888#######8############8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$############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%%@@@@%8VVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYxxxYVVVVYYYVYVVVVVV$#88888888888888888888888#8##8######################################################$Y**==++::--.--~:+=*x$$$$$$$$Vx+:~~~-~=xV$$$$$$$$VVVVVVVVVVVVVVVVV$$$$VVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*==++=====****xYV$#8888888888#Vx*******xxYVVYYYYxxxx****xxxYYYYYYYxV##########$$$$$VVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888#8#################8888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVVVVYVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYYVYYVYYYVYYVVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$################888888%%%%%%%8#$VYYxxx**xx*xx***********==++:::::+++++++++++++=+===*========================================================***************xY$###VYVV$VYYYYV$VYYxxxxxxxV#$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$###88888888888888%%8#Vxx*******xx*********xxxxxxxxxxxx**xY######$$$$$$VVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####88888888888888888888888#######################################################88888888888888888888888888888888888888888888888888888888888888888888888###8###############888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVYVVVYVVVYYVYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$###$############888888%%%%%%%%%8#VVYYxxx**xx*xx*=====++::+::::+++++++++++++++====******====================================================****************xY$##$YYVVVYYYYYVVYYYxxxxxxxV##V#VxxxxxYY##V$##$YYYV$$x**********xxYYVVVVVYYYYxxxxYYV$$VV$##Vx=++++:::::+++:::++++++++++::::::~~~~::=8%%%88888################$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##################%%%%%%%%%888$+V##8###$#######$VYx******========================================================*xV$VxV####VY$VY=*V88#Y=Y#################888###########$$$$VVVVVVVVVVVV$$#88%@@@@@@%8$VYYVYVVVVVVVVVVVVVYYYYYYYYYYY$$YYxxxxYVVVVYVVVYYVVVVVVVV$#888888888888888888888888#8#######################################################$Y****=+~-....-+==*Y$$$$$$$$$$VY+::~::xVVVVVVVVVVVVVVVVx*=+++::::::+*YVV$VV$$$$$$$$$$$$VVVYYxxx**=++:::+++==*YV$##8888888888##8#88888888888$Yxxxxx**********xxxxxxxxxxxx*****x$###$$$$$$VVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888######8#88#8########888888888888888888888888888%%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVYVYVVVYVYVYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYVYVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$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=+::::~~::~::~::=xVV$V$$$$$$$VVYx*==+++::::::::::++=*YV##888888888##################88#$VYYxx***********xxxYVV$#$Vx****xV#$$$$$$VVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88#####8888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888#8##################88888888888888888888888888%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVVVVVVVVVVVYYYVYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#################888888%%%%%%%%%%%%%8#$VYYxx***===+~~~::::::::::::::::++++=====*****************======================================*=********************xYV$#VYVV$YYYYYVYYYYYxxxxxxxV####VxxxxxxY$#$*V#$YYYVVVYx**********xxxxVVVVVVV$$$###########8%@%Y+:::::::::::::::::::::::::::::~~~~:::#%%%88888################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$###################%%%%%%%888#$$*x$#$$VV$###$#$$$$$$$VVVVYx*=======================================================*YVVYxY##Yx$$$$VV##888#=#8%@%8############888#########$$$$VVVVVVVVV$#8%%@@@@@@%#$VVYVVYVVVVVVVVVVVVVVYYYYYYYYYYYV88YYxxxxxYVVYVVVVVVYYYYVVVYVVVVVV#8888888888888888888888######################################################$###$Vx***===++++==*Y$$$$$$$$$$$$$Vx:::xVVVVVVVVVVVVVVx=+:::::~~:~~~~--~::+xVV$V$VVYx*=++::::~~~~::::::++=*xV$##888888##############################$$$VVYxYVV$$###8888888#Yx***xV$$$$$$$$V$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#88####88888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888###################8888888888888888888888888888%%%%%%%%%%%%%%%@%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVYVVYVVVYVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVVYVYVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$V$$$$$$$$$$$$$$$$$$$$$$$$##$##$##########8888888%%%%%%%%%%%%%%%8#$VYYx*===+~-~:::::::::::::::::+++====**************************==========================*==***********************xxYV#$YYV$$YYYYYYYYYYxxxxxxxxV##$#VxxxxxxYY$#$$##VYV$VYxx***********xxxYVVVVVV$$$#########$$##88x::::::::::::::::::~~~~::::::::~~~~:::V%%%%888888##############$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##################$#%%%%%%%88#$$$$$$$$VYV$$$$$$$$$$$$$$$$$$Vx*=======================================================xVVYxx$#*+VV$$#######8V88%@@@%%%8888888#####8########$$$$$$$VVVV$#8@@@@@@%8#$VVVVVVVYVYVVVVVVVVVYVVYYYYYYYYYxY$%8VYxxxxxxYVVVYVVVVVVYYYVYVYYVVVVVV$#88888888888888888888#####################################################$##$$#$$Yx**======*xV$$$$$$$$$$$$VVVY::::*YVVVVVVVVVVVY++++++:::::~~~~--~:::+xVVVVYx==+:~~~~~~~~:::::+++==*YV$##8888#########################################8888888888888888$x****Y$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#8###8##8888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888888#######88####8###8#88888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVYVVVYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$#$#############88888888%%%%%%%%%%%%%%%%%8#$Vx*==+~-~~::::::::::~~~::::++===******************************************************************************xxxxxV$$YYV$VYYYYYYYYYYxxxxxxxxV#$V$VxxxxxxxYV#####$VVVVYxx***************xYVVVVV$$###VV$##VYVVVVx++::::::::::::::::::~:~~~~~:::::~~~~::*8%%%%888888#############$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$#####################%%%%%88##$$$$$$$$$VYV$$$$$$$$$$$$$VVVV$$VYx*=================+=+================+++++=============YVVxxV#V+YYV$####$#####888%@@@@@@@@@%%%%%888#######$$$$$$$$$$##8%@@@%%8#$VVVVVVVVYVVYVVVYVYVVVYYYYYYYYYxxxxV#%8VYxxxxxxxYVYVYYVVVVVVVYVYVVVVYVVVVVV$#8888888888888888888#8#################################################$##$$$$$$$$VYYxxxYYV$$$$$$$$$$$VVVVVVx:~--~+*xxYVVVVYY*=++++++++::::::::::::++*VVVY*==+:~--~~~~::++++++==**xV$#############$$##########################################88888888$x****Y$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######888888888888888888888888########################################################888888888888888888888888888888888888888888888888888888888888888888888888################8#8888888888888888888888888888%%%%%%%%%%%%%%%%%%@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYVVVYVYYYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$############8#8888888%%%%%%%%%%%%%%%%%%%8$Yx=+--~~~:::::::~~--~~::++===**************************************************************************x*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#$VVYVYVVVVVVVVVYVVVVVYYVVYYYYYYYxxxxxY$%@8YxxxxxxxxxYVVVVVYYVVVVVYYYYYYVVVVVVVVVV#8888888888888888888888##########################################$$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVV*+:----+========++++=======+++::::::++++=xVVV*==++:~-----~+++++++===*xxV$#########$$Vx***xxYV$$$$$####$$$$$$$$$$$$$#$$$$#$###########888888$x****Y$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888####8##############88888888888888888888888888%%%%%%%%%%%%%%%%%%%@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYYYYYYYVYYYYYYYYYYYYYYYYYYYVYVYYYVVVYYVVVVVVVVYVYYYYVVVVVVVVVVVVVVVVVVVVYVYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$############8##888888888%%%%%%%%%%%%%%%%%%%%8$Y=~-~~~::::::~~--~~::++====***********************************************************************x*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#########################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVYx*=+:+===+++++++++=====**=====+++++++=*xVVV*==+++::~~~~::+++++====***xxV$$$$$$$VYx*==+++++++===xV$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########88888V*****V$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888#8######88#########888888888888888888888888888%%%%%%%%%%%%%%%%%@%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$V$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVYYYYVYVYYVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYVYYVVVYVYVYVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$#########88##88888888888%%%%%%%%%%%%%%%%%%%%#$$x:-~~~:::::~~~~~:::++===**xx*x***x**x**************x****x************************************x*xxxxxxxxxxxxxxYV#$YV$#VYYYYYYYYYYxxxxxxxV###xY$$YxxxxxxxY$$$$$$$$Yxx*************xxY******x$$#V*==*YYYx===+++++++++:::::::::++:::::~~~~::::::::::~~:V%%%8888888###########$$$$$$$VVVVVVVVVVVVVVVVVV$$$$$$$$$###############888888%8#$#888#Y**Y###$$$YxV$#$VYV$VYYYV$$$VYVVYY$$Yx***==++++++++++++++++++++=++++++++++++++++++++++=+=====YVYxY#VxYxY$$V*==x$##88$$YYVVVV$####$88%%%%@@@@@@@@@@@%%8#$VVYYYYVYYVYVVVYVVVVVYVVVVYYYYYYYYYYxxxxxxY$%@%$YxxxxxxxxxxxVVVYVYVYYYVVVVVYYYVYVVVYVVVVVVV$#888888888888888888888888888######################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVV*===++++++++++===========*YYYxxxxxYV$$Vx==++++:::::++++++++======******xxx**==++++++++++++++x$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888#x****x$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######8888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888##################888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$V$VVVVVVVVV$VVVV$$V$VVVVVVVVV$$$$$$VVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVYYYYVYVVYVVVVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$VVV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVYVVVYVVVYYVVYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$########888888888888888%%%%%%%%%%%%%%%%%%%#$$$Y+~~~~:::::::::::+++==*x*x*xxx*xxxxxxxxxxxx*xx*xxxxxxxxxxxxxxxxxxxxxx*****************xx*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$$$$$$$$$$##$$$$$$VYYYYYYYYYYYYVYYVVYYVVVVYYVYYYYYYYYxxxxxxxxV8@@8VxxxxxxxxxxxxYVVVVVVVYYYYVVVVVYVVYVVVVVVVVVVVV$$#88888888888888888888888#8####################################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVV*==++::::+++++==========**Y$$$$$$$$VYx*==+++::+++++++++++++++++===========++++++::::++++++++=*YYVV$$$$$$$$$$$$$$$$$VVVVV$$$$$$$$$#####88#Y*****V$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######88888888888888888888888#########################################################88888888888888888888888888888888888888888888888888888888888888888888888888####8##############88888888888888888888888888%%%%%%%%%%%%%%%%%%%@%@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$V$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYYYYYYYYYYYVVYYYVYVYVYYYYYYYYYYYYYYYYVYVYYVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$V$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYVYYYYVYYYYYYYYYYYYYVYVYVVYVVVVVYYVVVVVVVVVVVVYVVVVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$###########88888888888888%%%%%%%%%%%%%%%%%8#$$$Vx:~~~~::::::::::++==*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY$$##V$#$YYYYYYYYYYxxxxxxxYYV#$Yx$#YxxxxxxY$$$Y*Y$$Vxxx****************V8#Vx**xY=+++++++====***====++::~~~::::::+++::~~~~~~:::::::::~~~~*8%%%8888888#########$$$$$$$$VVVVVVVVVVVVVV$$###########8888888%%%%@@@%%88888$YV88888#Y**$#$VVVVxY$$VVVVVYYxxxxxxxYYYVYY$$Y**====+++++++++++++++++++++++++++++++++++++++++++++=====YVYxV$xVVYV$Y***x$#####VVYYYYVVVV$#$VVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVYYYYYYYYYYYYYxxxxxxxxV#%@%#YxxxxxxxxxxxxxYVVVVVVVYYYYYVVVYVVVYVYVVVVVVVVVVV$$#88888888888888888888888888##############################$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVx=++:::::::++++++++========*xYVVYYxx==++++++++++++++===++++:::::+++======+++++:::::::++++++++====**xYVV$V$$V$$VVVVVVVVVVVVVVVV$$$$$####888V*****xV$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######8888888888888888888888##########################################################888888888888888888888888888888888888888888888888888888888888888888888888888################8##88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$V$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$VVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVVVYYYYYYYYYYYYYYYYYYYYYVVVYVVYVYVVVVVVVYYVYYVYYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVYYYYYYYYYVYYYVYYVVYYVVVVVYVYVVVVYYVYVVVVVYVYVVYYVYVYVYVYVVYVVYVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$##########888888888888888%%%%%%%%%%%%%%%%8#$Y*=+:~~~~~::::::::++=**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxYY####$$#VYYYYYYYYxxxxxxxxxxxYV$$$$VxxxxxxYV$V=:+Y$$x********************x#%8$Y*+:::::::++==******==++::~~~::::::+++::~~~~~~:::::::::~~~~~x8%%8888888#########$$$$$$$$VVVVVVVVVVVV$$###########8888%%%%@@@@@@%%8###88#VV$8888##$xx$$VYYYVYxVVYYYYVVYxxxxxxxxYYVYYV$V*======+++++++++++++++++++++++++++++++++++++++++++++====*YYxY$YV$YYVVYxxxV$V####VYYYYYYY*YVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYxxxxxxxxxxY$%@@%VxxxxxxxxxxxxxxxYVVVVVVVYYYYxYVVVVVYVVVVYVVVVVVVVVV$$$#88888888888888888888888888###########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVY*++::::::::~~~~+::::+++++========+++::::::++++++========+:::::::::++++====++++++++++++++++========****xVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$###888$*****xV$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888888888888888888888#########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888##8#############8##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$#####$#######$$$$$$$$$VVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYYYYYYYYYYYYVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$################$#$$#$#$$#$#$##$##$#$##$###$#$##$#######$#$$$$#$$##$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVYVYYVYVVYVVYVYVYYYVYYVVVVYYVVYVVVYVVYVVVVYYYYYVYYYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$##########8888888888888%%%%%%%%%%%%%%%%8$Y=~.-~~~~~~~:::::::+=***xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVV$####$YYYYYYYxxxxxxxxxxxxxxxxYYYxxxxxxxV$$Y=*V$$Yx**********************Y8%%$=:::~~~~:++=******==++:~~~~~::::+++++~~--~~~::::::::::~~~-~x8%%888888#########$$$$$$$$VVVVVVVVVVV$##88888####88%%%@@@@@@@@@%%88###8#$VxY$888#8##VV#$VYYYVVYVVYYYYYVYxxxx***xYYVYYV$Y*====++++++++++++++++++++++++++++++++++++++++++++++++=+==YVYx$VY$YYV##$VxVYV$#8#VYYxxxYYVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxY$%@@%#YxxxxxxxxxxxxxxxYVVVVVYVVYYYYYYYVYVYYVVVVVYVVVVVVVVVV$$$#888888888888888888888888888##########################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVY*++:::~~:::::~---:::::::+++======++::::::::++++=====***==++:~~~~::::+++==========****xxYYYxxxxx**********YVVVVVVVVVVVVVVVVVVVVVVVV$$$$#####88$x*****V$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######8888888888888888888888##########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888#8######8##########8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$#$#################$$$$$$$VVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVYYYYYYVYVYYVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$V$$$$VV$V$$VVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#################$######$###$#########$####$$$#$#######################$$$##$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYVYVVVVVVVVVVVVVVVVVYVVVVYVYYYYYYVVYVYVVYVVVYVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$###########8888888888888%%%%%%%%%%%%%%8$x:--~~~:~~~~~:::::+=*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYxxxxxxxxxYYYYYYYYYYYYYYY$YV$###VYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxYV$$$$VYx*************************x$%%x+:~~--~::+==****===+:~~~~~:::::+++++~---~~:::::::::::~---~~x8%8888888#######$$$$$$$$$VVVVVVVVVV$##88888####8%%@@@@@@@@@%%%888####$VVx*Y#888####YY$$YYYYY$V$VYxxxxYVxx******xYYYYYVx*====+++++++++++++++++++++++++++++++++++++++++++++++++++=xVYx$$Y$YxY###VxYYYV$#$*YxxxxxYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxx$8@@@8VxxxxxxxxxxxxxxxxxYVVVVVVVYYYYYYYxYYVVYVYVVVVVVVVVVVVVVV$$$#888888888888888888888888888888#################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVx++::::::+:++++:::::::::++==***===++++::+++==***xxxxx****=++:~--~::+++=*xxYYVVVVV$$$$###8888888####$VVYYYYYVVVVVVVVVVVVVVVVVVVVVVV$$$$$####888$x*****V$$$$$$VVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888##########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888####88####8#######88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$#$###################$$$$$$$$$$VVVVVVVVVVVVVYYVYYYVYYYYYVYYYYYYYYYYYYYYYYVVVVVVVYYYVVVVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###################$###$##$###$#$##############$###################################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVVVYVVVYVYYYYYYYYVYVYVVVVVYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$##########8888888888888%%%%%%%%%%%%%%%$*:~~~::::::~::::::=*YYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYVVYV$##$YYYYYYxxxxxxxxxx*xxxxxxxxxxxxxxxxxxxYYYxx*****************************Y##=::~..-::+===*===++::~~-~~::+=*====+::~~~::::::::::::~--~~~~*#8%888##$VVYxxxxxxxYYVVVV$VVVVVV$$#888888##88%@@@@@@@@@@%%888888#$VVYVVYY$##8888#$x*V#VYYYYV$$$Vxxx*xxYx*******YYVYYY*=====+++++++++++++++++++++++++++++++++++++++++++++++++++=*YVxV$*$VxY$##YxxxxVV##Y$Yx*xxYVVYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxY$8@@@%$xxxxxxxxxxxxxxxxxxYVVVVVVVVVYYYYYYYxYVVVYVYYVVVVVVVVVVVVVV$$$#8888888888888888888888888888888##################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Y=+:::::+++===+++:::::+=**YYVVVY*=======**xxYYVV$$VVVYxx**=++:~~:++=*YV$$###8888888888888888888888##$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$###8888$x*****Y#$$$$$VVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888888888888888888888##########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888##8#############8##888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$#$############################$$$$$$$$$$VVVVVVVVVVVVVVVVYVYVYYVVYYVVYVVVYVYVVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$$###################$#$##########$###############$#######################################$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYYYVYYYYVYVVYYYYYYVVVVVVYVVVVVVVVVVVVVVVVVV$$$$$$###########888888888888%%%%%%%%%%%%%8Y+::::::::::::::::+*YYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$*xV$#$YYYYxxxxxxxxxxxxx****x**xxxxxxxxxxxxxx**********************************xYY=:~~-~::+++++++::::::~--:::*V$VY===++::::::::::::::::~~~~~~~=Y#$Vx=+:~---.......--~:+*YVVV$$#88888888%%@@@@@@@@@@%%8#$##88#$VVYYV$YYV#$#8####$xY###$$VVV$$#$VxxxxxYx*******xYVYxx*=====++++++++++++++++++++++++++++++++++++++++++++++++++++=YVxY$*$VxY$##YxxxxYYV88#V***xYVVYxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxY$8@@@%#YxxxxxxxxxxxxxxxxYxxVVVVVVVVVVYYYYYYYYYYYYYVYYVVVVVVVVVVVVVV$$$$#88888888888888888888888888888888#8################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Vx*====***xxx*==++++=*xYV$$$$$VVx**xxYYVVVV$$#####$$$Vxx**===+==*YV##8888888888888888#############$$$$$$$$$$$VVV$VVVVV$$$$$$$$$$$$$$####88888$x*****Y##$$VVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888##########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888#######8#######8##8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $#$#$####################################$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVYVYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$###$#############################$##############################################################$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVVVVVVVV$$$$$$###########8888888888%%%%%%%%%%%8#$x=::::::::~~:::::::=xYVYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$*:*V$#VxxYYxxxxx*xxx*****************xxxxxxxxxx**********************************xx=+:::~:::::::::::::::~::::=YVVY*==++++:::::::::::::::~~~~~~~:::~~---------------... .~*V$#8%%%%%%@@@@@@@@@@%%%8#$$V$####$YYYYVVVY$#$V$#88###YV$$####$VV$$$$VxxxxxY********YVYx*=====+++++++++++++++++++++++++++++++++++++++++++++++++++++=xVYx$xVVxY$##YxxxxYYY#V#$x***xVVYxxxxxxxxxxxxxxxxxxxxxxxxYxxYxYxYxxxxxxxxxxxxx*xxxY$8@@@@8VxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVYYYYYYYYYYYYYYVYYVVVVVVVVVVVVVVV$$$#88888888888888888888888888888888888###############$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$VVVVV$$$#$x=====*xV$$##$$VVVVVYYVVVV$$$$$$$$$$$$##$Yxx****xY$#8##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####88888$x*****V##$$$$VVVVVVVVVVVVVVVYVYVYVYYVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888###########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888####8#8#####8#8##88#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #############8#############################$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVVVVVVVVVVVVVV$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$#####################################################$##$##############################################$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVVVVYVVYYYYYYYYYYYYYYYYYYVVYVVYVVVVVVVVVVVVVVVVV$$$$$$############88888888%%%%%%%%%%8#x+~~::::::::~-~:::::+*YYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$*+*Y$$Yxxxxxx*x*************************xxxxxxxx*************************************===*xYY*=**********=+::::+=====+++++++++::::::::::::~~~~~~~~~------------~~~~~~~~~--..~x#%%@@@@@@@@@@@%%%88888$YY$#$$VVYYYYV$VV$#$VV$######$YxY#####VVV$#$$xxxxxYx*******YVVx*====+++++++++++++++++++++++++++++++++++++++++++++++++++++++xVY*VYYY*x$##VxxxxxYY$x#$Y***xVVxxx*x*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*x*****xY$%@@@@8$xxxxxxxxxxxxxxxxxYYYYYVVVVVVVVVVVVYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVV$$$#888888888888888888888888888888888888################$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$x***xY$##8##$$$$$VVVVVVVV$$$$$$$$$$$$$###$$VVVV$$$$$$$$$$$$$$$$$$$$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######88888$x*****V88#$$$$$$VVVVVVVVVVVVVVVVVVVVYYYYVYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYVYVYYVYYVYYYVYYYYVVVVV$$$$$$$$$$$$$$$$$$$$$$$$#####8888888888888888888888###########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888##########8########888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ##########88888####8#8####8####8###8#########$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$V$$$$$$$$$$$$#$##$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$#$$#######$######################################################################################################$$$$$$VVVVVVV$$$$VVVVVVVVVVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYVVYVVVVVVYVVVVVVVVVVVVV$$$$$$##########8888888%%%%%%%%%%8#x:-~::::::::~--~~:::+=xYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV#$YYV$Vxxxxxxx*****************************xxxxxxxxxx**********************************xY#%@@%$Yx*xxxxxxxxx*+:::+++++++++++++++::::::::::::~~~~~~~--~~~~~~~~~~~~~--~~~~~~~----=8@@@@@@@@%%8##$##88##$YYV$VYYYYYYV$VY$#$VYY$#8#####VY$#####$VYV$#$YxxxxYY*******YVVx*====+++++++++++++++++++++++++++++++++++++++++++++++++++++++*YY*VVYVxx$##VYxxx*xY$x#$Y***xVYx******x*x*xxxxxxxxxxxxxxxxxxxxxxxx**********xY#%@@@@%$YxxxxxxxxxxxxxxxxxxxxYYVVVVVVVVVVVYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$$$$$#88888888888888888888888888888888888#8############$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VYYV$#8888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######888888Vx****x$88#$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVVYYYVYYYYVYYYVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVYVYYYYYVYYYVVVVVV$$$$$$$$$$$$$$$$$$$$$$####8888888888888888888888###########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888###############8#8#888888888888888888888888%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######8#8##888###8######8##8#################$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$VVVVVVVVV$VVVVVVV$$$$$$$$$$V$$V$$$$$$$$$$$$$$$#$###########$###$#$###$####$##$##$$$$$#$#$$$#$$$$$$###################################################################################################################$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYVVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVVVVVV$$$$$$############8888%%%%%%%%%%8V+--:::::::::~~~~:::++*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$VYYYxxxxxxx*******************************xxxxx*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############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888###8##8####8######88888888888888888888888%%%%%%%%%%%%%%%%%%%%%@%@%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ####88#8#8#8#88#8####8######8#8###8###########$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$VVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################$$$$##$#$$#$##$##$#$####################################################################################################8##############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYVVVVVVVVVVVVV$$$$$$$##########88888%%%%%%%%%#x~.~:::::::::::::::++=xYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx***********************************x*******xx************************************xV#%@@%%#$Vxxxxxx+:~~::::::::::::++++++::~~~:::~~~~~~~~~~------. .--------~*###$$$$VYYYYYYYY$$$Yxx$$$VYYYYY$$V##$YYYYV#################$VYYV$$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~.~:::::::::::::++++*YVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx************************************************************************************xY$8@@@@%%#$Vxx*+~~:::::~~::::::::::::~~~~~~:~~~~::::~~~----.. .--------~*$$#$$$$VVVVYYYYY$$Y*=Y$$$YYxxYV$V$$VYYYYY$#$$###V###########VYYY$$Yx**xxx******YYY*===+++++++++++++++++:+:++:+::::::::::::::+:++:++:++++++++++++*==*VVxxxYV$#$Vx**=*V$V*=====***=====*==*****************************xY$8@@@@@@8Vx**x*xxxxxxxxxxxxxxxxxxxxY$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVV$#88##88888888888888888888888888888888############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$###$########################$##$###$###################$VVYYYxYYYV$$$#VY***x$88888$$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$VV$V$VVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$##8888888888888888888#888###########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888###8######8##8###888888888888888888888888%%%%%%%%%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 888##888888##8######8########################$#$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################################$#$###$#########################################################################################################8####8#8##############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVYYVVVVVVVVVVV$$$$$$###########88888%%%%%%8V+.-::::::::~:::+++==xYVYYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx***********************************************xx***x***********************************xV#%@@@@@%8#V*+::::::::::::::::::::~----~~~~~~~::::~~~~---... ..----------~=Y#####$VVYYYYYxY$$YxY$$$VxxxxY$$$VYYYYYYV#VY$$$VV##$$$$$####$YYY$$Vx**xxx*====*YYx*===+++++++++++++++:++++:+++:::::::::::::::::::::+::++++++++++**==VY*YxxYV$$$Y**=*VVY=======================*********************xY#%@@@@@@8Vx**xx*xxxxxxxxxxxxxxxxxxxxYV$$$$$$$$VVVVVVYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVVV$88888888888888888888888888888888888######################$######$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########################################################VVYxxxxxYYYVV$$$###$Vx*x#88888#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$V$$$$VVVV$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$###8888888888888888##88888###########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888##8#####8#####8##8#88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #8888##8888#8#8#######8#####8#######8#########$##$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################################################################################################################################################8####88###8##########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVYVVVVVVVVV$$$$$###########888888%%%%%%#x:-~:::~~--~::++===*YVYYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxYYYYVVVVVVVVVVVVVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx*********************==========*****************x***xx**x***********************************YV#%@@@@@%V=::::::::::::::::::::~-----~~~~~~~~~~~~~~--------------------~:+*V###$$VYYYYYYxxYV$##$$$VYxxxY$#$YYYYYxxY#$YV$Y**$#$YYYYYV####VYY$$$x**xxx*====*xx*====+++++++++++++++:::+::+::::::::::::::::::::::::::++++++++++=*+=Yx=YxxxY$V$$x***VVY========================******************xV8%@@@@@@%$x******xxxxxxxxxxxxxxxxxxxxxxYYV$$$$$$$VVVVVYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVVV$8888888888888888888888888888888888###############################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###$##########################################################VxxxxxxYYYVVVV$$$#####VxY888888##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$VV$$$$$VV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####888888888888888888#88############################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888##########8######8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#88#8##88#88##8#88##########8######8###########$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############################################$###########################################################################################################8##8##8###8##########$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVV$$$$$$############88888%%%%%#x+::::~-.--~:+==***YVVVYYVYYYYYYYYYYYYYYYYYYYYxYYYYYYxxxxxxxxYYYVVVVVVVVVVVV$$$VVYV$$VVVVVV$$VVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxx**************===================***************xxx*xx****************************************xY$8%@@%V=:::::::~~:::::::::::::~~~~~~------------------------------~+x$$###$VVYYYYxxxxxxxYV$$$VYxxxxxY$$YxxxxxxY$#VY$V**Y$$YYYYYYY$###$YYV$$Yx*xxx*====*xx*===++++++++++++++++:+:::::::::::::::::::::::::::::+:+++++++++++++=YY*xxxxx$YxVV***YYx=========================**************xY#%@@@@@@@%$Y******xxxxxxxxxxxxxxxxxxxxxxx***xYV$$$$$$VVVVVYYYYYYYYYYYYxxxYYYYYYYVVVVVVVVVVVVVVV#888888888888888888888888888888888######################$##$###$##$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#############################################################$xxxxxYYYYVVVV$$$$$$####$$####$$$$$$$$$$$$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##888888888888888888###8############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#####8#8#8###8#888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#888#888###888###8##########8##################$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$V$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################################################################################################################################################8##8#8##88##8##############$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYYYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYYVVVVVVVVVV$$$$$#$##########88#88888%%%8V*++++::~::+=*****YYVVVYYYYYYYYYYYYYYYYYYYYYxxxYYYYYxxxxxxxxYYYVVVVVVVVVVVVV$$VVYY$$VVVVVV#888888###$$$$VVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxx***********========================*************xxx*x***x****************************************xY$#$*+:::::~~~~~~~~~:::::::::~~~----~~~~---------------------~:=Y$####$VYYYYYxxxxxxxxxxxYYYxxxxxxxY$VxxxxxxxV##VV$VVV$$VYxxxYYY$##$#VVVV$Yx*xxx*====*x*===++++++++++++++++++:::::::::::::::::::::::::::::::+++:++++++++++=YV**x**xV$Y*Vx**Yx==========================************x$8%@@@@@@@%#Y********xxxxxxxxxxxxxxxxxxxxxx***====*YV$$$$$VVVVYYYYYYYYYYxxxYYYYYYYYYVVVVVVVVVVVVVV$#88888888888888888888888888888888###################$###$#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##################################################8#8##########$YxxxYYYYYVVVVV$$$$$$$$#$$$$$$VVVVVVVV$$$$$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###8888888888888888#8##88############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888##8####88#######8#8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88#88888#88888##8############8###8#8#############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#######################################################################################################################################################888888888#####88###8#####$#$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVYVYVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYVVYVVVVVVVVV$$$$$##############888888%%%8#Yx==++++==*****xxYVVYYVYYYYYYYYYYYYYYYYYYxxxxYYYYYYxxxxxxxYYVVVVVVVVVVVVVVV$$VYYV$$VVVVV$888888888888888888####$$$$$$VVVVVYYYYYxxxxxxxx*********===========================*************xx**x*********************************************==++::::~~~-----~~~~~~::++======++==**===+:~~------~~~~:::+=*xV$V*x$VVYYYYxxxxxxxxxxxxxxxxxxxxxxxYY*xxxxxxV$#$$$VV$$$VxxxxxxxY$####$$VYVx**xxx*==========++++++++++++++++++:::::::::::::::::::::::::::::::++++++++++++++=xY*=**=*x$$xxx**x*=========================**********xV#%@@@@@@@@%#Y**********xxxxxxxxxxxxxxxxxxxxx*===++++++*Y$$$$VVVVYYYYYYYYYYYYxxYYYYYYYYYYVVVVVVVVVVVVV$88888888888888888888888888888888####################################$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############################################88##8##8#8#8#8####YxxYYYYYYVVVVVVV$$$$$$$$$$VVVVYYVYVYVVVV$$$$$$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#8888888888888888#88##88############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888#8####8####8#######8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8##8888#88###8#8#####8###########################$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########################################################################################################################################################888888888888####88###8#8###$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVYVVVVYVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYVYYYVVVVVVVVVV$$$$$$###############88888%%%88Vx*********xxxYYVVVVVVYYYYYYYYYYYYYYYYxxxxxxYYYYYYxxxxxxYYVVVVVVVVVVVVVVVVVVYxY$$VVVVV$888888888888888888888888888888########Vxxxxxxx**********============================*************xxxx*********************************************++::::~~~~~-. .-~~~=$#$VYxx**xxxxxxxxxxxxx****====*******xxxYV$Y*xVxYYYxxxxxxxxxxxxxxxxxxxxxxx*xYVxxxxxxV$#$$$VYVx$$Yxxxxxxxx$####$$VYYx*****==========++++++++++++++++++++:::::::::::::::::::::::::::::+:++:+++++++++++xY*=====*V$$Yx**x===========================******xV#%@@@@@@@@@@8Vx*********xxxxxxxxxxxxxxxxxxxxxx*==++++++++++*YV$VVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV#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$VYYxxxxxxxYYVVVVVVVYYYYYYYYYYYYYYYYYxxxxxxYYYYYYYYxYYxYYVVVVVVVVVVVVVVVVVVYxY$$VVVVV$#8888888888888888888888888888888888888#Yxxxxxxx********===============================*************xxxx*x******************************************++::::~~~~--. .-~~:V%@@@@%8#$YYx*****x**********************xxV$$$$VYYxxxxxx*xx*x*xx*x***********xYxx*xxY$$$$$$YY$V$VxxxxxxxxxV#####$VYxx*****========+++++++++++++++++++++++::::::::::::::::::::::::::::+:++:+:+++++++++xY=======*$$$Yx***==========================*=**Y#%@@@@@@@@@@@8Vx*********xxxxxxxxxxxxxxxxxxxxxxx*==++++++++++::+*YVVVVVVYYYYYYYYYYYYYYYYYYYYYYYVVVVVVVVVVVVVV#888888888888888888888888888888#########################################$$#$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############################8#8#88888#88#8888#88888#8#8#8888#####8#VYYYYYYYYVVVVVVVVVVVVVVVYYYYxxx*****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%%8VVVVVVVVVYYYVVVVVVYVYYYYYYYYYYYYYYYYYxxxxxxYYYYYYYYYYYxYVVVVVVVVVVVVVVVVVVYxxY$$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#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#######$$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYVYYYVVVYVYVVVVVVVV$$$$$$##############8#8888888#VVVVVVVVYYYVVVVVVVVVYYYYYYYYYYYYYYYxxxxxxxxYYYxYYYYYYYYYVVVVVVVVYVVVVVVVVYxxx$$VVVVVV#8888888888888888888888888888888888888#Yxxxxxx*x*******==============+====================*********xxxYYxxxx****************************************+:::::::~~~~~~:::x%@@@@@@@@@@@@@@@%%8$VYx*****xxxxxxYYYYYYYYYYV$##$VYxxx*************************xx***x$$$$V##Vx*V$$Yxxx***xxY$$=*$$$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###$#$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVYVYYYYYYYYYYYYYYYYYYYYYYYVVVYVVVVVVVVV$$$$$$$$$##############888888$VVVVVVVVYYVVVYVVVVVYYYYYYYYYYYYYYYxxxxxxxxxYxxYYYYYYYYYVVVVVVVVYVYVVVVVVYxxxY$VVVVVV$88888888888888888888888888888888888888$xxxxxxxx*******====================+=++++++==========*********xxYYYxxxx**************************************+::::::::::::::+=x$#%@@@@@@@@@@@@@@@@@@%8#$VYYYYVVVVVVV$$$$$$###8###$Yxx*****************************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#$VVVVVVVYYYVVYYVVVVVYYYYYYYYYYYYYYxxxxxxxxxxxxxYYYYYYYYVVVVVVVYVVYYVVVVVYYxxxV$VVVVV$88888888888888888888888888888888888888#Yxxxxxx*******================+++++=+++++++++===========********xxYYYYxxx*x**********************************x+:::::::::++++=*****YV#%@@@@@@@@@@@@@@@@@@@@%%8##$$$$$$#$YYV$$$$$VYV##$Yxx***************************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##########8################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########################################################################################################################################################888888888888#8#88#88888888#888#####$$$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVYYVYYYYYYYVYYVYVYYVVVVVVVVVVVVVV$$$$$$$$#################888$VVVVVVVVYYVVYYYVVVVVYYYYYYYYYYYxxxxxxxxxxxxxxxxYYYYYYYYVVVYVVVVYYVYVVVVVYxxxY$VVVVV$888888888888888888888888888888888888888$xxxxxxx******=================++++++++++++++++============*******xYYYYYYxxx*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$VVVVVVVVYVVYYYVVVVVYYYYYYYYxxxxxxxxxxxxxxxxxxxxxYYYYYYVVVVVVVYYYYYYVVVVYYxxxV$VVVYV#88888888888888888888888888888888888888#Yxxxxxxx*****==================+++++++++++++++++++============*****xxYYYYYx****x******************************:~~~~~~~:::++**************xYV#%%@@@@@@@@@@@@@@@@@@@@@@@%%%88888#$VVVV$$$##$YYYxVYYx****************x$$$xxY$##Yx=*VVVx*******=*Y$$$$$Y***======+++++++++++++++++++++++++++++++++++++::::+::::::::++:++:::::::+++++++++++++++++++++==*$##$YVY========*V#%%@@@@@@@@@@@@@@@%8$Yx**************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###VVVVVVVVYYVYYYYVVVVVYYYYxYxxxxxxxxxxxxxxxxxxxxxYYYYYYYYVVVVVVVYYYYVVVVVYYYxxY$VVVYV#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*********xxxYYVVV$$$$###########################################################################################################888888888888888###################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888#8#888#8##8#8#88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888%88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%%%%%%%%%%%% 888888#8#88888888###8######8#8#88#################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#########################################################################################################################################################88888888888888888#88888#888#888#######$#$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVVYVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#################8#$VVVVVVVYYVYYYYVVVVVYYYYxxxxxxxxxxxxxx*xxxxxxxxxYYYYYYYVVVYVVVYYYYYYVVYYYYxxxVVVYYY$888888888888888888888888888888888888888#Yxxxxxx*x****================+++++++++++++++++++++++++===========***xxxYx*****xYxxxx**x**********x*xx*x****+:~~~--...-~::+++=*********************xV$8%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%888888#Vx******x$$Y$V$##Vxx**VVVY************xYYYx**========++++++++++++++++++++++++++++++++++++++++++++++++:++++++:+:+:++++++++++++++++++++++=*x$##$YV$V*======x#8%%%%%%%%8##$Vx**=****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******=====+++++++::::::::::~~~~:=xYYYYYYYYYYxxxxxYYYYYYYVVVVVVVVVVVV$8%%%%%888888888888888888888##################################$$$$#######$####$$$#$$#$$#$$#$#$#$$##$$#$##$##################################8#88#88#8####888#88#8#888#888#8#88##8#8#8#88#888#888###888888#YYYYYYYYYVVVVVVVVYYYxxxx*****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***xxxxxxxxYYYYYYYVVVVVVYYYYYYYVVYYYYxxY$VVYYV#888888888888888888888888888888888888888$xxxxx**xx***=================+++++++++++++++++++++++++++==========***xxYx****xxxxxxxxxx*x*x**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$VVYYYYYYYYYVVYYYxxxxxxxxxxxxx****xxxxxxxxYYYYYYYVVVYVYVYYYYYYYVYYYYxxxVVYYYY$888888888888888888888888888888888888888#Yxxxxxxx*****================++++++++++++:+::+::+++++++++++=========**xxYx******************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########$####$#$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$#$#$##############$$VVV$VVVVYYYYYYYYVVYxxxxxxxxxxxxxx******xxxxxxxYYYYYYYVVVYVYYYYYYYYYYYYYYxxVVVYYY$8888888888888888888888888888888888888888$xxxxxx*xx****==============+=+++++++++:::::::::::++++++++++++========***xY***********==********xYYYYxxxxxxxxx=+:~~~~~::+=***************************************xY$#8%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#Y******V$$$#$##$$#$**VVVVx***********==================+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==*Y$##Vx=V$Y====================******************xxxxxxxxxxxxxxxxxxxxxxxxxxxx***xxxxxxxxxx******=====++++++:::::::::~~~~~~~:*YYYYYYYYYxxxxYYYYYYYYYVVVVVVVVYYV#%%%%%%8888888888888888888#####################################$###########$$$$###$####$#############$####################################888##8888###88#8#8#8#8888888888888#8#8#8888888#88###8##8888888$YYYYYYYVVVVVVVVVVYYYYYYYYYYYVVVV$$$$$$#########################$###################################################################################8888888888888####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888#8#88##8#8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888%%%%%%%%% 8888888888888#88#8#8#88###8#88#88###8##############$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$#$#$#######################################################################################################################################################888888888888888888888888888888888888###########$##$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$##$#############$$VV$$VVYYYYYYYYYYVVxxxxxxxxxxxxxx*******xxxxxxYYYYYYYYVVYVVVYYYYYYYYYYYYYxYVVYYYV#888888888888888888888888888888888888888#Vxxxxxx*x*****==============+++++++++::::::::::::::++++++++++++=======***xYx**********=========***xxYYYYYYxxxxxx********xxxx******************************************xYYV##8%%%@@@@@@@@@@@@@@@@@@@%%%88#VY*******YVV$$$$$$$$$Y**VVVV*************===================++==+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==*Y$##$YY$$*===================****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxx***xxxxx**************=====++++++:::::::::~~~~~~~:=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##############$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$#$$################$VVVV$VVYYYYYYYYYVVYxxxxxxxxxxxxx*******xxxxxxxYYYYYYYVVVYYYYYYYYYYYYYYYYxxVVYYYY$8888888888888888888888888888888888888888#xxxxx**x******=============+++++++++:::::::::::::::::+++++++++++=======**xYx*********=============***xxYYYxxxxxxxxxxxxxxxxxxxx***********************************************xxYVV$$##########$$$VVYYxx***********VVV$$$$$V*$$x**xxxx****=********==============================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====xV$$V$$Vx====================***************xxxxxxxxxxxxxxxxxxxxxxxxxxxx**************************====++++++:::::::::~~~~~~~~:*YYYYYYYYxxxYYYxxxxYYYYYVYVVVYYY$8%%%%%8888888888888888888###################################$#############$###$#######$#$##$##$####$####################################8888#888888888#8888888#8888888888888#8#8#88#8###8##8##8#88888888$YYYYYVVVVVVVVVVVVVVVVVVVV$$$$$$$################################################################################################################888888888888####################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8888##8#888#8888888888888888888%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888%%%%%%%%% 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*****=====++++++::::::::~~~~~~~~:=YYYYYYYYxxxYxxxxxYYYYYYVVVVYYYY$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%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%88888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%8%88888888%%%%%%%%% 88888888888888#88#8#####8#8#8#8#8###8##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$$$#$#######################################################################################################################################################8#888888888888888888888888888888888888##############$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#$###$##$###########$VVV$$VYYYYYYYxxYVVxxxxxxxxxxxxx*******xxxxxxxYYYYYYYYVYYYYYYYYYYYYYYYYYYxYVYYYY#8888888888888888888888888888888888888888#Yxxxxxxx******============++++++++++:::::::::::::::::::+++++++++++=======*xYY***********=========************xxxxxxxxxxxxxxxxxxxxxxxx*****************************************************************************YVY$$$xxV$V$$********************=================================+=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===============================**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***============********xxxx*****====++++++::::::::~~~~~~~~~+xYYYYYYxxxxxxxxxxYYYYYYYYVVYYYY#%%%%%88888888888888888888##################################################$#############$############################################888#8#88#888888888888#8888888888888888#88888888#8##888#88888888888$VVVVVVV$$$$$$$$$$$$$$$$$$######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##8###################################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#88##8#888888888888888888%%%%%%%%%%%%%@@%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88%88888888888%%%%%%%%% 8888888888888##8#8#8#8#88##88##8###8###################$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####$##$$$$$$$$$$$$$$$$$$$$$$$$#$$$$#$$$#$#########################################################################################################################################################8888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$$##$###############$$VVV$VYYYYYYYxxxVVYxxxx*xxxxx*********xxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYxYYY#8888888888888888888888888888888888888888#Vxxxxx*x******===========+++++++++++::::::::::::::::::::++++++++++++======*xYYxx*x***********=********************xxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************************xVYV$Vx*xV$$$$x***********************=====================================+=++++++++++++++++++++++++++++++++++++++++++++++=======+============================*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**========++++++++++====*xxxxxxYYYxx****====+++++:::::::::~~~~~~~~:xYYYYYYYxxxxxxxxxxYYYYYYVVYYYYV8%%%%%8888888888888888888#################################################$##############################################8#8#8########88#8##8#8888888888888888#888888888#888##88#8#888888#888888888888888#$VV$$$$$$$$$$$$$$######88888888##########################################################################################################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*********xxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYxxxYxYYY$88888888888888888888888888888888888888888#xxxxxxxx*****==========++=+++++++++:::::::::::::::::::::++++++++++++======*xYYx*xxx******************************xxxxxxxxxxxxxxxxxxxxxxxxxxxx*********************************************************************YVYVVVx*xV$V$$V***************************===========================================+==++++++++++++++++++++++++++++++=++==================================*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*===========++++++++++====*xxxYYYYYYxx*****====+++++::::::::~~~~~~~~:xYYYYYYYxxxxxxxxxxYYYYYYYYYYYYV8%%%%8%888888888888888888##8##8########################################$###$#####$#####################################8###8########8#888#88#88888888888#8888888888888888#888888#88##8#8#88888888888888888$$$$$$$$$$#$######8888888888############################################################################################################88888888#888##################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#888#8#888#88888888888888888888%%%%%%%%%%%%%@@%%%%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888%88%%%%%%%%% 8888888888888#8#8#8#8888888#888##8##88##################$##$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$########$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$##########################################################################################################################################################88888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$#$###################$VVVVVVYYYYYxxxxxVVxxxx***************xxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYxxxYxxxYY#88888888888888888888888888888888888888888$xxxxxxx******==========++++++++++++:::::::::::::::::::::++++++++++++======*xYYxxxxx******************************xxxxYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxx***********************************************************xV$VVVY**xV$VVV$x******************************==*=======****============================+=++++++++++++++++++++++++====================================********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****=============+++++======**xYYYxxxxxx*****=====++++:::::::~~~~~~~~~+xYYYYYYYxxxxxxxxxxYYYYYYYYYYYY$8%%%8%%888%88888888888888####8######8#####################################$#$####$#####################################8#888########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************xxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxxxxYxxYYV88888888888888888888888888888888888888888#Vxxxxxxx******==========+++++++++++::::::::::::::::::::::+++++++++++========*YYxxxxxx***********=*====***************xxxYYYYYxxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxxxxx*******************************************x$$$VVx**Y$$$$V$V*********************************************=========================+++++++++++++++++++======================================*********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********=====================***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$$VV$V$VVVV$VVVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$####################$VVVVVVYYYYYYxxxxYVYx******************xxxxxxxxxxxxxYYYYYYYYYYYYYYYxxxxxxYxxYYY#88888888888888888888888888888888888888888#xxxxxxx******==========++++++++++++::::::::::::::::::::::+++++++++++========*YYxxxxxxx**********=========*************xxYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*****************************Y$$$Vx***Y$$$$$$Vx**************************************xx************================+++++++++++++++++++++++============================********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx******************xxxxxxxxxxxx*xxxxxxxxxxx******========+++++:::::::~~~~~~~~+xYYYYYYxxxxxxxxxxxYxYYYYYYYYYV8%%8%%8%%%%%%%%%888888888#888#8#####8#########8#######################################################################88888#8#8#8##8888##8888888888888888888888888888888888888#88##88#88888888888888888888888####888888888888888888############################################################################################################88888#8#8###################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#888#8#8888#88888888888888888%%%%%%%%%%%%%@@@@@%@@@@%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% 8888888888888#8888###8888#8#88888##8####################$###$#$$$$$$$$$$$$$$$$$$$$$$$$$$$###$####$$$$$$$$$$$$$$$$$$$$$$$#$#$##$$$#$##########################################################################################################################################################888888888888888888888888888888888888888888############$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$$$VV$$V$VVVVVVVVVVVVVV$$$$$$$$$$$$$#####################$VVVVVYYYYYYxxxxxYVYx*****************xxx*xxxxxxxxxxYYYYYYYYYYYYYYYxxxxxxxxxxYV888888888888888888888888888888888888888888$xxxxxx*x*****=========++++++++++++++:::::::::::::::::::::+++++++++++========*xYxxxxxxxxx*****=*============***********xxYYYYYYYYYYYYYYYYYYYYYxYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**********xV$$$Vx***YV$$$VVYx**************************xxxxxxxxxYYYYYYxxxxxxxx***********========+++++++++++++++++++++++++========*******====********xxxxxxxxxxxxxxxxxxxxxYYYYYYYYxxxxxxxxxxxxxxxxxxxxYYxxxxxxxx*******xxxxxxxxxxxxxxxxxxxxxxxxxxxxx*******==========++++:::::::~~~~~~~~=YYYYYYxxxxxxxxxxxxxxxYYYYYYxY#8%88%%%%%%%%%%%888888888888888#8##8#8#8##############################$##########$####$###############################8888888#8##88888888888888888888888888888888888888888888#888#888#8888888888888888888888888888888888888888888#############################################################################################################888888##888#################################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888%%%%%%%%%%%%@@@@@@@%%%@%%%%%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%% 888888888888#88##88888#88#8##8#88#88########################$#$$$$$$#$$$$$$$$$$$$$$$$$$$##$#######$$$$$$$$$$$$$$$$$$$$$$$#$$$########$#####################################################################################################################################################8888#8#88888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$$$$V$V$V$V$$$$$V$$$$$$$$$$$$$$#####################VVVVVVYYYYYxxxxx*YVx*********************xxxxxxxxxxxYYYYYYYYYYYYYxxxxxxxxxxxxY#888888888888888888888888888888888888888888Vxx*xx*x*x****=========++++++++++++++::::::::::::::::::::++++++++++++=========xYxxxx***********===============********xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVY$$Yx**xYV$$$xx*x************xxxxxxxxxxxxxxxxYYYYYYYYYYYYYYxxxxxxx***************===+++++++++++++++++++++++++++=*******************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#8#888888#8##8##################$####$$#$$$$$$$$$$$$$$$$$$$$$$$$$##########$$$$$$$$$$$$$$$$$$$$$#$##$##############################################################################################################################################################8#8#888888888888888888888888888888888888888888###########$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$$$$$V$$$$$$$$$$$$#####################VVVVVVYYYYYxxxx*xYYx********************x**xxxxxxxxYYYYYYYYYYYYYxxxxxxxxxxxxYV#88888888888888888888888#88888888888888888#Yxxxxxxx******=========+++++++++++++++:::::::::::::::::::++++++++++++=========xYYYYxx**********=================******xYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVY$$YxxxxVVx$$xxxxxxxxxxx**xxxxxxxxxxxxxxYYYYVVVVVVVYYYYYYYYxxxxxxxxxx***************===+++++++++++++++++++++++++*xxxxxxxxxxxxxxxxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxxYYYVYYYYYYYYYYxxxxxxxxx*********************xxxxxxxxx*x****===========+++:::::::::~~~~~~:*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#888888888888888888888888888888888888888888#xxxxxxxx******=========+++++++++++++++::::::::::::::::::++++++++++++==========xYYYYYx********====================****xYYYYYYYYYYVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYxYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV$$$YxxxxVV=$$xxxxxxxxxxxxxxxxxxxxYYYYYYYVVVVVVVVVVVYYYYxxxx****************************===++++++++++++++++++++++=xxxxxxxxYxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxYYYVVVYYYYYYYYYYYYYYYxxx***************************xxxxxxxx****==========++++:::::::~~~~~~~:*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****=========================**xxYYYYYxxxYYVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxYxYYYY$$#VYxxxYV$*$$YxxxxxxxxxxxxxxYYYYYYYYVVVVVVVVVVVVVYYxxxx****=======++++=========************===+++++++++++++++++++*YYYYYYYYYYYYYYYYVVV$$$$$$VVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxYYYYYVVVVYYYYYYYYYYYYYYYYYxxx**********===========********xxxxxxx****=========++++::::::::~~~~~~:xYYYYYxxxxxxxxxxxxxxxxYYxxxx$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$8888888888888888888888888888#88888888888888Yxxxxxxxx******========++++++++++++++++:::::::::::::::::+++++++++++++==========xYxYYYYx*****=========================****xxxxxxxxxYYVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY$#$VYYYYY$$*$$YxxxxxxxxxxYYYYYYVVVVVVVVVVVVVVVVYYxxxxx******=====+++++++++++++++++===**********===++++++++++++++++=YYYYYYVVVV$$$################$$$$$VVVVVVVVVVVVVVVVVVVVVYYYYYYYYVVVVVVYYYYYYYYYYYYYYYYYYYYxxxx********============********xxxxxxxx******=====+++::::::::~~~~~~~+xYYYYxxxxx*x*x**xxx**xYYxxxY8%%%%%%%%%%%%%%8888888888888#8#8#######8##############################################################8888##8#888#8#88888888888888888888888888888888888888888888888888888#8888888####8#################8888888888888888888###########################################$###################################################################8888#####################################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888##888#8888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%% 8888888888#8#88#8#8888#8#8888#8##888########################$$#$$##$$$$#$$$$$$$#$$##$$$######$####$$$$$$$$$$$$$$$$$#$$$###$###$###########################################################################################################################################################8#88#88888888888888888888888888888888888888888#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########88888888#888#$VVVVVYYYYxxxx****YY***********************xxxxxxxxYYYYxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888#88888888888888#Yxxxxxxx*******=======++++++++++++++++:::::::::::::::::++++++++++++++=========*xYxYYYYxx*****=========================********xxxxxxxYV$$$$$$$$VVVVVVVVVVVVVVVVVVVYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYV$#$VYYYYY$Y=$#VYYYYYYYYYYYYYVVVVVVVVVVVVVVVVVYYxxxxxxx******=====++++++++++++++++++++++===*********==+++++++++++++=YV$$$$##################################################$VYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxxxxxxx*x**x***===**********xxx*xxxx*******===++++::::::~~~~~~~~=YYYYxxxxx********x**xxYxxxx$8%%%%%%%%%%%%%%8888888888888888#####################################################################8##88#8#88#888888888888888888888888888888888888888888888888888888888888#8#8####8##################8888888888888888888#8############################################################################################################8888#8###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*****========================***************xxV$$$$$$$$$$$$VV$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYVV$$$$VVVVVVV==$$VYYYYVVYVVVVVVVVVVVVVVVVVVVVVYYxxxxxxxxx*****======++++++++++++++++++++++++++===********==+++++++++++V##############################################88##88#####$VYYYYYYYYYYYYYYYYYYYYYYYYVYYYYYYYYYYYYYxxxxxxxxxxxxxx******xxxxxxxxxxxxxxx*******==+++:::::::~~~~~~~~*xYYxxxx*************xYYxxxY8%%%%%%%%%%%%%%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#8#888888######################$$$#####$##$####$#$#$$$$#$$$######$$$##$$$$$$$$$$#$#$$#$$$$$##$$##$######$####################################################################################################################################################8#88#8##888888888888888888888888888888888888888888##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8888888888888$VVVVVYYYxxxx*****Yx*====*****************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY#888888888888888888888888888#8#8888888888888$xxxxxxxx******=======++++++++++++++++++::::::::::::::++++++++++++++++=========xYYxxxxxxxx******====================*********************xV$$$$$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV$$$$VVVVVV$VV$VVVVV$$$$#####88###$$$VVVVVYYYxxxxxxxxxx******=====++++++++++++++++++++++++++++++===*******==+++++++++V###############################################8#888#8#888#$VYYYYYYYYYYYYYYYxxxYYYYYYVVVYYYYYYYYYYYYYYYxxxxxxxxxx*****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$VVVVYYYxxxxx*****xx*====****===**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV#8#88888888888888888888#888###8#888888888888Vxxxxxxxx******=======++++++++++++++++++:::::::::::+++++++++++++++++++========*YYxxxxxxxxx******=====================**=*==****************YV$$$$$$$$$$$$$$$$$$$$$$$$$$$V$$V$$V$$$$$$$$$$$$$$$$$$$$$####$$$$$$$$$$$$$$$$$$$$$$$$$$$##8888888888888888888#$VYYxxxxxxxxxxxxxxx******====++++++++++++++++++++++++++++++++====*****==+++++++V##############################################8####88888#888##$VYYYYYYYYYYYxxxxxxxxxxxxYYYYYYYYYYYYYYYYYYYxxxx***********xxxxYYYYYYYxx******==++++:::::~~~~~~~~~+xxxxxxx**************xYx*x$8%%%%%%%%%%%%%%8888888888888##8#88##8#88############################$####$##$#######################88#888888888888888888888888888888888888888888888888888888888888888888888888###########################88888888#8##############################################################################################################8#8888####################################################################88888888888888888888888888888%888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888888888#8888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%% 8888888##8#8#8888####8##8#88#88#8#888#8####################$$#$###$$#######$#$#$$$#$#$$######$$$$##$$$$$$$$#$$$#$$$#$#$$###$##############################################################################################################################################################8##8888888888888888888888888888888888888888888888###########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$########8##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%%%8888888888888888888888888#88888888888888888888888888888888888888888888888888888888#8888888#888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%% 888#8#8888#8#8####8##88#88##8#888##888##################################$$##$#$##$$##########$$$$#$$$$$$$$$$$$#$##$$$##$$#################################################################################################################################################################8#88888888888888888888888888888888888888888888888##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########888888888888$VVVVYxxxxxx******xx============**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxY##8888888888888888888888888#8#88#88#88888888#Yxxxxxxxx*****========+++++++++++++++++++:::::::::+++++++++++++++++++=======**YYYxxxxxxxxx*****==================****xx***********************xV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##888888888888888888888888888888888888888888888888888888888888#YxxxxxYxxxxxxxx******=====++++++++++++++++++++++++++++++++++++=====***=+++=V################################################8#8#8888888888888##$VVYYYYYYYxxxxxxxxxxxx******xxxYYYYYYYYxxxx******===========*****xxx******===+++::::::~~~~~~~~:*xxxxxx***************x**Y8%%%%%%%%%%%%%%888888888888#8#8888#8#8#8############################$#######$##$####################8888888888888888888888888888888888888888888888888888888888888888888888888#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============**********xxxxxxYxxxxxxxxxxxxxxxxxxxxxxxxxV###888888888888888888#8888#888##88#888888888#xxxxxxxxx*****========+++++++++++++++++++:::::::::+++++++++++++++++++=====***xYYYxxxxxx********==================****xxxxxxxxx*****************xV$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######88888888888888888888888888888888888888888888888888888888888888888#YxxxxYYxxxxxxx******=====++++++++++++++++++++++++++++++++++++++=====**=++=$#################$###$$$#$####$$$###############8888888888888########$$VYYYYYYxxxxxxxxx*x**********xxxYYYYYYYxxxx***================**********==++++::::::~~~~~~~~+xxxxxxx**************xx*x#8%%%%%%%%%%%%%8888888888888#8#8#8##88#88###############################$########$#$################8#8888888888888888888888888888888888888888888888888888888888888888888888888##88##8#######################88#8########################################$##############$###############################################8##########888##8###############################################################88888888888888888888888888888%%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$YxxYYYYxxxxxx*****======++++++++++++++++++++++++++++++++++++++++=====*=*V####################$#$$$$$$$#$$$$$################888888################$VYYxxxxxxxxxxxx***************xxYYYYYYYYYxxx**===============********===++++:::::~~~~~~~~:=xxxxxx***************x**V88%%%%%%%%%%%%88888888888888#8#88###8##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########################$######$#$####$#####$#$##########$$$#$$$$$$$#$$#$$###$$$#$#####$############################################################################################################################################################8#88888888888888888888888888888888888888888888888888#########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$########88#8888888888$VVVYYxxxx*****===*x=============************xxxxxxxxxxxxxxxxxxxxxxxxxxxxY###888888888888888888888#8888#8##8#8#88888888$xxxxxxxxx*****=========++++++++++++++++++++:::::+++++++++++++++++++====****xxYYYxxxxx***********=================*****xxxxxxxxx*******===*********xV$$$$$$$$$$$$$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888#$YYYYYYxxxxxxx****=======++++++++++++++++++++++++++++++++++++++++++====V$#################$##$$$$$$$$$$$$$VV$$$######################################$Yxxxxxxxxx*x******************xxYYYYYYYYYYYYx**=============******====+++:::::::~~~~~~~:*xxxxx****************x*Y#8%%%%%%%%%%%%88888888888888888##8888#8##############################$#$###$$##$###################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***********============***=**********xxxxxxx*****======*******xV$$$$$$$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYxxxxxxx****=*====+++++++++++++++++++++++++++++++++++++++++++++==V$##############$###$$$$$$$$$$$$$$$VVVV$$$######################################$VYxx***********************==**xxYYYYYYYYYYYYxx***=========******====+++::::::~~~~~~~~=xxx*xx***********x***xxx$88%%%%%%%%%%%%8888888888888####8#8##88################################$##########$#################888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8#8#888####################8#####8#############################$#####$##$$##$#################################################################8#88#################################################################88888888888888888888888888888%888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%% 8##8888#8#88#8#8###8888#8#888##8#88888########################$##$###$####$##$###$###########$##$#$$$$$$$$###$####$#$######################################################################################################################################################################888888888888888888888888888888888888888888888888888########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########8##888#8888888#VYVYYxxxx*****===*x============*************xxxxx*xxxxxxxxxxxxxxxxxxxxxx$##8888888888888888888888#888#8###8#8888888888Vxxxxxxxxx******=========+++++++++++++++++++++++++++++++++++++++++====*****xYVYYYxxxxx*********=**===========****************xxxxx****===========*****V$$$$$$$$$$$$$###888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#$VYYYYxxxxxx******=====++++++++++++++++++++++++++++++++++++++++++++++xV#############$####$$$$$$$$$$$$VV$$VVVVVV$$#######################################$Vxx***********************===**xYYYYYYYYYYYYYxxx***====*******=====+++::::::~:~~~~~:*****************x****xxY888%%%%%%%%%%%8888888888888888#8##88####8###########################$##$###$#$####$$###############888888888888888888888888888888888888888888888888888888888888888888888888#888#88888888##############88#####################################$#####$##$##########$#$#$#$#####################################################8#8##8##8############################################################888888888888888888888888888888%888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%% #8##8##88##8#88##8#8#8#888#8##8888##8################################$######$##$$##$#########$$#$$$$$$$$$$##$##$#$$######################################################################################################################################################################8##8#88888888888888888888888888888888888888888888888#########$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########8888888888888#VYVYYxxx******====x=++==========*=**********xxxxx**xxxxxxxxxxxxxxxxxxxxx##8888888888888888888#8888#8888##88#8888888888Vxxxxxxxxx******========++++++++++++++++++++:++++++++++++++++++++=====****xxYYYYYxxxxx****====================***************xxxxxx***============*===*V$$$$$$#####888888888888888888888888888888888888888888888##88##888888888888888888888888888888888888888888888#$VYYxxxxxxxx******====+++++++++++++++++++++++++++++++++++++++++++++=x#############$$#$$$$$$$$$$$VVVVVV$VVVVVVVV$$#######################################$VYx***********************====*xYYYYYYYYYYYYYYxxxxxx**********===+++::::::::~~~~~:=*********=*******x***xxx$88%%%%%%%%%%%8888888888888888##88#8##8############################################################888888888888888888888888888888888888888888888888888888888888888888888888888#8#88888888888#############8#8###################################$##$#############$$#$#$##$#$#############################################8########################################################################888888888888888888888888888%%%888888888888888888888888888888##888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%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####8888888888888888888888888888888888888888888888888#8###########88#8#8888888888888888888888888888888888888#$$VVVVVVVV$$VVVVVVVYYxx**==+++++++++++++++++++++++++++++++++++++++*##############$$$$$$$$$$$VVVVVVVVVVVVVVVVVV$$#########################################$Vx************************===*xYYYYYYYYYYYYYYYYYYYYxxxx******==+++::::::::~:~~~+=**********==*********xxV88%%%%%%%%%%%888888888888888#88#888#8#####################################$########$##############888888888888888888888888888888888888888888888888888888888888888888#888888#88888888888888888#8######8####################################$##$#######$#$###$#$#$#$#######################################################8#8#8####8############################################################8888888888888888888888888888%88888888888888888888888888888888#888888888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%% #88####88#8##88#88###8#8##8##88##8#8#8########################$###$###########$#$################$#$$$$#$$####$#$##$$####$###############################################################################################################################################################888888888888888888888888888888888888888888888888888#8#########$$#$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$############888888888888VYVYxxx********===*+++++===========********xxxxx***xxxxxxxxxxxxxxxx*xxxV##88888888888888888888888888##8######888888888Vxxxxxxxxx*******=======++++++++++++++++++++++++++++++++++++++=======****xYVVYYYxxxxxxx*=======================***************xxxxxx***===============***V8888888888888888888888888888888888888888888888888#8##8##############8####88888888888888888888888888888888888888#####$#$$###########$$$VVYx*=++++++++++++++++++++++++++++++++++=$#############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVV$$#$#######################################$VYx***********************===*xYxxxxxYYYYYYYYYYYYYYYYxxx****==++::::::::::~~~:=*********===*********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##########$#$#$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#########88888888888888VYYYYx*********===*+++++===========********xxxx***xxxxxxxxxxxxxxxx****x$##88888888888888888888#88888#####8##8888888888Yxxxxxxxxx*******=======+++++++++++++++++++++++++++++++++++++========****xVVYVYxxxxxxx**=======================***************xxxxxxx**================**x$888888888888888888888888888888888888888888888###88########################88888#8#888888888888888888888888888######$$$$$$$$$$$$$#########$$Vx*=++++++++++++++++++++++++++++++=$#############$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVV$$$###############################$##########$Yx**********************===*xxxxxxxxxxYYYYYYYYYYYYxxxx****==++::::::::::~~~+=********=====*******xxx$888%%%%%%%%%%888888888888888##8##8#8#############################################################888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888888#888#88#8##################################$#$##$##$####$$#$$$#$###$##$##$##$###########################################888#8#################################################################88888888888888888888888888%%8%88888888888888888888888888888#88#####88888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%% #8#88#8#88##8#888##888##8#8#8##88##88##################################$$######################$##$$#$$$#$##$##$$#$######################################################################################################################################################################8#888888888888888888888888888888888888888888888888888#########$###$#$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########8888888888888$YYYxx*********====++++++==========********xxxx*****xxxxxxxxxxxxx*****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#########$###$##$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##########8#888888888888$YYYxx********=====++++++============*****xxxxx****x*xxxxxxxxxx*******Y##8888888888888888888#8##8#88########8888888888Yxxxxxxxxx*******========+++++++++++++++++++++++++++++++++=========***xxxVVVVVYxxxxxxx***=======================********xxxxxxxxxxxxxx**==++++++========***V888888888888888###88888888888888888888888888######8###########################88888#888888888888888888888888#########$$$$$$$$$$VVVVV$$$$########$Vx=+++++++++++++++++++++++++V##############$$$$$$$$$$$VVVVVVVVVVVVVVVVYVVVVV$$#$################################$##########$Yx****=*******************YYYxxxxxxxxxxxxxxYxxxxxxx****==++:::::::::~~~~+=*******=====**x****xxxY#888%%%%%%%%%8888888888888888#888#88#################################$#######$##################888888888888888888888888888888888888888888888888888888888888888888#888888888888888888888888888888888##88###8################################$###$########$$#$#####$###$###$##########################################8###################################################################8888888888888888888888888888%8888888888888888888888888888888#8#####8#88888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%% 88####88#8#88####88##8#8#8#8##8##88##8##################################$######$##################$$$$#$$#$##$#$##########################################################################################################################################################################8#8888888888888888888888888888888888888888888888888############$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###########8888888888888$YYYxx********=====++++++============*****xxxx******x**xxxx*xxxx******V##88888888888888888888#888#888#######8888888888Vxxxxxxxxx********=======+++++++++++++++++++++++++++++++===========***xxYVVVVYxxxx********======================********xxxxxxxxxxxxxx**==+++++++=======***Y#888888888888######8888888888888888888888888##################################888#8##8#88888888888888888888###########$$$$$VVVVYYYYYYYYYVV$$#######$Y*+++++++++++++++++++++++Y##############$$$$$$$$$$$$VVVVVVYYVVVVVVVVYVYVVV$$#####################$#############$##########$Y************************YYYYxxxxxx*x**xxxxxxxxxxx****==++::::::::~~~~:==***=**======*x****xxxx$888%%%%%%%%%88888888888888888###8##############################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88################################$####$####$######$#####$#####$##$#$#########################################8########8###########################################################88888888888888888888888888%%888888888888888888888888888888888########88888888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%% 8#8#88#88#8##8#8#8#8#88##88####88#8#8######8################################$################$#######$###$########$#####################################################################################################################################################################8#8888888888888888888888888888888888888888888888888888###################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##########8888888888888#YYYx********======++++++============******xxx*********x***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#8#######8888888888Vxxxxxxxxx********========+++++++++++++++++++++++++++=+==========****xxYVVVYxxxx*x**********==========**========*********xxxxxxxxxxxx****==++++++++======***V#8#88888#8###########888888888888888888888888#######################$#####################88888888888888888##########$$$$$VVYYYYYYYYYYYYYYxYYYV$$#####$x=+++++++++++++++++++*$##############$$$$$$$$$$$$$VVYYYYYVVVVVYYYYYYYVV$$$#$##$################$$$$######################$Yx**********************xYYYYYxxx*****************===+++::::::~~~~~~+===*=========**x***xxxxY#888%%%%%%%%888888888888888888#8#8#####################################$#$#$###################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8##########################################$$##$$####$#######################################################88###############################################################88888888888888888888888888%%8888888888888888888888888888888888#########8888#88888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%% 88#88#88#88##8#88#8#8###8####8####888#8#8########################################################$#$##$#####$#$######$###################################################################################################################################################################88#88888888888888888888888888888888888888888888888888##################$#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$############8888888888888YYYxx****=======++++++++============*******x************************x##888888888888888888888#888#8########88888888888$xxxxxxxxx********=========++++++++++++++++++++++++++===========*****xxVVVVYxYxxx**********===========***=======*********xxxxxxxx**x*****==++++++++======***x#888#8#8###############8888888888888888888888####################$#$$$#$###################8888888888888888###########$$$VVVVYYYYYYYYYYxxxxxxxYYYV$$####V*++++++++++++++++++=$##############$$$$$$$$$$$$$$VYYYYYVVVVVYYYYYYYYYV$$$####$#$##############$$$$$$$$########$$#$#######$Y***********************xYYYYYxx**************=====++++:::::~~~~~~:====*========**xx**xxxxx$888%%%%%%%%%88888888888888888#88#8########################################$##################8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888888888888888#8##########################$########$#$##$#$###$#$#$$#$#$########$#########################################8####8###########################################################8888888888888888888888888%%%88888888888888888888888888888888#8#8########88#888888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%% 8#8888###88#8##########88###8######888##############################################################$###################################################################################################################################################################################888888888888888888888888888888888888888888888888888888####################$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###########88888888888888VYYxx***========++++++++============******xx************************Y##888888888888888888#888##8####8#####88888888888#xxxxxxxxx********==========+++++++++++++++++++++++=+===========*****xYVVVYxxxxxxxx******=============****=====***********xxxxxxx********==+++++++++=====****$########################8888888888888888888888##################$$$$$$$$####################8888888888888888#########$$$VVVVVVYYYYYxxxxxxxxxxxxxYYVV$###V*+++++++++++++++++=$############$##$$$$$$$$$$$$$VVYYYYVVVVVVYYYYYYYVVV$$$#####$##############$$$$$$$$$$######$#$$########$Vx**=====*************==*YYVYYYxx********=*========+++::::~~~~~~~:+============***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#Yxxxxxxxxx********=========+++++++++++++++++++++++=============****xxYVVVxxxxxx*x********============********************xxxxxxx***=======++++++++++====****V#####8##############$####8888888888888888888888#################$$$$$$$$$$$#################8888888888888888888#####$$$$VVVVVYVYYYYxxxxxxxxxxxxxxxxYYV$##V*+++++++++++++++++V###############$$$$$$$$$$$$$$VVYYYYVVVVVYYYYYYYYYV$$$#####$#$############$$$$$$$$$$$$#$##$#$$$$#$######$x*======**********=*===**YYYYYYxx******==========+++:::::~~~~~~~+=============**xxxxYYYYY888%%%%%%%%%888888888888888888###8############################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#############################$#$###$#$####$#$$$$#$#$#$#$#$####$#$$$########################################8################################################################888888888888888888888888%888888888888888888888888888888888888################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%% ##8###########8###8######8###8####8###8############################################################$####$##$#############################################################################################################################################################################88888888888888888888888888888888888888888888888888888##################$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$$$############8888888888888#YYxx***=========++::+++==============******************************$####8888888888888888888###8###8######88888888888#Yxxxxxxxxx*******==========+++++++++++++++++++++++============*****xxVVVYxxxxxxx****=*==*============************xx*******xxxxxx**========+++++++++++====***x#################$$#$$$###8888888888888888888888##############$#$$$$$$$$$$$$$$$###############88888888888888888888####$$$VVVVYVVYYYYxxxxxxxxxxxxxxxxxYYV$#V=++++++++++++++++Y################$$$$$$$$$$$$$$VYYYYVVVVVVYYYYYYYYYV$$$$########$########$$$$$$$$$$$$$$$$#$$$$$#$$#$#####$Y*========********======*xYYYYYxx******==========++:::::~~~~~~~+============***xxxYYYYYY#888%%%%%%%%8888888888888888888888############################################################8888888888888888888888888888888888888888888888888888888888#88888888888888888888888888888888888888888888888################################$#####$##$#$#$$#$#$$$$#$$$##$############################################################################################################888888888888888888888888%%%88888888888888888888888888888888888################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%% #######################8########8#88#88############################################################$$$###$###############################################################################################################################################################################8#888888888888888888888888888888888888888888888888888######################$#$$#$#$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$#$###########88888888888888#YYxx**==========++::+++==============******************************$####888888888888888888##8#8##########88888888888#Vxxxxxxxx********==========++++++++++++++++++++++============******xxVVVYxxxxxxxx***=========*======***********xxxxx******xxxxxx*==========+++++++++++===***x$#############$$$$$$$$$$####88888888888888888888################$$$$$$$$$$$$$$$$$$#############8888888888888888888888##$$$VVVVVYYYYYYYxxxxxxxxxxxxxxxxxYYV$Y=+++++++++++++++x#################$$$$$$$$$$$$$VVYYYYVVVVVYYYYYYYYYYV$$$##$##############$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#####Vx=========*******=======*xYYYYYxx******========++:::::~~~~~~~:=============**xxxYYYYYY#888%%%%%%%%%888888888888888888##8##########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8############################$$#$#$####$#$#$$##$$#$##$$#$#$##$#$$$#$#####################################8#8#############################################################88888888888888888888888%%8%8888888888888888888888888888888888##################8888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%% 8##88##8##############8##8#8#######8888##############################################################$###################################################################################################################################################################################8#888888888888888888888888888888888888888888888888888#########################$#$$$$#$##$#$$##$$$#$$$$$$$$$$$#$$$$##$##############888888888888888Yxxx**==========++::+++==============****************************=x$####888888888888888888#8############8888888888888$xxxxxxxxx********=========+++++++++++++++++++++=============*****xxYVVVYxxxxxxxx***=========****==**********xxxxxxxx******xxxxx*==========+++++++++++++==***Y#############$$$$$$$$$$$####88888888888888888888##############$$$$$$$$$$$$$$$$$$$$###############88#88888888888#8##8####$$VVVVYYYYYYYYYxxxxxxxxxxxxxxxYYYVVx+++++++++++++++x#################$$$$$$$$$$$$$$VYYYYVVVVVVYYYYYYYYYVV$$$$$##$###$######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$###$Y*==========******=======*xYYYxxxx******======+++::::~~~~~~~:+============***xYYYYYYY$888%%%%%%%%%8888888888888888888#8############################################################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#8#88888#88###8######$$VVVYYYYYYYYYxxxxxxxxxYYYYYYYYYV=++++++++++++++*##################$$$$$$$$$V$$$VVYYYYVVVVVYYYYYYYYYYV$$$$$$$$$####$#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$##$#$Y*============****========*YYYxxxxx**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*xx**********=========+++++++++++++=***xV##########$$$$$$$$$$$$$$$$###88888888888888888888###########$$$$$$$$$VVVVVVVVV$$$$$#########################88##8888##88#8##$VVVYYYYYYYYYYxxxxxYYYYYYYYYYYVx++++++++++++++=$###############$##$$$$$$$$$VVVVVYYYYVVVVVYYYYYYYYYYYV$$$$$$$####$$#$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####$V*============*xx**====***xYYxxxxxxxxxx*====+++::::~~~~~~~~+===========****xYYYYYYYV888%%%%%%%%%88888888888888888888############################################################88#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888############################$#$$######$$$$$$#$$#$$##$$$$$#$######$####################################8##8##########################################################88888888888888888888888%%%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###8#888#$YYYYYYYYYYYYYxxYYYYYYYYYYYYVV*+++++++++++++=$##################$$$$$$$$$$VVVVVYYYVVVVVVYYYYYYYYYYV$$$$$$$$$#####$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$##$V*============*YYYx*====*xYYxxxxxxxxx***==+++++:::~~~~~~~~++=+=========***xYYYYYYYY#88%%%%%%%%%88888888888888888888##8#8######################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##############################$#$#$#$$#$#$#$$$$$$#$#$#$$#$$##$#$#$$###############################################################################################8##8888888888888888888888%888888888888888888888888888888888888888##################888888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%% #################8##8##########8###888#88############################################################$################################################################################################################################################################################8##88#88888888888888888888888888888888888888888888888888#######################$$##$##$##$#$$##$#$$$#$$#$#$$$$##$#$$$$#$###############888888888888888Vxxx*==========++:::++=============******=********************===$$####88888888888888888888###########8888888888888##Yxxxxxxxx*********========+++++++++++++++++++++============*****xxYVVVVYxxxxxxxx****=========**xxxxx*x*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##$#$#$$$$$$$$$$VVVVVVVVVVVVVVV$$$##########$##########################8#888#$Yx**====*xxYYYYYYYYYYYYVVV$V*++++++++++++V###################$$$$$$$$$$VVVVVYYYYVVVVYYxYYYYYYYYYV$$$$$$$$$$##$$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$x=+++++++++==*YVVYYYx*==*xxxxxxxxYYx*===++++:::~~~~~~~~:++++========***xYYYYYYYY$888%%%%%%%%888888888888888888888#8########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##############################$$$###$#$#$$$#$$#$#$#$##$#$#$#$###$###############################################################################################888888888888888888888888%%%88888888888888888888888888888888888888###################88888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%%%%@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%% #################8#################8#8##8#####8######################################################################################################################################################################################################################################8###88888888888888888888888888888888888888888888888888888#########################$#$###########$$$###$$###$######$#$##################8888888888888888#Y*xx*=========+++::++=============*****==********************==*$$$$##88888888888888888888###########8888888888888##Yxxxxxxxxx*********=======+++++++++++++++++++++============****xxxYVVVYYxxxxxxxx******=======*xxxxxxxxxxxxxxxYYxxxxxxxxxxxx*********========++++++++++++=***xxYV########$$$$$$$$$$$$$$$$$$$#####888888888888888888##$#$$$$$$$$$$$$VVVVVVVVVVVVVV$V$$$#########$$##########################88#8#8#Vx**=+++++==***xxYYYVVVV$$$$x+++++++++++Y####################$$$$$$$V$VVVVVYYYYVVVVYYxxxYYYYYYYV$$$$$$$$$$#$$$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x=+++++++++++*YVYYYYYx**xxxxxxxxxYx**===+++::::~~~~~~~:++=+========***xYYYYYYYY$888%%%%%%%%888888888888888888888###8#####################################################8##888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8###############################$$##$$$$#$$$$$$#$$$$$#$$$$$#$$$####$$#################################8########################################################888888888888888888888888%%%8888888888888888888888888888888888888#8###################88888888888888888888888888888888888888888888888888888888888888888888%%%%%%%%%@%@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%% ####################################88888#8###########################################################$#####$###$######################################################################################################################################################################88#88#8888888888888888888888888888888888888888888#88#888######################$#####$#$######$#$######$#########$#####$##############88888888888888888V**x*=========+++::++==============****==*******************===x$$$$$#88888888888888888#888##########8888888888888##Yxxxxxxxxxx*******========+++++++++++++++++++++============****xxxYVVVYYxxxxxx********=======*xxxxxxxxxxxxxYYYYYYxxxxxxxxxx***********=======+++++++++++=***xxYY#########$$$$$$$$$$V$$$$$$$$#####8888888888888888####$$$$$$$$$$$$$$VVVVVVVVVVVVV$$$$$########$#$$$#########################888888#$x***===++++++++==*xVV$$$$$$Y=+++++++++x####################$$$$$$$$$VVVVVYYYYVVYVVYxxxxxxxxxYYV$$$$$$$$$$$#$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*++++++++++++xYVYYYYxxxxxxxxxxxxxx**===++++:::~~~~~~~:++=+========***xYYYYYYYYV888%%%%%%%%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**x********======+++++++++++=***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$$$$$#88888888888888888888##########8888888888888####Yxxxxxxxxxx*******=======+++++++++++++++++++++============****xxYYYVVYYxxxxxx*********======xxxxxxxxxxxYYYYYYYYYYxxxxxxxxxx*x*********======+++++++++++=***xxYY##########$$$$$V$VVVVVVVVV$$$$#####888888888888888###$$$$$$$$$$$$$VVVVVVVVVVVVVV$$$$$$########$$$$$$$#$#####################88##8888#Y********==+++++++++=xV$###V*+++++++*$##################$$$$$$$$$$VVVVVYYYYYVYVVYYxxxxxxxxYYYV$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$V=+++++++:::+=YYYYYYxxxx**xxxxxxx**====++++:::~~~~~~~+++++=======***xxYYYYYYYV8888%%%%%%%88888888888888888888888#######################################################8#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88###############################$$#$#$$$#$$#$$$#$$$$#$$$#$#$$$$$$$#$$$############################8########################################################888888888888888888888888%%%8888888888888888888888888888888888888#888#####################888888888888888888888888888888888888888888888888888888888888888888%%%%@@@%%@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%% ####################################8888###############################################################################################################################################################################################################################################8#8888#888888888888888888888888888888888888888888888##88##############################$#$##$#$#$##$#######$######$####################88888888888888888V**x*====+===++++::+==============***===******************====Y$$$$$#8888888888888888##888##########8888888888888###Vxxxxxxxxxx*******=======++++++++++++++++++++++===========****xxYVVVVYYxxxxxx***********=*=*xxxxxxxxxxxxYYYYYYYYYYYYYxxxxxxxx*********======++++++++++++=**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#####################################################$##################################################################################################################################################################################8#88888888888888888888888888888888888888888888#888#8888########################$############$######$#$$##############$###############88888888888888888#*=**=====+=+++++::+==============*=*===******************====V$$$$$#888888888888888888###8########8888888888888####$xxxxxxxxx*********======+++++++++++++++++++++++=========*****xxYVVVVYYYxxxxx****************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##8##############################$##################$######$##$#################8888888888888888888x=*x*====+==+++++:++====================***************======V$$$$$#888888888888888#8888##########8888888888888#####Vxxxxxxxxx********======++++++++++++++++++++++===========****xxYVVVVYYYxxxx*****************xxxxxxxYYYYYYYYYYYYYYYYYYxxx*x***********=====++++++++++++=***xYYV###########$$$$VVVVVVVVVVV$$$$$#######888888888888#####$$VVVVVVVVVVVVVVVVVVVVVV$$$$$$$######$$$$$$$$$$$$$$$$$$#$$###############8#88#88#$x*************=====+++++*Y$Y=+++=V####################$$$$$$$$VVVVVVVYxxYYVVVYYxxxxxxxxxxYV$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$VVVVV$$$$$$$$$$$$$$$$$$$*+::::::::::=YYYYYYxx*************====+++:::~~~~~~:+++++======****xYYYYYYYY#8888%%%%%888888888888888888888888########################################################88#88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#88############################$$#$$#$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$#########################8######################################################88888888888888888888888%%%8888888888888888888888888888888888888#8888#######################888888888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%% ####################################888##8####8#######################################################################################################################################################################################################################################8##88#8888888888888888888888888888888888888888888#8#88#88###############################$#########$###############$###################8888888888888888888$*=**====++=++++::++=====================*************=======V$$$$$#8888888888888888##8888########8888888888888#####$xxxxxxxxxx*******======++++++++++++++++++++++===========***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********======+++++++++++++++++++++++==========***xxxYVVVVYYYYxxxx****************xxxxxxxYYYYYYYYYYYYYYYYYYxx*************======++++++++++++=***YYYV$##########$$$$VVVVVVVVVVV$$$$$$########888#888888####$$$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#8#88################################$############################$################88888888888888888888Y==**===++++++++:++======+++==================****=========*$$$$$$##8888888888888888#8888########8888888888888#####8$xxxxxxxxx********======+++++++++++++++++++++++=========***xxxYVVVVYYYYYxxx********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##8###########################################################################################################################################################################################################################################888888888888888888888888888888888888888888888#8888#88#############################################################################8#888888888888888888$*==*===++++++++:++======++++============================+=*$$$$$$###88888#888888888#8888########8888888888888#####8#Vxxxxxxxxx*******=======++++++++++++++++++++++=========***xxxYVVVVYYYYYxxxx*******xx******xxxxxYYYYYYYYYYYYYYYYYYYYxx*************======++++++++++++=**xYYYV############$$$VVVVVVVVVVV$$$$$V$###########8####8###$$$$VVVVVVVVVVVVVVVVVVVV$$$############$$$$$$$$$$VVVVVVV$$$$$$$$$$$$$$$$$$$######8##8###x++++++===***********=++++=x=*$#####################$$$$$$$VVVVVVVYYxYYYYYYYxxxxxxxxxxxYVV$$$$$$$$$$$$$$$$$$$$$$$$$$$$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******xxxYxYYYYYYYYYYYYYYYYYYYYxx*************=====+++++++++++++=**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%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888888#8#88##########################################################################################################################################################################################################################################8#8888888888888888888888888888888888888888##88#888#8##############################################################################88888888888888888888V*==*=++++++++++++======++++============================+=*$$$$$$#####8#8###88888888#8888#########8888888888######88#Vxxxxxxxx********========++++++++++++++++++++==========**xxxxVVVVVYYYYxxxx*******xxxx****xxxYYYYYYYYYYYYYYYYYYYYYYxxx************=====+++++++++++++=**xYYY$############$$$VVVVVVVVVVV$$$$$VV$###################$$$$$VVYVVYYYVVYYVVVVVVV$##############$$$$$$$$$VVVVVVVVVVVVVV$$$$$$$$$$$$$$$########8#8#$*++++++++++==*********=++++xV###############$######$$$$$$$VVVVVVYYxxYYYYYYxxxxxxxxxxxxYV$$$$$$$$$$$$$$$$$$$$$$$$$$$$V$V$VVVVVVVVVVVVVVVVVVVVVV$$$$$$$V=~~~~::::::::+xYYYYxxxx*******======++++::~~~~~:++=+=====******xYYYYYYYV888888%%%%8888888888888888888888888######################################################88#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8###############################$#$$$$$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$#####################8###################$##############################8888888888888888888888%%%%8888888888888888888888888888888888888888#############################8#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#Vxxxxxxxxx*******==========+++++++++++++++++==========***xxxYVVVVYYYYYxxx********xYxxxxxxxxYYYYYYYYYYYYYYYYYYYYxxxxx***********======+++++++++++++=**xYYV##############$$VVVVVVVVVVV$$$$$VVV$##################$$$$VVVYYYYYYYYYYYYVYVVVV###############$$$$$$$VVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$$############V=++++++++++++++=******=++=V$$#######$###########$$$$$$$$$VVVVVYYYxxYYYYYYxxxxxxxxxxxYVVV$$$$$$$$$$$$$$$$$$$$$$VVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVV$$$V$V=~~~~~~~~~~~~:*YYYYYxxx******======+++:::~~~~~:++=======*******xYYYYYYY#888888%%%8888888888888888888888888#######################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888#8###888#####################$##$$#$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$####################8#################################################888888888888888888888%%%%88888888888888888888888888888888888888888##############################888##888888888888888888888888888888888888888888888888888888888888%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88888####888#8######################################################################################################################################################################################################################################88##88888888888888888888888888888888888888888#8888888#88############################################################################888888888888888888888#x====+++++++:::++=====+++++==========================++=*$$$$VV$############888888888888#######88888888888######8888#Yxxxxxxxx*******============++++++++++++++++=========**xxxxYVVVVVYYYYYxx********xYxxxxxxxYYYYYYYYYYYYYYYxxxxxxxxxxxx**********======+++++++++++++=**xYY$##############$$VVVVVVVVVVV$$$$$VVV$$#$###############$$$$VVVYYYYYYYYYYYYYYVVVV$###############$$$$$$VVVVVVVVVVVVVVVVVVVV$$$$$$$$$$$$#############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##############################################################################################################################################################################################$#######################################8#8#88888888888888888888888888888888888888888888#8#88#88############################################################################8888888888888888888888Y*====++++++:::++====++++++==========================+++*$$$VVV$############888888888888#####8##8888888888######88888$xxxxxxxx*******============++++++++++++++++==========*xxxxYVVVVVYYYYYxxx********YYxxxxxYYYVYYYYYYYYYYYxxxxxxxxxxxxx*x********======+++++++++++++=**YYY$###############$$VVVVVVVVVV$$$$$VVV$$#$$$#############$$$$VVVYYYYYYYYYYYYYYYYVV$###############$$$$$VVVVVVVYVVVVYVVVVVVVVVV$$$$$$$$$$$$############x++++++++++++++++=*****=Y$$$#######$##$$$#$$$$$$$$$$$$$$VVVVVVYYxxYYYYYYxxxxx*xxxxxxYVVV$$$$$$$$$$$$$$$$$$$VVVVVV$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV*~~~~~~~~~~~~~=xYYYYYxx******======++:::~~~~~~++=======*******xYYYYYYYV888888%%88888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8888#8###########################$$$#$#$$$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$##################88#################$#$#$#########################888888888888888888888%8%%888888888888888888888888888888888888888888##############################8###8#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################88##8##############################################################################################################################################################################################$####$#########################################8888888#8888888888888888888888888888888888888888888#88#8############################################################################88888888888888888888888$x====+++++:::::+===+++++++==========================+++*$$$VVVV############8888888#8#8#######8#8888888888######88888#Yxxxxxxxx*******===========+++++++++++++++++=========**xxxYVVVVVYYYYYYxx********xYxxxxxYYYVYYYYYYYYYYYxxxxxxxxxxxxxx*********======+++++++++++++=*xYYV################$$VVVVVVVYV$$$$$$VVVV$$$$$##$#########$$$$VVVYYYYYYYYYYYYYYYYYVV$###############$$$$$$VVVVVVVYYYVVYVVVVVVVVVVVVV$$$$$$$$#$##########V=+++++++++++++++++=***xV$$$$######$$$$$$#$$$$$$$$$$$$$$VVVVVVYYxxYYYYYYYxx*x*xxxxxxYVVVV$$$$$$$$$$$$$$$$$$VVVVVV$$$VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVY:~~~~~~~~~~:~:=*xYYYYxx*****======++:::~~~~~~+++======*******xxYYYYYYV88888888888888888888888888888888888######################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#88#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********xYYxxxxYYVVVYYYYYYYYYYxxxxxxxxxxxxxx*********=====++++++++++++++=*xYY$################$$VVVVVVVYV$$$$$$VVVV$$#$$$$$$#########$$$VVVYYYYYYYYYYYYYYYYYVV$################$$$$$VVVVVVVYYYYYYYVVVVVVVVVVVVV$$$$$$$$$##########$Y++++++++++++++++++=**xV$$$$$#####$$#$$$#$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx****xxxxxxxVVVV$$$$$$$$$$$$$$V$$VVVVVVVV$$VVVVVVVVVVVVVYVVVVVVVVVVVVVVVVVVVV=~~~~~~~~~~~:~+=*xYYYxxx****=====+=+:::~~~~~~:++======********xYYYYYYY88888888888888888888888888888888888#######################################################88##8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888##8#8#88##8#####################$#$$$#$$$$$$#$$$$$$$$$$$$$$$$$$$$$#$$$$$#################8###################$##########################8888888888888888888888%%8888888888888888888888888888888888888888888888#############################8##88#888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8#8##8#####8##8##########################################################################################################################################################################################$#######################################8##888#8888888888888888888888888888888888888888888888888888############################################################################88888888888888888888888#x===++++::::::+===+++++++==========================+++=$$$VVYY#############88##8888888#######8##88888888######8888#8#Vxxxxxxx*******============++++++++++++++++=========**xxxxYVVVVVYYYYYYxx*******xxYYxxxYVVYYYYYYYYYYYYYxxxxxxxxxxxx**********=====++++++++++++++=*xYV#################$$VVVVVVVYV$$$$$$VVVVV$$$$$$$$########$$$$VVVYYYYYYYYYYYYYYYYYYV$################$$$$VVVVVVVVYYYYYYYYVVVVVVVVVVVVV$$$$$$$$####$######$*++++++++++++++++++=*xV$$$$$####$$$$$$$#$$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYx*****xxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVVVVV$$VVVVVVVVVVVVYYYYVVVVVVVVVVVVVVVVVVY:~~~~~~~~~~~::+=*YYYYxx***====++++++::~~~~~~:++=====*********xYYYYYYY#8888888888888888888888888888888888########################################################8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#888888888########################$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$###############8#8###########$#####$#########################888888888888888888888%%8%%8888888888888888888888888888888888888888888#8##############################8#8#8#88888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888##8#8#88########################################################################################################################################################################################################################################88##888888888888888888888888888888888888888888#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$$$$$$$#####$####$*+++++++++++++++++++=Y$$$$$#####$$$$$$$$$$$$$$$$$$$$$$VVVVVYYYxxYYYYYYx*****xxxxxxxVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVVVVVVVVVVVVVVVVVY~-------~~~~:+++=xxYYxxx*=====+++++:::~~~~~:+======*********xYYYYYYY#8888888888888888888888888888888888#######################################################88#8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#8#######################$#$$#$$#$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$##############8##################$########################888888888888888888888%%%%888888888888888888888888888888888888888888888888##############################88#888#8888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################8888##88#8##8#######################################################################################################################################################################################################################################88##8888888888888888888888888888888888888888888888888888############################################################################8888888888888888888888888$*==++::::::::+==++++++++==**=+++++++=============+++=V$$VY*x$#$$$########8######88888###8#8#88##8888#########8888888#Vxxxxxxx*******===========+++=+++++++++++++========*xxxxxVVVVVVYYYYYYxxxxxxxxxxYVVYYYVYYYYYYYYYYYxxxxxxxxxxxxxxx**********=====+++++++++++++=*xYV###################$$VVVVVVYV$$$$$$VVVVVV$$$$$$$$$#######$$$VVYYYYYYYxxxxxxxxYYYYV$$$###############$$$$VVVVVVVVYYYYYYYYYYYYVVVVVVVVVVVV$$$$$$##########$Y++++++++++++++++++++*V$$$$####$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYYxxYYYYYYx******xxxxxxVVVVV$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVVVVVVVVVVVVVVVVVV+---------~~~::++*xxYxxx*=====+++++:::~~~~~:+=====**********xxYYYYYY#8888888888888888888888888888888888#######################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88##8888##########################$$#$$$#$$$$$$$#$$$$#$$$$$$#$$$$$$#$$##############88##############$###########################888888888888888888888%%8888888888888888888888888888888888888888888888888#8##############################88888#8888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88#88#8#88#88##8#####################################################################################################################################################################################$############################################88##8##8888888888888888888888888888888888888888888888888###8########################################################################8#88888888888888888888888888x==++::::::::+===+++++++==**=++++++++============+++=Y$$Vx**$$$$$$###########8#88888#####8####8##8############88#8#88$Yxxxxxxx*******============+++=++=++++++++========**xxxxYVVVVVYYYYYYYxxxxxxxxxxVVVYYYYYYYYYYYYYxxxxxxxxxxxxxxxxx********=====++++++++++++++=*xY$#############$####$$$VVVVVVYV$$$$$$VYVVVV$$$$$$$$$#######$$$VYYYYYYYYxxxxxxxxxYYYV$##################$$VVVVVVVVVYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$##########$=++++++++++++++++++++Y$$$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxxxxYYYYYY*****xxxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVVVVVVVVVVVVVVVVVVVVYYYYYVVVVVVVVVVVVVVVVVx~----------~~::++=xxxxxx*=====++++:::~~~~~:++====**********xxYYYYYY#88888888888888888888888888888888888######################################################88#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88########################$$#$$#$$$$$$$$$$$$$$##$$$$$$$$$$$$$#$$##############8##########################################88888888888888888888%%%%888888888888888888888888888888888888888888888888###############################8#888888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################88###8###8#8#8#######################################################################################################################################################################################$##############################################8###8#888888888888888888888888888888888888888888888888##8############################################################################8888888888888888888888888$===+::::::::++==+++++++==**=++++++++============++++Y$$Vx=*$$$$$$#########8####88888#8#######8#88#8##########88888#8#Vxxxxxxx*******=============+++++=+++++++++========*xxxxYVVVVVYYYYYYYYxxxxxxxxxVVVVVYYYYYYYYYYxxxxxxxxxxxxxxxxx*********=====++++++++++++++=*YV############$##$#$#$$$VVVVVVVV$$$$$$VYYVVVV$$$$$$$$#######$$$VVYYYYYYYxxxxxxxxxxYYV$$#################$$$VVVVV$VVYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$$#########$x++++++++++++++++++++=V$$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx*****xxxxxxYVVVV$$$$$$$$$$$$$VVVVVVVYYVVVVVVVVVVVVVVVYVYYYYYYVVVVVVVVVVVVVVVVV:-----------~::++==*xxxx*=====+++::::~~~~~:+====***********xxYYYYYY#88888888888888888888888888888888888#######################################################8#888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8########################$$$#$$$#$$$$#$$$$$$$$$$$$$$$$$$$$$$#$$#############8#########################################88888888888888888888%%%%8888888888888888888888%888888888888888888888888888###############################8888888888888888888888888888888888888888888888888888888888888888%%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%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$$$$$$$$#######$$$VYYYYYYYYxxxxxxxxxxYYY$$$$$###############$$VVVVV$VVYYYYYYYYYYYYYYYVVVVVVVVVVV$$$$$$##########V+++++++++++++++++++++xV$$$###$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYYxxxYYYYYYx****xxxxxxxYVVVVV$$$$$$$$$$$$VVVVVVYYYVVVVVVVVYYVVVVVYVYYYYYYVVVVVVVVVVVVVVVVV*------------~:::+==*xxxx*===++++::::~~~~~~:+===**********xxxYYYYYY#88888888888888888888888888888888888#######################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88888#########################$#$$$$$$$$$#$$$$$$$$$#$##$$$$$$$$$#$#$###########8########################################8888888888888888888888%%88888888888888888888888888888888888888888888888888#8##############################888#8888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ######################################88#88##88#88###############################################################################################################################################################################$#######################################################8###88888888888888888888888888888888888888888888888888888############################################################################88888888888888888888888888$+=+:::::::::+==++++++++=**=++++++++++++=+=++==+++++xV$$x=*$$$V$$$$############888888#######################8#8#8#8###$xxxxxxxx*******===========+++++=++++++++++=======**xxxxVVVVVVYYYYYYYVYxxxxxxxYVVVVYYYYYYYYYYxxxxxxxxxxxxxxxxx**********====++++++++++++==*xV##################$$#$$$VVVVVYV$$$$$$VYYYYVV$$$$$$$$$######$$$VYYYYYYYYxxxxxxxxxxxYY$$$#$$##############$$VVVV$$$VYYYYYYYYYYYYYYYVVVVVVVVVVVV$$$$$##########V=++++++++++++++++++++=V$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxxxYYYYYYx****xxxxxxxYVVVVV$$$$$$$$$$$$VVVVVVYYYVVVVVVVVVYVVVVVYYYYYYYYVVVVVVVVVVVVVVVVVY~-----------~:::+===*xxx*==++++++:::~~~~~~:====*********xxxxYYYYYY#8888888888888888888888888888888888########################################################888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#8#8#8#8#########################$$#$#$$#$$$##$#$$$$$$#$$$$#$$$$##$$#$###########8########################################88888888888888888888%%%888888888888888888888888888888888888888888888888888888#############################88#8#888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%8888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888888888#8######################################################################################################################################################################################$###############################################88888888888888888888888888888888888888888888888888888888###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%%%%88888888888888888888888888888888888888888888888888888###############################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$$$$$$$$#######$$VYYYYYYxxxxxxxxxxxxxxY$$$$$$$##############$$VVVV$$VVYYYYYYYYYYYYYYYVVVVVVVVVVVV$$$$$#########$*+++++++++++++++++++++Y$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVYYxx*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$$$###$$$$$$$$$$$$$$$$$$$$$$$$$VVVVVYxx*xYYYYYYx***xxxxxxxxYVVVVV$$$$$$$$$V$VVVYVYYYYVVVVVVVVVYVVVVVYYYYYYYYYYYVYYVVYVVYVVVVVVY:-----------~:::+++===**===+++++::::~~~~~:+==*****xxxxxxxxxYYYYYY#8888888888888888888888888888888888########################################################88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888#88#88#########################$#$$$$$$##$$$$$$$$$#$$#$$$#$$$##$##$##########8######################################8888888888888888888%888888888888888888888888888888888888888888888888888888888################################8#88888888888888888888888888888888888888888888888888888888888888%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%888888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%88888888888888888888888888%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #####################################888888888888888888##################################################################################################################################################################################$###############################################8888##88888888888888888888888888888888888888888888888888#############################################################################888888888888888888888888888Y+=+:::::::::+==+++::::=***++++++++++++++++++++++++=Y$$*:*V$$$V$$$$$###########8888888888###############################Vxxxxxxxx******===========++++++++++++++++========*xxxYVVVVVVYYYYYYYVVVYYYYYVVVVYYYYYxxxxxxxxxxxxxxxxxxxx**********======+=+========**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+++++++++++++++++++++++++Y