,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%,,,,,,,,%,,,,,,,,,,,%%%%%%%,,;,,,,,%%%%%%%,,,,,,,,,,,%%%,,,,,,,,,,,,%,,,;,,,,,,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,%%%%,,,%%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%::::::::::::::::::::::::,:::,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::,::::,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%,,,,%%%%,%%%%%%%%%-,,,%%%%%,,,,,,,,%%%,,,%%%%%%%%%%%%,,,%%%%%,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,,::::::::::,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%----~~~~%%%%%,,,,,,,%%%%%,,%%%%%%,%%%%%,,,%%%%%,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,::::::::::::::::::::::::;:::::%%%%%%%%%,%%%%%,,,,,%%%%%,,,,,,,,::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::,,:;,,:::::::::,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%---~~~~~%%%%%,,,,,,,%%%%%,,,%%%,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,:,,%%:::::::::::::::::::::::,:::::,::%%%%%%%%,,%%%,%%%,,%%%%%,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::;:::::::::::::::::::::::::::::::::::::::,:,::::::::::::%,,,,~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%,,,,,,,,,,,-----~~~~~~%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%,,,,,,%%%%%,%%%%%%%%,,,,,,,,,,,:%%%::::::::;::::::::::::::::::,:;:::%%%%%%%,,,,,%%%%%,%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::%,,,,~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%,,,,,,,,,,,,-----~~~~~~%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,%%%%%%%,,,:,,,,,,:::::::;:::%:::::::::::::::::::;::::::%%%%%%%,,,,,%%%%%,%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::,::::::::::::::::::%,,,~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,%%%%,,,,-----~~~~~~~~,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,%%%%%%%%%,,,%%%:::,,,,:::::::::;%%::::::::::::::::::;:::;::%%%%%%:%,,,,,%%%%%,%%%%:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::,,,~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,%%%%%,,------~~~~~~~--,,,,,,,%%%%%%%,,,,%%%,,,,,%%%%%%%%%%%,%%%%%,%%%%%%%%%,,%%%%:::::::::::::::::%%::::::::::::::::::::::::,%%%%::::,,%%%,%%%,,,,,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::;:;:::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::,::::::,,~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,%%%%%,,,------~~~~~~--,,,,,,,%%%%%%,,,,%%%%%,,,,%%%%%%%%%%%,%%%%%,%%%%%%%%%,,%%%%:::::::::::::::::%%:::::::::::::::::::::::,,,,:::::,,%%%%%%%%%%::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::,~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,%%%%%,,,-------~~~~~---,,,,%%%%%%%%%%,,%%%%%%,,,%%%%%%%,,,,,%%%%%,%%%%%%%%%,,%%%%::::,:::::::::::::%::;::::::::::::::::::::::::::::::,%%%%%%%%%%::::::::::::::::::::::::::::::::::,%:::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::,:,:::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,%%%%%%%%%----~~~~~~~--,,,,%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%,,%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%::::::::::::::::::::::::::::::,::::%%:::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,:::::::::::~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%,,,,,,,,,%%%%%----~~~%%%%--,,,,%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,%%%%%%%%%,%%%%%,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::,::::%%%%%%::::::::::::::::::::::::::::,,::::,%%:::::::::::::::::::::::::;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,------%%%%%,,,,,%%%%%,%%%%%%%%%%%%,,,,%%%%%%%%%,,,,,,,%%%%%,%%%%%,,,,,:::::::::::::::;:::::::::::::::::::::::::::::::::::::::::%,,%%%:::::::::::::::::::::::::::::::::::%%:::::::::::::::::;::::::;::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::,::,___::::__~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,,,,,,,,,%%%%%%%,,,,-,,%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%,,,,,,,%%%%%,%%%%%,,,,,,:::::::::::::::::;::::::::::::::::::::::::::::::::::::::%,,,,,,::::::::::::::::_::::::::::::::::::%:::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,,:::,:_______:___~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,%%%%%,,,,,%%%%%%%,,,,,,,%%%%%%%%%%%%%,,%%%%%,%%%%,,,,,,,%%%%%%%%%,,,,,,,%%%%,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,::,,,::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,%%%%%%%%,,%%%%%%%%%%,,,,%%%%%%%%%%%%%,,%%%%%,%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::%%%%%,::::::::,,::%%:::::::______:%%%:::::::::::::::::%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::,::::::::::%%%%%%%:::::::::::::::::::::%%%:::::::::::::::_____________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,%%%%%%%%%,%%%%%%%%%%%%%,,,,,;%%%%%%%%,,%%%%%,%%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,,%%%,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::%%%%:::::::::::::%%:::::::_____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::______________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%,,%%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%,,,,,,%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::%:::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%%,,,%%%%%,%%%%%,%%%%%,,::::::%::::::::::::::::::::;::::::::::::::::::::,::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,%%%%%%%%%%%,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%,%%%%%,%%%%,,,::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,%%%%%%%%%%%%,,,,%%%%%%%%%%%%%,,%%%%%,,%%%%%%%%,%%%%%%%%,,,,,,:::::%:::::::::::::::::;::::::::::::::::::::::::::::,,::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%,,%%%%%,,%%%%%%%%,%%%%%,:::,,,,,:::::::::,::::::::::::;::::::::::::::::::::::::::::::::,:::::::::::::%:::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%,,%%%%%,,%%%%%%%%,%%%%,,::::,,::::::::,,:::::,:,::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%,,,,,%%%%%%%%%%%%%%*,,,,,,,%%%%%,,%%%%%,,,%%%%%,,%%%%%%%,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%%,,**,,,,%%%%%,,,%%%,,,,,%%%%,,%%%%%%%%,,,,,:::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::_____::::::::::::::::::::::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,**,,,***,,,,,,,,,,,,,,,,,,,,,,,%%%%,%%%%%%%%%,::,::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:~~__~~~_~~:::::::::::::::::::::::,,::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,*,,,,,***,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::,:~~~~~~~~~~~~,:::::::::::::::::::::,::,:::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,***,,**%%%%,,,,,,,,,,%%%%%,,,,%%%%%,,%%%%%%:::,:::::::::::::::::::::::::::::::;::::::::::::::%:::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::::::::::::::::,~~~~~~~~~~~~~~_::::::::::::::::::::::::::::___________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*******,%%%%,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,*******%%%%%,,,%%%%,,%%%%%,,,,%%%%%,,,%%%%:::,::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~_:::::::::::::::::::,,::::::___________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***********,,,,,,,,,,%%%%,,%%%%%,,,,,,,,,,,,*****%%%%%,,,%%%%%,%%%%%,,,,%%%%%%,,,,%%::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::,______~~~~~~~~~~~~_::::::::::::::::::::::::::___________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********,,*,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%,,,%%%%%,%%%%%,,,,,%%%%%,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::_______~~~~~~~~~~~~~~::::::::::%%%%%%:::::%%%:___________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%%%%%%,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********,%%%,,,,%%%%%,%%%%%,,,,,,%%%%,,,,%%%%%%%%,,,%%%%%,,%%%%,,,,,%%%%%%%%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::-::::::::::::::::::::::::::::::::::::,::::::::::_______~~~~~~~~~~~~~~:::::::::::::::::::::::::::::_______________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%%%%%%,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,**********%%%%%,,,%%%%%,,%%%%,,,,,,%%%%%,,,%%%%%,%%%%%%%%%%,,,,%%%%,,,,%%%%%%%,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::___~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::______________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,*********%%%%%,,,%%%%%,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,,,,,,%%%%%,,,,,,%%%%%,,,,::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::,:::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::___~~~~~~~~~~~~~~~~~~~__:::::::::::::::::::::::::::::____::_______________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,%%%%%%,,,%%%%%,,,,,,,,%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,,,,%%%%%%%,,,,,,%%%%%,,,,%:::%,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~___::::::::::::::::::::::::::::::::::_______________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%%%,%%%%%%%,,;,,,,%%%%%%,,,,,,,,%%%%%,,%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,%%%%%%%,,,,,,,%%%%,,,,%%:%%,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::,:::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~_______::::::::::::::::::::::::::::::_______________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%,,,,,,,%%%%%%,,,,,,,,%%%%%,,,%%%%%%,,,,,,,,*,,,,**,,,%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,%%%%%%,%%%%%,,,,,,,,,,%%%%%,,,:::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~________:::::::::::::::::::::::::::::_______________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,%%%%%%,,,,,,,,%%%%%%%,,%%%%%,,,,,,,,,******,,%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,%%%%,,%%%%%%%%,,,%%%%%,,%%%%%,,,,,,,,,,%%%%%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~.~.,~~~~~~~~~~~~~______::::::::::::::::::::::::::::________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,;,,;,%%%%,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,,,,%%%*,%%%%%,,%%%%,%%%%%%%%,,,,,,,,,%%%%%%,%%%%%%%%,,,,%%%%,,%%%%%,,,,,,,,,,%%%%%,%%%,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::,:::,,,::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::~~~~~~~,.%.%%..,,~~~~~~~~~~~~~~__::::::::::::::::::::::::::_________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,%%%,,,,,%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,%%%%%,%%%%,,%%%%%%%%%,,,,,,,,%%%%%%,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::~~~~~~~,%.%%%.%%%%%%%~~~~~~~~~~____::::::::::::::::::::::::_________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,%%%%%,%%%%%%%%%,%%%%%,,%%%%%,%%%%%%,%%%%%%%,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:~~~~~~,..%%%..%%%%%%%%~~~~~~~~~~____:::::::::::::::::::::::_________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,;,,,,,;,,,,,,,%%%%%%%%%,,,,%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,***%%%%%%%%%,%%%%%,,%%%%%,,%%%%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~,%%.%.%%%%%%%%%%~~~~~~~~~~____::::::::::::::::::::::::________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%,,;;,,%%%%;,,%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,**%%%%%%%%%,%%%%%,,%%%%%,,,,,%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::,::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~%.%%.%%%%.%%%%%%~~~~~~~~~~~___:::::::::::::::::::::::::_______________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%,,,,,,%%%%%;,%%%%%%%%%%%,,,,,%%%%%%%%%%%%,%%%%%%%%%%,,,,,,,,,,,,,,,,,,****,%%%%%,%%%%%,,%%%%%,%%%%%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,%%%%,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~%%.%,.%%%%.%%%%~~~~~~~~~~~~~~__::::::::::::::::::::::::_______________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%,,,,,%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,%%%%%,,,,,,,,,,,****,%%%%%,%%%%%,,%%%%%,%%%%%%%%%,,,%%%%%,,,%%%%%%%,,,,,,,,,%%%%%%%%%%%%,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~.,..%,%%%%%%%%%%%~~~~~~~~~~~~~~~_::::::::::::::::::::::::_______________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,%%%%%%%,,,%%%%%%%%%,%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,%%%%%,,,,,,,,,,,*%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%%%,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::,::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~~~~%%.%,%%%.%%%%%%%%~~~~~~~~~~~~~~~~~::::::::::::::::::::::________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,%%%%%%%,,,,%%%%%,,,,%%%%%%%%%%%%%%%%,,%%%%%%%%%%,,%%%%%,,,,,,,,,,,*%%%%%,,,,,,%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,%%%%,,,,,,%%%%%%%%%%%%,,,%%%:;:::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,::::::::::::::::,:;;::::%%%%%:::%%%%%::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::%%%%%::::,~~~.%.%%%%%%%%%%%%%%.~~~~~~~~~~~~~~~~~::::::::::::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%,,,%%%%%%%,,,,,%%%,,,,,,,,,,%%%%,,,%%%%%,,,,,,,,,,,*%%%%%,,,,,,,,,,,,,,,,,,%%%%,,,,,%%%%%,,,,,,%%%%%,%%%%%,,,,,%%%%%%%%%%%%,,,%%%:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,:,::::::::::::%::::::::::::%%%:::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::~~~,.%%.%%%%%%%%%%%%%%~~~~~~~~~~~~~~~__:::::::::::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%,%%%%,,,%%%%%%%%%%%%,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,***%%%%***,,,,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%,,,%%%%%,,,,,,%%%%%,%%%%%,,,,,%%%%%%%%%%%%,,,%%%::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::,,:::::::::::%::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~,.%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~____::::::::::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%,,,,,,%%%%%%%%%,,,%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,***********,,,-,,,%%%%%%%,%%%,%%%%,,,,,,,,,%%%%%%%,,%%%%%,,,,,,,,,,%%%%%%%,,,,,,,%%%%%%,,,,;,,%%%::::%,:::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::,::::::::::%::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:___~,%.%%%%%%%%%%%%%%.%%~~~~~~~~~~~~~____~-:::::::::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,,,%%%%%%%%%,,%%%%%%%%%%%%,,~~~,,,,,%%%%%,,,,,,,**********-------%%%%%,,,%%%%%%%%%,,,,,,,,%%%%%%%,,%%%%%,,,,,,,,,%%%%%%%%%,,,,,,%%%%%%,,,,,,,%%%%%%%%,:::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,~~~__:,%%%%%%%%%%%%...%%%%~~~~~~~~~~~~~___~~--::,,:,::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%~~~~~~~~~%%%%%,,,,,,,,*******,--------%%%%%,,,%%%%%%%%%,,,,,%%%%%%%%%%,,%%%%%,,,,,,,,,%%%%%%%%%,,,,,,%%%%%,,,,,,,,,,,,%%%%,,,,:::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::,::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,~~~~_:,%%%%%%%%%%%%%.%%.%%~~~~~~~~~~~~~~~_~~--:::::,::::::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%%%%,%%%%%%%~~,%%%%%,,,%%%%%~~~~~~~~~%%%%%,,,,,,,,%%%%%,,---**----%%%%%,,,%%%%%%%%%,,,,%%%%%,,%%%,,,,,,,,,,%%%%,,,%%%%%%%%%,%%%,,%%%%%,,,,;,,,,,,;,,,,,,,,,::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,~~~~~,,%%%%%%%%%%%%%%.%%~~~~~~~~~~~~~~~~~~~~-:::::::::::::::;:__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%%,~~~~~~~~~~~%%%~~,,%%%%%~~~~~~~~~%%%%%~~~,,,,,%%%%%,,-----------,,,,,%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%%~~%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::,::::::::::,,:::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,~~~~~,,%.%%.%%,%%%%%..-~~~~~~~~~~~~~~~~~~~~~-:::::::::;:::::::__________________________________________________________________________~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%~~~~~~~~~~~~~~~~~~,%%%%%~~~~~~~~~~~~~~~~~~,,,,%%%%%,,-----------,,,,,%%%%%,,,,,,,,,%%%%%%%%%,,,,,,,,,,,%%%%%~~~~~~%%%%%%%%%%%%%%,,,,,,;,;,,,,,,,,,,,,,%%%,:::%:::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,~~~~~,,%%%%.,.,%.%%%%.%~~~~~~~~~~~~~~~~~~~~~,::::::,::;:::::::__________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,------~~~~~-,,,,,%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,,,%%%%%~~~~~~,,,,,%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%:::%%:::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,~~~~~,.%.%%.,%%.%%%%%%%~~~~~~~~~~~~~~~~~~~~~,::::::::::::::::___________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,----~~~~~~~,,,,,%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%~~~~~~~,,,,%%%%%%%%%%,,,,,,,%%%%%%%,,,,,,%%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::,,,~~~~~,,%%%%.%%%.%%.%%.%%%~~~~~~~~~~~~~~~~~~~,:::::::;::;:::::___________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---~~~~~~~~~,,,,%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,~~~~~~~~~~~,%%%%%%%%%%%%,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,::::::::,**,,~~~~,,..%.%:%%%.%..%.%%%%%~~~~~~~~~~~~~~~~~-::,::,:::::,:::____________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%,,,,,,,,,,,~~~~~~~~~~~%%%%%%%,%%%%%,,,,,,%%%%%%%%%%%,,,,%%%,,%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::***,,,~~~,,.:::.:%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~:::::;::::::::::____________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%,,,,,,,%%%%%,,,,,,,,,,-~~~-~~~~~~~%%%%%,,,%%%%%,,;,,,%%%%%%%%%%%,,,,,%,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::,*,,,,,,~,,.....%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~::::,:::::::::::____________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%,%%%%,~~-~~~~~%%%%%%%%%%%,%%%%,,,,,,%%%%%,%%%%%%%,,%%%,,,,%:::::,:::::::::::,:::::::::::::::::::::::::::::::,,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::,,,:,,,~,,%:.::%%%%%%%.%%%%%%%~%~~~~~~~~~~~~~~-:::::::::::;::::____________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,%%%%,,%%%%%%%%%%%%%%%,~~~~~~~%%%%%%%%%%%%,,,,,,,,%%%%%%%%,,%%%%%%,,,%,,,,,%%%::::,::::,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,:::::::::::::::::,,,%.%%...%%%,%%%%%%%%%%%%~~~~~~~__~%%%--:::::::::::::;::____________________________________________________________________________~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,%%%%%%%%,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,--~~~~~%%%%%,,%%%%%,,,,,,,%%%%%%%%%,,%%%%%%,,%%%%%,,,%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%::,::,,::::::::::::::::::::,,,%%%%%.,,,,,%%%%%%%%%%%%%~~~~~___%%%%%::::::%%%%%::::::::______________________________________________~~~~_________________________________~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,%%%%%,%%%%,,,%%%%%,,,,,,%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,--~~~*%%%%%,,%%%%%,,,,,,,%%%%%%%%%,,,%%%%%,%%%%%%%,,,:::,::::::::::::::::::::::::::::::%:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::%%%:::,::,::::::::::::::::::::::,,.%%%..,%%%%%%.%%%%%%%%%%~~~~____%%%:::::::::%%%::::::::::____________________________________________~~~~~________________________________~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~-----------,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%,,,%%%%%%%%%,,,,%%%%%%%%,,,,-,,,,%%%%%,,%%%%,,,,,,,,%%%%%%%%%,,,%%%%%,%%%%%%%,,::::::,:::::::::::::::::::::::::::%%::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::,:::::::::::::::::::::::::,,%.%%%%%%%%%%%%%%%%%%%%%%~~~~~___%%:::::::::::::::::::::::____________________________________________~~~~~________________________________~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~-----------,,,,,,,,,,,,,%%%%%%%%%,,,%%%%%,,,%%%%,%%%%%,,,%%%%%%,,,%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%,,%%%%%%%%%%,,,,,%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%,,,,,%%%%%%%,:::,:,:::::::::::::::::::::::::::::%%:::::::::::::::::,::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::,:::::::::::::::::::::::::,,,%%%%%%%%%%%%%%%%%%%%%%%%~~~~~__:%:::::::::::::::::::::::___________________________________________~~~~~~____~~_______________~___~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~-----------,,,,,,,,%%%%%%%%,,,,,,,,%%%%%%%,,,,,,%%%%%,,,%%%%%%,,,%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%,,%%%%%%%%%%,,,,%%%%%%%%,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,%%%%:::,:::::,:::::::::::::::::::::::::::::%%:::::::::::::::::::::,::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,:::::::::::::::::,,%%%,%%%%%%%%%%%%%%%%%%%~~~~~~~:::::::::::::::::::::::::::___::::______________________________~~__~~~~~~~~~~~~~~~____________~~~_~~~~~~~~~~~~~~~_~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~------------%%%,,,%%%%%%%%,,,,,,,,%%%%%%%,,,,,,%%%%%,,,,%%%%%,,,%%%%%%%%%,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,%%%%%,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,%%%::::::::::::,::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::,,%%,%.%%%%%%%.%.%%%%%%%~~~~~~~,:::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~~~~~~~~~~__________~~~~~~~~~~~~~~~~~~~~_~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~----------%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,%%%%,,,,%%%%,%%%%%%%%%%%%%%,,,,,,%%%%%%%%%,%%%,,,,,,,,%%%%%%%%%,,,,,%%%::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::,%%%%.%%%%%%%%%%%%%%%%%%~~~~~~~::::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~~~~~~~~~~~_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~---------%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,,%%%%%,%%%%%%%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%,,,,,,,%%%%%%%%,,,,%,,,,::::::,,,:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::,%%%.%%%%%%%%%%%%%%.,%~~~~~~~~~,:::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~~~~~~~~~~~__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~--------%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%,,%%%%%%%,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%%,,,,,,%%%%%,,,,%%%%%,,,%%%%%%%%%,,,,,,%%%,,,:::::,::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,%%%::%%%%%%%%%%%%%,--~~~~~~~~~,:::::::::::::::::::::::::::::::::::_____________________________~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~-------%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%,,,,%%%%%,%%%%%,,,%%%%%%%%%%,,,,,,,,,%%%,,%%%%%%%%%%%%%%%%,,,,,,,,,,,%,,,,,:::,::::,::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::%::,%%..::%%%%%%%%%%%%.,-~~~~~~~~~,:%%:::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~------%%%%%%%%%%%%%,,,,,,,%%%,,,,,,,,%%%%%%%,,%%%%%%%%%,,%%%%,,,,,,,,,,,,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%,,,,%%%%%,%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,:,%:::::::::,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::%%%%%%%.%::::.%%%%..%%.%%%,~~~~~~~~,,%%%::::::::::::::::::::::::::::::::::__________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~--------,,,,,%%%%%,,,,,,%%%%%,,,,,%%%%%%%%,%%%%%%%%%%%%,,,,,,,,,,%%%,,,,%%%%,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%,,,%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,:%%%::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,::::::::::::::::::::::::::::::::,%%%%%%.,.::%%%.%%%%%%%%%%,~~~~~~~~,,%%%::::::::::::::::::::::::::::::::::__________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~--------,,,,%%%%%,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%%%%%%%%,,,,,,,%%%%%%%,,%%%%%,,,,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%,,,%%%%%,,,%%%%%%%%,,,,,,,,,,,,,:::%%:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::,,%%%%%%%:.:%%%%%.%%.%%%%%,~~~~~~~~,:%%%::::::::::::::::::::::::::::::::::_________________________~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~--------,,,%%%%%,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%,,%%%%%,,,,,,%%%%%%%%%,%%%%%,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%,,,%%%%%,,,,%%%%,,,,,,,,,,,,,:::::::%::::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::,,%%%%.%...:%%%%%%%%%%..%%-~~~~~~~~,,%%%:::::::::::::::::::::::::::::::::::_____________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~---------,,,%%%,,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%,,%%%%%,,,,,,%%%%%%%%%%%%%%%,%%%%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,%%%%%%%%%%,,,,,,,,%%%%,,,,,%%%%%%%%,,,,,,,,,,,%%%%,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::::::::::::::::::::::::::::::::::::;,%%%%%%..%::.:.%..%.%.%%%%%-~~~~~~~~,,%%%::::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~--------,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%,%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,%%%%%%%%%%,,%%%%,%%%%%,,,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,%%%%:::::::::::::::::,,:::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,::::::::::::::::::::::::::::::::::::::.%%%%%%.%.:::::%%%%%%%%%%%%-~~~~~~~,,,,%%::::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~-----,,,,%%%%%%%,,,,%%%%%,,,,%%%%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%,,,%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%,,,%%%%%%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%,,,%%::::::::::::::::::::::%%%:::::::::__:::::::::::::::::::::::::::%%:::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::%::::::::::,%%%%%%%%%.%.:.,..%%%%%%.---~~~~~~~,,,:::::::::::::::::%%%::::::::::::::::::::_________________________~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~----,,,%%%%%%%%%%%%%%%%,,,,,%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%.%%%,%%%%%,,,,,,,,%%%%%,,%%%%%%%%%%,,,%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,%%:::::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::::%%:::::::::::::::%:::::::::::::::::::,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::.:::%%%%%%%%.::::,,.%.%%.%----~~~~~~~%%%:::::::::::::::::::::::::::::::::::::::::____________________~~__~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~----,,,%%%%%%%%%%%%%%%%,%%%%%%%%%,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%,,,%%%%%%%%%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,~~~~~%%%%.,,,,,%%%%%,,,,,,,,,%%%%,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%,,,%%:::::::::::::::::::::::::::::::::::__::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,:::::::::::::::::::::::::::::::::.::::%%%%%%%%.%,,,,,,,,..,----~~~~~~~%%%%::::,:::::::::::::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~----,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%%%%%,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,%%%%%%%%%%,,,,,%%%%%%%%%,,,,,,,,,,%%%%%,;,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%%%%,,,,%:::::::::::::::::::::::::::::,:::::__:::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%.%.%%%%%%,,,,,,,,,,,---~~~~~~~-%%%%::::::::::::::::::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~-----,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%,%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%%,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%,%%%%%%%%%%,,%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%%%,,,,,,,:::::::::::::::::::::::::::::_:::___::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::%%.%%%%%%%%,,,,,,,,,,,--~~~~~~~~-%%%%::::::::::::::::::::::::::::::::::::::::_____________________~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~-----,,,,,,,,%%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,---~~~~~~~~%%%%%~~~~---~~~~~~~--------%%%%%%%%%%,%%%%,,%%%%%%%%%%%%%,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,:::::::::::::::::::::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,:::::::::::::::::::::::::%:::::::%%%%%%%%.%,,,,,,,,,,,,--~~~~~~~~,,:::::::::::::::::::::::::::::::::::::::::::_________________~~__~~~~~~~~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~-----,,,,,%%%%%,,,,%%%%,%%%%,,,,,%%%%%%%%%%%%%%%,,,,,,%%%,,,,,,,,%%%%,,,,,,%%%,,,,,,,,,,---~~~~~~~%%%%%---,-%%%%%------------%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%,,,%%%%,,%%%%,;%%%%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%:::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::;::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:.::::::%%%%%%%%%,,,,,,,,,,,,,~~~~~~~~~,,::::::::::::::::::::::::::::::::::::::::::__________________~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~------,,,,%%%%%%%%,,,,%%%,,,,,,,,%%%%%%%%%%%%%%,,,,,,%%%%%,%%%%,%%%%%%,,,,,,,,,,,,,%%%%%------~~~~%%%%%,,,,,%%%%%---~~%%%%,-,%%%%%%%%%%,%%%,,,%%%%%%%%%%%%%,,%%%%%,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::%%%%%%%%%,,,,,,,,,,,,~~~~~~~~~~,,::::::::::::::::::::::::::::::::::::::::::_________________~~~~~~~~~~~~~~___~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~-----,,,,,%%%%%%%%,,,%%%%%%%%,,,,%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%,%%%%%%%%%%%,,,,,,,,%%%%%---------,%%%%%,,,,,%%%%%---~~%%%%%,,%%%%%%,,,,%%%%%,,%%%%,,%%%%%%%,,%%%%%,,;,,,,,%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,%%:::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:::.:::%%%%%%%%%%%%,,,,,,,,~~~~~~~~~~~~,:::::::::::::::::::::::::::::::::::::::::::_________________~~~~~~~~~~~~~~_~~~~~~~~~~~~,,,,,,-------,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,~~~~,,,,,,,,,,,~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~----,,,,,%%%%%%%%,,,%%%%%%%%,,,,%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%,,,,,%%%%%%%----%%%%%%%%,,,,,,%%%%%%%~~~%%%%%,,,%%%%%,,,,%%%%%,,,,,,,,,,%%%%%,,%%%%%,,,,,,,;%%%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,%%:::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::%%::::::%%%%.%%%%%%%,,,,,,,,,,~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::___________________~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,-------,,,,~~~~~~~~~~~~~~~~~~~,,,,,,,,,~,,,,,,,,,,,,,~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~----,,,,,%%%%%%%%,,,%%%%%%%%,,,,,,,,,,%%%%%%%,%%%%%%%%%%%%%%%%,,%%%%,%%%%%%%%,,,,,%%%%%%%%,-,%%%%%,,,,,,,,,%%%%%%%~~~%%%%%~~,%%%%%,,,,%%%%%,,,,,,,,,,%%%%,,%%%%%%,;,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::,::::::::::%::::::::::::::%%::::::%%%.%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::______________________~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,-----,,,,,,~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~----,%%%%,,,%%%%%%,,%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%,%%%%%%%%%%,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%~~~%%%%%%%%%%%%;,,%%%%%%%,,,,,,%%%%,,,,,,%%%%%%%%%,,,,,,,;,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,:::::::::::::::::,,:::::::::::::::::::::::::::::::;:::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::,:::::::::%::::::::::::%%%%::::.:%%.%%%%%%%%,,,,,,,,,,,~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::______________________~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,-,,,,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~---,%%%%%,,,%%%%%,,,,,%%%%%%,,,,,%%%%%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%~~~~%%%%%%%%,,,,,,%%%%%%%,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%,,:::::::::::::::::,,,::::::::::::::::::::::::::::::::::::::::::%%:::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_:::::::::%:::::;::::::%%%%:::::%%%%.%%%.%%,%,,,,,,,,,,~~~~~~~~~~~~-,::::::::::::::::::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,%%%%~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~---,%%%%%,,,%%%%%,,,,,,%%%%%,,,,,%%%%%%%%,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,%%%%,%%%%,~~~~%%%%%%%%,,;,,;%%%%%%,,,,,,%%%%%,,%%%,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,::::::::::::::::,,,,,,::::::::::::::::::::::::,,:::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::_:::::::::::::;:::::::%%%%%:::::%%%%%%%%%%%%%,,,..,,,,,,~~~~~~~~~~~~____:::::::::::,:::::::::::::::::::::::::_______________________~~~~~~~~~~~~~~~~~~,,,,,,,,,,,.,,,,,,,,,%,,%%%%~~~%%%%%%%%,,,,,,.,..,,,,,,,,,,,,,,,..~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~----%%%%%,,,%%%%%,,,,,,%%%%%,,,,,%%%%%,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,,%%%%%%%%%%%,,,,%%%%%,,,,,,,,~%%%%%%%%,,,,,,%%%%%,,,,,,,%%%%%,%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%,%%%%%,,,,,%%%%%%%%%%%%,,,,,,%%:::::::::::::::::,,,,,:::::::::::::::::::::::,::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::__::::::::%:::::::::::%%%%%:::::%%.%%%%%%.%%%,%%%%%,,,,,,%%%%~~~~~~____~~:::::::::::::::::::::::::::::::::::::______________________~~~~~~~~~~~~~~~~~,,,%%%,,.%%%%.,.,,,,,,%%%%%%%%%%%%%%%%%%,,,,,%.%%%,,,,,,,,%%%%%,.%%%%.~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~---,%%%%%-,,,%%%,,,,,,,%%%%%%,,,,%%%%%,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%,,,,,,,,,,%%%%%,,,,%%%%%%%%%%,,,,,%%%%%,,,,,,,,~%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%,,,,,%%%%,,,%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%,,,,,%%%:::::::::::::::::%%%,,::::::::::::::::::::,:,:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____::::::%:::::::::::%%%%%::::%%%%%.%%%%%.%%..%%.%,,%%%%%%%%%~~~~~____~~_::::::::,:::::::::::::::::::::::::::_______________________~~~~~~~~~~~~~~-,,,%%%%,,,%.%%%,%.%,,,%%%%%%%%%%%%%%%%%%%%,,,%%%%%%.%%%....%%%%%%%.%.%.~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--;,,,-------,,,,,,,,,,,%%%%%,,,,%%%%,,,,,,,,%%%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%,,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,%%%%,,,,,,%%%%%%%:::::::::::::%%%%,,::::::::::::::::::::::%%:::,::::::::::::::::::::::::::::::::::::::::%%%%%::::::::::::::::::::::,:::::::::::::::::%%%%%:%%%%%::::::::%%%%%%%%%%%%%%%%%%%.%%.%%%%%.%%%%%%%.%%~~~~~~___~~~_:::::,:,,::::::::::::::::::::::::::______________________~~~~~~~~~~~~~~~,%%%%%.%.,.%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.%,%..%%%%.%%..%%.%%%%%..%%%%.~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--;,,---------,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,%%%%%%%:::::::::::%%%%%%,,,:%%::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::::::::::::::::%%%:::%%%::::::::::%%:%%%%%%%%%%%%%%%%%%.%%%%..%%%%%%%%%%~~~~~~~~~~~~_______,:::::::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~-.%%%.%%.%%,%.%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%.%%%%%%%...%.%.~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--,,-----------,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%,%%%%%,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%,,,,,,,%%%%,,,,%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,%%%%%%::::::::::%%%%%%%,,,%%%%::::::::::::::::::%::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:%%%%%%%%%%%%%%%..%%%%%%%%,%%%%%%%%%~~~~~~~~~~~~~_____________::::::::::::::::::::::::____________________~~~~~~~~~~~~~.%%%%%.%%%%%.%%.%%%.%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%.%.%%%%.%%%%.%%%....%%.~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--,,-----------,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%,,,,,,%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,%%%%%%%,,,,,,,,,,%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,%%::::::::::%%%%%%,,,,,,,,::,::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::%%%%%,,,,,,%,,%.%%%%%%,%,%%%%.%%.~~~..%%%~~~~~~______~~____,,,::::::::::::::::::::::___________________~~~~~~~~~~~~~%%%%%%.%%%%...%%%%%..%%%.%.%%%%%%%%%%.%%%%.%.%%%%....%%%.%%.%.%%%%%%%.,%%,~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~---------------,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,%%%%%,,,%%%%%,,,,,,,%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,%%%,,,,,,,,%%%:::::::%%%%%%,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::,~~~~~,,,%%%%%%%%.%.,,,%,,%...%%%%%%.~~~~~~~~_~~~~~__~~,,,:::::::::::::::::::::________________:_:~~~~~~~~~~~~~.%%%%%.%.%%%%%%%%%%,%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%..%%.%%%%%%%%%%.%%,,,~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-------~~~------%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,%%%%%,,,%%%%~~,,,,,,,,,-%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,%%%%,%%%%%%%%,,,%%%%%,,,,,,%%%%%:%%%%%%%%~,,,,,,,,;,,,;,,::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::,::::::::::::::::::::::::::,::::::::::::::::::::,~~~~~,,,.%%%%%%%..,,,.;,,.%%%%%%%%%~.%.%%~~~~~~~~~~_~~~,,::::::::::::::::::::::_______:::_..::::%%~~~~~~~~~~~.%%.%%%..%%..%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%.%..%%%%%%%%%%%,%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~------~~~~~~~~~,%%%%%%%%%,,,,%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%,,,,,%%%%%,,,,,%%%%%%%%%,~~~~~~~~~~~~,,----%%%%%%%%,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%%%,,,,~,,,,,,,,,;,,,;,,:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~,.%%%%%%%%%%%%..,,%%%%%.%%%%%%%%%%%%%~~~~~~~~~~~~~~,::::::::::::::::::::::______::::::::::::~~~~~~~~~~~~~%%%%%%.%%%%.%%%%%...%,,,%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~------~~~~~~~~~,,,,,,%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%,,,,%%%%,,,,,%%%%%,,,,~~~~~~~~~~~~~~~~----%%%%%,,,,%%%%%,,%%%%%,,,,,,,,,,,,,%%%,,,,,,,%%%%%%%%%%,,,,,,,,,%%%%%%,,%%%%%,,,,%%%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,%%%,,,,,;,,;,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::____~~~~.%%%%%%%%%%%..%.,%%%%%%%%%.%%%.%%%%%~~~~~~~~~~~~~~~::::::::::::::::::::::______::%::::::::%%~~~~~~~~~~~-%%%%...%.%..%%%%.%.%%,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%...%%%.%.%%%%%%%%%%%%%%,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~------~~~~~~~~~~,,,,,;,,,%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,~~~~~~~~~~~~~~~~~~~---%%%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,%%%%%,,%%%%%,,,,%%%%%%%%%%%%%,,,%%%%,,,,~~~,,,,,%%%%%%%%,,,,,;,;,%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:,::::::::%::::::::::::::::::::::::::::::::::::______~~~~%%%%%%%%%%%%%.%.%%%%%..%%%%%%%%%%%%%%~~~~~~~~~~~~~~~,,,:::::::::::::::::::_____:::::::::::%%~~~~~~~~~~~-.%%.%.%%%%%.%%%%%.%%%.%.,...%.%%%%%%%%%.%%%,,,%%%%%%%%%%%.%.%%%%.%%%%%%%%%.%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-------~~~~~~~%%%%,,,,,,;%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~--%%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,,%%%%%%%%%%,,%%%%%,,,,%%%%%%%%%%%%%,,,%%%%%,,,,~~,,,,,%%%%%%%%,,;,,,,,%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::,:::::::::::%%::::::::::::::::::::::,::::::::::::____~~~~~~~%%%%%%%%%%%%%%..%%%%%.%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~,,,,:::::::::::::::::::::::::%::::::.:%%~~~~~~~~~~~~%%%%%%.%%%%%.%%%%%%%.%%,,,%..%%%%%%%%%%%..%.,%%%%%,%.%%%.%.%%%%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--------~~~~~~%%%%%,,,,,,%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,-%%%%~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,%%%%,,%%%%%,%%%%%,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,,,,~~,,,,,%%%%%%%%,,%%%%%,%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::::::::::::%%::::::::::::::::::::::::::::::::::___~~~~~~~~~.%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%--~~~~~~~~~~~~,,,,::::::::::::::::::::::::%%::::::::%%%~~~~~~~~~~~~%%%%%%%..%%%.%%%%%.%.%..,.,%%%%%%%%%%%%%%.%%%%%%%,,.%%%%%.%%%%%%%%%%%%%%.%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-----,,,,-,~~~%%%%%%%%,;;%%%%%,,%%%%%%%%%,,,,,,,,,,,%%%%%,,%%%%,%%%%%%,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,%%%%,%%%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%%,,%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%,,,%%%%%,,,,%%%,,,,%%%%%%%%%%%%%%%,%::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::_______~~~~~~~~~-%%.%.%%.%%%.%%%.%%%%%%%%%%.%%%%%%%%%-------~~~~~~~~,,,::::::::::::::,::::::::::%%.:::::::%%~~~~~~~~~~~~~..%%%%%%..%%,.%.%%%.%%....,%%.%%%%%%%.%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~----,,,,,,,,~~%%%%%%%%,,,,%%%,,,%%%%%%%%%,,,,%%%%%%%%%%%%,%%%%%,%%%%%,,,,,,,,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-%%%%%,,,,,%%%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,%%%%%,%%%%%%,,%%%%%%%%%,,,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%,,%%%%:%%%,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::::::::::::::::::::%:::::::::::::::::::::::::::::_______~~~~~~~~~~%%%.%.%%%.%%.%%.%%%%%%%%%%%%%%%%%%%%%%%,,----~~~~~~~~,::::::::::::::,:::::,::::::%:::::::::..~~~~~~~~~~~~~,%%%%%%%.%.,;%%...%%.%%...%%%%%%%%%%%.%%.%.%%%%%%%%%%%.%.%.%%%%%%%%%%%%.%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~-------,,,,,%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,%%%%%,%%%%%,,,,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,%%%%,,,%%%%%%%%%%%%%%%,,,,%%%%%%%%,,,,,,%%%%%,%%%%%%,,%%%%%%%%%,,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%,,%%%%%,,,%%%%%%%%,,,,,%%%%%:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,:::::,______~~~~~~~~~~~~~%%...%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,;--~~~~~~~~,,::::::::::::,:::::::::::::%:::::::..~~~~~~~~~~~~~~~~.,.,..%%%%%%%%.%...%%%%%,%%.%%%%%%,%%%%.%.%%%%%%%%...%.,,..%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~--------,,,-%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,%%%,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,%%%%%%%%%%%%%%%,,,,%%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,%%%%%,,,%%%%%,,%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%,,%%%%%,,,%%%%%%%%,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~~~~~~~%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,,,---~~~~~~~~,:::::::::::::::::::,::::::::::::::::~~~~~~~~~~~~~~~~~,,,%%%%%%%%..%%%.%%%%%%%%%%.%%%%%%,..%.%%%%.%.%%%%%%...%%%%%%%%%%%%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---------,-~~%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,%%%%,%%%%,,%%%%,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,%%%%%%%%%%,,,,,,,,,%%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,%%%%%,,,%%%%%,,%%%%%,,,,,%%%%,,%%%%,,,%%%%%%%%,%%%%%%,%%%%%%%,,,,,,,,,,,::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%..%%%%,,%%%%%%%%%%%%.%%%%;,----~~~~~~~,::::::::::::::::::::::::::::::::.:::_~~~~~~~~~~~~~~~~,%%%%%%%.%%%.%%%.%%%%%.%%%%%.%%%%%%%.%.%.%%%%..%%%%%,.%.%.%%%%%%.%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~-----------~~~%%%%%%%%%%%%%%;,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-%%%%%,,,,,,,%%%%%,,,%%%,,,%%%%%%%%,,%%%%%%%%%,%%%%,,,%%%%,%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,%%%%%%%%,,%%%%,,%%%%%,,,,,,,,,,,,,,,,%%%%%:::%%%%%%%:::::,,%%:::%%:::::::::::::::::::::::::::::::::::%%%%%%%::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~%%%%%%...%%%%%%%%%%.%.%,~.%%%%.%%%%%%%%%%%%,%%%%~~~~~~~~,::::::::::::::::::::::::::::%::::::____~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%.%%%%%.%%.,.%%%%%%%%%%%.%%..%%%.%%%,%.%%%%.%%%%%%%%,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~------------~~~%%%%%%%%%%%%%%;,,,,,,,,,,**%%%%%%%,,,,,,,,%%%%%%%%,,%%%%%,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,%%%%,,%%%%%,,,,,%%%%%,,%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,%%%%%%%,%%%%%%%%,,%,%%%%,%%%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%,::,,%%%%:%%%%:,:::::::::::::::::::::::::::::::::%%%%%::::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~%%%%.%%%.%%%%%%%%%%%%%%~~~~~,%%%%%%%%%%%%%%,,%:.:.~~~~~~~,,,,::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~%%%%%%%.%%%%%%.%%%%%%%%%%%%.%%%%%%%%.%%%...%%%%.%%%%,%%.%%%..%%%%%%%,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --~~~~~~~~~~~------------~~~~~~~%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,,,,,%%%%%%%%,,%%%%%,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,-,,,,,,%%%%%%%%,,,,,,%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%,,,%%%%,%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%%%%,,,,,%%%%%%%%%%,,;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~~~~~~~~~~%%%%%..%%%%%%%%%%%%,,-~~~~~~~%%%%%%%%%%%.....%:::%%~~~~~~~,,-::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%.%..%%%.%.%%%%.%%%%%..%%.%%%%%.,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------------,,~~~~~~-%%%%%%%%%%,,,,,,,,,%%%%,%%%%%%,,,,,,,,,%%%%%%%%,,,%%%%%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,,%%%%%,,,,%%%%%%%%%,,,%%%%%%%%%%%%%,%%%%%%%%,,,,%%%%%,%%%%%%%,,,,,,,,,,,,,%%%%%,,%%%%%%%%%,,,,,%%%%%,,,,,,%::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::,,::::::::,,:::_______~~~~~.~..~~~~~~-%%%%%%%%%%%%%%%%%%%%--~~~~~~%%%%%%%%%%%%.%..%.:::%%,~~~~~~~--,:::::::::::::::::::::::::::::::::--~-~~~~~~~~~%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%,%%%%%...%.%%%%%.,,%%%.%...%%%%%.%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------------,,,-~~~~--%%%%%,%%%%,,,,,,,,%%%%%,,%%%%%,,,,,,~,,%%%%%%%%,,,%%%%%,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,,%%%%%,,,%%%%%%%%%%,,,%%%%%%%%%%,,,,%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%,,,,,%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::,,,,,%%%%%,,,:______~~~~~%.%%.%~~~~~~-%.%.%%%%%%%%%%.%%%%%%~~~~~~~%%%%%%%%%%%%.%%..,:::%%,,~~~~~~~--::::::::::::::::::::::::::::::::-:-~,~~~~~~~~~%%%%%%%%%%.%%%%%%%%%%%%%%%.%%%%%%,,%%%%..%%%....%..%%%%%%%%.%.%%%..%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------,---,,,,~~~~~~,,,,,,,,,,%%%%,,,,,%%%%%,,,%%%,,,%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,%%%%%%%%%,,,%%%%%,%%%%,%%%%%,,,%%%%%,,,%%%%%%,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%,,,,,,,,,,%%%,%%%%%%%,,,,,,,,%%%%%,,,,%%%%%::::;::::::::::::;::::::::::::::::::::::::::::::%%%,,,:::,,,,,,%%%%%,,,:______~~%%~%..%%%%~~~~~~%%%%%%%%%%%%%%%%%%%%%~~~~~~~%%%%%%%%%%%%.%%%%%%%.%%,,~~~~~~~~-::::::::::::::::::::::::::::::::::::,,~~~~~~~~%%%%%%%%%%.%%.%%%%%%%%%%%%%%%,,%%%%%%%%...%.%,%%%%%..%%%%%%..%%%%.%.%.%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------,,,%%%%%,~~~~~~,,,,,,,,%%%%%,,,,%%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%,,,,;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,%%%%%%%%%,,,%%%%%%%%%%,%%%%%,,,%%%%%,,%%%%%%%,,,,,,,,%%%,,,,,,%%%%%,,%%%%%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%:::::::::;:::::::::::::::::::::::::::::::::::::%%%%,,,,,,,,,,,,,%%%%,,,~______~%%%%%%%%%%%~~~~~~%%.%%%%%%%%%%%%%%%%%%~~~~~~~~%%%%%%%%%%.%.%.%%%%%%%.,~~~~~~~~--:::::::::::::::::::::::::::::::::::%,~~~~~~~~~,%%%%%%%%%%%.%%%%%..%.%%%.,,,,%%%%%.,%,%%.%%....%%%.%.%%%%.%%%..%%%%%,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------,-------,,,%%%%%~~~~~~~%%%%,,,,%%%%%,,,%%%%%%%,,,,%%%%%%%%%%%%%,,%%%%%,,,,%%%%%%%;,;,,~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%,,,-~,,%%%%~%%%%%,%%%%%,,,%%%%%,%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,%%%%%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,%%%%::::::::::::::::::::::::::::::::::::,:,%:::::::%%%%,,,,,,,,,,,,,,,,,%%%_______~%%%%%%%%%%%%.~~~~~%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~%%%%%%%.%%%%.%%%%%%%,,~~~~~~~~---::::::::::::::::::::::::::::::::::%,~~~~~~~~-,,%%%%,%%%%%.%.%.%%%%%%%%%%%,,,%%.....,,,..,%%%.%%%.%.%..%%%%.%.%%%%%,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------,,,,--,,,,,%%%%%~~%%%%%%%%%,,,,%%%%%,,,%%%%%%%%%,,%%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~-----,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,~~~~,,%%%%%%%%%-%%%%%,,,,,,,,%%%%%%%,%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,%%%::::::::::::::;:::::::::::::::::,,,,,%%%%:::::%%%,,,,,,,,,,,,,%%%%%%%%%______%%%%%%%%%%%~~~~~~~~,%%%%%%%%%%%%%%%%%%%-~~~~~~~~~%%%%%%%.%,.%%%.%.%%%,,~~~~~~~~~.----:::::::::::::::::::::::::::::%%%,~~~~~~~--,,,,,%,,.%%%.%%.%%.,%%.%..%.%%,,%%.%%.%,,..,%.%.%%%%%.%%.%%%%%,.%%%%%,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------,,,,,,,,,,,,%%%%%~~%%%%%%%%%,,,,,%%%%,,,%%%%%%%%%%,%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,,,~~~~~~~~~~~~~~~~~~~~------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,-~~~~~~%%%%%%%%--------,,,,,,,%%%%%%,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%%%%,,,,,,%%%%%%%,,,,,,,%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,%%%%:::::::::::::::%:::::::::::::::,%,,,%%%%%:::,,,,,,,,,,,,,,,,,%%%%%%%%%~~_~~%%%%%%%%%%%%%~~~~~~~%.%%%%%%%.%%.%%%%%%%-------~~~%%%%%...,,%%%.%%%%.,,~~~~~~~~~~~~~-,::::::::::::::::::::::::::::%%%%,~~~~~~---,,,,,,%%..%%%.%%.,,,.%%%.%.%%%%,,%%.%%%,,.%%%%%.%%%%%.%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,%%%%%,,,,,,,%%%%~~~%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%,,%%%%,,,,,%%%%,%%%%%,,,,,,%%%%%,,,~~~~~~~~~~~~~~~~~~~--------,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%~~~~~~~%%%%%~-----------,,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,%%%,,,,,,,,%%%%,%%%%%,,,,,%%%%%%%%::::::::::::::%:::::::::::::::%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%-~~~~%%%%%%%%%%%%~%%%~~~~%.%%%%%%%%%%%%%%%%%%---------,,,%%%%%,,%%%.%.%.%..%~~~~~~~~~~~~~~________::::::::::::::::::::%%%%%~~~~~~---,,,,,,%%%%%%%%%%%%%%,.%.%%%.%%%%,,,.%%%%,%%..%.%.%%%%%%~~%%%%..%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%,,%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,%%%%,,,,,%%%%%,,,,~~~~~~~~~~~~~~~~~---------,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,~~~~~~%%%%%~-----------,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%%%%::::::::::::::%:::::::::::%,:::%,,,~%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%%----~~%%%%%%%%%%%,.%%%%%~~%%.%%%%%%%%%%%%%%%%%,,,,----,,,%%%%.%,,%%%%.%%%..%%~~~~~~~~~~~~~~_____~~____~__:::::::::___:%%%%%~~~~~~-,,,,,,,,,%...%%%%%.%%%%%,%%%%.%%%%%,,,%.%.%.%%%%.%%~~....~~~~~%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,~~~~~~~~~~~~~~~~,--------,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%~~~~%%%%%,-----------,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%%%%%:::::::::::::::::::::::,,,,::,,,,,~~,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,------%%%%%%%%%.%%%%%%%%%~%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%,%%%%%%%%%%%%%~~~~~~~~~~~~~~~_~~~~~~__~~___:::::::____~,,,~~~~~~~~,,,,,,,,.%%.%%%%%,,%%%%...%.%.%%%%%.%...%.%.%%%%%%%%.~~~~~~~~~~~~~~.%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,~~~~~~~~~~~~~~~~~,,,,,,-,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%~~~~~~~~,---~~~~~~~---%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,%%%%,,,,,%%%%%%%%%::::::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,.,,..,,%%%%%,,,,,,,,------%%%%%%%%%%.%%%%%%%~%%%%%%%%%%%.%%.%%%,,,,,,,,%%%,,,%%%%%%..%%%%%%%%.%%,~~~~~~~~~~~~~~~~~~~~~~~~~~____:::_____~~~~~~~~~~~~,,,,,,,,,,%%%.%,%,..*%%.%..%%.%%.%%%%%%.,.,%%%%%%%%%.~~~~~~~~~~~~~~~.%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%,~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%~~~~~~,,,,-~~~~~~~~~-,%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%,,,,,,,,,,,%%%%%%%%,,,,,,,,,%%%,,,,,%%%%%%%%%,,,,,,,,%%%%%,,,%::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,%%.%%,,%%%%%,,,,,,,,,,,-,,,%%%%%.%%%%%%%%%%%~~~~%%%%.%%%%%.%%%%,.%%,,%%%%%%%,,,%%%%%%%.%%..%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________~~~~~~~~~~~,,,,....,,,%%%%%.,%%.%.%%%%.%....%%%%%%%%,%.%%%%%%.%%%.~~~~~~~~~~~~~~~%%%%%%,,,%%%,,,,.,,,,,,.,,,,,,,,%%%,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,,,%%%,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%%%%%%,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,~~~~,,,,,~~~~~~~~~~~,%%%%%%%%%,,,,%%%%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%%%%%%,,%%%%%,%%%%,,,::::,,,,:::::::::::::::::%%%%%,,,,,,,,,,,,,,,,,,.%%%%%,,%%%%%,,,%...,,,,,,,%%%%%.%%%%%%%.%.%.~~~~...%%%%%,,.,%,%%%%%%%%%%%%%%,%%%%.%%%.%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________~~~~~~~~~~.,,,..%..,,..%%%%%%.%%.%.%%%%..%%.%%%%%%%%%%%%%%%%...%..~~~~~~~~~~~~~~~,%%%%%%,%%%%%,,,%%%.%%%%,,,%%%%%%%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%,,%%%,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%~~~~~~~~~~~~~~,,,%%%%%,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,,,,,,,~~~~~~~~~~~,%%%%%%%,,,,,,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%%%%%%,,%%%%%,%%%%%,%::::,,,,::::%%%::::::::::%%%%%,,,,,,,,,~,,,,,,,,%.%%%..,%%%%%%,,%%%.%.%%%%%%%%%%%%%.%%%%%%%%%%~~~~~,,%%%,,,,,,.%.%%%%,%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____~~~~~~~~~~~,,,,,%.%...%%%%%%%%%%%.%%%%%.%.%%...%%%%%%%%%%,,%%%.,.~~~~~~~~~~~~~~~~~~,%%%%%,%%%%%,,%%%%%,%%%%.%%%%%%%%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,-,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,%%%%%%%%,,,,,%%%%%%%%%%,%%%,,,,%%%%%,,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%,,,,%%%%%%%%%%,,%%%%%,%%%%%,%%%::,,,,::::::::::::::::,%%%%%,,,,,,,,,~~,,,,,,%%.%%.%,%.%%%%%,,%%.%...%%%%%%%.,%%.%%%%%%%%%%%~~~~~,,,,,,,,,,,,%%%%%%%%%%%%%%%.....%%%%.%%%%%%%.%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%.,.%%%%%..%%%%%..%%%%%.%%%%%%%%%%,%%%.,~~~~~~~~~~~~~~~~~~~~,,,,,.;%%%%%,,%%%%%%%%%.%%.%..%%%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,%%%%,,------%%%%%,,,,,,,,,%%%%%,,%%%%,,,,--%%%%%%%%%~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,%%%%%%%%,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,,%%%%%%%%,,%%%%%%%%%%%,%%%%%,,,,:::::::,%::::::,,%%%%%,,,,,,,,,~~~,,,,,%%...%.%%%%%%%%%%..%%%%.%%%%%%%%.%%%%%%%%%%%%%.~~~~,,,,,,,,,,,,%%%%%.%%%%%%%%%%%%.%.%%%%%%%%.%%.%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,%%%,.%%.%%%%,,,%%.%%%%%%.%%%%.%.%,,,.%%,,.%%%,,,,,,~~~~~~~~~~~~~~~~~~~~,,,.%%%%%%%%,,%%%%%%%%%%%.%%%%%%%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,,,%%%%,,,,%%%%%,,,,,,,,,,,,,,%%%%%-------%%%%%,,,,,,,,,%%%%%,,%%%%%,,-----~~~%%%~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~--,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%,,,%%%%,,,,,,,,%%%%%%%%,%%%%%,,,%%%%%,,,,,,,,,%%%%%%,,,,%%%%,%%%%%%,,%%%,,,%%::::::,,%%%:::,,,%%%%%,,,,,,,,,~~~,,,,,%%..%.,%%%%%%%%%..%%%.%.%%,%%%%%%%%%%%%%%%%%%.~~~~~,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%.....%%.%%%.%%%..~~%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,%%%%,%...%%%%%%,.%%%%%%%%%%%%%.%.%.%%%..,,,%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%,,,%%%%%%%%%%%.%%%.%%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----,,,,,%%%%,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%---------,,,,,,,,,,,-%%%%%,,%%%%%,,---~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,,,,,,,,%%%%,,,,,%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,%%%%%%%%,%%%%%,,,%%%%%,,,,,%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,%%%%::::%%%,,,:::,,,,,,,,,,,,,,,,,~~~~,,,,%%%%,,,%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%~~~~~~,,,,,,,,,,,,%%%%%%%%%%%%%.%%%.%%%..%..%%.%%%%%%.%%...%%%~~~~~,---,--~~~~~~~~~~~~~~~~~~~~~~~~~,,%.%.%,...%%%%%%%.%%%%%%%%%%%%%%,,...%%%.%%,,%%.,,,,~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%,,,%%%%%%%%%.%%%%%.%%%%%.,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,-,,,,%%%%%,,,,,,,%%%%,,%%%%%,,,,%%%%%%%%----~~~~~~~~~~~~,-------,,,,%%%%%,---~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%,,%%%%%,,,,,,,,%%%%%%%%,,%%%%,,,%%%%%%%,,%%%%%,,%%%%%%%,,,,,,%%%%%,,,,,,,,%%%::::::%%%,,,,%%%%,,,,,,,,,,,,,,~~~~~,,,,,,.,,,,%%%%%%..%%%.%.%%.%%%%%%%%%..%%%%%%%%%~~~~~,,,,,,,,,,,,,,%%%..%%%%%%%%%%%%%%%.%%.%.%.%%%%%%%%%%%%%.%%~~..,,-----::_~~~~~~~~~~~~~~~~~~~~~~-%%%.%%.%%%%%%%%%%%.%%%%%%%%%%%%%...,.%%%%..,,,.,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%%,%%%%%%%%%%.%.%...%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%---~~~~~~~~~~~~~~--------,,,,%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%%,,,,,~,,,,,,%%%%%,%%%%%,,%%%%%%%%,,,,,%%%%,,,,,,,%%%%%::::::::%,,,%%%%%,,,,,,,,,,,,,,~~~~~~,,,%%%,.,,,.%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%..%%%~~~~~,,,,,,,,,,,,....%%%%%%%%%%%%%%%.%%.%%%%%%.%..%%%%%%%%.%%%~.%%%%,,,-:::::___~~~~~~~~~~~~~~~~~~~~.%.%%%.%.%%%%%%%.%%%%%%%..%%%%%%%.%.,%%%..%.,.,.,.,,~~~~~~~~~~~~~~~~~~~~~~~,,%.%%%%%%%%.%%%%%%%%%%.%%.%.%%%%%%%%%%,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%,,.,--~~~~~~~~~~~~~~~---------,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,%%%%%%%,,,,,,,,,,%%%%,,,,,,,~,,,,,,%%%%%,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%::::::::::,,,%%%%%,,,%%%%,,,,,,~~~~~~~,,%%%%%%%%,.%%%%%%%%%.%.%%%%%%%%%.%%%%%%%%%%%.%~~~~,,,,,,,,,,,,,.%%%%..%%%%%%.%%%%%%%.%.%.%.%%%%%%%%%%%%%%%%.%....%%,,,::::::_____~~~~~~~~~~~~~~~~~%.%%%...%...,%%%%%%%%%%%%%%%.%%%.%.%%.%%%%%%,.%%,,,,~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%.%%%%%%%%%%%%%%%%...%%%%%%%%%%%%,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,,,,,,%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%,,,,--~~~~~~~~~~~~~~~---------,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%%:::::::::::,,,%%%%%,,,%%%%,,,,~~~~~~~~~~,%%%%..%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%~~~~~,,,,,,,,,,,,,,%.%.%%%.%.%%.%%..%%%%.%%.%.%%%%.%%%%%%%%%%%%%%%%%.%%,,,::::::::___~~~~~~~~~~~~~~~~~..%%%.%%%%%,,.%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%.,,~~~~~~~~~~~~~~~~~~~~~~~,,%%%.%%%%%.%.%%%%%..%%%%%%%.%%%%%%%%%.%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%,,,%%%%%%%%%-~~~~~~~~~~~~~~~~~~~~-----,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,~,,%%%%%,,,,,,,,,,,%%%%%,,,~~~~~~~~,,,,%%%%::::::::::%,,,%%%%%,,,%%%%,,,,,~~~~~~~~~~%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%~~~~~~,,,,,,,,,,,,,..%%%%.%%%.%%%%%%%%%%%%%%%..%.%..%.%.%%%%%%%%%%.%.%%,,,,:::::::::__~~~~~~~~~~~~~~~~.,%%.%.%%%%.%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%.%%.%..%%%%.%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%,,,,,,,%%%%%,,%%%%%%%%%%,,,,,,,%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,~~%%%~____::::%,,,,,,,,,,,,%%%%,,,,,,~~~~~~~~~%%.%%%%%%%%%%%%%%%.%.%%%%%.%%%%%.%,%%%%%.~..~~~~,,,,,,,,,,,,,.%%%.%..%%%%...%%%%%%%%%%%%%%%%.%..%%%%%%%%%%..%%%%,,%,,::::::::::_~~~~~~~~~~~~~~%%%%....%.%.%%%%%.%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~,%%.%%%%%..%%%%%.%%%.%%%%%,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,,,%%%%,,%%%%%,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,%%%%%,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%,,,,,,,,,%%%%%,%%%%%,%%%%%,,,,,%%%%%%%%,,,,%%%%,,%%%%%,,,,,,,,,~~~,,%%%,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~_____:,,,,,,,,,,,,,,,%%%%,,,,,,~~~~~~~~~%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%.%%~~~~~,,,,,,,,,,,,,%%%%.%%.%%%%.%.%%%%.%%%%%%...%%%%.%.%.%%%%%%%%%%.%,%%%,:;,::::::::,~~~~~~~~~~~~~%%%%...,%%%%%..%%%%%.%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~,%%%%%,%.%%%%%.%%%%%..%%%%.%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%,--~~~~~~%%%%%%%%%,%%%%%,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%,,,,,,,,,%%%%%%%%%%,,%%%%%,,,,%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,~~~,%%%%%,,,,,,,,%%%%%,,,,,,-~~~~~~~~~~~~~~~~~____~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~.%%%.%%%%%.%%%%%%%%.%%%%%%%%%%%%,,,%.%.%.%.~~~~,,,,,,,,,,,,,.%%.,.%%.%%.%.%%%%%.%%%%%%%%.%.%.%,,%%%%%%%%%%%%%..,%,,:,:,::::::,,,~~~~~~~~~~~~%%%%%%%%,..,%..%%%%%%%%%%%%%%%%%.,,,%%%%%%%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~%.%%,,,.%%%%%.%.%%%%%%%%%.%.%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,%%%%%,,%%%%%,%%%%%,,,,%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%%%%%%,~~,%%%%%,,,,,%%%%%~~~~~~~~~~~,,,,,,,,,,,,,,~,,,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%,,,,,,%%%%%%%%%%,,%%%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,~~~,%%%%%,,,%%%%,%%%%%,,,,,,,~~~~~~~~~~~~~~~~~_____,,,,,,%%%%,,,,,,%%%%%,,,,,~~~~~~~~~~~~.%%%%%%.%%%%.%%%.%.%%%%%%%%%%,%.%,%%%%%%.~~~~~,,,,,,,,,,,,,%%%%%;..%.%%%%.....%.%.%%%%%.%%.%..,..%.%%%%%.,..%%,,,,::,::::,::,,,,~~~~~~~~~~,%.%%%%%%..,,.%%%.%%%%%%%.%%%.%%%.%%,%.%%%%%%%%%%%%%,.,,,,,~~~.%%~~~~~~~~~~~~~~~,,,,,,,,,%..%..%%..%%%%%%.%.%%%%%%%%%%%%,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,%%%%%%%%,,~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,%%%%%,,%%%%%,,%%%%,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%~~~~~~~~~~~,,,,,,,,,,,,,,~~,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,%%%%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,~~~~,%%%%%,,,%%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~____,,,,,%%%%%,,,,,,%%%%%,,,,~~~~~~~~~~~~~~.~.%%%%%%%%%%%,...%.%%%%%...%%%%%,,%.%.%~~~~~,,,,,,,,,,,,,%%%%%,,,%%%.%%%.%.%.%%%%%%%%%%.%%%,,%%.%.%%.,%,,.%%%%,,:,:,,::::::,,,,,,%%%%,,%%%%%%%%%%%%%,,%.,,%%%%%%%%%%%%.%%%%%%,%%%%%%%%%%%%%%,,,,,,%~.%%%%%~~~~~..~.%%%%-,,,,,,,.%..%%.%%.,.%%%%%%.%%%%%%%%%%%%%%%%%%%,,%%%%,,%%%%%,,,,,,%%%%..,%%%%%%%%%%,,~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---,-,,,,--,,,,%%%%%,,%%%%%,,,%%%,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,~~~~~~~~~,,,,,,,,,,,,,,,~,,,,,,,,,,-------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,%%%%%%%%%%,,,,%%%%%%%%,,,,,,,,,,,,,,,~~~~~%%%%%,,,%%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~____~,,,,%%%%%,,,,,,%%%%%,,~~~~~~~~~~~~~~~~~~.%%.%.%%,%,,,.%%%%%%%%%.%%.%%%%.,.%.%%.~~~~,,,,,,,,,,,,,%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%.%%%.%.%%%%%%%%%%%,,.:.:::%::::%%%..%%%%%%%%%%%%%%..%%%,,,.,,%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%%%%%~~~~~.%...%...-,,,%%%.%%%,%%%%%%.%%.%%.%.%%%%%.%%%%%%,%%%%%,%%%%%,.%.%.%.%.%%%%%%.%.,%%%%%%%%%%,,,~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------,,----,,,%%%%%,,,,,,,,,,,,,,,,,,%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%,%%%%%%,,,,,,,,,,,,,,,,,,,~~~~~~,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,~~~~~~%%%,,,,%%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~_____,%,,%%%%%,%%%%,%%%%%,,~~~~~~~~~~~~~~~~~~~~.~.,.%,%%%%%%.%.%.%%%.%%%%%%%,%%.%.%~~~~~;,,,,,,,,,,,,,%%%,.%%%%.%....%.%%%%%%%%%.%%%.%%%..%%%%.%%%%.%%%%%%,..:::.%%:..%..%%,%.%%%%%%%.%.%%%%%%%%,,,,,%%%%..%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%,,%%%.%%%%%%%...~.%%%..%%%%%%,%%%%%.%%,,%%%%%%....%%.%%%%%.%%%%%%.,%%%%%%%.%%%,.%%%%.%%%%%%%%%%%.,%%%%%%%.%%,%%~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------,-------,,,,,,,,,,,,,,,,,,,,,,,*,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,%,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,,%%%,,,,,~~~~~~~~,,,,,,%%%%,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~___~%%,,%%%%%,%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%,%%%%.%..%%%%%%..%.%%%%%~~~~~~,,,,,,,,,,,,,,,,%%%%%%%%%%%%.%%%%%%%%%%%.%%%%...%%%.%.%%%%%%.%.%%,%.::%.,%%%..%%...%.%%%%%%%%...%%%%%%%,%%%.%%%.%%.%%%%%%%%%%%%%%%%%%,%%%%%.%%%%,,,%%%%%%%%%.%%%,.%%%%%.%%%%%%%.%%%%%%,,.%%%%%%%%.%%%.%%%,,,%%%%%%%%%%%%..%%%%,%%.%%%%..%%%.%%.%%%%%%%%%%%%%%%%~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------,,,,,,,,,,,,,,,,,,,,,,*--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,,,%%%%%,,,,,%%%%%,,,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~____~%%%%%%%%%,%%%%%,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%,,.,..,.%.%.%.%%%%%%%%%%.~~~~~~,,,,,,,,,,,,,,%%%%%..%%%%%%%%%.%%%%%%%%%%%%%%%%%%..%.%%%.%.%.%.,%.%%%.%,%%%.%%%%%%%%%......%%%.%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%,%%.%%%%%%%%,,,%%%%%%%%%%%%%%,%.%%.%%%%%%%.%%%%%%%..%%%%%%%%.%.%.%.%%%.,,,%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%.%%%%..~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------,,,,,,,,,,,,,,,,,,,,,*--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,%%%%%,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~____~%%%%%%%%%,%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~---%..%%---.%.%%%.%%%..%%%%%%%%~~~~~~~~,,,,,,,,,,,,,,%%%%%%%%.%%%%,.%%%%%%%%%%%%.%%%%.%%%.%%%%%.%%%%%.%.%%%%%.,%%%%%%%%%%.%.%%....%%%%..%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%%.%%%%%.%.%.%%%%.,%%%%%%%%%%......%%%.%,%%%%%%.%%%.%%.%%.%.%%.%%%.%..%%%%.,,%%.%%..%%%%%%%%,%%%%%.%.%%%%%%%..%%%%%%%%%%%%%%%%~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,;,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,-,,,,%%%%%,,,,,%%%%%---~~~~~~~~~,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___~~%%%%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%--.%.%.%..%..%.%%%%,%%.~~~~~~~~~~,,,,,,,,,,,,.%.%%%%%.%%%%%%.%.%%%%%%%%,%%%%%%%%%%%%%%..%.%%%%%%%.%%%.,,.%.%%%%%%%%%%.%%%%%%.%%.%%%%%.%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%,....%%%%...%.%%%.%%%%.,%%%%%.%%%%%%%%%%.%.%..%%%..%%%%%%%.%%%%%%%%%%..%%%,%%%%%%%%%%%%%%%%%%.%%.%%%%%%%.%%%~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,,,,,,%%%%,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,;,,;,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%,%%%%%%%%%%%%%%%%%%,,~,-------,,%%%%%,%%%%%%%----~~~~~~~~~,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------.%%%..%%%%.%%%%%,,,~~~~~~~~~~~,,,,,,,,,,,,%%..%%%%.%%%.%%%.%%%%%%%%%.%%%.%%%.%%%%%%%%.%%%%%%%.....,,,,%%.%%%.%%%.%%%..%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%.%%%%%%.%%%%%%%%%%.%%..%.%%.,.,.,,.%%%%%%%%%%%%%%%%%%%.%%%..%%%%%%.%,%%%%%%%%%%%%..,,%.%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%..~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,,,,,%%%%%%,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%,%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~-----,%%%%%%%%%%------~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%..%%%,,,%%%%,,,~~~~~~~~~~~~,,,,,,,,,,,%.%.%%%.%%%.%%%%%%%.%%%%%%,,%%%%%%.%%%%%%%%%.%..%%%%%%%,,,,.,...%..%.%.%.%%%%%%%%%%%%....%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%.%%%%%%%%.%%%%.%.%.%...%%%%%%%%%.,,,,%%%%%%.%%%%%%%%%%%%%...%...%.%%%%%%,,.%%%%..%%%%%.,,%%%%%%%%%%%%%%%%.%%%%%%%%%%.%.%.%,~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,,,,,%%%%%%,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,;,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~-----%%%%%%%%%%------~~~~~~~~~~~,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%.%%,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,..%.%%.%%%%%%%%%%%%%%%%%%%,,,%%%...%.%%%%%%%%%%%%%%%%%%%,.%%%%%%%%,...%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%.%%%%%%%%%%.%.%%%%%%%%%%%%.%%%%.%%%%%,%%%..%.%.%%%,,%%%%%%%%%%%%%%%%%%%%%.%%.,.%%%%%%..%.,.%%%.%..%%%%,.%%%.%%%%%%%%%%%%%.%%%%%%..%%.%%.%%,,~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,,,,,%%%%%%,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-,,,;,*,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%%%,%%%%%%%%%,,~~~~~~~~~~~~~~~----%%%%%%%%%%-----~~~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%%.%%,,,.,~~~~~~~~~~~~~~~~,,,,,,,,,,.%%.%.%%..%%%%%%%%%%%%%%%%%%,,,,%%%,.%%%%%%%.%%%%%%%,%%%%%%%%.%.%.%%--%%%%-%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%,.%%%%%.%%%...%%..%%.%%%%%%%%%%.%%%....%%%%%%%%%,,%%%..%%,%%%%%%%%%%%.%.%%%%%%..%%%...%%,.%%%%%.%.%%..,%%%.%%%%%%%%%%%%...%%%%%.%%%%.%..,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------------------,,,%%%%%%,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,-~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%,,,,,%%%%%~~~~~~~~~~~~~~~~~~---,%%%%,%%%%---~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,~~~~~~~~~~~~~~~~,,,,,,,,,.%%%...%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%..%,%.%%%%%%%.%%%%.%%%--.---..%%%%%%%.,.%%%%%%%%%%%%%%%%..%,%%%%%%%.%%..%%%...%%%%%%.%%....%%%%,,,%%%%%%...%.%%%%%%..%%%%%%%%%%.%%%%%%.%%.%%..%%%.%.,,..%..%%%%%..%%%%%.%%%%%%%%%.%.%,*%%%%%.%%%.%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------------------,,,%%%%%,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~%%%%%%,,%%%,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~---,,,,,,,-----~~~~~~~~~~~~~~,,,,%%%%%,,%%%%%,~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%,,..%%%~~~~~~~~~~~,,,,,,,,,,,.%%%.%%.%.%%%%%%%%%%%%%%.%%%.,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%.%%%-----.%.%%%%%%%%.%%%%%%%%%%%%%.%%%...%.%%%%...%%.%.%.%..%%%.%.,,.%%%..,,.,,,%%%%%.%%%%%%%%.%%.,%%%%.%%%%%%.%%%%%.%.%.%..%%%%%.%%%%%%%..%.,,%%%%%%%.%%%%%%%.%%%%,*%%%.%,%%%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------------------,,,%%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~-,,-,,,,,----~~~~~~~~~~~~~~~,,,,%%%%%,,%%%%%%%%~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%.%%%%%%~~~~~~~~~,,,,,,,,,,,.%.%.%.%%%%..%%%%%%.%%%%%%%%.%.%%%%%%%%,%.%%%%%%%%%%%%%%.%%%%%%.%%.%%%--~~~.%%%%%%%%%%.%%%%%%%%%%%%%%%.%%%%..%%%%.%%%%%.%%%.%%.%%%%.,.%.%%%.%%,,,,%%%%%%%.%%.%..%%%..%.%%%%%%%%..%%%%%%%%%%%.%%%%.%.%%%...%%%%%%%%.%%%%.%%%%%%%%%.%%%,,%%%%,,%%%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~---------------%%%%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,~~~~~~~~~~~~~~~~~-%%%,,,,,,,,,,,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~-----,,---~~~~~~~~~~~~~~~~,,,,%%%%%,,%%%%%%%%~~~~~~~~~~%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%,%%%.%%%%%%%%%%%%..~~~~~~,,,,,,,,,,,,,%%%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%.%%%%%%%%%.%%%.%%%%,..%%.%%%%-~~~~~%%%%%%%%%%%%....%%%%%%%%%.%..%%%.%%%...%%.%%%..%%.%.%%%.%%.%%%.%%%,,,,,%,,%%.%%%.%.%%%%%.%%%.%%%%%...%%.%%%%.%.%..%%.%%%%%.%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%.,,,,,,,.%%%%%,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~------------%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,%%%%--~~~~~~~~~~~~~~~~~~~~~~~~-----,,-~~~~~~~~~~~~~~~~~,,,,%%%%%,,%%%%%%%%~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%.%%%%..,.,,,,,,,,,,,,,,,,,%.%%%%%%%%%%%%%%.%%%%%%%.%%%..%%.%..%%%%%,%%%,%%%%%%%%%%,,,%%%%%%%%%--~~~~~%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%.%..%%.%%,.%%.%%%%%%,,,,,...%%..%.%,...%%%%%%.%%%...%.%%.%%%.%%.%%..%.%...%%%%%.%.%%%%%%%%.%%%%%%.%%%%.%..,,,,,,,,,%%%%%...,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~------,,------%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~-%%%%,,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~---,~~~~~~~~~~~~~~~~~~~~,,,%%%%%,,%%%%%%%%,~~~~~~~~~%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%,,,..%%%%%%%,%%%%%%%%%.%%.%%%%%%%,%%%.%.%.%.%%.%%.%%%%%%%,,%%%,%%%%%%,,,%%%%%%----~~~~~~%.%%%%.%%%%.%%%%%%%%.%%%%%%,.%.%%.,,,%%%%%%%%%..%%%%.,.%%%%%.%%,,,,,,,,.%%%%%%.%%,,.....%%%%.%...%%%%%%%%%,...%%%%%%%%%%%%%%%%.%.%%.%,%.%%%%%%%.,.%%...,,.,,,,,,%%%.%%%%%.,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---,,,-----%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,~~~~~~~~~~~~~~~~~%%%%%%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,---,,,,,,,%%%%%%%~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%.%%%%%%%%.%%%%%%%%%.%%%...%%%%%%,,%%.%%%%.%%%%%%%%%%%,%%%%.,.%%%%%%%%.%%%%%%%,,,,,,%%%%%%%,,%%%%.--..-~~~~~~~.%%%%%%%..%%%%%.%%%%%%%%%%%.,..,,,,,,%%%%%,.%.%.%%%%,%%..%.,,,,,,%%%%,%.%%%..%..%%%%%.%%%%..,.,...%%%%%%%,%%.%%%.%%%.%.%.%%%%%%%%%%,%%%%%%%%%%%%%.%%.%.%%.,,%%%%%%.%.%.%.,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~--,,,-----%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~-~,-~~~~~~~~~~~~~~~~%%%%%%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%~~~~~~~%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%.%%%.%.%...%%%%%%;%%%%.%.%..%%,%%%%%.,%%%%.,%%%..%%%.%.,,%%%%,,,,,,.%.%.%.%%%%.%%%.%%.~~~~~~~%%%%%%%%%%%.%%%%%%%%%%%%%%%,,%%%%,,.,%.%%%,,%%.%%%..%%%%%.,,,,,%%,%%%,%%%%..%%%%%%%.%%%%%.%%%.%%,%%%%%%%%%%%%%%%%.%.%%%%%.%.%.%%.%,%%%%%%%%%%%%%%.%.%.%%%%,,%%%%%%%%%%%..,,,,*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~--,,,-------,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~---,,,~~~~~~~~~~~~~~~%%%%%%%%%%,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%,,%%%%%%%%%%%%%%%%%%..%%%..%%%.%%%%%%%%%%.%%.%%%%%,,%,%,.%%%%%%.%%%.%%..%%.%%%,,,,,%%%%%.%%%%%%.%%%%%.~~~~~~%%%%%%%%%.%%%.%%%%%%%%%%%%%%%,%%%%%.%%%%.%%,....%%%%%%%%%.%.%,%%%%%%%%%%.%%%.%%%%.%%%%%%%%.%%.%.%%%,.%%%%%%%%.%%%%%.%..%%%,,..%%%%%%%%%%%%%%%%%%%..%%%%%%%%,,%%%%%%%%%%.%.,,,**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-,,--------,;,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~---,,,,~~~~~~~~~~~~~~~%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%%%%%%%%%%%%%%%.%.%%%.%%%%%....%..%%%..,%%%%%.%%.%%%%%%%%%.%%%%.%%%%%%%%%%.,,..%%%..%%%%%%%.%%%.~~~~~~.%%%%%%%%%.%%%%%,%%%%%%%%%%%%,%%%%%%.%%%%....%%%%%...%..%%%.%%%%%%%%%%%%%.%%%%,%.%%%%%%%.%.%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%,,,%%%%%%%%%%%%%%%%%.%%%..%%..%%%,,%%%%%%.%%%%.,,,,**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~--------------,,,,--,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~----,,,~~~~~~~~~~~~~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%.%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%.%%%%%%,,,%%%.%%%%%%%%%%%..%%.%.%.%%%..%%%%....%.%.%.%%%%.%.%.%.%~~~~~~,%%%%%..%%.%%%%%,%%%%%%%%%%%%.%%%%%..%%%%..%%%%%%%%%%%.%%%.%%%%%%%%%%%.%%%%%%.%%%.%%.%%.,,.%.%....%%%%%%..%%%%%%%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%,%%%%%.%%%....,,,,,**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~----------------------,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,;,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~---,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%,,,-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%%%%%%%...,,%%%%.%%%..%%..%%.,,,,..%%%%%%%%%%%%,%%%%%%.%%%%.%%%%%%%...%%%..%%%%%%%.%%%%.~~~.,,.%%%..%%%%%%%%%..%%%%%%%%%%,,%.%..%%%%%%..,%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%,,;.%.%%%.,,%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%.%.%%%%%%%%%%%%.%...%.%%%.%%.%%%%%%%%%,,,,,,*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-,,--------------------,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,;,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,.%%.%%%%%%%%%%%..%%%%,,,%%%%%.%%%%%%%...,,,..%%%%%%%%%%%%%%,%%%%%.%.%.%...%%%%%%%%.....%%.%.%.%%..~~.~~%%%%%%%%%%%%.%%%.%.%%.%%%.%%.%%,.%.%.%.%%...%%%%%%%%%%%%%.%....%%.%%%%.%%%%%%%.%%%.%%%%%.,%%,%%%%%%.....%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%..%.,%%%%%%%%%%%%%%.%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~,,-----------------------,,,,,,,~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,%%%%%-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,.%%%%..%%%%..%.%%.%%%,,,.%%%%%%%%..%%%%%,,.%.%%%%%%%%%%%%.%%%%.%%..%%%.%%.%%%%%%%.%%.%%%%..%%%.%-.-~%%%%%%%%%%%..%%%.%%%%%%%%%%%%%%%.%%%.%%%.%%%..%%%%%%%%%..%.%,.%%%%%%%.%.%%%%%%%%%.%.%%.%%%.,,%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%.%%,,%%%%%.%%%%...%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~-,-------------------------,,,,,,,,,,~~~~~~~~~~~~~~~~---,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,%%%%%----,,-~~~~~~~~~~~~~,,,,,,,~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,...%.%%%%%.%.%%.%.%%.%%.%%.%%%%%%.....%%,%.%%%%..%%%.%%%%%.%%%.%.%%.%%..%%.%.%%%..%%%%%.%%%%%..%%%%.%%%%%%%.%%%%%%%.%.%%.%%%.%%%%.%%%%%.%.%.%.%.%.%%%%%..%%,.%%.%%%.%%%%%%.%%%%%%%%%%%.%%%%%.,,,%%%%%%%%%.%.%%%.,%%%%%%%%%%...%.%%%%%%%%%%%%%%%%%%%%.%.%.%.%.,,,%%%%%%%.%%%%%..%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~---------------------------,,,,,,,,,,,,,,,,~~~~~~~~----,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%%,,,,,,,,,~~~~~~~~~~,,,%%%%,,~~~~~,,,,-~~~~~~~~~~~~~~~~~~~~,,--,,,,,,,,,,,,,,%%.%%.%%%%%%%%%..%%..%%%%%%%%.,.,%%.%%..%.%.%.%%%%%%%%%%%%%%...%.%%,,.%%%%%.%%.%.%%%%..%%.%..%.%%%.%%%%%%%%.%%..%%%..%%%%%%%%.%%%%%.%%%%%%%%%.%%..%%%%.,.%%%%%%%%....%%%%.,%%%%%%%%%%...%%%%.,,%%%%.,%%%%.%%%%.,.%%%%%%%%%%%%..%%%%%%%.%%%%%%%%%%%,%%%..%%.%...,%%%%%%..%%.%.%%%%,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~------------------------,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%%,,,,,-,,,~~~~~~~~~~,,%%%%%%%%%~~~~,,,-~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,.%%...%%%%.%%%%%.%%%%.%%%%%%.,,%.%.%%..%%%..%%%%%.%%%%%%%%%%..%%%%,%%.%.%.%%..%.,%.%%.%.%..,..%%%%.%%%%%%.%%%%.%.%%.,%%%%.%.%%%%;,.%.%...%%%%.%.%%%%%,,,,%%.%%%%..%%.%%%%,%%%%%%%%%%%%%%%%.%%,,%%%.%.,,,,%.%.%,,%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.,%,....%.%.%%%..;,,%%%%%%%.%%%%%,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-----------------------,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~,,,,,,,,,,*,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------%%%%%------,~~~~~~~~~~~,,,%%%%%%%%%,~~~,,--~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%.%%%...%%%.%%.%%%%%%%%%,,%%.%%%%.%%%%...%%%%%%%%%%%%%%%%.%.%.%%%%%.%%.%%%%.%%.%%.%%%....%%.%%%%%%.%%%%%%%.%%%%,%%%%.%%%%%.,,.%%%%.%%%%%%%%%%.%.,,,,%%%%%%.%.%%.%%%%.,%%%%%.%%%.%%%.%%%.%%%%%%.%.,,,%%.%.,%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%,%%%.%%%%..,...%%..%%%%.%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~-----------------------,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,--~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~%%%%%,,,,,%%%%%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%..%,,.,..%%..%%%%%%%%%%%%,,%.%.%.%.%%%%%%%%%%%%%%%%....,.%%.%%%%%%%.%..%%%%%%%%.%.%%%%%.,.%%%%%%%%%%%%%%%%%.%%%.,%%%%%%.%%%.,,.%.%.%%%%%.%%%.%%%%%.,,%%%%%%%.%%%%%.,.,..%%%%%%%.%%%%%%%%%%%%%%%%%.,,%%.%.,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%,,.%.%%%%..%%%%%%.%%%..%%%.%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~------------------------,---,,,,,,,,,,,,,,,,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,;,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,%%%%,%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%...,,%..,,%%%%%%%%%%%%%%.%%%.%.%.%%%%%%%%%%%%%%..%.%%.%.%%..%%%%%%%%%%%%%..%%%%.%%.%.,,,..%.%%%%.%%%%%%%%%%%%%%%%%%.%%%%..%,%..%%%%.%%.%%%%%.%.%%,.%.%%%%.%%%%%%%%,,,.%%,%%.%%%%%%.%%%%%%%%%%%%,,,%%%%%,,%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.,%.%%%.%%%%%%%%%%...%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~,,---------------------------,,,,,,,,,,,,,,,,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,;,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,%%%,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%.%%%.%%%,,,%%%%%%%%%%%%.%%%.%,.,%%%%.%%%%%%%.%,,%.%.%%%%%%%%.%%%%%%%%%.%%%%.%.%..,.,,,,,%%%%%%%%.%..%%%%,,%.%%%%%%%%,...%%%.%%%.%%.%%.%%%.,%%%%%.%%%%%%%%%%.%%%%%%,,,%%%,,%%%.%%%%.%%%%%%%..%%,,,%%%%%%%..%%%%%%%%%%%%..%%%%%%%%%..%%%%%%%%%.%.%,,,%.%%%.%%%%%%%.,,,%%%%%.%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~,,---------------------------,,,,,,,,,-,,,,,,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,,,%%%%,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-;,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%,,,,,,,,,,...%%%%%%%%%%%.%%%%%%%%%%%%%.%%.%.,,,%%%%%%%%%%%%.%,.%%%%..%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%.%%.%%.%%%%..,,%%%%%%%.%%%%%%%%%.%%%%..%%%%%,.%.%.%%%%%%%%%%%%%%%.%%%,,.%%%%%%%%%%.%%%%%%%%.%.%%.,,,.%.%%%%.,%%%%%%%%.%.%,..%%%%%%%%%%%%%%..%%.%.%..%%%%....%%%.%%.%%,.%%%%%%.%,,,,,,,,%%%,%,,.%%%%%.%%%%.,%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~,,---------------------------,,,,,,,---,,,,,,,~~~~~~~~~~~,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~,%%%,,,,,,,,,%%%%%,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%,,,,,,,,%%%%,,,,,~~~~~~~~~~~~~~~~~~%%%.,,,,,,%%%%%,,,,,,,.%%%%.%%%%%%%%%%%%.%%%%%%%%%%%,..%.%%,,.%.%%%%%%%%%%%%,%%%.%%%%%%%%%%..%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%.%%.%.%.%%%%%,,,.%..%%%%%%%%%%%%%%%.%%%%%%%.%%%%..%%%%%%%%%%,,...%%,..%.%%%%%%%%%%%%%%.%%.%%%%.,,..%%.%%%%%.%%%%%%%%%%%%.%.%%.%%%.%%%%.%,,...%%%%.%%%%%%%.%%%%%%%%.,,,%%%.%%,%%%%%,,%%%%%%%..%%%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,-------------------------------,,-----,,,,,,~~~~~~~~~~~,,,,------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,%%%%%,,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~-,,,,;,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~-,,%%%%%,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~...~%%.%..%.,,%%%%%%,,%%,,%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%,%%%%%.%%%%%%%,,%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%.%%.%%%%%.%%%%%,,,%%%%%%%%%%%%.%%%%.%%%%%%%%%%%..%%%%%%%%%%%%,.%%%%.,,%%%.%%%%%.%.%%%,,,,,.%%%%%.,,,%%%%%.%%%,%%%%%%%%%%%.%.%%%..%%%,%%%%%,%%%.%%%%..%%%%%.%%%%%%%%%%,,%....,,,%%%%%,.%%%%%..%.%%%%%%%%%%.%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------,,---~~~~~~~~~~~~,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,%%%~~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~------,,,%%%%%,,,,,,,,%%%%%,,,,,,,,-,,,~~~~~%%.%.%%%..%.%%,%%%%%%%,%%%..%%.%%%%%%%%.%.%%%%%%%%%%%%%%.%%%%.%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%,,,,~~~~%%%%,,,%%%,,,,,,,%%%%%%.%,.%%%%.%%.%.%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.,;%%%%%.,%%%%.%%%%%%%%%,,,,,,,%.%%%.,,,.%.,.%%%%.%%%%%,,,%%%%.%%%%%.%%...%%%%%%%%%%.%%%.%%%,%%%%%%%%%..%.%.%%.%%,,.%%%%,.%%%%%.%%%%%%%.%%%%.%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,,,,,--------------------------------------~~~~~~~~~~~~~,,,--------,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------%%%%%~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,%%%%,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,;,,,,,,,,~,,,,,---------,,,,,%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,~.%.%.%.%.%%%%.%%%%..%%%%%%%.%.%.%%%%%%%%.%%%.%%%%%%%%%%%%.%.%%%.%.%%%%.%%%%%%%%%%%%%%%%.%%%%%%,,,,~~~~~~~~~~~~,,,,,,,,,,,,,,,%%...%%.%%.%%.%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%.%%%..%.%*,,,,;,,,,,,%%.%%,,,,%%%.%.%%.,%%%.%,.,%%%%%%%%%%.%%%%.%%%.%...%%%%%%.%%,%%%%%%%%%%%.%%%%%.%.%%%%.%%%%%%%%%%%%%%%%%%%%%%..%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~-,,,,,-------------------------------------~~~~~~~~~~~~~,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------%%%%%~~~~~~~~~~~~~~~~,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%~~~~,,,,,~~~~~~~~~~~%%%%%,,,,,,,,,,,;,,,,,,,,,;,,,,,,,,,,,---,,,,,,,,,%%%%%,,%%%%%,,,,%%%,,%%%,,,,,,,,,,,,.%%%%.%%%%%%.%%%%%%%%%.%%%%.%%..%%%%%%%%%%%%%...%%%%%%%%%,%%%%%%%%%%%.%%%%%%%%%%%%%%%%%,%%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%.%%%.%%..%%%%%%%.%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%.%%%.%..%%%..,,*-*,,,,,,,,,,,,..%,,%%%%%%%%%....%%%.,,%%%%%%%%%%..%.%%%.%%%%%%%%.,,...%%,%%%%%%%%%%..%.%...%%%.%%%%%%%..%%%%%.%%%.%%%%......%.%,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~--,,,,,------------------------------------~~~~~~~~~~~~~,,------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~%%%%%%~~~~~~~~~~~~~~~,,%%%%%,,,,,,,,,,,,,%%%%%,,%%%,,,,,,,,,-~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,%%%%%,,,,,,,,,.,,..%.%.%.....%..%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%..%%.%%%%,.....%%.%%%%%.%%%%%%%%%%%%%%%%%....%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%.,.,.%%%%%%%%%%%%.%%%.%.%%%%%%%%%...%%%%%%%%...%%%%%%%.%%%%%%%.,%%.%%%%%%.%%,,***,,,,,,,,,,,,%%%%%.%%%%%%%...%%%%%%%%%%%%%%%%.%%..%%%%.%..%%%.%.,%%%%%%%%%.%%%%%%%%%%%%.%%%%%%%.%%%%%%%...%%%.%%%.%%....%.%%%%.,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~----,,,,,,----------------------------------~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~,;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~%%%%%%%%~~~~~~~~~~~,,,,%%%,%%%%%,,,,,,,,,%%%,,,,,,,,,,,,,,---~~~~~~~~,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%,,,,,,%%%%%,,,,,,...,,,,%%%%%%%%%%....%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%.%.,.%%%%%%,,,,,%%%%.%...%%%%%.%%%%%%%%%...%%.%.%%-~~~~~~~~~~~~~~~~~~~~~~~~~~,,.%%,,%%%%%%%%%%%%%%%.%.%%%%%%%%%%,%%.%%.%%%%%%%%%%.%,%%%%%%%%%%%%%,,.%%%%%.%,..,,**,,,,,,,,,,,,,%%%%.%%%%%%%%%.%.%%%%%%%%.%%%%%%%.%.%.%.%%%%%%%%%.,,%%%%%%%%.%%%%%%%%%.%.%.%%%%%%%%%%%%%%.%.%%.%%%%%%,.%%%%%..%..,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~----,,,,,,----------------------------------~~~~~~~~~~~~~~-------------,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~%%%%%%%%~~~~~~~~,,%%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,%%%-----,,,,%%%%,,;,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,..,,,%%%%%%%.%%%%%%%%%%%.%%.%%%%%%%%%%%%%%.%%%%,,,%%,%%%%,%%%.%%.%%%%%%%,,%%%%%%%%%%%%%..%%.%.%-~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,.,%%%%%%%%%%.%%%%%%.%%%%%.%%%%..%..,%%%%%%%%%%%%%%,.%%.%%.%%%%%.%%%..%%%%%%%.,**,,,,,,,,,,,,,.%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%..%%%,.%%%.%%%%%%%%%%.%%%%.%%..%%.%%%%%%%%%%%.%.%%%%%%%;.%%%...%.%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~----,,,,,,,----,----,,-----------------------~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~%%%%%%%~~~~~~~,,,%%%%%,%%%%%%%%,,,,,,%%%%,,,,,,,,,%%%%%,%%%%%----,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,%%%%%%%%,,,.,,%%%%,,..%%%..%%%%%%%%%%%%%%%,%.%%%%%%%%%%%%.%%%%%%%.%%%....%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%.%%%%.%,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%..%.%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%,..%.%..%%%.%,*,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%.%%%..%.%.%%%%%%%.%%%%%%%%%%%%%%%%%.%%...%%%%%.%%%%%%%%%%%%%%%%%%%%%%%...%%%%.%%.%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~------,,,,,,,--,,,,,,,,,----------------------~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-.~~~~~~~~,,%%%%%%%%~~~%%%%%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%,,,%%%%%,,,%%%%%%%%%.%%%%%.%%%%%%%%%%%.%%.%%%%%%%%%%%.%%%.%%.%.%%%%%.%..%%%%%%%%%%%%%%%%.%.%,%%%%%%%%%%.%.%.%.,,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%,%%%%%%%%%.%%%%.%%%%%%%.%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%.%.,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%...%%%%%%%%%..%%%%%%%.%%%%%%%%%%%%.%..%%%.,%%%%%%%%%%%%%%.%%%%%.%%.%%.%.%.%.%.%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,----------------------~~~~~~~~~~~~~~--------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~-;,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,,,,,,,,;,-~~.~~~~-,,,%%%%%%%%~~~%%%%%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%,%%%%%,,,,%%%%%,,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,%%%%%%%%%%,%%%%%%%%%%%%%,,,%.%%%%.%%....%%..%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%..%%.%%%..%%%%%%%.%,%%%%%,.%.%%%%%.%%%%%%%%...%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,.%.%%%%%.%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%.%%%%%.%%%%%%%%%%.,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%..,%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%,%.%%%%%.%%%%%%%%%%%%%%.%%%%%%%.%%%%%%.%%%%%.%,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,----------------------~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~---,,,,,,,,,,,,,,;,,,,;,,,,,.,,,,,,,.,,,,,,,,~~-~~~-,,,,,,,%%%%%,~~%%%%%%%%,,%%%%%%,,,,,,,,%%%%%,,,,,,,,%%%%%,%%%%,,,,,%%%%%,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,;,,,,,,%%%%,%%%%%,%%%%%%%%%%%%,,,,.%%%%%%%%%.%...,,,%%%%%%%%.%%%%%%%%%%%%%%%.%.,%%%%%%%%%%.%%%%%%%%,,%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%.%%%%%%%%,%%%%%%%%%%%%%%%.%%%.%.%%.%,,,,,,,,,,,,,,,,,,%%%%%%%%.%%%..,.%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%%%.%%%%%%%%.%%%%..%.%.%%%%%%%%%%%%%...%%%%%%%%%%.%%..%%%%.%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,------------------------~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,%%%%%,,%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,;,,,;,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;;,,,,,,,%%%%%,%%%%%%%%%%,,,,,,%%%%%%%.%%%%,,,,,,%%%.%%%%%%.%%%%%%%%%%%%%%%%..%%%%%%%%%.%%%.%.%%%%%%%%%%.%%%%..%%%%%%%%%%%%.%.%%%%%~~~~~~~~~~~~~~~~%%%~~~%%%,,,,.%%%..%%.%%.%%%%%%%%%%%%%%%%.%.%.%.,%%%%%.%%%%%%%%%%.%.%%%%%%%%%.%%%%%%%%%.%...%.,.,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%,.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%..%..%%%%%%%%.%%%..%%%%%%.%%..%.%%.%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%,%%,,,,,,,,,,,,,,,,,,**********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,-------------------------~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,~~~~~~~,,,,%%%%%%%,,,%%%%%%,,%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,;,%%%%%,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,%%%%%,%%%%,,,,,,%%%%%%%%%%%.%%%%%%%..%%%.%%%.%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%%%,,,.%%%%%%.%%.%%.%%%%.%%%%%%%%%%%%%%.,,.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%..,..%%%%.%%%%,,,,%,%%%%%%%%.%%%.%%%%%%%..%%,,,..%%%%%%%%.%,%%%%.%%%.%%%%%%%..%%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%%%.,%%%%%%%%%%%%%.%%%%%%.%%%,%%%%%%%,,,,,,,,,,,,,,,,,,%,%%%%%%,,,,,,,,,,,,,,,,*************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~,-------,,,,,,,,,,,,,,,,,,-----------------------~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,%%%%%,,,,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,,,,,%%%,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,%%%%%,,,,%.%%%%%,,,,,,,,%%%%%..%.%%%%%%,%%.%%%%%%%%%,,,,%%%%%%%%%%%%...%%%.%%%%%...%%%%%%%.%%%..%%%%%.%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%,,,,%%%%.%%%%%%%%%%%%%%%%.%%%.%%.%%,%%.%%%.%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%.%%%%%.,,,%.%..%%%%.%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%%,,,.%%%%%%%..%%%%%%%%%%%%%,%%%%%%%,,,,,,,,,,,,.,,,,%%%%%%%.%%%,,,,,,,,,.,,.***************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~,,,,,-,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,~~~~~,,,,,%%%%%,,,,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,%%%%%;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,.%.%.%%,,,,,,,,,,.%%%%%%%%%%%%%%%.%%%%..%%%%%,.,.%%%%%%%%%%%.%%%.%.%%%%.%%%%%%%%%%%%%%.%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~%%%%%%%%%%%%,,,.%%%%.%.%%%%%%,,.,,.%%%%%%%%%%%%%%..%%%%%%%%%%%%%..%%%%.%%%%%..%%%%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%,,,%%%%%,,.%%%%.%%%%.%%%%%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%%%%%%%%.%%%%%%%%..%%%%%.%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%,,,,,,..,,,,%%%%%%%%%%%%%%%%%%%%%%,.%%..%.****.%%%*******,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,;,,,,,,,,;.,..,,.,,,,,,,,,,,~~,,,,,,,%%%%%,,,,,%%%%,,,%%%%%%,%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,.%.%%%%%%,%%%%,,,%%%%%%%%%,%%%%%%.%%%%%%,%%%%.%%%%%%%...%.%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%.%%%%%%%%%%.%%%%,.%%%%%%%%%.%~~~~~~~~~~~~%%%%%%%%%%%%%%%,%%%%%%%%%%%.%%%%%%%.,%%%%%h%%%%%%%.%%%%%%%%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%..%%%%%,,,%%%%%,.%.%%%..%%%%%%%%%.%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%,%.%%%%%.%.%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,..,%%%.,,,%%%%%.%%%%%%%%%%%%%%%%%...%%%.****%%%%%%%*******,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%,,%%%%%%%%%,,,,,,,%%%%%,,,,%%%%,,,,%%%%%,,,,,,%%%%%;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%.%%%%%%%,,,%%%%%%%%%,%%%%%....%%%,%%%%%%%%%%%.%%%%%%.%.%%%%%%%%%%.%%%.%%%,%.%%%%%%%%%%.%%%%%%,,,.,,%%%%%%%%%%%%~~~~~~~~~~~%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,,%%%%%%%%%%%%%.%%%%%%..%%.%...%%%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%...%.,%%%%%%,,,%%%%%...%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%.%%%%%%%%.%%,%.%%..%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%.**::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,.,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,,,,-,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%.%.%%%%%%%,,,%%%%%%%%%%%%%%.%%%%%,.,%%%%%%%%%%%%%%%%%%%%%..%%%%.%%%%..%%%%%.%%.%%%%%%%.%....%%%,,,,,.%%%%%%%%%%%%~~~~~~~~~~~%%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%.%%%%%%%%.%%%%%%%....%%.%%%,,%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%..,.,..%%%.%.%.%.%%%%%%%...%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%.%.%.%%.%.%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%.%%%%%%%%%.%%%%%.%%%.%.***%%::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,,,;,,,,,,,,-------;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%.%.%%%%.%%%,,,%%%%%%%%%%.%%%%%.%..,%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%.%%%%%%%%%%%%%..%%%.%%%,,,,,,%%%%%%%%%%%~~~~~~~~~~~~%%%.%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%.%..%%%%%,%%%.%%%%%%%%%%%%%.%%%%%.%.%.%%%.%.%.%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%..%..%%%%.%%%%.%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%..%%%%%%.%%%%%%.%%%%%%%%%%%%%%%.%%%.%%%%%%%%%.%%%%%%%%%%.%%%%%%..%%%****%%%%%::.::::::::::::::::::%::::::::::::::::::,::,::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,---------;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,.....%%,%%%%,,.%%%%%%%%%%,%%%.%%%%%.%%%%%%%%%%%%%%%...%%%%%.%.%%%%%%%%..%.%.%%%%%%%%%%%%%.%..%%.%.,,,,,,,%%%%%~%%~~~~~~~~~~~~~,%%%%%%.%%%.%.%%%%%%%%%%%%%.%.%%%%%%%%..%%%%..%%%%%..%%%%%%%.%.%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%.%.%%%.%.%%%.%%.%%.%,%.%%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%%%.%%%%%%%%.%.%%%%%%%.%%%%%%%%%.%.%.%.%%%%%%%%%%%%%%%%%..%%%%%%..%%..%%%%%%%%%%%%.%%%%%.%.%%%.%.%%%..***..%%%%:::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,;,,,-~~~~~-----,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,.%.%%.%%.%%.%%,%%%%%%%%%%,%%%%%%%.%.%%%%%%%%%%%%%%%.,,,%%%%%%%%%%%%%%%.%%%%,%%%%%%%%%%%%%.%..%%%.%,,,,,,,,%,~~~~~~~~~~~~~~~~~,,%%%%%%%%%%.,,%%%%%%%%%%%%%.%%%%%%%%%%.%%%%..%%%%%.%%%%.%%%%%%%%..,.%.%.%.,.%%%%%.%%.%%.%...%%.%.%%%%%.%%.%%%.%%%%%%%%%%%%%%%%..%%%..%%%%%%%%...%%%%.%%.%%.%%%%%%%%%.%%%%%%%%%%%.%.%%%..%.%%%%%%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%..%%%.%.%*****%%%%%%::%%%:::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,-~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,.%%%%%%%%.%%%%%%%%%%%%%%%.%%.%%%%%%...%%%%%%%%%%%%.%%%%%%%.%%%.%%%%%%%..%%%%%%.%%%%%%%%%%%%%.%.%%%%,,,,,,,,,~~~~~~~~~~~~~~~~,,,,%%%%%.%%%.%%%,%%%%%.%%.%%%%.%%%%%%%%,,%.%..%%.%%.%%.%..%.,%%%%%%%%.%%%%%.%.%%%%%.%.%..%%.%%%%..%.%%.%%%%%.%%.%%%%%%%%%%%..%.%%%%%%%.%%%%%...%%%%%%%%%%.%%%%%%%%%%,,.%%.%%%%%%%%%%%%%..%%%..%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%%%%%%%%..%%.%%%%%%.%%%.%%%.%%****.%%%%%%%%.%%:::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,--~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,%%%%%,,%%%%%%.%%%.%%%%%%%.%.%%%%.%%%%%%%.%%.%%%.%%%%%%%%%%.%%%%%%..%%..%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%,,,,,,,,,~~~~~~~~~~~,,,,,,,,,%%%..%%.%%%%%%%%%%%%.%%%%%%%%.%%%%%.,%%%..%%.%%.%%,,.%%%.%%%%%%.%.%%.%.%..%.....%..%.%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%..%%%...%%%%%%.%%%%%.%%,,,%%%%.%%.%%%%%%%%%.%%%%%%.%%%%%%%%%.%%%%%%%.%%%.%%..%%%%%%%%%%%%.%%.%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%..%%%.%****.%%%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,----~~~~-----,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,%.%%%%%%%.%%%%%%%%%%%%.%.%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%.,..,%%%%%.%%%%%.%%%.%%%%%%%%%%%%%%.%%%%,,,,,,,,~~~~~~~~~,,,,,,,,,,,,%%%%.%%%%.%%%%%%%%%%%.%%%%%.%%%%%.%%.%%%..,%%%....,,%%%%%%%%%%%%%%.%%.%...%..%%%%%,%%%%.%%%%%.%%%%%%%%%%%%%%.%%%%%%%%.%%.,..%%..%.%%%%%%%%%%%.%.%%%%%%%%%..%%%%%.,%%..%%%%%%%.%%%%..%%%..%.%.%%%%%%%%%...%%%%%%%..%,%%%%%%%.%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%..%.%*****.%%%%%%%.%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%,,,,,,,,,%%%%%%%%,,,,,----~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,%.%%..%%%%%%%%%%%%...%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%,%%%%%%%%%%.%..%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,.%.%.%%%%%%%.%%%%%%%%%%%%%%%%%..%%%%..%%%%.%%,,,,%%%.%%%%%%%%%%%%%%..,,%%%%%..%%%.%%%%%%%%%%%.%..%%%%.%%%%%.%%%%%%%%%%%.%%%.%%%%,%..%.%%.%.%%%%%%%%%%%%%%%.%%%.,,%%%%%%%%%%%%%%%.%%%%.%..%.%.%%%%%%%%..%%%%%%%%..,,%%%%%%....%%%%%.%%%.%.%%.%%%%%%%%.%%%%%%%%.%%%%.,,%%%%%%.%.%..*****%%%%%%%%%%%%%::::::::::::::::::;:::::,:::::::::,::::::::::::::::::::::::::%,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%,,,,,------~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%.%%%%%%%%....%..%%%%%%%%,.%%%%%.%%%%%%%%%%%%%%%%%%..%%%%%%..%%.%%%%.%%%%%%%%%%%%%%%%%%%%%...%%%.,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,%%.%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%.%..%%%%%,,.,,%%%%%%%%%%%%%%%%%%%,,,,%.%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%;%.%%.%%%%%%%%%%%%%.%%%,.,%.%%%%%.%%%%%.%%%%%%%.%%%%%%%%%%%%%..%%%.%%%%%,,,%%%%%%%%%%%..%%%%.%%%%%%%%%%%%%.%..%.%.%%%.%.%%%.,,%%%%%%%%%%.******.%%%%%%%%%.,.,:::::::::::::::::::::::::::::::::,::::::::::::::::___:::::::%,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,%%%%%%%%,,,%%%%%%%%,,,,,-------~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%,%.%%%%%%%%%%....,%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%.%%%.%%%%%%%%%%%%%%%%%%%..%%%%%...%.%,,,,,,,~~~~~~~~~,,,,,,,,,,,,,%%%%...%%%%%%%%%%%%%%%.%%.,%%%%%.%...%%.%%%%,,,%%%%%%%%%%%%%%%%%%%%%,,,..%.%%.%.%%%%%%%%%%%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%,%%%.%%%.%%%%,%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%.%%%.%.%%%%%%%%%%%%%%%%%%.%%%..%%%%%,,,%%...,,%.%%%%.%%%%%%%%%%.%%%%%%%%%.%%.%%%%%%%%%.,,.%%%%,%%%%%%***********..%.%.,,,::::::::::::::::;:::::::::::::::,:::::::::::::::::____--::::,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,%%%%%%%%,,,%%%%%%%%,,,,,,-------~~,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,%%%,.,,,,,%%%%%,%%%%%%,,%.%.%,%%.%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%.%%%.%%%%%%%%%%%%.%%%.%%%%%%%%.%%%%%,,,,,%%,~~~~~~~,,,,,,,,,,,,,%%%%%..%%%%%%%%%%%.%%%%%%%,%%%%%%%%%%.%%%.%%%.,%%%.%%%%%%%.%%%%%%%%%%,,,,,....%.%.%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%..%%%%.%%%%%%.%%%.%%%%%%%%%.,,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%..%%%.%%%%%%%%.%..%%%,.%%%%%.%%%%%%%%%%,.%%%%%%%%%%.%%%%..%%..%.,%%%%..,%%%%%%.*********.%%%%%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::______:-::,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,,,,,,,,--,,,-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%%,,,%%%%%%%%,,,,,,,-------~,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%--,..%%%..%.%%%..%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%..%%%.%%.%%%%.%%%%%%%%%%%%%%%%%%.,;,,,%%%%%%~~~~~,,,,,,,,,,,,,%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%.%%.%%%%%%%%%%%%%.%%%%%%%%%%%%.,,,.%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%,,%%%,,%%%%%%%%%%%%%%,,,.%%%%%%%%%%.%%%%%%%%%%%%,.%%%...%%%%%%%.%%%%%.%%%%%,,....%,%.%%%%%%%%%,%%%%%%%....%%%%%%.%%%%%%%%%%%,,%%%%%%.**********%%::..:::::::::::::::::::::::::::::::::::,::::::::::::::::::______:::,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,,,,--------,-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,%%%,,,,%%%%%-------~..%%.%,.%%%.%%.%.%%%.%%%%%%%%%%%..%%.%.%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%.%%,%%.%%%%.%%.%.,,%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%,,,%%%%.%,,%%%%%%%%%%%%%.%%%%%%%%%,,,,.%%.%%%%%.%%%%%%%%%%%%%%%..%%%%%.,%%%..%%%%%%%%%%%.%%,,,%%%%%%%%%%%%%%%%%%%%%%%,%%,,.%.%.%%%%%.%%%%%%%%%%%%.%,%%.,,%%%%.%%%%%.,%.%%%%.%%%%%.%,,,.%%%.%%%%%%%...%%%%%%%.*******::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::________::,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,%%%%%,,,,,%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,%%%%%,,,%%%%%---~~~~~.%%%%%.%.%.%.%%.%.%.%%%%%%%%%%%...%.%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%,,,,%%%%.%%.%..%%%%%%%%%%%%%%.,,,.,,,,,,,,,,,,%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%.%%%......%%%%%%%%%%%%%%%%.,%%%%%%%%%%%,,%%%%.%%.%.%%%%%%%%%%%%%%.,,,%%%.%%.,,,,,%%%%%%%%%%%%%%%%%%%%%%,..%....%%%.%%%%.%,%%%%%%%%,..%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%..%.%.%%%%%%%%...%%%.%%,,,,,,.%%%%.%%%%%%%%%%.%.%%%%%,,,,.%%.%%%%%%%.,,,.,,%%%%%*****:::::..::::::::::::::::::::::::::::::,::,,:::::::::::::::::::___:::____:,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~-,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~%%%%,,,,%%%%%~~~~~~~~,,%%%%.%%.%%%%%%.%.%%%%%%%%%%%%%..%%%.%%%%,.%%%.%%%%%%%%%%%.%%%%%%%%%%,.%%%%%%%%%%%..%%%%%%.%%%%%%%%%%,%%%.,,%%%%%.,,%%%%%%%%...%%%%%%%.%%%%%%%%%%%%%%%%%%%,%.%%.%.%%%%%%%%%%%%%%%%.%%%%%.,.,..%%%.%%%%%%.%%%%%%%%%%%%.%.,,.%%%.%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%.%.%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%,%%%%%%%%%,..%.%.,,.%%%%%%%.%%%.%%%%%%%%,,,,..%.%.%%%,,,,,,,,%%%%%****:::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::_:::::___:,%%%%%,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,;,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,;,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,%%%%~~~~~~~~%%%%%%%..%..%.%%%%%.%%%%%%%%%%.%.%%..%.%,,,,%%%%%%%%%,%%%%%..%%%%%%%.%%..%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%,%%%.%%%.,%%%%%%%%%%....%%%%.%%%%%%%%%%%%%%%.%%%%%%..%%%..%%%%%%%,%.%%%%%%%%%%%.%..%%.%.%%%%%%%.%%%%%%%%%%%%.%.%%%%%%%%%%%,,%.%%.%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%.%%%%.%%%%%%%,%%.%%%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%.%%%%%,..%%%.%%%%%%.%.%%%%.,,.%%%.%%%%%%%%%%%%%%%%.,,.%%%..,,,.,,,,,,,%%%%%,***:::%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::%%%:,,:::::~~~,::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,%%%%,,,,,,,,,,,,%%%%,,,,,,,,,,,,,;,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,,,~~~~~~~~~~%%%%%%%,%%%%%%%%%....%%%%%%%%,%%%%....%%%,,,..%%%%%%%%,%%%%%%.%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%.%.%%%..%%%%%.%%%%%%%%%...%.%.%%%%%%%%%%%...%.%%.%%%%...%%%%%%%%.%%,%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%.%%%%%%%%%.%.%.%%%%%%%%%..%%%%%,%%%%%%..%.%%%%%%%%.%%%%.%%%.%%%,,,,.,,,,,,,,%%%,,,,:::::%%%%::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::~~,:::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~-,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,;;,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~~~~%%%%,,,,,%%%%.%%%%%,,,%%%%%%%%%.%.%%.%%%%%%%...%%%%%%%...%%%..%%%%%%%%%%%.%%%%%.%%.%.%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%.%.%%%%%%%%%%%%%%...%%%.%%%..%.%.%%.;%%%.%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%.%%.%%%.%%%%%%%%%%%%,.%%%.%.%%%%%%%%%%%%%%%%%%%%%...%%%%...%%%%%%%%%%%%%%%%.,%..%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%%.%%%%%....%%%%%%%%%..%.%%%%.%%%.,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~,,,,,,,-,,,,,,,,,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~,,,,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~%%%%.~%%%..,..,,,%%%%%%%%,,,,,%%.%%%%%%%%%%..%%%.%.%.%.%%%%%%%%,.%.%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%,.%%%%%%%%%%%%%%.%%%%%%%%%%.%%.%%.%%..%%%%%%%%%%%..%%%%.%%%%%%..%%%%....%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%.%%%%%.%.%.%%.%%%%.%%%%%%%.%%%.%%.%%.%%%%%%%%%%%%%%%%%%%%...%%%%....%%%%%%%%%%%%.%.%.,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%.%%%%%%%,%%%%.%%%%.%%%%%%%%.%%%%%%%%%%%%,~~~~~~,,,,,,,,,,,,::::::::::::::::::::::::::::~~:::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~,,,,------,,,,,,,,-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,~~%%%%%~..%%.%%%%%,,,,..%%%.,,,,,,.%%%...%%.%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%%%%%%..%%%%%%%%%%%%%%%%%%,%%%%%%%%%.%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%.%.%.%%%%%.%%%.%%%%..%%%%%%%%%%%%%%%%.%..%%%%%%%%%%%%%%%%%.%%.....%%%%%%%%%%%%.%%%%%...,%%,%%.%%.%%%%%%%%%%%.%%%%%%%..%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%%.%.%%.%%%%%%%.%.%%%%.,%%%%%..%%%%%%%%%%%%%.%.,%%%%%%%%~~~~~~~~,,,,,,,,%,:::::::::::::::::::::::::::::~~:::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,--------,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~,,,,,,,,,,,;,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,~%%%%%%%%%.%.%%.%%%,,,,,,,,,,.%%%%.%.%%%%%%%%.%%.%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%....%%%%%%%%%%.%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%%.%%%.%%.%%%.%%.%%%%%%%%%%.%%%%%%%%%%.,,%.%%%%%%%%%%%%%%%%%%%.%%%.%....%%%%%%%%%%.%%%%%.,,%%.%%.%%.%%%%%%%%%%%..%%%%..%%%%.%%%%%%%%%.%%%%%,%%%%%%%.%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%.%.%...%%.%%%%%%%%%,.,%%%%~~~~~~~~~~,,,,,,%%%::::::::::::::::::::,::::::::~~:::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%..%%%%%%%%.,.,...,,%%%%%%%%%.%%%%%..%.%%.%...%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%%%%%%%.%,.%%%%%%%%%%%.%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%..%%%%%%%%%%%%%%.%%%%,,,%%%.%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%..%%.%.%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%..%%%.%%%%%%%%%~~~~~~~~~~~~,,,,,,%,::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%.%%%%%%%.%...%%%%%%.,%%%.%%%%..%%%%%%%%%%.%%%%.%%%%%.%%%%%%%%%%%%%%%.%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%,%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%.%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%.,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%.%%%%%%%%%%%%%%%%.%%..%%%%%%%%%%%%.%%.%%.%%%..%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%..%.%.~~~~~~~~~~~~~,,,,,,,,:::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%.%%%%%...%.%%..%%%%%%%%%%.%%%.%...%%%.%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%.,,.%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%,%..%%.%%%%%%%%%%%%%%%%%%.%..%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%,,.%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%.%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%.....%.%%%%.%%%%%%%%%%%...%%%%%%%%%%%,...%%%%%%,,~~~~~~~~~~~~~~~,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,:::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%..%%.%..%%.%%%%..%%.%%%%%%%..%%%%.%%%..%%%%%%%%%..%.%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%..,%%%%%%%%%%%%,%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,.%%%%%%%.%%%%%%%%%%.%.%%%%%%%%%%%%%%%.%,..%..,,%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%.%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,.%..%%%%%%%%%%%%%%%%.,,.%%%%%%%%%%%%%%.%.%%%%%.%.,,~~~~~~~~~~~~~~---,,,:::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,:,:,,:::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%.%%%%%%%%.%%%%%.%%%%..%%%%%%..%%%%%%%%.%.%.%%%%%%.%%%%%%%%%%%%%%%%%%%..%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%%%%%%%%%.%%%%%.%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%*.*.%%%%%.%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%,,,%%.%%.%%.%%%%%%.%%%%%.%%%%%.%%%.%%%%%%%%%%%%.,,.%%%%%%%..,%..%%%%%%%%%%%%.%%%%%%%%,%%%%%.%.%%%%%.%%%%%.%..%.%%%%%%%%%%%.%%%%.%..%%%,,%%~~~~~~~~~~~~~---,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%..%%%%%%%%..%.%..%%%.%%%%%%%%%%%%%%.%.%%.%%...%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%.%%%%%%%%%%.%%.%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%,,,%.%%%%%%%%..%%%%%%%..%,%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%..%%%..,%%%%%.%%%..%.%...,.%%%.%%%%%%%%%%%%%%%.%%%..%%%%..%%%~~~~~~~~~~~~-,,,,,::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,%::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~,,,--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,~~~,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%..,.%.%.%%%%%%%...%%.%%%%%.%%%%.%%,,,,%%..%.,,,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%,%.%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%,%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%.%%%%%.,,%%%%.%%%...%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%.%.%%%.%%%%.%%%%%%%%%%%.,,%%%%%%.%%%%%%%%%%%%%%.%..%%%%%..%%%~~~~~~~~~~~~-,-,,,,,%%%:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%..%.%%%%..%%%%%%%%%%.%.%.%%%%%...%%%.%,,%...%%%%,%,%%.%%.%%%%%%%%%%%%%.%%%%%%%%%...%.%%%%%%%,.%%%%%%%%%%%..%.,%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%,.,%,,%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%..,%%%.%.%,.%%%%%%%%%%%%%%.%%%%.%.%%%%.....%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%.%%%%%%.%%,,,,%%%%%.%%.%%%%%%%%%%%..%%.%%%%%%%%%%~~~~~~~~~~~~,--.,%%%%%%::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::,::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%..%%%.%..%%%%.%%%%.%%%%%%%%.%.%..%%.%,%.%%%%%%%%..%.%%%%%%%%%.%%%%.%.%%%.%.%.%%%..%%%..%%,,%%.%%%%%%%%%%..%,,%%%%.%%%%%%%%%%..,..%%%%%%%%%%%%%%%%%..%%%%%%%%%%.,%%%%%%%%%%%%%%.%%%%.%%%%%.,,%%%%%%%%%%,.,.%%%,%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%,,%.%%%%%.%%%..%%%%%,.%%%%%%%%%%%.%%%%.%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%..%%%%%.%..~.%%%%%,,.%%%%%.%%.%%,%%%%%%%,....%%%%%%%%%%%%%%%%%%%%%%%%%,,~~.~.~~~%%%%-%%%%%%%%%::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::%%::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.,..%%%%%.%.%%%,,,,.%%%%.%.%.%%%.%,%%%%,%.%.%%%.%..%%%...%.%.%.%.%%%%%,%%%.%%%%..%%%%%%..%%.%%%%%.,%%%%%%.,.,,,%%%%%%%%.%%%%.%%%,%%%%%%%%%%%%%%.%%.,,;,%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%.,.**%%%,%%.%.%..%%%%%%%%%%.%%..%%%%%%.%%.%%%%%%%%%%%%%%%%%%%,.%%%%%%%%%%%%%.%%%.%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%..%..%%%%%~~~~~~,,,,.%.%%...%.%%%%%%%%%%%.%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.~~%%%%,%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::.:::,.:::::::::::::::%::::::::::::%%%:,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%.%%%,%%%..,,,.%%%.%.%....%%%%.,,,,,%%%%%%%.%%..%%%..%%%%%%%%%%%,,,%.%%%.%%%%%...%%.%%%%%%%%%%,%%%%%%,,,,,,%%%%%%%%,%,%%%%%%%%,%%%%%%%%%%%%%,.,,,,,%%%%%%%%.%%%,%%.%%%%.%%%%%,..%%%%%%%,,%%%%%%%%%%%***.%....%%,..%%%..%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%,%%%%%%%%%%%%.%%%%..%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%%%.%%~~~~~~~,,,%%%%...%%%.%%%%%%%%%%,%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%.%~~%%%%%%%%%%%%%%.%::.:::::::::::::::::::::::::::::%%%%::::::::::::::::::::::::::::::,:,:::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~,,,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%%%%%%.%.%%.,,,,,%,,,%%.%%..%%..%%%%.%%%%%,.%.%%%%%%.%.%.%.%%%%%.%%%%%%,%.%%%%%%.%%.%%....%%%%%%%%%%%%%%..%,,,,,,%%%%%.%%%,,,%%%%%%%%.%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%..%%%%%%%%%%%%%,,%%%%%%%%--%%%%,*%%%%******%%%.%.,.%%%..%%%%%%%.%.%.%%.%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%.%%%.%.%..,%%%.%.%%%%.%%%%%%.%%%%%%%%,,.%%.%%%%%%%%%%~~~~~~~~~%%%%%%.%%..%..%%%%%.%%..%%%%%%%%%%%%%%.%%.%%%%%%.%%%%%..%%%...%..%.%%%%%%%%%%%%%::::::::::::::::::::::::::::::%%%%::::..:::%%:..:::::::::::::::,,::::::,::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%%%,,%%%%%%%%%.,,,..%%%%%.....%%%%.%%%.%%%%%%%,.%%...%.%.%..%.%%..%.%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%...,.%%%%%%%%%%%%%%%%%%%.%,,,,,,,,,,,,,%.%%%,%%%%%%%%%%%%%.,-----------,,,,,,*,,******%.%...,,%%..%%%%%%,%%%%%%%%%%%%%%%..%%%%%%.%%%%%%%%%%.%%%.%%%%%%%%%%%%....%%.%%.%..%..%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%~~~~~~~~~%%%..%.%.%%.%.%%%%%%%%.%%%.%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%.%%...%%%%%%%%%%%%%::::::::::::::::::::::::::::::%%%%::.:::::%%%%%:::.::::,:::::::::::::::,::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,,%%%%%%%%%%%.,.%..%.%.%%%%%%%%%%%..%.%%%%%%,,.,.%%%%%%%%.%%,%%%....%%%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%.%.%..%%%%%%%%%.%%%%%%%%%%.,,,,,,,,,,,,..%.%%%,%%%%%%%%%%,,,,-----------,,,,,,,,,*,*,,,.%%%%.,%%%%%.%%%%%%..%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%%%..,.,,.%%%%,%.%%%%%%%%%%.%%%%%%,,,%%%%.%%%%%%%%~~~~~~~~%%%%%%%%..%%%..%%%%%%%.%%%.%%%%%%%%%%%%.%%%.%%%%%%.%,.%%%.%%%%.%.%%%%%%%%%%%%%%%%:.:::::::::::::::::::::::::::%%%%%:::::::%%%%%%:,.::::::::::::::::,:::,,,:::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------,,,,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~%%%%%%.%%,,,%%%%%%%%%%%..%.%.%.%.%%%%%.%%%%%%%.%%%%%%%,,,,%%%%%%%.%%%%%,;,.,;%%%%%.%%%..%.%%%%%%%%%...%%%%%%%%%.%%%%%%%%.%%%%%%%%%%...%.%.%%%%%%%%%%%%%..%%%.%%,,,,~~~,,,,,,.%%%%%%%%%%%%%%.%%,--~~~~~~~~~~~-,,,,,,,,,,,,,,%.%.%.,%%%..%%.%%%%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%.%.%.%%.%.,,,,,.%%%%%%%%%%%.%%%%...,,.%%%%%%%%%%%%~~~~~~~~~%%%%%%%%%%.%%.%%%%%%%%.%%%...%%%%%%%%%..%%%%.%%%%%%%%%.%%%*%....%%%%%%%%%%%%%.,,::::::::::::::::::::::::::::::%%%%%:::::.::%%%%:.:,:::::::::::::::::::::::,,:::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,-,,,,,,,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%,,,%%%.%%%%%,.,.%%%%%%%.%%%%..%%%%%.,%%%%%%.,,,,,%%%%%%.,%%%%%.,,,,,%%%%.%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%..%%.%%%%%%%...%%%%%%.%%%%%%%.%%%%..%%%%%%%,~~~~~~,,,,,,%%%%%%%%%%%%%%%%%.-~~~~~~~~~~~-,,,,,,,,,,,,,,.%%%%%.,%%%%%%.%%%%%%...%.%%%%%%%%%%%%%%%%%%%%%.%%%%%,..%%%%.%%%.%%%..%%%%..%%%.,,,,,%%%%%%%%%%%%%%%%%%%%%%%...%%%%%~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%.,%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%.%%..%.%%%%%.%%%.%%%%%%%%*.,,:::::::::::::::::::::::::::::%%%%%::::::::%%%%:::.::::::::::::::::::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,~~~,~~~~~~,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~%~%.%%%%%%%%%%,,%%%%%%%%%%,,,...%%%.%,%.%%%.%.%%.%%%%%%..%,,,,,.%%%%%%,,%%%%...,,,,%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%.%%%.%%%%.%.%%.%%%%%%%%%%%..%%%%%%%%%%~~~~~~~,,,,,%%%%%%%%%%%%%%%%.-~~~~~~~~~~~-,,,,,,,,,,,,,,,,.,..%%%.%.%%%.%%%%%%%%%%%%%%%%%.%%%.%%%%%%%.%%%%%%%,.%.%.%%%%%%%%%%,%%%%%%%%%.,,,,,%%%%%%%%%%%%%%%%%%%%.%%..%.%~~~~~~~~~~~~~~~%%%%%%%.%...%%%%%%%,,%%%%%%%%..%%%%.%%%%%%%%%%%%%.%%.%%%%..%.%.%%%%%%%%.%%%%***%%%:::::::::::::::::::::::::::::%%%%:::::::%%%%%:::.,::::::::::,,,:,,:::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,-~~~~~~~%%%%%%%%.%%%%..%%%%%%%%%%%..%%%..%%.%,,%%.%,,.%%%%%%%%%%%%%,,,,,%.%%%%,%%%%.%..%.%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%%%%%%%%%...%...%%%.%%%%%%%%%.%.%.%%%%%%%%%%%~~~~~~~~,,.%%%%%%%%.%%%%%%%-~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,%%%%%.%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%..%%%%%,,,%%%%%%%%%%%%%%.%%%%%%%%%.,,,,,%%%%%%%%%%.%%%%%%%%%.%.%...-~~~~~~~~~~~~~~~~%%%%%%%%%%%.%..%%%,,,%%%.%.%%%.%.%%%%%%%%%%%%%%%.%%%%%%.%%.%%%.%%%.%%%%%%%%*.*%%%::::,::::::::::::::::::::::::%%%%::.::::.%%%%...:::::::::::::,,,,::::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,~~~~%%%%%%%.%%%..%%%%%%%%%%%%%%%%%%.%...%%%%...%%%%%%%%%%%%%%%%%,,,,%..%%.%%%%%%%..%...%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%.%%%%%%%%%.%%%.%%%%%.%%..%%%%%%,.%%%%%.%%%%%%%%%%%~~~~~~~~,-,%%%%%%%%%%%%...%~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,%%%%%%%.%.%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%,,.%%%.%%%%%%%%%%%%.%%%%%%.%,,,,,%%%%.%%%..%%%%%%%%,%..%%%.--~~~~~~~~~~~~~~~~~~%%%%%%%%%.,.%.%%.....%%...,,%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%.,%.%.%%%%*.%%%::::::::::::::::::,,:::::::%%%%%::.:::%%.%%%:::.:::::::::::::,::::::::::::::::::,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~~~,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%%%%.%...%%%%,%%%%,,,,.,...%%%%%%%%%%%~~~~~~~~~-,,%%%%%%%%%%%%%%%-~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%.%%%%%%%%%%,,.....%%%%%%%%%%%%%%.,.,%%%%%..-~~~~~~~~~~~~~~~~.%%%%%%%%%%.%%%%%.%...%.%%%.,.%%%%%%%%%%%%%%%%....%%%%%%%%.%%%%%%%%.,,...%%%%%%%%%:,:::::::::::::::::::::::%%%%%%::.::::%%%%%.:..::::::::::::,::%::::::::::::::::,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%.%%%%%%%%%%%%.%%.%%%%%%%%%%.%%%.%%%%%%%%%%%%%%.%%%,%%%%%%.%..%.%..%%%%%%%%%%%%..%%%%%%%%%%.%%%%%%,%%%%%%%%%%%%%%.%%%%.%%%%%.%%%%,,,.%.%%,,,,,%%%%%%%%%%%~~~~~~~~~~~-%%%%%%%%%%%%%%%%-~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,%,%%....%%%%%%%.%%%%,,%%%%%%%%%%%%.%%%%.%%%%%.%,.%%%%%%%%%%%.%%%.%%%%%%%%%.%.%%.%%%%.%%,%%.%%%..%%%%.%...%%.~~~~~~~~~~~~~~~~%%%%%%%%%%%.%%%%.%.%%%..%%%.,,,,%%%%%%%%%%%%%%.%%%%%.%%%%.%%%%%%%%.,*,%%%%%%.**,,:::::::::::::::::::::::::%%%%%%:::::::%%%%%.::::::::::::::,:::%::::::::::::::::,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%;%.%%%%%%%.%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%,,%%%%%%%%.%%%%%%%%%%%..%..%%%%%.%%%%%%%,,,,.%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%--~~~~~~~~~~,,,,,,,,,,,,,,,%,%%,,,%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%.%%%%%%%%%.%%%%%,%%.%%%%%%%%%%%%%%%%%%%%.%%.%%.%%%%%%%%%%%%%%%.%%%...%.%%%%%,~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%.%%%%%.%.%.%%.,,,%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%*%%%%%%%%***,,:::::::::::::::::::::::::%%%%%%:::::::%%%%%%.%..:::::::::::,,:%::::::::::::::::,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%..%%....%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..,.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%%,%%%%%.%%%%,;%%%%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%%%%%%%.--~~~%%%%%~~,,,,,,,,,,,,%,%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%..%.%,,%%%%%,%%%.%%%%%%%%%%%%.%%%%%%%%.%%%%.%%%.%%%%%%%%%%..%%%%%%%%%%%%,~~~~~~~~~~~~~~~~%%%%%%%%%%%%%.%%.%%%%%..%%.%%%.%..%%%%%%%...%..%%%%%%%%%%%%%%%%%%%%.%%%%%%%,***.,,:,:::::::::::::::::::::::%%%%%:::.::::%%%.%%%%:.,,::::::::::,:::::::::,:::::::,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,;;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%.%%%%%%%%.%%%%%%%%%..%%%%%%.%.%.%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%.%.%%%.%%%%,%%%%%.%%%%,%%%%%%.%%%%%~~~~~~~~~~~~~~~%.%%.%%%%%%%%%%%-.%%%%%%%%,,,,,,,,,,,.%%%%%%%%%%%%%%%%.%%%%%%.%%%%%.%%.%%%%%%%%%%%%%%%.,,,,,,,%....,,,%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%.%%%.%..%,,..%....,%%%%%.,,,~~~~~~~~~~~~%.%%%%%%%%%.%........%%..%%%%%%%.%%..%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.**,,,*:::::::::::::::::::::::::%%%:%%%::%%%%%%.%%%%.,,:::::::,:::::,::::::::::::::,,,,,~~~~~~~~~~~~~~~,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%..%.%%%%.%.%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%..%%%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%,%%%%%%.%.%.%%%%%%%%.%,,~~~~~~~~~~~~~~~.%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,.%%%%%%%%%%%%%.%..,.%%%%.%%%%%.%%%%%%%%%%%%%.%.%%%..,,%%%,.%..%%,.,%%%%%%%%%%%%%%%%%%,%%.%%%%%%..%%%%%%%%%%%.%%.%%.%%%.%%%%%%%,%%%~~~%%%,-%%%%%%%%%%%%%.%%%.%%....%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%.%%%%%%%%%%%.,%%.%%%.%%%....,*:::::::::::::::::::::::::%%%%%.%%%%%%%%.%%%%%%%,::::::,:::::,,::::::::::::::,,,,,,~~~~~~~~~~~~~,,,~~~~~~~~~~~,,,,,,%%%%%,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,%%%%%%%%%%,,%%%%%%%%%%%%%%%%.%%%%%%%..%%%%.%.%.%%%..%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%..%%%%%%%%.%%.%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%.%%%,~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%.%%.%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%.%%.%%,%%%%%.%.%...%%%%%%%%%%%.%%%%%%%.%%%%%%%%.%%%%%%%%,%%.%%...,%.%%%.%%%%%%%%.%%%%%.%.%%,%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%...,,%%%%%%%%%%%%%%%%%%%%%%.%%%,.%%%%%%%%%%.%%.%::::%%:::::::::::::::::::%%%%%%.%%.%%%%%%%.%%%%.::::::::::::::::::::::::::::,,,,,,,~~~~~~~~~~~~,,---~~~~~~~~~,,,%%%%%%%%%,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,-,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~--,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,%%%%%%%,,,,%.%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%.%.%.%%%%%%%%%%%%%%%%%..%%%%%%%.%.%%%...%%%%%%%%%%%%%%%%%%%%%%%%.,.%.%%%%%%%%%.%%%%%%.%.%.%%,....%%,%%%%.%%%.%%%%%.%%%~~~~~~~~~~~~~~~~~%%%%%%%%.%%%.%%%.%%%%%%%%%.%%%%%%%,%%%%%%%%%%%%%..%.%.,%%%%.%%%%.%%%%,,%%%%%%%%%%%..%%.,%..%%.%%%%%%%%%%%%%..%%%%,%%%%%%%%.%%%%%%%%%.%%%.%%%%%%,%%..%%%%.%%%%%%%%.%%..%%%%%%.,%%%%%%.%%%%%%%%%%%%%%.%%%%%%%.%%%%%..,,,%%%.,%%%%%%%%%%%%%%%%%.%%.%,%%%%%%%%.%.%%%.%%%%%%%%::::::,:::%%%%%:%%%%%%%%.%.%%%%.%%%%%%%%%%::::::::::::::::::::::::::::::::::___________:::::::________:::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,--,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,%%,%,%%%%%.%%..%.%%%%%%.%%%%%.%%%%%%%%.%%%%.%%%%.%%%%%%%.%%%%%%..%%....%%%%%%.%%%%%%%.%.%%%%%%%%.%,,,.%%%%%%%%%%%%%%%%.%.%%.%%.%%.%%%%%%.%%%%..,,.%%%%%%~~~~~~~~~~~~~~~~~~%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%%..%%.%.,.%%%%%%%%%%%.%%%%%..%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%.%%%%%%%%%%.%%%%%%.%%.%.%%%.%%%%%%%%%.%%%%%%%.%.%%%%%%%%%%%%%%%%..,,,,,,,,%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%.%%%..%%%%%%%%%::.::,,:::::::::%%%%%%%%.%....%%%.%%%.%%%::::..:.:::::,:::::::::::::::::::::__________::::::__________::::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~,--,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%,,,,,,,,,,,,%,,,%%.%.%%%%%%%%%%%%..%.%%.%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%...%%%%.%.%.%.%%%%%%%%%%%%%%%%%%%%,,,,%.%%%%%.%%,,%.%%%%.%..%%%.%.%%%%%%%.%.%.%,,.%%%%%%%%%%~~~~~~~~~~~~~~~~~-.-%.%.%%%.%.%%%%%%%%%%%%%%.%%%..%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%,,,,,%%%%%%%%%%%%%.%.%.%%%..%%%%%%%%%%%.%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%.%%%..%%%.%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%.%%%%,.,,,,,,,,,%%%%%%%%%%%%%%%%%%%..,%%%%%%%%%%%%%%%%%%%.%%%%:::::::,:::::::::,,%%%%%%%.%.%%%%...%%%%%::,:::::::::::::::::::::::::::::::::::::______::::::___________:::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~,---,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%.%%%%%.%%%%%%%%%%%.%.%%%%%.%%%%%.%%%%%%%%%%%%%~%%%%%%..%%%%.%%%%..%%.%%%%.%%%%%%%%.%%%,,,.%.%%%.%%.%,,,,,%%%%%%%..%..%%%%%%%%%%%.%.%,%%%%%%%%%%%%~~~~~~~~~~~~~~~~~---%%%%%.%%%%%%%%%%%.%%%.%%.%%.%.%%%%.%%%.%%%%%%.%%%%%%%%%.%%,,,,,,,,,%%%%%%%%%.%%..%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%.%.,.%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%.%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%.%%%%%%.%%%:::::::;:,:::::::,,,.%%%....%.%%%%.%%%%%%%.,.:::::::.::.::::::::::::::::::::::::::_____:::::_____________::::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~-~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%.%.%%%.%%%.%.%%%%.%%%.%..%%%%%%%%%%%%%%....%%%%%%%%%%.%%%%%.%%%%%.%%.%%%%%%%%%%%%%%%%%%%.,.%%%..%%%%.,.,..%%%%%%%%%.%%%%%%%%%%%%.%%%%%%.%%%%%%%%%~~~~~~~~~~~~~~~~~---..%%.%%%%%%%%%%%.%.%..%%...%.%.%%%%%%%%%%..%%%%%%%%%%%%%%,%,,,,,,,,,%,%,%%.%...%.%.%%..%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%,.%%%%%%%.%%.%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%.%%%%.%..%%%%%%%%%%%%.%%%%%.%%%%%%::::::,,,,:::::,,,,,,.%%%%%%%,..,,%%.%%%%%%.::.:::::::::::::::::::::::::::::::::::____::::::______________:::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~-~~---,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%.%%%.%%,.,,%%%..%%%..%%%%%%%%%%..%%%%%.%%%%%%%.%%..,.%%%%%.%%..%%.%%.%%%%%%%%%%%%%%%%.%%,%.%%%%%%%%%%..%.%%%%.%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~---.%%%%.%%%%%%%%%%%%%..%%%%,,.%%%%%%%%%%%%%%..%%%%%%%%%%%%%%,,,,,,,,,,,,,,%.%..%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.%%.....%%.%.%.%%%%%%%%%.%%%%%.%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%.,,,,,,,,,,,,%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%*.%%%%%%::::::,::,::,,,,,,,,%%.%%%%%,,%%%%%%.%%%%.%%::::::::::,::::::::::::::::::::::::::_____::::________________::,:::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~-~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%.%%%%.%,.,%%.%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%.%.%%%%%,.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%..%.%%%%%%%%%%%.%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~----.%%..%.%%%%,%%%%.%.%.%%...%.%.%.%%%%%%%%%.%.%.%%%%%%%%%%.,,,,,,,,,,,,,,.%%%%.%%%%..%%%%%%%%%%%%%%%%%%%%%%,%%%.%%.%%%%%%%%..%%%.%%%%%%%%%%%,.%%%%.%%%%.%%.%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%,,%%%%%%%%%%%%%%%:::;:::,,,,,,%%%%%%%%%%.%%%%%%%%%%%%%%%::::::::.::::::::::::::::::::::::::::_______:_________________:::::,::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~---~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,%%%%%%%%%%%.%%%%%%%%,..%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%.%%..%%.%..%%%%%%%%%%%%.%.%%%%%%%%%%%%%%...%%%%%%%%%.%%%%%%%%%%%%%%..%.%%%%%%.%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~---.%%%..%%%.%%%,.%%%...%.%%.%%%.%%%%%%%%%%%%.%%%%.%%%%%%%%%,,,,,,,,,,,,,,.%%%.%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%...%%%%%%%%%%%.%..%%%%.%.%.%.%%%%%%%%%%%.%%%..%%.%%%%%%%%%%%%%%%.%.%%%..,%%%.,,,,,,,,,,,,,%..%%%%%%%%%.%,%%.%%%%%%%%%%%%%%.,%%%%%.%%%%%%.%%%%::,:::,,,,,%%%%%%%.%%%%.%%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::::_________________________::::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-------,,,,,,,,,--,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,%.%%%%%%.,%%%%%%%%%~%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%.%.%%%%%%%%%%%.%%%%%%%%%%%%..%%%%%%%%%%.%%%%..%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~--..%%.%.%%%%%%.%%%.%%%%%,,,%.%.%...%.%%%%%%%%.%.,%.%%,..%%,,,,,,,,,,,,,,..%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%,.%%%%%%%%.%.%%%.%...%%%%%%%%%%%.%%%%.%%%%%%%.%%%%%%%.%%%..%.%%%%%%..%.%%%%%%%%%%..%%%%%%,,,,,,,,,,,,,,,;,,%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,:::::,,,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::___________________________:::::::::%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~------------,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,~~,,,,,,,,,,,.%.%%%.%%%%%%%%%..%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%..%%%%.%.,%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%..%.%%.%%%%%%%.%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~--%.%%.%%%.%%%%%%%%.%%..%%%.,%%.%.%%...%%%%%%%.%%,,%%%%,%%%%,,,,,,,,,,,,,,.%.%%%.%%..%%%%%%,.%%%%%%%%%%%%%.%%%%.%%%%%.%%%.%.%%.%%%%%%%%%%%%%%%..%%%%.%%%%%%%.%%%%%%%%%%%%.%%.%%...%%%%%%%%%%%%%%%.%.%%%,,,,,,,,,,,,,,,,,,%.%.%.%%%..%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%,::::,,,,%%%%%%%%%%%%%%%.%%%%.%%%%%%%%::::::::::::::::::::::::::::::::______________________________:::::::::%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~-------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~,,,,,,,,,,.%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%.,%%....%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%...%%%%%%%%%%%.%.%%..%%%%%%%..%%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~%%%%%..%%%%.%%%%%.%.%%%%%%%%%,%%%.%.%%%%.%%%%%.%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%.,%%%..%%%%%%%%%%%%%.%%%%%,%%%.%%,%%%%.%%......%%%%%.%%.%%%.%%%%%%%%%%%%%%%%%%%%%%.%%.%.%%%.,,%%%%%%%%%,%%%.%.%%%%%.,,,,,,,,,,,,,,,%%%%.%.%.%%%.%%%..%%%%%%.%%%%%%%%%%%%..%%%%%%%%%%%%%%%;,,,,,,,,%%%%%%%%%%%%%%%%%%.%,%%%%%%%%::.:::::::::::::::::::::::::::::________~_____________________:::::::::%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~,,,,,,,,,,%%%%%%%%%.%%~~%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%..,.%%%%%%%%%%%.%..%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%.%%.%%%.,%.%%%%%%%%%%%%%%%%,,,~~~~~~~~~~~~~~~~~.%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%.%%%%%%%%%%.,,,,,,,,,,,,,,,%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%.%%,,,.%%%,.%%.%%%%.%%..%..%%%%%%%%..%%%.%%%%.%%%.%%%%%%%%%%%%%%%.%.%.,%..%%%%%%.%%%%%...%.%%,,..,,,,,,,,,,%%%%%%%%.%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%,%%%,,,,,%%%%%...%.%%%%%.%%%%%%.%%%%%%:::::.:::::::::::::::::::::::::_________~~_____________________::::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,------~~~~~~~~~,,,,,,,,,%%%%%%%%%%%%..%%%%%%%%%%%%%%%%,.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%.%%%%%.%%%%%.%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%%.%.%%%%%%%%,%%%%%%%%%%%%%%%.%%,,,,~~~~~~~~~~~~~~~--%%%%%.%%..%%%%%%.%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%.%%%%.%%.%.%%,,,,,,,,,,,,,,,%%%%%%%%%...%.%%%%%%%%%%%%%%%%%%%%,..,.%%%,%%%.%%%%.%%.%.%%%%.%%%.%%.%%.%%.%%%%%%%%%%%%%%%%%.%%%%...%%%%%%,%.%%%..%%%%.%%%%%%%%%.,,,,%,%,,,%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%..%%%%%%%%%%%%%%%%,,,,%%%.%%%%%%.%%%%%%%%%%.%%%%%%::.:..:::::::,:::::::::::::::___________~~~~_~~~~~~~~~~~_________:,:::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,----~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%%~~%.%.%%%%%%%%.%%%%.%%%%%%%%%%%%.%%.%%%%%%%%%%%%..%.%%.%%%%%%%%%%.%%%%%.,%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%...%%%%%%%.%%%%%%%%%%%%%%%%%,,,,,,~~~~~~~~~~~~~~--%%%%%.%%%.%%%%,.%%%%%%%%%%%%%.%%%....%%%%%%%%%%,,%%%%%%%%%,%%,,,,,,,,,,,,,,,%%%%%%%%%%%..%%%%%%.%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%.%%.%%.%%%%%%..%%%%.%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%.,,..%.,,%%%%%.%%%%%%%%.%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%,,,,,%%%%%.%%%%.%%%%%%%%%%%%%%%%:::.::::::::::::::::::::::,:::___________~~~~~~~~~~~~~~~__________::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,-~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%~~.%.%%%%%%%%%%%.%%%.%%%%%%%%%%%%.%%%.%%%%%%.%.%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%.%.%%%%%%%%%..%%%%%%%%%%%.,,%%%.%%%%%%%%%%%%%.%%%%%%%,,,~~~~~~~~~~~%%%%%.%%%%%%%%.%.%%%%%%%%%%%%.%%...%%%%%%%%%%%.%%%%.%%%%%%.,,,,%%%,,,,,,,,,,%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%.%,%%%%%%%%%%%%%.%.%%%%,.%%%..%%%.%.%%%%%%%%%%%%%%.%%%%%%%..%%%%%%%,,%...%%,.%%%%%%.%%%.%%%.%%%%%%%%%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%..%%%%.%%%%%%%%%%%,,,,,,%%%%%%%.%%%%%.%%%%%%%%%%%%::::::::::.:.:,%%::::::::::,::____________~~~~~~~~~~~~~___________::::::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%~~~~.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%..%%%%%.%%%%%%.%%%.%%%%%%%%%%%%%%%.%.%.%%%,,%%%%%%%%%%%%%%%%%%%%,,.%%%%%%%%%.,..%%%%%%%%%%%%%%%...%%%%%%%,,,,-------~~.~.%.%%%%%.%%%%%%%%%%%%%%%.%%%.,-%%.%%%%%%%%..%%%%%,,%%%%.,.%%,%%%%%%,,,,.,%%%%%%%%%%..%%%%%%%%%%%%%%%%%.%...%%%%%..%%%.%%%%%.%%%%.%.%%%.,%%%%%%%.%%%%%%%%%%%%%%%%.%%%,,%..%%.%%%%%%%%%%%%%%,,,,,%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%.%%%%.%%%%%%%%%%%%%.%%,,%%%.%%%%%%%%%%%%%%%%%%%%%%%%:::.::::%%%%%:%%%.,%%%%:::,,::______~____~~~~~~~~~~~~~______________:::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%-~~~~%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%%%.%%%%...%%%%%,,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%,,,,,,-----~~~~~~~~~~.%%%..%%..%%%%%%%%%%%----%%%%%%%%%%%%%%%%%.,,%%%%%%%%%%%.%%%%,.,%%%%%%%%%%%%%%%%..%%%%%%..%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%.%%%..,%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%%,,,,,%%%%%%.%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.,...~~~%%%%%%%%%%%%%%%%%%%%,%%%%%%%.%%%.%%%%%%%%%%%%%.%:::.::.:::.:.:.:::::::::::,::,:_____~~~~~~~~~~~~~~~~~~~___~~~_________:,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%--~~~%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%.%%%%%%%%%%%.%%%%%%.%.%.%%%%%%....%%%%%%%%%%%..%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..,,,,,-,,,~~~~~~~~~~%%%..%%%%%%%%%%%%%%-------~-%.%%%%%%%%%%%%,,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%..%..%%,,.%%%%%%.%%%%.%.%%.,,,.%%%%%%%%.%.%.%..%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%..%%%%.,%,,%%%%%%%%%%.,,,%%.%%%%%.,%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%.%.%%.%.%%%,,~~~~~~%%%%%%%%%%%%%%%.%.,%%%.%,..%%..%%%%%%%%%%%%.%.:::.:::::.::::.:::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~______::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%..%%%%%---~.%%%%%~%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%..%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.,,,,,,,,~~~~~~~~.%%%%%.%%.%%%%%%%%%%-----~~~~-%%%%%%.....%.%.%,.,%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%.%%%.%%%%%%%%..%%%.%.%%,.,,;,,%%%%%%%%..%%%%..%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%.%,.%%%%%%%%.%%%,,%%%.%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%,,~~~~~~-%%%%%%%%%%%%%%.,.%%%%%%%.,,,,%%%%%%%%%.%%%.%%::::.::..:.:.:.::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~______::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,;,,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%%%%,----%%%%%,%.%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%,..%%%%%%%%%%.%%%.%%%%%.%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%,,,,,,,,-~~~~~~~~%%%.%%%%%%%%%%%%.%%~~~~~~~~~~%%%,%,%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%.%.%%,%%%%%%%%..%%%.%%..,,,,,,,%%%%%%%.%%%%%,,%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%.%%%%%.....%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%,%%%%%%%%%%%%%%%%.%%%.%%%%.%%%%%,~~~~~~~~%%%%%%%%%%%%.%%%.%%%%%%.%..%%..%%%.%%%%.%%%%%.:..:::::::.:.,...::::.::::::---::_~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~___::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%,,-,,%%%,%.%%%%%%%%..%.%%%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%...%%%%%%%%.%.%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,~~~~~~~..%.%%%%%%%%%%%%%%%%~~~~~~~~~~~,%.,.%%%.%.%%%%%%%%%%%%%%%%%.%..%%%%%%%.,%..%%.%%.%%%%%%%%%%.%%%%.%.%%%%%%%%%,,,,.,%%%%%%%%%.%%.,.,%%%%%%%%%%,.%%%%%%%%%%%%%.%,,,.,%,.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%.%%%..%%%.%%%%%%%.%%,~~~~~~~~-%%%%%%%%%.%%%.%.%%%%%%%%%%%%%%%%%%%%.,,%%.%.:...%::.:.::.,.:.:.:::::::,:-----:-~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~__::,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,;,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%,,,,,..%.%%.%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%..%%%%%%%..%.%%%%%%.%%%%%%%%%%%%%.%....%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%,,,,,,~~~~~~~~~...%%%%%%%%%%.%%%~~~~~~~~~~~~,..,.%%%%..%.%.%.%%%%%%%%%%%%%%%%%%.%%%...%%%.%%%.%.%.%%.%%%%%%%......%%.%%%%,,,.,.%%%%%%%....,,,,,%%%%%%%%%%,...%.%%%%%%%%%.,,,..%%%%%%%%%%%%%%%%%..%%.%%%%%%.%%%%%%.%%.%%%%%%%.%%%%%%%%%%***%%..%.%%%.%%%%%%%%%.%%%,,~~~~~~~~~-%%%.%%%.,.%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%.%.:%..%%:::::::.:.::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~___:,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%,,,,%%%..%%%%%%.%%%%%%%%%%%%%.%%%%%..%%%%%%%.%%%%.%%%%%%%%%%%%.%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%.,%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,~~~~~~~~~.%%%%%%%%%%..,,~~~~~~~~~~~~,,,%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%....%%%%%%%%%%%%%%%%%%%%%%%.%..%%.%%%%%%%..%,,,,,,%%%%%%%%%%..%%%.%%%%%%%%%%%.%%%%%%%%%.%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%**.%.%%.%%%,%%%%%%,%%%..%%%%~~~~~~~~~~%%.%%%..%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%..:%.:::.::.::::.::::.:-----------~~~~~~~~~~~~~~~~~~~~~~--,~~~~~____:,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%,,,,..%.%%%%%%%%%%%.%%%%%%%%%%%%%%%~..%%%%%%%%%%.%%%%%%%%%%.%.%%.%%%%%%%%%%%%,%%%%%%%%...%.%%%%%%%%%%%%%%%%%%.%%%%,%%%.%%%%%%%%%%%%%%%%%%%.%..%%%.%%%,,,,,,-~~~~~~~~~~%%%.%%%%.%%..,~~~~~~~~~~~~,,,%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%.%%%%,....%%.%%%.%%%%%%%%.%.%.%%%%,.%%...%%%..%%%.%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,,%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%.%%%*****%%%%,,,,%%%%%,%%.%%%%%%%%~~~~~~~~~,.%%%%%%%%%%%....%%.%%%%%%%%%%%%%%%%.%%%%%%.%...::%.::::.:.:.:..:::::-------------~~~~~~~~~~~~~~~~~~~~~-~~~~~~____:,,---,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,--------,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%.%%%..%%..%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%.%.%%%%%%%%%%.%%%%%%%.%%%%%%%%%%.%%%%%%%.%%.%%.%.%%%%%%%%%%.%.%%%.%%%%%.%%%%%%%%%%%%.%%%%.%....%%%%.%,,,,,,,,~~~~~~~~~~%%%%%%.%%%%%%.~~~~~~~~~~~~,,.%%%%%%.%.%..%.%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%%%,%..%.%%.%%%%%%..%%%%%%%..%%%%%%%%.%%%%...%%%%.,%%%%%.%%.%%%%%%%..%.%%%%%%%%%%%%%,,%%%%%....,%%%%%%%%%..%%%%%%%%%.%.******.%%..,.,,%%%.,%.%%%%%%%%%%~~~~~~~~~%.%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%.....%%.%%::::.%%::.:%%%.:::::%--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__-----,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,;;,,,,,,,,,,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%%%%%.%%%%.%.%.%.,,.%%%%%%%%%%%%.%%~%%%%%~~%%%%%%%%%%.%%%%%%%%%%%%%%..%%%%%%%.%%%%%%%%%%%%%%%%%%%..,,%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%.%,.%%.%%.%%%%%%,,,,,,,,~~~~~~~~~~.%%%%%.,.%.%%%~~~~~~~~~~~~,,,%%%%%.%%%.%%%%%.%%%%%%%%%.%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%..%,...%.%.%%%%%.%.%%%%%.%%%%.%%%%%%%.%.%..%%%....,,%%%%%.%%.%%%%%%%%%....%.%%%%%%%%%%..%%%%%%%%%.%%%%%.%%.%%%%%%%%%%%%******.%.%%%%%.....%%%%%%%%%%%%%~~~~~~~~~%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%.%..%%%%.%%%%.::::%%%%%%.%%.%:::::%---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,----,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%.%%%%%,,,,..%%%%%%%%%%%%%.~~..~~~%%%%%%%%%%%...%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%,,,.%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%%%%.%%%.,.%%%%%%%%%%%%%.,,,,,,-~~~~~~~~~..%%%%.,,%%%%%.~~~~~~~~~~~,,,%%%..%%%.%%.%...%%%..%%%%%%%%%%%%%%%%...,%%%%%%%%%.%.%%%%%%%%%%%%%%.%%%%%%,%%%%%..,%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%,%%%%%%%%%%%%%%%%%%,,..%.%%.%%%%.%%,.%%%%%%%%..%%%%%%.%%.%%%%%%%%%.**..%.%%%%.%..%%%%.%%%.%%%%%%%%%%~~~~~~~,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%..%.%.%.%%%%%%%%%.%%%,.%%.%.%%%%%----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,----,,------~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%.%%%%%%%%%.%.%.%%%%%%%%%%%%%~~~~~~~~~,%%%%%%%.%%%%%%%,,%%%%%,%....%.%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%.%%.%.%%%%%%.%%%%,%%%%%.%%.%%%%%%%.%%..%.%%%%%%%%%%%%%,,,,,--~~~~~~~~~.%%%.%.,.%.%.%.~~~~~~~~~~~,,,%%%.%%%%%%%%%%...%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%..%%.%%%%%%%%...,,,,.%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%.%%%%%%%%%%..%.%%%%%%%.,,,%%.%%%%.,,%%%%%.%%%%%%%%%%%%%***%%%%%%%%%%%%%%%%..%%%%%%%%%%%%~%~~~~~,,%%%%%%%%%%.%%.%.%%%%%%%%%%%%%%%%%%.%%.%%%%%.%%%%%%%%%%%%%.%%.%%%.%%%------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,---,,,--------~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%.%%%%%%%%%,%%%%%.%%.%%%%%%%%%%%%%%%%~~~~~,%%%%%%%%%..%%%%%,,,%.%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%,.%%%%%.%,,%%%;%%%%%%%%%%%%%%.%.%%%%.%%%.%%.%%%%%%%%%%%%%%,,,,,,---~~~~~~,.%..%.,,,,%%%.%%~~~~~~~~~~~,,,%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%,%%%%%%%%%%%%%,,%%%%%%%%%%.%%%%%%%%%%%%,,,,,%%%%.%.%%%%%%%.%..%%%%%%%%%%%%%%,%%%%%%%%%.%%%%%%%%%%%,%%%%%%%%%%,,,,%.%%%.%.,%%%%.%%%%%%%%%%%%%,*%%.%%%%%%%%.%%%%%%%%.%%.%%%%%%%%%~~~~~,,%%%%%%%%%%%.,,..%.%%%%%%%.%%%%%%%%%%%..%.%...%%%%%%%%.%%%%%%.%%%%%..--,--,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,---,,----------~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%..,,.%%%%.%%..%%%%%.%%%%%%%%%.%%%%.%%%%%%.%,.%.%.%..%%..,%%%%%%%%%%%%%%%%%.%.%%%%%%.%%%.%%.%,..%%%.%%%%%;,,.%%.%.%%%.%%%%..%%%%%%.....%%%%%%%%%%%%%%%%.,,.,,------,,,,%%.%%.,,,%..%%%%,~~~~~~~~,,,,,%%%%%%%%%%%%%..%.%.%%%%%%%.%%%%%%.%.%%%.%%%%%%%%%%%%%%,%%%%%.%%.%%.%%%.%%%%%%%%,,,,.%.%%%.%%%%%%%%.%%..%%%%%%%.%%%%.%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%,%%%%%%%%%.%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%..%%%%%%%%%%,,~~,,,%%%%%%%%%%%%%%%%.,.%%%%%%%%%%%.%%.%%%%%%%..%%%%%%%%%%.%%%%%%%%%%%...,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,------------~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~%%~~%~%%%%%%%%,,,%%%%..%%%%%%%%%.%%%%%%%%%%%%%...%%%%%%%,%%%%.%%%.%%%.%%%%%%.%%%.%%%%.%%%%%%%%.%%%%%.%%%...%.%.%.%%%%.%%%%%%%%%%%%%.%%,;%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%,,,,-%%%.,,,%.%%%.,%%.%%%%%%%,,,,~~~,,,,,%%%%%%%%%%%%%%.%%%%.%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%.%%%.%.%%%%%%%%%%%%,,%%.%%%%..%%%%%.%%%%%.%.%%%%%.%.%%%.,,%%%%%%%%.%%.%%%%%%,%%%%%%%%%%.%%%%.%%..,%%%%.....%.%.%%%%%%%%%%%%%%%%%%%%,,.%%%%%%%%.%%%%%%.%%%%,,,~,,,%%%%%%%%%%%%%%.%.,%%%..%%%%.%%%.%%.%%.%%....%%%%%%%%%.%%%%%%.%.%%%.,,,,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,*,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~,,,~~~~~~~~~~~~~~~%%%%%%%%%%%%%%,~~~%%%..%.%%.%%%.%.%%%%%%%%..%%%%%%.%%%%%%%%.%%%%%.%%%%%%%%%%%.%%%%%%%..%%%%.%%%..%%%%%%%.%.%%%.%.%%%%%%%.%.%.%.%..%%%.,,%%%%%%%%%%%%%%%%%%%%.%%%%%.%.%%%.,,.%%%%%,,..%%%%.,%%%%%%%%%%%,,,,%%%%,..%%%%.%%%%%%%%%%.%.%.%%%.%.%%%%%%%%.%%%%%%%..,%%%%%%%%%%%%%%%%%.%%%%,%%%%%%%%%%%%%,%%%%.%.%.%%%%%.,,.,...%%%%.%%%%%%.,,,%%%.%%%%%..%%%%%%%,.%%%%%%%%%%%%%%%.%%%.%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%.,%%%%,%%%%%%%%%%%%%%.%%%%%%,%%%%%%%%%%..%%%.,.%%%%...%.%.%%%%%..%%%%.%%%%%%%%%%%.%..%%%%%%%%%%...,.,,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~~~~,-,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~--,,,,~~~~~~~~~~~%%%%%%%%%~%%%%%%~~~~%%%%..%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%.%%%%%%%%.%%.%%%%%%%%%%%..%%.%...%%.%%.%%.%%.%%%%%%%%.,,%%%.%%%%%.%%%,,,%%%%%.%%%..%%%%%,.,.%%%%.,...%%.%.,%%..%%%%%%.,,,,.%%%%%%%%%%%%%%%%%%%%.%.%%..%...%.%%%%%%%%%.%%%%%.,.%%%%,.%%%%%,.%..%%.%.%.%%%%%%%%%%%%.,%%%.%%%.%%%%%.,,,,,,.%.%%%%.%%%%%%...,.,,%%%%%%%%%%%%%%..%%%%%%%%%%.%%%.%%%%,%%%.%.%%%....%%%%%%%...%%%%%%%%%%..,.%.%.%%%.%%%%%%%%%%%%%%.%%%.%%%%%%%%%,%%%.%..%%%%%%%..%%%.%%%%%%%%%%%%%%%%%%%%%%%.%.%%.%,.%%%%%.%%.%%--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------~~~~~~~--,--,,,,,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,~~--,~~~~~-,,,,,....~~~~~~%%%%%%%%%%~~~%%%~~~~~~~~~~.,.,,%%%%%.%...%%%%.%..%%%%%..%%%%%%%%%%%%%%%%%%%%%...%%%%%%%%%.%.%.%%%%.%%%%%%%%..%%%..%%%..%%%%%%.%.%.%%.%%%.,,%%%%%%%%.%%.%,,,%%%...%.%..%%%.%%%%%%,%.%%%.%..%%.,%%%%%%%.%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%...%%%%,,.%%%%.%%%%,%%%%..,,,,.,%.,.%%.%%.%.%%%.%.%%%.%%%%%%%%%%,%%%%%.%%%%%,.,.,,.,,,...%%%%%%%%%%,%%.%%,%%%..%%%%.%,..%..%%%%%%%%%.%%%%%%%,,,,%%%%%%.%%.%%.*.%,.%%%%%%%%%%%%%%.%.%%%..%%%%%%%...%%%%.%%%%%.,%%%%%%%.%%%%.%%,,.%.%%%%%%%%%%%%%.%%%%.%%%%..%%%%%%..%%%%%%%,,%%%%%%%...%%-----.---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,~,-----~~--,,,,,%%.%%.~~~%%%%%%%%%%%%%~~~~~~~~~~~~~~~~,%%%.%%%.%.%%%.%%,,,.%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%.%%%..%%%%,,%%%%%%,%%%%.%%,,%%%%..%%%%.%%..%%.%%%%..,%%%%%..%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%%..%%%.%.%%%.%%%%%%%%,,,,,.,,,,,,,%%%,%%.%.%.%...%%.%%%%%%%%%%%%%%%,%%%%%%%%%%,%%.%%%,.%%%%..%%%%.,,..%.%.%.%%%%,,%%%%%..%%%%%%.%%%%%.%.,.%%%%%,.,%.%%%.%.%%.%**,%%%..%%.%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%%%%..%,.%%%%%.%..%%%%%%%.,....%%%%%%.%%%%%%..%%.%.%%%%%%.%%%%%%%%%%%%%%.%%%.%%%..%.%%%-.%%%%--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,------~--,,,,,%%%.%~~~%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~%%%%.%%%..%.%.,,,,,,%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%%.%.%%%%%.%%%%%...%%%.%...%%.%%%%%.%%.;,%%.%%.,.%.%%%,,,..%%%%.%.%.,..%..%%.%%%..%%%.%%%%%%%%%%%%%%.%%%,%%%%%%%%%%%%%%.%%%%%%%%%.%%%,..%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%..%%.%%%%%%%%%%%%.%%%%%%%%%.%.%.%%%%.%.%.%%%%%,,,,.%%%%..%%%%.,.%%%%.%%%%%%%%%%..%%%%.%%%%%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%..%.%,%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,.%%%.%%%%%%%%.%%%%.,%%.%%%..%.%.%.%%%%%%%%%----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------------~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~.%%%%%%%.%%%..,,,,%%.%%%%%%%%%.%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%.,%..%..%%..%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%..,,%%%%%.%....,.,,.%%%%%.%%%.%%%.%%%%%%%%%%%%.%%%..%%%.%%%%%%%%%.%%.%%%%%.%%%...,%%%%%%%%%%%,%.%%,,,,,,,,,,,,,%%%%%%.%%%.%.%%%%.%%%%%%%.%.%%%%%%.%%.%..%%%.%%%%%%.%%%%%.%%%%%,,,,.%.%.%,%%%%.,.%%%%.%%%%..%.%%.%%%%..%%%%%%%%%%%%%..%%.%%.%.%%%%%.%.%%%%%%%,%%%..%.%%%%%%%.%%.%%%%%%%%%.%%%%.%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%..%%%%%%....%%%%%%%%.%%%%%..%%%%%%%%%.%%%.%%%%%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,---------------~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,;,;;,,,,,,,,,,---------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,%.%%.%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~%%%%%%%%%.%.%.,,,%%%%%%%%%%%%%.%%%%%%%%.%%.%%%%%%%%.%%%%%%%%%%%%.%.%%%%%%%%%,,%%%%%%%%..%.%%%%%..%..%%%%%.%%%%%%%%%%%%%.%.%%.%%%%%%..%%%.%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%.,%%%%%%%.%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%...%.%%,%%..%%%%%.%%%%%%%%%%%%%%%.%%%,,.%.%.%%.%.%%..%%%%.%,%%.%%.%.,,%%%,%%%%%%%.%%%%%.%.%.%.%.%.%%%%%%%%%%%%.%%.%.%%%%%%%%%%%%%%.%%%%,.%%.%,%%.%%%%%%%%%%%%%%%%.%%%..%.%.%.%%%%%%%%%%%%.%%%.%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%.%%%.%%%%%.%%%%%%%%%%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------------------~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%.%%.%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~%%%%%%%%.%%%..,,,.%%%.%%%%%%%%%%%%%%%%%%%...%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%.%..%%%....%..%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%...%%%%%%%%.%%..%%%%%..%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%.,.%.%.%.%%.%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%.%%%%....%%%.%%%%%%.%%%%%%%%%.%%%%%.%.%.,.%%%%.%%%%%....%%%%%%%%%....,,,%%%.%%%%%%%%%%.%.%%%%.%%.%.%%%%%%%%%%%%,,,,,%.%%%%%%%..%%%%%%.%%%,,,.,,,...%%%%.%%%%%%%%%%%..%..%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%.%%%%%%%%%%%%%%.%%%%%%.%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,--------------------~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~--,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%.%%%%%~~~~~~~~~~~~~~~~~~~~,%%%.%.%..,%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%.%.%%..%%%%%%%%%%%%%%.%%%%%%%%%%.%%.%%%%...%%%%,,,..%%%%%,%%%%%%%%%%%%%%%.%%%.%%%%%%%.%%%%%%%%.%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,,,.%%%.%%%%.%%%%%%%%%%%%%,,,,,,,,,,*,%%%%%%.%.%%.%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%,,,%..%..%..,%.%%%%%%%%,.%%%%.,,%%%%%%%%%%.%%%.%%%%%%%%.,.,.%%%%%%%%%%%%,,.%,%%%%%%%%%%%.%%%%%%%..,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..,%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%....%%%%%%.,%%%%%%%%%%%%%-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------------*-*--~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;,;,,,,,,,,,,,,,,,,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~-,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%.....%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~,%%%%.%%%%.%%%%%.%%%%%%%%%%%%%%%%%.~~.%%%%..%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%..%.%%%...%.%.,,,,%.%%%,,%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%..%%%.%%%.%%%%%%%%%%%.%%%.%%%%%%%%%%%.%,..%%%%%%%%%%%%%.%%%.%.,,,%%%%%.%%.%%%%%%%%%%%%%%,,,,,,,,,**,%%%%%%%%%....%%%%%%%%%%%%%%%%%%.%%%%%.%.%.%.,,%%%.%%%%,,%.%%%%%.%.,%%%.%%%%%.%%..%%.%%%%.%.%%%%.%%%,,,%%%%%,%%%%%%%,,.%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%..%%%%%%%%%%%%%%%,.%%.%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%.,.%%%.,%%%%%%%%%%%%%%---------,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                ----~-----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------------*---,--~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,---------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%.%%.%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~.%%%...%%%%%%%%%%..%%%%%%%%%%..%%%.~~~~..%.%..%.%%.%%%%%%%%%%%%%%%.%%%%%.%%%.%%%%%%.%%%%%%%,,.%%%%..%.%%%%..%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%..%%%%%%..%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%.%%%%.%%%%%%%%%,,,,,,,,,**%%%%%.%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%%..%,...%%%..,,,%%%%..%%.%%%%%%%%%%.%%.%..%.%%%..%%..%%%.,,,%%%%%%%%%%%%%,..%.%%%%%%%%%%%%%%.%%%%.%.%%,.,.,,.,,%%.%%%%%%%%%%%%,,..%..%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.%.%.,%%%%%.%%%%%%%%%%%%%%------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,------------*----*----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%.%.%.%..%--%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~%%%%..%.%%%%%%%%%%%%..%%%%%%%%.%%..~~~%%%%%.%%%.%,,%%%%%%%%%%%%.%%.%%..%.%%%%.%%%%%%%.%%%%%.%%%.%.,.%%%%%.%%%.%%%%%%%%%%%%.%%%%.%.%...%%%%.%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%,%%%%%.%%%..%%%%%%%%.%%%%%%%%%%%.%.%%%%%%%%.%%%%,,,,,,,,,**%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%%%%%%.%...,,%%.%.%.%%%%%%.%%%%%%%%%%%%%%%%%.%%....%%%.%,%.%%%%%...%.%%,,%%%%%%%%%%%%%%%%...%%.%%%%%%%%%.,,,,,.%%%%%%%%.%%%%,%%%%%%....%%%.%%%%%.,%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%,,%..%.%%%%%%%%%%%%%%------------~~~~--..---~~~~~~~~~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,--------------*--------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,-----,--------------,,;,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,%%%.%%%....----%%%%.~~~~~~~~~~~~~~~~~~~~~~~%.%.%%%%%%%%%%.%%.%.%%%.%%%%%.%.%%%~~~~..~..%%%%.%%%%%%%.%%..%%%.%%%%%%%.%%%%%%%%..%%%%%%%%..%..%%.%%%%%%%.%%%%%%%%%%%%%%%%%.%%%.%%%,,%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%..%%%%%...%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%.%%%%.%%,,,,,,,,,,*%%%%%,,%%.%%%%%%%%%%%.%%%%%.%.%%%%%.%%%.%%%%.%%%%%%%.%..,%.%%%%%.%%.%%.%%.%%%%%%%%%..%....%.%,%%%%%%.,%%%%%%%%%..%,,,,%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%,,,,,%%%%%%%%%%%%.%%%%%%%%%%.%.%%%%%%%.%.%.%%%%%%.%%%%%%%%%%%%%%%,.%%%%%%.%%%%%%%.%.%.%.,,...%%%%%%%%%%.%%%%%------------~~-------------~~~~~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,------------------------,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,---,,,,-------------,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.%%%%----~%~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%%%%%%%,,,..%%%..%%%%..%%%%%%%,,~~~~~,%%%%%.%%,%%%%%%.%%%%%%%%%%%.%%%...%%%%%%%.%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%..%%%.%%%%%.%%%%%%%%%%%%%%%%%%%.%.%%%.%.%,,,,,,,,,,,,%%%,,,%%%.,,%%%%%%%%%%%%.%%%%%%%%%%%%%.%%,%%%%%%%%%.,.,,%%%%%%%.%%,%.%..%%%%%%%.%.%%%..%.%....%%%%%.,%%%%%%.%%%%%.%%%%%%%%%%%%.%%%%%%%.%..%%%%..%%%%%,,,,.%%%%%.%%%%%%%.%%%%%.%%%%%%%%.%%....%.%%%%.%.%%%%%%%%%%%%%%%,%%%%%%%%%%%%.%%%%.%.%%...%.%.%.%%%%%%%.%.%%%%%---------------------------~~~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------------------------,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,-,,,,-------------,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%.%%%%%.%.---~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%%%%,,.%.%.%%%%%%%%%%%%%%%%,,,,~~%....%%%.,...%%%%%%%%%%%%%%%%%%..%.%.,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%,%%%%.%%%,%%%%%%%%%.,%%%%%%%%%%.%.%.%%%%%.%%%%...,,,,.,.,,,,,.,.,.%%..%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%...%.%%%%,,%%.%,,%%%%%.%%%%.%%%.%%%%%%%%%%%%%,%%%%,..%%%%.%%%%%%%%%%%%%%%%%%%%%%.%.%%%..%%%%%.,,%%%%%%%%%%.%%%.%%.%%%%%%%%%%%....%%%%%.%%%%%%,%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%.%%.%%%.%%.%%%...%%%%%%%%%%%%%-c---------------------------~~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%%%.----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%.,,%.%%.%.%%%%%%%%%%%.%,,,~~,%%%%%%%%%,%%%%%%%%%%%%.%%%%%,,.%.%%%.,,%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%,%%%.%%.,.%.%%%%%.%%%.%%%%%,%%%%%%%%%%%%.%%%%.%%%.%%%%%%..%.%%.%.,%%.%%%,,%%%%.%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%,%%..%%%%%,%%%%,,,,%%%..%%%%%%%%.%%%.%%%%%%.%%,,.,,%%.%%..%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%,,%%%%.%%%%%.%%%.%.%%%.%%%%%%%%.%%..%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%.%%,%.%%%%%%%%.%%%.%.%%%%%%%%%%%%%-------------------------------~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%.%.%----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%.%,.,%%%%%%%%%%%.%%%%%,,,%~~%%%%%%%.%%%%%%%%%%%%%%%%%%%%,,,..%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%%%%%%%%%%.,%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%%..%%%%%%%%%%%%%%%%,,..%%%%%.%%%%%%%%.%%%%%%%%%%%%.,.%.%%%%%%.%%%.%.%%.%%%%%.%%%%.%,,%%%.%%%%.%%.%..%%%%%%%%%%%%%%%%.%%%,%%.%,,,,,.%%%%%%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%.%%.%%%.%%%%%%.%.,,,..%%..%%%.%%%%%%%%%%%%%%%%%%.%.%%%%..%%%.%%%.,%%%%%...%%%%%%%%.,..%%%%%%%%.%.%%%%%.%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%,,%%%%%%%%%%%%.%%.%%%%.%%%%%.%%%--------------------c-----------~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,-------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,%%%%%%%.---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%.%,%%%.%%%%%%%%%%%%%%,,%%~,%.%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%.%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%...%%%..%%%%%%%.%.%%%%%%%%..%%%%%%%%%%.%.%,%%%%%%%%%%%%%.%%,,,.%.%%%.,%%%.%.%.%%%%%%%%.%%%,%.%%%%%%%%%.....%%%..%%%%..%%%%.,,%%%%.%%%.,%%...%%%%%%.%%%%%%%%.%.%%,%%%%,,,,%%%%%%%%%%%%,,,,%%%%%%%%%;,.%%%%%%%%%%%.%.%%,,%%%%%.%%,,%%%.%%%%%%%%%%%.%%%.%%%%%%%%%%.%%.%%%%%%%%%....%%%%..%%..%%%%%%..%%%%%%%%,,..%.%.%.%%%%%%%%%%%%%%%%%%%%%.%.,,%%%%%%%%%%%%,,,....%%%%%%......%%%%%%%%%%%%.----------------------------------~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,--~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,....-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%,.%..%%%%%%%%%.%%.%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%.%.%%%%%%%%.%%.%%.%%%%%.%%%%%%%%%%%%.%%%.%%%%%..%%%%%%%%%.%%%,%%%%%%%%%%%%%%%%%,,,,,,...,,,,.%%%%%.%%%%%%%%%%%.,,,,,,,,,,,,,,,%.%..%.%.%.%.%%%%,.%%%%%%%%..%%%%.%%..%%%%%%%%%%%%%%,,,.,.,,,,%%%%%,,.%%%%,,.,,%%%%%%%%%;%%%%%%%.%%.,,,%%%%,.%%.%.%%%%%%%%%%%%%%%%%%..%%%%%%%%%.%%%.%%....%.%%%%..%.%%%%..%%%.%.%%%%%%.%%%%%%.%..%%%%..%.%%.%%%%%%%%%%%%%%%%%.%%.,,,.--.%%%%%%%%,,%.%%%%%%%%%.%.%%%,,,,.,%%%,%%-----------------------------------~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,---------------------**,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,---~~~~~~~~~~~,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%%%%.%,%%.%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%.%.%.%%%%%%%%%%%%%%%%%%.%.%%%%%.,.%.%%%.%.%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%.%%%%%%%%%.%,,,,,,,,,,,,,,%%%.%.%%.%..%%.%%%,.%%%..%%.%.%.%.%%%%%.%%%%%%%%%%%,.%%%%%%,,,,%%%,,,,,%%%,,,,,,%%%,,,%%%%..%%%%%%.,,%.%%.%%.,.%%%%%%%%%%%%%%%%%%%%%%%%%.,.%%%%%%%%%%%%.%.%.%%%%%...%.%%%%.%%%%%..%..%%%%%.%...%%%.%.%%%%.%%%%%%%%%%%%%%%%.%%%%.%,,,,,,----------.%.%.%.%%%.%%%.%.%%.,,,,,.%%..------------------------------------~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,----------------------**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%..%.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%..%,,%%.%%%%%%%%%%%.%.,%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,.%.%.%%%%%%%%%%%.%%%%%%%%%..%%%.%%,,,%%%%..%%%%%%%%%%%%%.%.%%%%%%%%.,%%%%%%,,,,,,,,,,,,,,,,,,,%%%%.%.%%%%.%%...%,,,,,,,,,,,~%%%%%%...%...,....,%%,,%%%.%%%%%.%%...%.%%%%%%%%%%%%%,%%%%%%%%%%%%%%%,,,,,,,,,,,,.%%..,,,%%.%%%%%%%%.,,%%%%%%%.,%%%.%%%%%%%%%.%%%%%%%%.%%..%%%%%.%%..%%%%%.%.%,,,.%..%%%%.%%.%%%.%.%.%%%%%%%%%.%...%%%%%.%%%%%%%%%%%.%..%%.%%%%%%%%%,,,,,----------,%%%%%..,,..%%%..%%%,.,..%%..%------------------------------------~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------------***,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;--~~~~~~~~~~~~,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,%%..%.%%%..%%%.-~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%.%%..%.%%%..%%%%%%%,%%.%.%%..%%%%%%%%%%%%.%%%%.%%%%,%%%%%%%%%%%%%%%%%%.,%%%%%.,..%%%%%%.%%%%%%%%~~.%.%%%%..,...%%..%%%%%%%.%%%%%%%%.%%%%%%%%%%%%%%%.,,,,,,,,,,,,,,,,,,,%%%%%%%.%.%.%%%%%,,,,,,-;,,~~%%%%%%%,%.%..%%%.,,%.%,,%%%%%%%%%,..%%%%%.%%%%%%%.%%%,%%%%%.%%%%%.%%%,,,,,,,,,,,,.%%,,.,,,.%.%%.%%%%,,,%%%%%%,,.%%%%%.%%,,%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,,%%%%.%.%..%%.%.%%.%,%%%%%%%%%%%%%.%%%%%..%%,.%%%%%%%%%%%%.%%%%%%%%%,,,,,----------,%.%.%.,,,.%%%%.%%.%.%%..%%%%%------------------------------------~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------------------****,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,--~~~~~~~~~~~~~,,,,,,,,,,,,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%.%%%%%.%%%.%,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%.%%%%%%%%.%%%%%%%%.%%%.%%.%.%%..%%%%%%%%%%%%%%%.%%%%%.%%%,%%%%%%%%%%%%%%%%%%.,.%.%.%.%%%%%%%%%%%%%~~~~~~~~%.%...%%,%%%%%%%%%.%.%%%%%%%%%.%%%%.%%.%%%%%%%,,,,.,,,,,,,,,,,,,,,,,.%.%%%.%..%.%%.%,,,,----~~~%%%%%%%%%%...%.%%%,,%%%%,%%%%%%%%%...%.%.%%%%%%%%%%.%%%%%%%.%%%%%%%%%%,,,,,,,,,,,,%%%.%%,,,,%%%%%%%%%.,,%%%%.....%.%%%.%..%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%..%%.%.,,%%%.%.%.%%.%%%%..,..%%%%%%%.%.%%%.%%.%.%%..,%%%%%%%%%%%%%%%%%%%%%%%%,,,-----------.%%%%%%%%,.%%....%%%..%%%.%%%%-----------------------------------~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~,,,,,,,,,,,-~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%.%%%.%.%%,,~~~~~~~~~~~~~~~~~~~~~~~~~%%..%%%%%%%%%%%%%%%%%.%%..%%%..%.%%%..,%%%%.%.%%%%%%%%%%%%%.%%%.%%%%.%%%%%%%%%%%%%%%%%%.,.%%.%%.%%%%%%%%%%%%~~~~~~~~~....%.%%%,,,..%%%.%.%%.%%%%%%%%%%%%%.%.%%%%%.,,.%%%%%%,,,,,,,,,,..,,.%%%%%.%%.%...%%.,~~~~~~~~~%%%%%%%%%%..%%%%%%,%%%%%%,%%%%%%%%%%..%.%..%%%%%%%%%%%,,%%.%%%%%%%%%%%,,,,,,~~,,,,%%%%%%%,,,%%%.%.%%%%,,.%%%.%...%%.%%%%%.%..%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.,,.%%%%.%,,%%%..%.%%.%%..%%%%..%%%%.%..%%%%%%%%%,%%%%%%%%%%%.%%%%%%%%%,,,,-----------%.....%%%....%.%%%%%.%%%%.%%%%----------------------------------~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --------------------*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~,,,,,,,,,,,-~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%.%%%%....,,~~~~~~~~~~~~~~~~~~~~~~~~~%%%.%%%%%%%.%%%%%%%%%%.%%%.%%%%%..%.%%%%%%%..%%%%%%%%%%%%%%%.%.,%%%%,.%%%%%%%%%%%%%%%%%.,%..%.%%..%%%%.%%%%~~~~~~~~~~~~.%.%.%%%%,,,%%%%%,..,%%%%%%%%%%%%%,%%%%%%%%,.%%%%%%%%,,,,,,,,,,.,%.%.%%%.%.%.%%%%%.~~~~~~~~~~%%%%%%%%%%%%%%.%%%%%%%%%%,,,,%.%%%.%...%.%%%%%%%%%%%%%.,%%%.%%%%%%%.%%,,,,,,~~~~~,,%%.%%%%,%%%.%%.%%.%,%%%%..%%%%%...%%%%%%%%.%%%%%%%.%.%%%%%%%%%.%%%%%%%%....%%,%%.%%%%,,%%.%...%.%.%.%%%%%%%..%..%,%%%%.%%.%.%%%%%%%%%%.%%%%%%%%%%%,,,----------.%.%.%.%%%%.%%%%%.%%%..%.%%%%%%.---------------------------------~~~~~~~~~                                ----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------,,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~,,,,,,,,,,--~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%.%%%%%%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%%%%%%%%%%%%%%%%%%%.%.%%%%%%.%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%,,%,%%%%.%%%%%%%%%%%%%,,,%%%%%%...%%.%%~~~~~~~~~~~~~~~..%%%%.%%%....%%,,,,.,.%.%%%%%%%%%%%%%...%%.%%%%%%%%%,,,,,,,,,,,,%.%%.%...%%%%.%%~~~~~~~~~~~%%%%%%%%%%%%%%%%%.%%%%%..,,,,.%%%%%%%%%%.%.%%%%%%%%%%%%%.%%%%%.%%%.%%%%,,,~~~~~~~~,.%%%%%%%.%%%.%,.%%%.%%%.%,.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%,,%%%%%%%%%%%..%%%%%%%%%%%%%,%%%%%.%%%%%.%%%%.%%%%%%%%%%%%%%%--------------%%%%%,%%.%%%.%.%.%%%..%%%%%%%-----------------------------,---~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~,,,,,,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%..%%,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%.%%%%%%.%%%%%%%%%%%%,,%.%%%%%%,,.%...%%.%%%%%%%%%%%%%%%.%%%%%%,%.%%%..%%%%..%%%%%%%.,,%%%%%..%%%%%%%~~~~~~~~~~~~~~~~%%%%%.%%.%%%.%,,,,.%%%.,,%%%.%%...%.%.%..%%%%%%%%.%%,,,,,,,,,,,,%%%...%,%%%.%.%%~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%.%,,,%%%%%%.%..%%%%%%%%%.%%%%%%%%%%%%%%%%..%%,,,,,~~~~~~~,%%%%%%%...%%%%%.,,.,%%%%..%.%.%...,%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%.,.%%%%%%%%%%%%%%,,...%%%%%%%.%,,%%.%.%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%--------------.%.%%%.%%%.%%%.%,%.%.%---,,,.----------------------------------~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~,,,,,,,,,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%...%%%%.%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%.%,....%%.%%.%%%%..%%%%%%%%%%%%%%%,%%%%%%.%%%%%.%%%%%.,,,,,.%%%%%%%%%%.%~~~~~~~~~~~~~~~..%.%%.%%%%.%%%.,,.%.%.%.,%%%%%%%%%.%.%.%%%.%%%%%%.%,,,,,,,,,,,,,%%.%%%%.%%%%%.%%~~~~~~~~~~%%%%%%%%%%%%%%.%%%.%%%%%%%.%.%%.%%%%%%,,%.%.%.%%%%%%%%%%%%%%%%%%%%%%%.%.,,,,~~~~~~~%%%%.%%%,%%%%%%%.,,,%%%%.%....%%.,,%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%.%%%%%.%%%%%%%%%%%%.%%%%%%.,,,,.%%%.%%....,,%%%%.%%%%%%%%%%.%%%%%%%.%%%%%%--------------%%%%%.%,,.%%%%%,,%%.%.---------------------------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~,,,,,,,,,,,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.%%%%,--~~~~~~~~~~~~~~~~~~~~~~~~~~~-%%%%%.%%%%%%%%%%%%%%%%..,%%%%%%%,,%%%.%.%..%%%%%%%%%%%%%%%.%%.%.,%%%%%%%.%%%%%.%%%...%%%,.%%%%%%%%%%%~~~~~~~~~~~~~~~~~-%%%.%%%..%%%..,,.%%%%%.,%%%.%%%%%.%%%%%..%%%%%%.%,,,,,,,,,,,,.%%.%%%%%%.....%%%~~~~~~~~~~%%%%%.%%%%%%%%%%%%%.%%.%%%.%%%%.%%%%%%%.%.%%%%%%%%%%.%%%%%%,%%.%.%%%%%%.,,,,,~~~~~~%%%%%.%%%%%%%%%.%.,..%%%%%%-.-..-,.%%%.%%%%%%%%%%%%%.%%%%%.%.%%%.%%%%%.%.%.%%%%%%%%%%%%%.%.%.%%%%.,.,,,,.%.%.%.%%%.%.%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%-------------%%.%.%%%%%%%%%%%.....,---------------------------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,%%%%%--~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%.%%%%%%%%%%.%%%%%%%%..%%%%%%%%,.%%%%..%.%%%%%%%%%%%%%.%%%%%%..%%%.%%%%%.%%%%..%.%%..%%%,%%%%%.%%%%~~~~~~~~~~~~~~~~~~-%%%,,%%,%%%%%%%,.%%%.%.,%%%..%%%..%.%.%%%%%%%%%%%,,,,,,,,,,,,,%.%.%,%%%%%.-~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%..%%.%,%%%%%.%%%%%%.%%%.%%%%.%%%%..%%%%%%%%%%%,,,,,~~~~~,%%%%%%.%%%%%%%%%%%%%.....%%-------,.%%%%%%%%%%%%.%%%.,,,%%%%%%%%%.%%.%%%%%.%%%%%%%%%%.%%%%%%.%%%%%%,,,,,.%%%%..%.%%...%%%%%%%.%.%%%.%%%%%%%%%.%%%%%%%-------------%%%%%%%%%%%%%%%%%%%%%,--------------------------------------~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%%,,%.%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,%%%%.%%%%%%.%%%%%%..%.%..%%%%%.,.%.%.%.%%%%%%%%%%%%%%%%%%%%.%%%.%%..%.%%%.%%%%.%.%.%%%.%,%%%%%%%%%%%~~~~~~~~~~~~~~~~-.%%%%,,.%%%%%%%%%%.%%.%%%%%%.%.%%...%%%.%,%%%%%%%%,,,,,,,,,,,%%..%%%.%%%%%--~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%...%%...%%%%%%%%%.%%%%.%%%.%%.%%%%.%%%%%%%%%%,,,,,,~~,.,,%%%%,,%%%%%%%..%.%.%%%.%%%-------%.%%%%%%%%%%%.%%%%.,%%%%%...%.%%%%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%,,,,.%.%%%.%%%%..%%%%%%%%%%%%%.%%%%%%%.%..%.%%%%%-------------%%%%%%%%%%%%.%%%%%%.%,---------------------------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,~,,,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,%.%.%.%%%%%%%%.,%%%%.%%%%%%%.%%.%.%%.%%%%%%%%%%%%%%%%%.%%%.%.%%,.%.%%%.%.%%%..%%%%%%,%%%%%%%%%%%.~~~~~~~~~~~~~~~--%%%,%%%%%%%%%%%%%%....%.%,%%%%%%%.%%.%%%,,%.%%%%%....,,,,,,%%%%%%%%%.%%%%%%~~~~~~~~~~~~~~~~~.%%%%%%%%%%%%%%%%%%%%%%%%....,,%.%%%%%%%%%%%.%...%,%%.%%%..%%%%%%%.%%..,,,,,,%%%%.%%%%,%%%%%%%%.%%%%..%%.%~~~~~--%%%%%%%%%%%%%%%.%%%..%%%%.%%%%%.%%%.%%.%%%%%%%.%%%%%%%%%%%%.%%%%%%%%%.%%%%.%%..%%..,.%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%-------------%%%%%%%%%%%%%%%%%%%%..----------------------------------------~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,~~~~,,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,.%%%%.%%%%%%%%%%..%%...%%%%%%%....%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%..%%%%.%%%%%%%.%%%%%,%%%%%%%%%%%.%~~~~~~~~~~~~~~----%%%%%%%%%%%%%%%%%%%%%%%%,%%%%..%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~.~%%%%%%..%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%.%%.%%,%%%%%%%%%%%%%%%%%%,...,,.%.%.%.,,,,,%%%%%%%%.%.%..%%%%%.~~~~~~%%%%%%%%%%%%..%.%%%.%%%%%.%%%%..%%%%..%%%%.%%%%%%%%%%%.%...,,,,.%%%%%%%.%%.%%.%..%%,.%%%%%%%%%%%%%%%%....,,%%%%%%%,,-------------%%%%%.%%%%%%%%%%%%%.%.-----------------------------------------~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,~~~~,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,~~~~~~,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~---..%%%.%%%.%%.%%%%%%%%..%.%%.%%%.%%%%%.%%%%%%%%%%.%%%%%%%%%.%.%%%.%..%%%..%%%%%%%%%%%%%%%%.,%%%%%%%%.%%%%~~~~~~~~~~%%%%---...%.%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%.%%%.%%%%%%%%%%%%%%%%%.%%%%%%%~~~~~~~~~~~~~~~~~~.%%%%%.%%%%%%%%%%%%%%%%%%%%%,...%%%.%%%%%%%.%%%.%%.%%%%%%%%%%%%%%%.%%%%.,.%%%.,,,,,..%%%.%%%.%%..%..%%.~~~~~~~%%%%%%%%%%..%%%%.%.%%%%%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,.%%%%%%%%%....%%.%.,.,%%%%%%%%%%%%.%%%,,,,,,,%%%%,,,,-----------------,%,%%%%%%%%%%%%.%%-------------------------------------------~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,~~~~~~,,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~--.%.%%.%%%%%%%%%%.%%%%%%%......%%%%%%%%%..%%%%%%%%%.%%%%%%%%%.%,%%%%.,,%%%.%.%..%%%%.%..%%.%.%%%%%%%%.%,%%%%~~~~~~~~%%%%%--%%%.%.%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%%%%%.%..%%%%%%.%%%%%%%.%%%%%%%%%%%%.%%~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%%%%%%~%%%%.,.,%.%%%%%%%%%%%%%%.,,.%%.%%%%%%%%%%%.%%%.%,.%%%.%,,,,,,,.,,%%%%%,%%..%%.%%~~~~~~~~%%%%,%%%.%%..%.%.%%%%%%%%.%%%..%%%%%%%%%%%%%%.%%%%%%%%,,,,,,,,%%%..,....%.%%%%%,,.%.%%%%%%%%%%,.%%%,,,,,,,%%%%,,,,-------------------%%%%%%%%%%%%,-----------------------------------------------~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,~~~~~,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~-,,,,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%.%.%%%%%..%%.%.%%%%%%%%%..,.....%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%..,..%%%.%%%%.%%%%.%,.%%%.,.%%%%%%%%.%%%..~.~~~~~~%%%%-,%%%%%%.%%%%%%%%%%%%%%%%%.%..%%%%%%%%.%.%%%%%%%%..%%%.%.%%%%%%%%%%%%%%%%%%%%.%%~~~~~~~~~~~~~~~~~~~..%%%%%%%%.%%%%%%%%.~~~~,,,,,,,%%%%%%%%%%.%%%%%,,,,.,%%%%%%%%%%%%%%%%....%%%.,,,,.,,.,,%%%%%%%%%%%%...~~~~~~~~~~~~~,,.,,%%..%%%..%%%%%%.....%%%%%%.%.%%%%%%%%%,%.,,,,,,~~~~~~,,.%.%%...%%..%%%,%%%%.%%%%%%%,,%%%%,,,,,,,,,,-,,,,--------------------%,%%%%%%%%%------------------------------------------------.~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,~~~~,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~---,,~~~~~~~~~~~~,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---.%%%%%.%%.%%%%%%%%%%%%%.%%%,.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%.%.%.%%%%.%%%%%%%%,%.%%%%%%%.%%%%.,%%%.~~-%%%%.,%%%%%%..%%%%%%%%%%.%%%%%%%%%%%%.%%%.%%%%.%.%.%.%.%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%~~~~~~~~~~~~~~~~%%%%%%.%.%%.%%%%%%%%%~~~~~~,,,,,,%%%%%%%%%%..%%.%,,,,,,,%%%%%%%%%%%.%..%%%%.%%%...%.%..%%%%.%%%%%%.%%~~~~~~~~~~~~~~~,,.%%%%%%.%%%.%%%%%%%.%.%%%%%%%.%%%%%,%%%.%%,,,,,,,~~~~~~~~~~.%%.%%%%%%%.%%,.%%%.%%%%%%%.,%%%%---,,,,,,---,,,--------------------,%%%%%%%%%%,------------------------------------------------..-----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~----,~~~~~~~~~~~~,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---.%.%.%%%%%%.%.%%%%%%%..%%%.,.%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%.%.%%%%%..%%.%.%%%%%%%.%.,%%..%,.,.%%.%,%%%%%.--..,,..%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%,,,,.%%%.%%%.%%%%...,,%%.%%%%%.%%%%%%%%%%%%%%%%%.~~~~~~~~~~~~~~~~~%%%%.%..,%%%%%%%%%%%%~~~~~~~,,,,,%%%%%%%%%%%..%%%%%%%%,,%%%%%%.,%.%%.%..%%%%%%%,,%.%%%%%%%.%%%%%%%%%%~~~~~~~~~~~~~~~~..%.%%%%%%%.%%%%.%%..%%%...%,.%%%%%,,,,,,%%%,,,,,~~~~~~~~~~..%%%.%.%%%.%%%.%%%%%%%%%%%%,,%%%.--------,---,,,--------------------,,%%%%%%%%%----,---------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~--~~~~~~~~~~~~~;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.----,.%.%%.%.%%%%%%%%%,,,...%%..,.%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%.%%%%%.%%...%.%%%%.%%%%%.,,.%.%%.%..%%%%%.%%%%%,,%%%,..%%%%%%%%%%%%%%%%.%%....%%%%%%%%.,,,,.%%%%.,.%%%.%.,,,....%%%%%%%%%%%%%%%%%%%.%%%~~~~~~~~~~~~~~~~~%%%%%%%,,%%%%%%%%%%%%~~~~~~~,,,,,%%%%%%%%%%%%%%%%%.%%%%%%..%%%%.,,.,..%%%%%%%.%,..%%%%.%%.%%%%%%%%%%%~~~~~~~~~~~~~~%%.%%%%%%%%%.%%%%%%%%..%%%.,,...%%%%%,,,,,%%%%,,,,~~~~~~~~~~~.%.%.%%%%.%%%%%%%%%%%%...%%.,,%%%%-------------,----------------------,,-%%%%%%%----,---------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~-~~~~~~~~~~~~~~;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%.-%%%%...,.%.%%%%%..%,,,.%%%%%;,%%%..%%%%%.%%%%%%%.%%%%%%%%%%%%%%.%%.%.%.%.%%.%..%.%%%%%%.....,%%%.%.%,.%.%.%.%.%%%%%%%%.%%%.%...%%%.%%%%%.%%.%..%%%%%%%%%.%%%.%.%%%,,,%%%%%.%..%%%%%%%%%%%%%%%%.%%%%%%%%%~~~~~~~~~~~~~~~~~~~.%%%%%%.%%%.%%%%%%%~%~~~~~~,,,,,%.%%%%%%%%%%%%%%%%.%..%%%%%%,,.,,,,,.%.%%%..%,,..%%.%%%%%%%%%%.%%%~~~~~~~~~~~~~~~~%%.%%%.%%%%%%%.%.%%%%.%.%%.%%%%%.%%%%,,,,,.%%%,,~~~~~~~~~~~~~~...%...,....%%%%..%%%.%%%%%,,,%%-----------------------------------------%-%%%---------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~-~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%.%%%%%.%.%%%%.%%.%%%%%%.,;%%%%,,%%%%%%%%%%%%.%%%%%%%%.%.%%%%%%%%.%,%%%.%%%%%%%...%..%%%%.%%%.%.....%%%%...%%%%.%%%%%%%%%%..%%%.,,,%%%%.%%%.,%.%.%%%%.%.%%%.,.%%%..%%%,,,.,,,%%.%%%%%%.,%%%%%%,,.%%.%%%%%%--~~~~~~~~~~~~~~~~~~~~%%%%%%,,%%.%%%%%%%~~~~~~~~,,,%%%%%%%%%%%%%,,,%%.%%..%.%%%%%,,,,,,,..%%%%%.%%.,,.%%%.%%%%%%%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%%%.%%%%%%%%%%%%..%.%%%%%.%%,,,,,,..%%,,~~~~~~~~~~~~~~.%..%%..%..%..%%%%%%%.%%%%..,,,,-------------------------------------------%-----------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~-----~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%..%.%%%...%.%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%..%%%%%.%.%%%%%%.%%%%..%%%%.%.%%%.%..%%.%..%.%%%%%%%%%%%%%%.%.%%%,,,%%.%%%%.%%%%%%%%%%%%..%.%%%%%%%...%.,,,,%%%%%%%%%%.%,%%%.%,,,,,.%.%%%%,---~~~~~~~~~~~~~~~~~~%%%%%%%,,,%%%%%%%%%~~~~~~~~,,.%%.%%%%%%%%%%%,.%%%%%%%%.%.%%%.,.,,,%%.%..%%%%%.,,,.,.%%%%%%%%%%%%%%%.~~~~~~~~~~~~~~%%%%%%%%%%%%%.%%%%%%%%....%%%%%%%.%%..,,.%%.%%,~~~~~~~~~~~~~~~.%.%%%%%.%%%%.%%.%%%%.%%%%%.,,,---------------------------------------------------------------------------,----------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,;;,~~,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%..%%%%.%.%%%.%%%%%%%%%%.,..%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%.%.%%%%..%%%%.%%%%.%%%%.%.%%%%.%%%%%%%%.%%%%%,,,%%%%%%%%%%%%%%%%%%..%%.%%%%%%%.%%%%,.,..%%%%%%%.%.%.,%.%%%.,,%%%%.%.%%,..-,~~~~~~~~~~~~~~~~%%%%%%%.%%%%%%%.~%~%~~~~~~~,,,%%%.%%.%%%%%%.%%,.%%%%%%%.%%.%%,,,,,.%.%%%%.%%%.,,,,,%%%%%..%%%%%%%%%%%%~~~~~~~~~~~~~%%%%%%%%%%%%%%.,.,%%%%%%%%%.%%%.%%%%%,,%%%%%%%,~~~~~~~~~~~~~~~~%%%%%...%%%%%%%%.%%%%%.%%%.%.---------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%..%%.%..%%%%%%%%.%%%%%.%%%.%%%%..%%%%%%%%%.%.%%%%%%%%...%.%.,.%%%%%.%%%%%%%%%%.%%%.%%.%%%.%%.%.%%%%%.%%%%%%%%%%%%.,,%%%%%,.%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%...%.%%....%%.%%%.%.%%%%%.,,%%%%%%..%%.%%%%,,~~~~~~~~~~~~~,%%..%%..%%%%%.%%%%~~~~~~~~,,,,%%.,%%%%%.%%.%%%,%.%%%%%%.%%%.,,,,,%..%%%....%.%.,,,,%%%.%%%%.%%%%%%%%%%%~~~~~~~~~~%%%%%%%%%%%%%%%%%,,,%%%%,,,%%%%%.%%%%%%.%%%%%.%%-~~~~~~~~~~~~~~~~%.%.%%.%.%%%%%%%%%%%%%%.%.%%%,--------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%,,%%%%.,%%%%....%.%...%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%...%%%%,.%.%%%%%%%%%%..%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%...,,%%%%..%..%.,%%%%%%%%%%%%%%%%.%%%%%%%.%%.%%...%.%.%.%..%%%%.%..%.%..%%%%%%..%%.%%%%%%%,,,,,,,,,,,,,,%%..%%%%%%%%%.%%%%-~~~~~~-,,,,%%%%%%%%%.%%%%%%,,,.%%%%%%%%%,,,,,,....%.%.%%.%%.,,,.%%%%%%%%%%%%%%.%%%%.~~~~~~~~~..%%%%%.%%%%%%%%%,,,,%%%%,.,%.%%.%%%%%%%,%%%%%%%%-~~~~~~~~~~~~~%.%%%.%.%.%%...%%%%%%%%%%%%.%%%.,,-------------------,-----------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%,%%.....%%....%%%%..%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%.%.%%%%%%,.%%%%%%%%%%%%%%%.%.,%%%%%%%.%.%..%%.%%%%%%%..%%%%%%,%.%.%%,,%%%%%%%%%%%%%%%%%%.%.%%%%.%.%...%%%%.%.%.%%%%%.%%%%%%%%%%%%%%%%.%.%%%%%%,,,,,,,,,,,,,,%.%%..%%%%%%%.%%%%-------,,,,,%%%%%%.%.%%.%%.%...,%.%..%%.%..%%%%%%.%%..%%%%%%.%.%%%%%%%%%%%.%%%%%%%%%%%~~~~~~~~%%.%%%%%.%%%%%%%.,,,,,%%..%.%..%%%%%%%%.,%%%%%%%%-~~~~~~~~~~~%%%%%%%..%%%...%%%%%%%%%%%%%%%%%.%,,,------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%,.%....%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%....%%%%.%.%...%%%%%,%%%%%.%%%%%%%%%%.%%,%%%%%%%,,%.%%%.%%%%%%%%%%.%%%%,.%%%%%%.%.%.%%%%%%%%%%%%%..%%%%%%%..%%%..%.%.%%%..%.%%%.%.%.%%%%%%%%%..%%%%%.%%%%,,,,,,,,,,,,,%..%%%%.%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%..%%%%.%.%%..%%%%%%%%.%%%.%%%%%...%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%~~~~~~%%%%%..%%%%%%%%%%%%%,,,%%%%%..%%%%%%,%%%,,.%%%%%.%%%-~~~~~~~~~%%%%%%%%%%%%%%,%%%%%.%%%%%%%%%.%%%.%%,,------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~..%%%%%%%%%%.%%.%.%,.%%%%%%%%%%%%%%%.%%.%%%%%%%%%.%%.%%%%%%%%%%%%%.%.%...%%%..%%%%%%%%%%%%%%%%%%%%%%%.%,%%%%%%,,,.%.%%%.%%%%%%%%.%.%%%%.%.%.%.%%%%%%%%%%%%%%%%%.%.%%%%%%%%%.%.%.%%.%%%%%%%%.%%.%%.%.%%%%%%%%,%..%.%%%%%%,;,,,,,,,,,,%%..%%%%.%%%%%,%%,%%%%%,,,,,,,,%%%%%%%.%%%.%%%.%%%%.%%%%%%.%%.%%.%%.%%%%%%,.%%..%%%%%%%%%%%%.%%%%%%%%%%%%.~~~~%%%%%%%%.%.%.%%%%%%%%%%%%%%%%.%%%%.%%,,%%%%%%%.%%.%..--~~~~~~~~%%%.%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%.%%,,------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~%%%%%,,,,,,,,.,.,,,,~~~~~~~~~~~~~~~~~%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%.%%%%.%.%%%%.%%%%..%,%%%%%%%%%%%%%%%%%%%%.%%.,%%%%,,,,,.%%%%%.%%%%%%%%.%%%%%%%%.%.%%%%%%%.%.%%%%%%%.%%%.%%%%%%%.%%%%%..%%%%%.%%%%%%%....%%.%%%%%%%.%%.%%%%%%%%%.,,,,.%%%%%%%.%.%%%%%%.%,,,,%%%%%,.,,,,,%....%%%%%%%%%%.%%%%%%%%%%%%..%%.%%.%%%%%%%%%%%%..%%%%%%%%%.%%%%%%%%%%.%%%%.~~.~%%%%%%.%%.%.%%%%%%%%%%%%%%%%.%.%.%.%.,,%%%%%%%%..%%%%%%~~~~~~~~%%%%%%%%.%.%%%%%%,%%.%%%%%%%%%.%.%%%%--------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~.%%%.,,.%%%.%..%.,%%%%%~~~~~~~~~~~~~.%.%.%%%%%%,.%%%%%%%%%%.%%%%%%%%%%.%%...%%%%.%%%%%%%.,.%%%%%%%%.%%%%%,,,..%..%%%,,%%%%%%%%%%%%%%.%%%.%%%.%%%.,,,,,.%.%.%%%%%%%%%%%%%.%%%%%...%..%%%%.%%%%%%%%..%%%%%%%%%%%,,%.%.%%,%%%%.%.%%%%%%%%%%%%%%,%%%%%%.%.%%%%%%%%%.%%.%%%%%%%%%%%%%%%,%%,,,,....%..,,..,..%%%.%%%%%.%.%%%%.%.%.%.%%%.%...%%%%%%%,%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%...%%%.%%%%%%.%%,,%,,%%%%%%%%%%.%%%.%%%%%,,%%%%%%%%.%.%.%%%.~~~~~~.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%------------------------------------------------------------------------------------------~~~------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,;,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~%.%..,,%%%.%.%..,,%%%%.~~~~~~~~~~~~~~.%%%%.%%.%,,.%%%%%%%%%.%%.%%%%%%%%%%.%.%%%%%%%%%.%%%%%%%%%%%%%%%.%.%.,.,....%%%%,%%%%%%%.%%%%%.%%.%%.%%.%%%%%%%,,.%%%%.%%%%%%%.%.%,,%%%%%%%%%%%%%%.%%%%%%%%,,,,%%%%%%%%%%,,%%%%%.%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%.%.%%%.%%%%.%%.%,,,,.%%%%%%.%%.%%..,%.%.%%%%%%%%.....%%%%%%%%.%%%.%%%%%.%.%%%%%%%%%%%.,%%%%%%%%%%%%%%%%%.%%%%%..%%.%%%%%%%%%%%%,,%.%.%%%%%%%%.%%%.,..%%%%,,%...%%%%%%%%%.%%-~~~~~.%%%%%%%%%%..%%%%%%%%%.%%%%%%%%%%,,.------------------------------------------,-------------------------------------------------~~~~~~~--------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~%%%%%%%%%.%%%%.%%%%%,%%%%%%~~~~~~~~~~~~~%.%.%%.%%%.,%%%%.%%%%%,,%%.%%%%%%%%.%.%.%%%%%%%%%%%%%%.%%%%%%%%%%.%%,.,,%%%%%%..%,%%%%.%%.%%%%%%%%%..,.%%%%%.%%%%%....%%%%%%,%%.%..,%%.%%.%...,..,,,,.......%%%%,,%%%%%%.,%....%%%%%%%%%%.%%%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%..,,.%.%.%%.%.%%.,,,.%%%.%%%%%%,,,%%%%..%...%.%%%.%%%%%%%%%%%%,.%%%%,,,%%%%%%%%.%%..%.%%.%%%....%.%%%%%%%%%%%%%..%%.,,%%%%.%%%%%.%.%%%%%%%%%%%%%%%%%..%%%%.....--.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,--------------------------------------------------------------------------------------------~~~~~~~--------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~%%%.%%%%%%%%%%..%%%%.%%%%%%%~~~~~~~~~~~~~%%%%%.%%%%%%%%%%%%%%%,...%%%%%%%%%.%%%%%%...%.%.%%%%%%%.%%%%%%%%%..%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%..%%%%%%%%.%%%%%%%,,%%%..%,,,,.,,.%.%%%%%%%%%,.%%%%,,%%%.%..%%%..%%%%%.%%.%.%%%....%%%%%%%%%.%%%%%%%%%.%%%.%%%%%%%%%,..%%%%%%,..%%%%%.%%%%..,.%%%%%%%%%%,,.,%%%%%%%%%%%.%%%%.%...%%%%%.%.%%%%%,,,%%%%%%%%%%%%%.%.%%..%%..%.%.%%%%%%%%%.%%,%%%%%%%%..%.%%%%%%%%.%.%%%.%%%%%%%..%%%%.%%%%...-.%%%%%%%%.%.%%%%%%%%%%%%%%%%-%%-,,,,--------------------------------------------------------------------------------------------~~~~~~---------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,-~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~%%%%.%%%%%.%.%%%%%.%%%%%%%%%%,,,-~~~~~~~--%.%%,.%%%%.%%%%%%.%%.%%%%%%%%%%%%%.%%%%.%.%%.%.%..%.%%%%%%%..%%%%..%,%%%%%..%...%%%%%%%%%.%,%%.%%%%%%.%.%%%%%.%%%%.%.%.%%.%%%%%%%%%%%%%..%%%%%%%.%%%%.,%%%%.%%%%%%,%.%%,,%%%%.%.%%%%%%%%%%%%%.%%%%%%..%%%%%%.%%%%%%%%.%%%.,%%.%%,,%%%%%%,%.%%%%%%,.%%%%%..%%%%%.,.%%%%%.%%%%%%%%%%%%%,.,,,%%%%%%....%%%%%,%%%%%.%..,.%..%%....%%%%%%%.%..%%..%%.%%%%%%%%%%%%%..%%%%%.%%%.%.%..%.%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%-.%%%%%%.%%%%%%%%%%%%%%%%--------,,,,,-------------------------------------------,------------------------------------------------~~~~~-~~------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~%%%%%%%%%%%%%%%%%%%.%..%%%%,%.,,,--~~~~~~-----%;,,..%%%%%%%%%%%%.%%%%%%%%%%%%%..%%.%%,...%%%%%%%%%%%%%%%%%%%%.%.%%%%%%.%%%.%.%.%%%%%%%%%,%%%%%%%.,,,.%..%%%%%...%%%%%%%%%.%%%%%%%%....%%%%..%%%.%.,..%%%%%%%%%,%%.%,%..%%%.%%%.%%%%%%%%%%%%%.%%%.%.%%%%%%%.%%%%%%%%%%%.%...,,,%%%%%.%%%%%%%%.%..%%.%%%%%%%%.,,,.,,.%%%%%%%%%%%%%%,.,,%%%%%%.%%.%%%%%.,%%%%%%%%%%%%%.%%.%%.%%%.%%%%.,.%%%..%%%%%%.%%%%%%%%%..%..%%.%.%%..%..%.%.%.%%%%%%%%%%.%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%------------,------------------------------------------------------------------~~-------------------------~~~~~~~~~-----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~%%%%%%%.%%%..%%,%%%%.%%%%%%,,,,,,,---~~------;,.,,.,,.%%%%%%%%%%.%%%%%%%%%%%%%%.%%%..%.%%%%..%%.%%%%.%%%%%%%%%%%%%%%%%..%%%%%%%%.%%...%%.%%%%%.%%,,,%%%%%%%%%%.%%%.%%.%.%%%%%.%%%.%..%.%%%%.%%%%.,,%%%%%%.%%%%,,%%%%%.%.%.%..%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%.%%%%,,,,,%%%%%.%%%%%%%%%%%.,%%%%%%%%%,.%%%%..%%%%.%%%%%%%,,.%,,%%%.%%.%%%.%.%.,,%%..%%%..%.%.%%%%%%%%%%,%%%.%.,.%%%%%%.%%%%%.%%%.%%.%%%...%%%%%%%.%.%.%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%,,,%%%%%%%%%%%%.%%%%%-.---------------------------------------------------------------------,--------~~~~-----------------------~~~~~~~~~~~----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~*-****-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~-%%%%%%.%%%.%.,..%%%%%.%%%.%.,,.,,,--.--------,%%%%,..%%%%%%%%.%%.%.%.%..,%%%%.%%%%%%%%.%.%.%,,,,%%%%%%%%%%%%%%%.%%%%%..%.%.%%.%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%...%%%%%%%%%%%..%.%.%%.%%..%%%..%%%%.%%%%%%%%,.%,.%%%,.%%.,%%%%%%%%%%%%%%%%%%..%%.%%%%%%%%%%.%%%%%%%%%%%%,%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.%%%.%%%%%%%.%%%%%%,,%%%,%%%%%%%.%%%%.%,,,%.%%%%%%%.%%%%%%%%%%%%%%%%%%%,,,%%%%%.%%%%%%%%%%%%%%.%.%..%.%%%.%.%%%%%.%%%%%%..%.%%%%%%%%%%%%%.%%%..,,%%%%.%.%%%%%%%%..%.--------------------------------------------------------------------------------~~~~-------------------------~~~-~~~~~----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--%%%%%%%%%%%.%%.%.%%%%.%%%%,%%%%%,,-%%%%%--..-%%%%.%...%%%%%%%,%%.%%%%%.%%%.%%.%%%..%%.%%%%%%,,,,.%%%.%%%%%%%%%%.,%%%%%.%%%%%%%%.%.%%%.%%%%%%.%%%..%%%%%%%%%%%%%...%%%%%%%%%%%%%%..%%%.,....,..%%%%%%%%%%%%%%%%%%%%%%%%,...%%%%%%%%%%%%%%%.%%%%%.%.%%%%%%%%%%%%%.%%%%%%%..%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%.%%%%%,%%%,%%%.%%.%%%%%.,,,,,,%%...%%%.%%%%%%%%%%%%.,,.,.;,,%%%%%.%%%%.%,%%.%.%.%.%%%%.%%%.%%%%.%.%%%,,,%%..%%%%.%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%.%-.--------------------------------------------------------------------------------~~~~~--,--------------------------~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%.%%.%%%,%.%%%%%,.%%%%%,,,%%......%..%%.%%%%%.%%%%%%,,.%.%%.%%%%%%%.%%%%%%%%..%%%..,%%.%..%%%%%%%%%%.%%%%%.%%%%....%%%..%%%.%.%%%.%%%%.%.%.%%%%%%%%%%%..%,,%%%%%%%%%%%%.%.%.%.,%%%,,...%%%%%%%..%%%%%%%%.%,%%,,,,%.%%%%%%%%.%%%%%%%%%%%...%.%%%%%%%%%%%%%%%%%,%%%..%%%.%..%.%%%%%.%%%%.%%%%%%%%%%%%.%.%.%%%%%%%%,%%%%%%%%%%%%%.%%%..%.%%.,,.,,,,,,;...%%..%%%%%%%%%%.,;,,,;.,%%%.%.%%%%.,,%%%%%%%%%.%.%.%%.%%.%.%.%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%.---------------------------------------------------------------------------------~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%.,.%%%%%%%%%..,%%%%%,,,,%.%%.%...%%.%..%%%%.%%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%..,,.%%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%%.,,%%...%%.%%%.,%.%.%.%.%%%%%%%%%%%%%%%%%.%.,.%.%%%%%%%%%.%%%%%,%%%%%,,,%%%%%%.%.%%%%%%%%.%%,,,,,,.%..%%%%%%%%%%%%%%%%%%....%%%%%%%%%%%%%%%%,,,,%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%.%.%%%,,%%%%%%%%%%.%%%%%%%%..%.%,,...,.,.%%%%%.%%%%%%%%%%%%%.%,%%%%,%%%%%%%%..,..%%%%%..%.%%%.%%%%.%..%%%%%%%%%%%.%%%%%.%%%.%%%.%%%%%%%%.%%%%%%%%.%.%%%%%%%%---------------------------------------------------------------------------------~~~~~~----------c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,--~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,.%..%%%%%,,%%%%%%.%.%%.%%%%,%..%.%..%%%..%.%.%.,.%%%%%%%%%,%%%%%%%%.%%,..%,%,.%%%%%.%%%..%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%.%%.%.,,%%%%%%%%.%%%%%%%.%.%%%%%.%%%%%.%%%%%%%%%..%%%.%%%%%%%.,,,.%%%%%.%%%%%%%%%,,,,,..,,%%%%%%.%%%%%%%%,%%%.,,%%%%%%%%%%%%.%%.%%%..%%%.%%.%%.%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%%,%%%%.%%%,,,,%%%%%%%%%%%,%%%%%.%.%%%%%%%%%%%%.%%%,%%.%%%%%.%%%%%.,%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%..%%.%..%%%%%%.%%%%%%%.%%%%%.%.%.%%%%%%%%%%-------------------------------------,-----------------------------------------,-~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,%%%....%%%%%%%%%...%.%%%%%%%%.%%%%.%%%.%..%%%%.,,,.%.%%%%%,%%%%%%%%%%.%%%%%%%%.,..,%%%%%%%%%%%%%%%%%%.%%%%.%,%%%%%%%%%%%%..,%,,%%%%%..%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%,,,,,,%%%%...%...%%%,,,,...%%.%%%%%%%%%%%%.%.%%%%%.%.%%.%.%.%%.%h%%%%%.%%%%%%%%%%%%%%%%%%%.%%.%%%.%%%%%%%%%%%%%%%%%%%.%%%%.%.%.%%%.%%%%..%%%,,,,%%%%%%%.%%%.%.%%%%%%%.%%%..%%%%%%%%%,%%%.%.%%%%%.%%.,%.%%%..%%%%%%%%%%%%%,..%%%%%%%%%%%.%%%%%.%%%.%%%%%%%%%%%%%%%..%%%%.,,,%%%%.%.----------------------------------------------------------------------------------~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%%%%%%%%%%%%..%%%%%%%,%%%%.%%%.%%%%.%.%.%%%%%%,.,%..%%.%%%%%%%%..%%..%%.%.%%%%%%%%%%.,,,%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%,,%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%.%%%%.%%%%%.,%%.%.%,%%%%%%%.%%%...%%%%%%..%%%..%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%.%%%%%.%%%%,%%%%%%%%%.%.%,,,.%%%%%%.%%%%,%.%.%.%%..%%%%%%%%%%%%%%,%%%%%.%%%....%%,%%%%.,%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,...%%%%%%%%%%%%%%%%%%%%%%%.%.%,%%---....-----------------------~~~~-------------------------------------------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.%%%%%%%%%%%%%%%%.%%%%%.%..%%%%.%.%.,%...%%%%..%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%.%%%.%%%%%.%.%%%%%%%%%%%%,%%%%%%%%%%%%%%%%~,,%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%.%%%.%%%%%%%.%.%%%%%%.,,%%%...%.%.%%%%%%%%%%%%.,,%%%%%%%%%%%%%%%%%%.%.%.%..%%%%.%,%,,.%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%.%%%%.%%%%%%.%%%%%%%%.%%%%%%%%%%%%%.%%%,,.%%%%%%.%.%%%.%.%%%..%%.%%%%%%%%%%%%%..%%..%%%%%%%%%%%,%%%..,%%%%%%%%%%.%%,%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%.%%---------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%..%.%,%%.%...%%%%%%%%.%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%,%%%%%%%%%%.%%%%%%%%%%%%%%%~~~%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%.%%%.%.%%%%%%%%%%%%%%%%%%%.%%%.%.%%.%%.%%%%%%.%.%,,,%%.%%%%%%%%.%%%%.%%%.%%..%.%.%.,,,,%%%%%%%%%%%%%%%,.....%%%%%.%%.%.%%%..%..%%%%%%,%%%%%%.%%%%%.%%%%%%%,%.%%%.%%.%%%%%%%%.%%,---....%%.%%%%%.%%%%,,,%.%%%.%%%%%%%%%.%,%%.%.,.%%.%%.%%%%.%%%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%...%%%%-----------------------------~~~~~~---------------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,%.%..%..%%.%%%%%%%%%%%%,%%..%%%%%.%.%%%.%%%%%%%%%%%%%%.%.%.%%%,%%%%%%%%%%..%%%%%%%%%%%%%%-%%%%%%%%%%%,,%%%%%%.%%%%.%.%%%%%%%%%%~~~~%%%%%%%%%.,%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%.%%%%%.%.%%%.%,,%%%...%%%%%%%%%%.%%%%,,,%%%%%%%%%%.%%%%%%%%..,,,.%%.%%,,,,%%%%%%%%%%%%.%%%.%%%%%%%%%%.%%%%%%%%%,.%%%.%%%%,%%%%%%.,,.%..%%%%%%..%%%%%%%%%%%%%%%,.,,.---~~%%%%%%%%.%.,%%%%%%.%.%.%%%%%%%%%%%%,,%%.%..%%%%%%%%%%%.%.%%%%%%%%.,%%%,%.%%%%%%%,.%%%%.%%%%%%%,%%%,-.%%%%%-----------------------------~~~~~~-------------,---------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,~----,,,,,,,,,,,,,,,,,,,%%%%.%%.%%%%%%%%%%%%%,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%..%%%%%%%,,%%%%%%%%.%.%%%%%%%%%%%,--------%.%%%%%..%%%%%,%%%.%.%%%%%%%%%%~~~~~%%%%.%%%.%..%%.%%%%%%%%%.%%%%%%%%%.%%%.%%%%.%%,%%%%%%%%%%%%.%%%%%%%%%%%,,,%%%%%%..,,,,,,%%%%%%%.%%%%%%%%%%%,.,,%%.%..,,,,%%%%%%%%%%%%%.%%%%..%%%%%%%%%%....%%%..%%%.%%.%%%%%%%%%.,.%%%%%%%%%,,,.%.%.%%%%%%%%%,,,,,,---~~%%%%%%%%%%%,%%%%%.%%%%%%.%%%.%%%....%%%.%%%.%.%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%,%%.%%%%%%%%%,,,,,,.--%%%%----------------------------~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,~~~~~~--,,,,,,,,,,,,,,,,,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%,.,..,,,,,,,%%%%.%.%%.%%%%%%%%%%%.--------%,%%%%%..%%%%%.%%%%,.%%%%%%%%%%%~~~.%%.%%.....%%.%.%%%%%%%%%.%%%%%%%%%,.%.%%%.%.%%%%%%%%%%%%%%%%%,%%%%.%%%%%..%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%,,...%%%%.,,....%.%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%.%%%%%%%%%..%%%,,.%%%%%%%%%%..,..%%%%%%%%%%%%,,,,,,---~~~~~-%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%,,%%%%%%%%..%%%%%%%%%%%%%%%%%%%,..%%%%%%%%%%%%%%.%%%...%.%%.,,,,,----------------~-------------------~~~~~~~~~~--------------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,~~~~~~--,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%.%%%.%%%%%%%%%%%%%%%,,,,,-,,,,%%..,,...%%%%%.%%%%%~~~~~----,,%%%%%%%%,,...%.,,,~~~%%%%%%%%~~~~~~~~~~~-.%.%%%%%%.%%%%%%%%%%%%%%.%%%%%,%%%.%%..%.%%%%%%%%%%%%%%%%%%%%%%%%%.,%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%,..%%%%.%%%,,,..%%%%..%.%%%%..,,,,----~~~~~-%%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%%%.%%%%%.%%.%.%%%%,%%%%%%.%%%%%%%%%%%%%%,%%..%%%%%...%.%.,,,,---------------~~~~~~~~---------------~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,--,,,,,,,,,,,,,,,,,,,,-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,~~~~~~~--,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%,,,-------,%%.%%%%.%%%%%%%%%%%%~~~~~--~,,%%%%%%.%%,%%%%.%,,~~~~~%%%%%%~~~~~~~~~~~~.%%.%.%.%%%%%%%%%.%%%%%%%%%%%%%%%.....%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.,%%%%%%,,,,,,,,,,%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%.%%%%%%%%.%%..%%%%%%%%%%%%%,.%.%.%%%.%%.%%.%.%%%.,%.%%...%%.,----~~~~~-%%.%%%%%%%%%%%%%%...%%%%%%%%%%%..%%%.%%..%%%%%%%%%%,,%%%%%%%.%%%%%%%%%%%%.%%.%.%%.%%%%%%...,,,-------c------~~~~~~~~~-----------------~~~~~~~----------------------------,----------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,-------,,,,,,,,,,,,,,,--------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,,,,%%%.%.%%%%%%%%%%....%%%%%%...%%%%%%%%%%%,.%%%%%%%%%%%,,---------%%%.%%%%%%%%%%.%%h%~~~~~~-~~,,%%%%%%%%%,%%%%%%%~~~~~~~~~%~~~~~~~~~~~~~~~%%%%%%...%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%..%%%%%%%%%%%%%.~~~%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%..%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%..,%%%%%%%%%%%%%%.%.,,.%.%.%%%%.%.,,---~~~~~-%.%%.%.%%%%%%%%%%%%.%%%%%%%%%.%%.%..%%..%%%%%.%.%.%,%%%%.%%%%%%%.,%%%%%....%%%%.%.%%%..%%.%%,,----------,---~~~~~~~~~~~---------------~~-~~~-----------------------------------------~~--------------------------c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,,,,,,,,,,,,,,,---------------,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,%.%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%.%%%,%%%%%%.%%,%,,,---------%%%%%%..%%%%.%%%%%%%~~~~~~~~~~..%.%%%%%%%.%.%%%.~~~~~~~~~~~~~~~~~~~~~~~~.~~-..%.%.%%%%%%%.%%%%%%%.%.%%%%%%%%%%...%%%%.%%%%%%%%%%%%%%%%%%~~~~~%%%%%~,,,,,,,,,%%%%%%%%.%%%%%%.%.%%%%%%%%%%.%%.%..%..%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%.%..%%%%%%%%%%%%%,,,%%%%..%%%%,,,,--~~~~~,;%%%%..%%%%%%%%%..%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%%.%,%%%%%%%..%%%%%%%%.%%%%%%%...%%%%.%%%.%.%,,--------------~~~~~~~~-~~----------------~---,------------------------------------------~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,------,,,,,,,,,,,,,,,--------------~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%~~~~~~~-----%..%%.%%%%%.%%%%%%%~~~~~~~~~~~%%%.%%%%%.%%%.%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~-.%.%%%%.%%%.%%%%%%%%%%%%%%%.%%%%%%%.%%%..%.%%.%%%%%%~.%%%%%~~~~~~%%%%~~~~~~,,,,,%%%%%%..%%%%%%%%%%%%%%%%.%%.%%.%%.%%.%.%%%.,..%%%%%%%.%%%%%%%%%%%%%%%%..%%%%.%%%%%%%%%.%.%%%%%%%%%%.%%%%%,,.%%%%%%%%.%,,,,,-~~~~~,,%.%..%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%...%...%%%%%%%%%.%%%.%..%%%%%.%%...%%%..,---.-----------~~~~~-------------------------------------------------------------------~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------,,,,,,,,,,,,,,-------------~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,%%%%%%.%%...%%%.%%%%.%%.%%%%%..%.%%%%%%%.,.%%%%%%%%%~~~~~~~~~~----.%%.%.%,.,..%%%%,~~~~~~~~~~~~.%%%..%%%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%..,%%%%%%%%%%,%.%%.%%%%%%%%%%.%.%%...%.%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%.%.%%%%%%%%%%%.,,,.,.%...%..%%%%.%%%%%%%%%%%%%%-.%~%%%%%%%%%%%%%%%%%%%%%%.%%..%%%..,%%%%%%%.%%%,,.%%%%%%%.%%.,,,--~~~~~,.%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%..%%,,%%%%%,%%%%%.%%%%%%%.%%%..%%%..---------------~~~~---------------------c---------------------------------------------~---------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,,,,,,,,,,,,,------------~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,.%%%%%%%%%%%%%.%%%%.%%%%.%%,%%%%%%%..,~~~~~~~~~~---%%,%.%%%%%%%%.%%%,,,,~~~~~~~~..%%%%.%%%..%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...%.%,%%%%.%%%%%%%%%%%%%%.%%%%%%%%%.%.%,,,,,.%.%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%%%%%%%,%%%%%%%%%,%%%,,,%%%%%%.%%%%%%%%%%%%%%%%%~.~~.%%%%%%%%%%%%%%..%%%%%%%%%%%%.%.%..,%.%%%%%%%,,,,%%%.%......,,,,---,,,,.%.%.%,%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%.%.%..%.%%%%,,%%%%..%.%%%%%%%%%%%%%%%...%%%%-----------------~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,,,,,,,,,,,,,-----------~~~~~~~~~~~~~~~~~~,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.%%..%,%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%,~~~~~~~~~~-.%%.%%%%%%%%%%%%%%,,,,,,---~~~~~%.%.%.%%%%%.%.%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%,%%%%%%%%.%%%,%%%%%%%%%%%%%%%%.%,.%%%%;..%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%.%%%%%%%%%%.%%%%%%%%%,,%%%%%%%%%%%%.%%%%%%%%%%%.~~...%%%%%.%%%%%%%.%%%%%.%.%%%%%%%%%.,%%%%%%%%%,,,%..%%%%.%.%%,,,,,,-,,,,,,%%.%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%,,..%,.%%%%%%%%%...%%%...,%%%%%.%%.%%.%%%%%%%%%%%%%..%%%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------,-----------------------------,-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,,,,,,,,,,,,-----------~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*---,,,,*,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,;,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%.;%.%.%%%%%%%%%%%%%%..%%%%%%%.%%%%%%%%%%,~~~~~~~~~~-%%%.%%%%%%%%%%%..%,,,,,,-----~~-.%%%%,%%%%%%.%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%.%.,,,,%%%%%%%%%%%,%%%%%%%.%%%.%%%%%%,%.%%%...%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%..%.%%%%%%%%%%%%%%%%.%,,,.%%%.%,%%%%%.%.%%%%%%%%-.%%%%~%%%%%%%%%%%%.%%%%%%%.%.,..%...,,%%%.%%%%%.,,%%%%%.%.%%%%,,,,,,,,,,,,%..%%%%%%%%%%%%%,%,.%%%.%%%%%%%..%%%%%%%%.,,,%%%.%.%%%..%%.%.%%%.%%%%%%....%%%%%%%%.%%%%%.%%%%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,---------------,----,,,--------------~~~~~~~~~~~~~~~~~~~~~---,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**----,,,*,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%.%...%%%%%%.%.%%%%%%%%%%%.%%%.%..%%%%%.%.%,~~~~~~~~~~~%%%%%%%.%%%%%%%%%%.,,,,,,-------..,,.,,%%%.%.%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%.%%,,,,%%%%%%%%%%%%%%.%%%.,,%%%.%%%%%,%%%%%,,%%%%%.%.%~~~~~~~~~~~~~~~~~~~~~~~~~,,,.%.%.%.%%%%.%%%%%%%%%%%%%%,,,%%....%,,.%.%.%%%%%%%%..%%%%%%.%%%.%%%%%%%,.%.%%%.%%%%.%%.,.,...%%%%%%%%...%%%%%%.%,,,,,,,,,,,,,,,%%%%%%%%%%%..%.%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%%%%%.%.%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%--------------------------------------------------------------------------------------------------------------------------------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*****-**,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%..%%%%%%%%.%%%%%%%%%%%...%%%%%.%.%%,%%,,~~~~~~~~~~,%%%%%%%%%%%%%%%%%,,,,,,,,,,,-,,,,,,.,,,,,,,,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%,.,,..%%.,,,%.%%%%%,..%%%%%.%%%%%%,%%%%%,,%%%%%.%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,.%%.%%%%%..%.%%%%h%%.%%%%%%%%,%%%%%%%,,..%%%%%%%%%%%.%%%%%%%.%..%%%%%%%%..,%%%,%%.%.%.%..%%%%%%%%%..%%%.%.%..%%%%,,,,,,,,,,,,,,,..%%%%%%%%%%.%%%,,%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%.....%%%%%.%%%%..%%%%,%.,,%%%%%%%%%%.%%%%%%%%%--------------------------------------------------------------------------------------------------------------------------------------------------------~----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,-------~--------------------------------~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%.%.%.%.%%%,,,.,,%%%,.~~~~~~~~,,%%%%%.%%%%%%%%%%,,,,,,,,%%%%%,,,.,,,,,,,.%.,..,,~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%%%%%%%.%,,,%%%%%%%,,,.%%%%%%%%%%%%%%%%,,,%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%,%%%.%.%%%%%.%%%%.%%%%%%%%%%%%%%%%%%,%%%%%.%%%%,%%%%%%.%.%%%%%%%%.%%%....%.%%%%%%%%.%%%%.%%%%%%%%%.%%%%%.%%%%%%%,,%.%%,%%%%%,%%%%%%%%%%%%%,..%..%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%%%%.%%%%%.%.%%%%%%.%%%%%%%%%%%%%%%%%%%%---------c--------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,;,,,;,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,%,%%%%%%%..%%,%%%%%%%%%%.%%%%%%%%.%%%%.%%%%.,,,,,%.%%%%.~~~~~~~,,%%%%,,.%%%%%%%%..,%%%%,,%%%%%%%%%%%%%.%%%.%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%,%%.%%%%%%%%%%%%%%%%%.%%%%.,,.%%%%%%,%.%.~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%.%%..%%%%%%%%..%%%%%.%%.%%%%%%%%%,%%.%.,%%%%,%%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%...%%%%.,%.%%%%%%..%%%%%%%%.%%%%%%%%%%%%%.%%.%%%%%.%%%%%%%%%%%...%%%..%%%%%%.,,,,,%.%.%..%%%...*..%.%%,.%%%%%%%%%%,%%%%%%%%--------------------------------------------------------------------------------------------------------------------------------------------------~~~-~~~~~-----------------------------------------------------------------------------------------------------------------------------------~~-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~***,,,,,,,,,,,,,,,,**$$********,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,**-,,,,,,,,,,,~~~~~,,,,,,,%%%%%%%.%.,.,%%%%%%.%%%%%%.%.%..%%%%%.%.%%%..,%%%.%%%.%.~~~~~~,,%%%%,,.%%%%%%%%%%%.%%%,,%%%%%%%%%%%%.%%%%.%.%.%,..~~~~~~~~~~~~~~~~~~~~~~%.%%.%%%%%%%%%%%%%%,,.%%%%%%%%.%%%%.%%.%%%%%%.,,%%.%%,.,.,%~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%.%....%.%.%%%%%%,%%%%%%%%%%%%%%%%%%%%%,.,,%%%%,,%%%%%,,..%%%%%%%%,%%%%.%%%%%%%%%.%%.%%%%.%%%%%%%%.%.%%%..%%%%%.%,%%%%.%%%%.%.%%%%%%%%%%%%,..%%%.%.%%%%%%%%%%%%%%%%%..%%..%%%,,%%%.%%.%%,%,.%%,%%%...%.,,%%%%%%%%%%,%%%%%%%%,-------------------------------------------------------------------------------------------------------------------------------------------------~~~~~---,----------------------------------------------------------------------------------------------------------------------------------~~~~------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~--------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~**~**********,,***$$*******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,***,,,,,,,,,,,,~~~~,,,,,,,,%%%%%%%%%,,,,%%%%,,,%%%%%%%%%%%.%%.%%%.%.%%%,,%%%..%.%%.,.,,,...%.%%..%%%%%%%%%%%%%%%%,,%%%%..%%%%%%...%%%%%%%...%.%~~~~~~~~~~~~~~~~~~~.%%%%,%.%%%%%%%%%%%%,.%%%%%%%%%.%%%%%%%%%%%%%%%%,%%%%%.%.%.,~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%.%..%%%.%%.%.,.%%%,,%.%%,%%%%,%%%%%%%%%%%.,,%.%%,%%%%%%%,.%%%.%%%%%.%.%..%%%%%%%%%%%%%%%%.%%%%%%.%..%%%..,,%%.%%%%.%.%.%%%%%%%%%.%%%%%%%%,..%%%%%%%%%%.%%..%%%%%%%%%.%%%%%%%%%.%%%%%%.%.%%%%%%,%%%%%%..%.,..%%%%%%%,,,%%%%%%%--------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~------------------------------------------------------------------------------------------c----------------------------------------~~~~~~-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,-,,,,,,,-,,,,,~~~~~~~~~~~-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~**~~~~~~******************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,$**,,,,,,,,,,,,~~~~,,,,,,,,%%%..%%%%%,,,....%%%.,,.%%%%%.,......%%....%,.,..%.%%.%.%%%%%%%%.%%%%%%%.%%%%%%%%.%%%%.,,.,%.%%.%%..%%%%%%..%.%%%%%%~~~~~~~~~~~~~~~~~~~%%%%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%:%%%.%,..%%.%%%.%%%%%%%%.,,~~~~~~~~~~~~~~~~~~~~~~,,,,,%%.%%%%%.%%%.%%%%.,,,,,,,,,,,,.,%%%%%%%%%%%..,,.%%%%%%%%%%,,.%.%%%%%..%%.%%%%%%%%%%%%,%%%%%%.%%%%%%%%%,...%.%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%.%...%%.%%%%%%%%%%%%.%,.%%%%%%%%%%%%%%%%%%%..%%%..%%%.,%%%.%%%%..,,%.%.%%%.,,,,,,,,,,--------------------------------------------------------------------,------------------------------------------------------------------------------~~~~~~-----------------------------------------------------------------------------------------------------------------------------------~~~~~~-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,----,,,,,---,,~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~*****************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,*$**,,,,,,,,,,,~~~,,,,,,,,,%%%%%.%%,,,%%%%%.%%%%%%.%%%%%.%.%%..%.%%.%%.%%,.%.%%%%%%%%%%%.%%..%%%%%%%%%%%..%%%%%%%.,,,,%.%.%.%.%.%%%..%%.%.%%%.%.~~~~~~~~~~~~~~--,%.%..%,.%%%%%%%%%%%%%%%%%%%%%%%%%%%.::.%%%.%%%%.%%.%%%%%%%%%.--~~~~~~~~~~~~~~~~~~~~,,,,,,,%,.%%%..%.%%%%%.%%%,,,,,,,,,,,,%%%...%%.%%.%%.%%%%%%%%%%%.%%%.%%%%%%,,...%%%%%%%%%%%,..%%%%.%%%%%%%%%..%%%%.%%%%%.%.%.%%%.%%%%%%%%%%.%%%%%%%.%%.%%.%%%%%%%%%%%%,%%%%%%%.%%%%%%%%%%%%.%.%%%%%%,,.%%%%%%%%.,,,.~.%%.%.,,--,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~---------------------------------------------------------------~~~~~---------------------------------------------------------------~~~~~~---------------***------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------,,,-----,,~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,~*~~~~~~~***************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,**,,,,,,,,,,,,~~~,,,,,,,,%%%%%%%%%.%.%.%.%.%%%%%%.%%%%..%.%%%.%.%%.%.%%%.,%%%%%.%%%%%.%%%%%%%%%%%%.%%%%%%%..%%.%%%%.,%.%%%%..%%%%%.%%%.%.%%%%%%%~~~~~~~~~~~----..%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%.::::%%%%%:..%%%%%%%%%%%.%.---~~~~~~~~~~~~~~~~~~,,,,,,,,..%.%..%%%.%%.%%%%%,,,,,,,,,,,,,,,.%%%..%.%%%%%%%%%...%%.,%%%%%%.%%%,,%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%.%%%%%%%%%%%%.%%.%%%%%..%%%%.%%%%%%%.%.%..%%%%%%%%%%...%%%%%%.%%%%%.%%%%%%%.%.%%,,,,..%%%%.%.%.%%,%...%%%.,,------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~----------------------------------------c----------------~~~~~~~~~~~~~~-----------------------------------------------------------~~~~~~---------------*^^*-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**~~~~~~~~*************,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,~~~,-,,,,,%%%%%%%%%%%%,%%%%%%%%%%%%.%%%.%%%%%%%%..%,,%%%%...%.%%.%%%%%%%.%%%%%%%%%%%.%%%%%%.%%.%%%%%.%%%%%.%%%.%.%%%.%%%%%,,%.%%%%%%.~~~~~~~-----..%.%.%%.%%%.%%%%%%%%%%%%%.%%%%%%%.::::::%::%:%%.%.%.%.%%...%---~~~~~~~~~~~~~~~~~~~,,,,,,,,%%.%.%%%%%%%%%%%%%%,,,,,,,,,,,,,,.%%%%%.%%%%..%%%%%%%%%.,%....%%%%%%%%%.%%%%%%.%%%%%%%%%.%.%%%..%..%%.%%%%%%%%%%%%%%%%.%%%%%%.%...%%%%%%..%%%%%%.%%%%%%.%%%%%%%%%%%%..%%%%%,%%..%%%%%%%..,.,,,%%%%%%%%%%%,%%%.%.%%%,------------------c----------------------------------------------------------------------------------------------------------,-------------------------------~~~~~----------------------------------------------------------~~~~~~~~~~~~~~~-----------------------------------------------------------~~~~~-----------**--^^^*------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*~~~~~~~~~*******,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,~~~~---,,,%%%%%%%%%%%...%%...%%%%%%%..%%%%%.%.%%.%%,,%.%.%%.%%%%.%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%.%.%%%%%%..%%%..%%%%%%%%%%..%,,%%%%%%%%%%%~...---,,..%%%.%%.%%%.%%%%%%%%%%.%%%%%%%%%%%::::::::%:%%.%.%%%%%%%.%%%--~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%.%.%%%%.%%%%%,,,,,,,,,,,,,,,.%%%%.%.%...%%%%..%%%%..%%.%.%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%.%%%.%%%%%%%%%*.%%%.%%..%%%%%.%%%...%%%%%%%%%%%%%%%%%..%%%%%.%%.%.%%%%%,,%%%%%%%%%%%%%%%%%.%.%%,--------------------------------------------------------------------------------------------------------------------------------------------------------------~~~----------------------------------------------------------~~~~~~~~~~~~~~~~-----------------------------------------------------------~~~~~-----------^^-*^^^*------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*,,,--**---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***~*~~~~****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,~~~~---,,,%%%%%%%%%%%%....%.%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%.%%.,%..%%%%.%%%..%%%%%%%%...%%%%.,,.%.%%%%%,,%%%%%%%%%%..%%%,,,,,.%.%.%%%%%%.%%%%%%%%%%%%%%%%%,,.%%%.%::::::::..%%%%.%%%..%%%%%~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%.%%%%%%%%%%%,,,,,,,,,,,.,..%%%.%.%%.%%.%%.%%..%.%...%..%%.%..,%%.%....%%%%%%%%.%,%.%%%%.%%%,%%%%,,%%%%%%%%%%%%%%.%%%%,%%%%.*..%%%..%%%%%%.%.%%%.%..%%%%%%%%%%%%%.%%%%%%%%%.%.%%%%%%%%%.%%%.%%%%%%%%.%%%%..-.------------------,----------------------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~-----------c------------------------------------------------~~~------------^^^^^^^^*------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**~~~~**,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~---,%%%%.%%%.%%%%,..%,%%%%%%%.%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%%%.%%..%.%%%.%%%%%%%%%%,%.%%%%%%%%,,%%%%%%%%%.%%%.%..,,,%%%%.%%.%.%%.%%%%%%.%%.%%%%%,%%.%%%%::::::%%...%%%..%,%%%%%%%~%~~~~~~~~~~~~~~~---,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,~~~,,,,,.%%.%.%%,....%.%.%%.%%.%%.%%%%.%...,,.%%%.%%%%%%%%%%%%%%,.%%%.%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%,--.****.%.%.%%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%.%.%%%%%%.%%%%%%%.%%%%%---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-------------~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------^^^^^^^*--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~---,,%%%%%%.%%%%%.%%%%%,%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%.%%%%%%%.%.%%.%.%%%%.%.%.%.%%,.%%%%%%%%%%,.,%%%%%%%%.%%%.,,%%%.%.%%..%%.%.%%.%..%%%%%%%%%%%%.%%%%%::::::%.:%.::.%.,,%%%%%%%%%%~~~~~~~~~~~~~~----,,,,,.,,%.%%%%%.%%%%%%%%%%,,,,,,,,,,,,,%%%%%..,,,%.%.%%.%%.%...%%.%.%.%%..,.%%%%.%%.%%.%%%%%.%,.%%%.%%%%%%%,,.,,%%%%%%%%%%%%%%%%%%--***-.,,%%%%..%%.%%%%%..%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%%.%%%%%%...%%%%%%%%%%%.%%%%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------c----------------------------------**-*^^^^^^*--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,%%%%%.%%%%%%%%%%%%,,.%%%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%%%%%%%%%%%,..%%.%%,%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%.%%,%%%%%%%%%%,,,,,%%%%%%..%%.%,%%%.%%%%%%.%%.%%.%%%%.%.%%%%%%%.%%.%%%%%::::::%::::.:..,,%.%%%%%%%%%~~~~~~~~~~~~~~~---,,,,.,%%.%%%%%.%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,..%%%%%%%%%%%%...%%%%%%%%%%%,%%%%%%%%%...%%.%,,,.,.%%%%%%%%%,,,,%.%%%%%%%%%%%%%%%%****.*.,,,.,.%%%%%%%%%..,%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%%.%%%.%%%.%%%%.%%%%%%%%%%.%%%%%-------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------^^^*^^^^^^*--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,%%%%.%%%%%%%%%%%.%.%%%%%%%%%%%.%%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%.,,,.%%%%%.%.%%%%%%%%%%%.%%%%%%%%%%%.%..%%%%%%%%%%%%%%%,,,%%%.%...%%.%..%%%%%%%.%%%%%.%%%%%%.%%%%%%%%%%%%%%%%%%:::::::%%%::::....%.%%%%%%%%%~~~~~~~~~~~~~~~~---,,,,%,%%%%%%%%.%%.%%%%%,,,,,,,,,,,,,,%%%%%%,,...%.%.%.%%.%%.%....%.,%%%,%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%,..%%.%%%%%%%%%%%%%%%.%%%%%%%%%,.%.%.%%%%%%%%.%.%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%.%%%%.%%%.%%%%%%%%%%%%%%%%%-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------*^^^*^^^^^^----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,.,,%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,%%%%%%%%%....%%%%%%%%%%%%%%..%,%%%%%%%..%%.%%%%.%%%%:::::::::%::.:::.:%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~-,,,,,%%%%%%%.%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%,%%%.%.%%%%%.%%.%%%%.%%,,,%%%%%%%%..%.%%.%%%%%%%%.,,,%%%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%.%,%%%%%,%%%.%%%%%%%%,%%%%%%.%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%.%%%.%%%.%%%%%%%%%%%%%%%%%-------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------**^*--^^^^-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.,%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%,,~.%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%..%%.%,%%%%%%%%%%:,:::::::::%:::.:::::%%%%%%%%%%%%%%~~~~~~~~~~~~~~~-,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%..%%.%..%.%..%%%%%%%%%%%%%%%%%%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%%%%%%..%%%.%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%.%%%%.%%%.%%%%%%%%%%%.%%%..%...%.%%%%%%%%%%%%%%%.%%.%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------**-----*-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%..%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%.%%.%%..%%%%%%%%%%%%.%%%%%%%%%.%~~%%%.%%%%%%,%%%.%%%%.%%%%%.%%.%%%%.%.%%..%%%%%%%%%%:::::.:::::%:..:::::%%%.%%%%%%%%%%%%~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%.%%,%%%%.,,,,,,.,..%%%%%%%%%%%.%%.%%%.%.%.%,%.%.%..%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%.%%%.,...%%.....%%.%%%%%%%,...%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%..,.,%.%..%%%%.%%%%%%%%.%%%----------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------------,------~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.%%%%%..%.%%%%%%%%%%%%%%%...%.%.%.%%%%%.%%%..%%%%%%%%%.%%%%%%%%%%%%%%%.....%%%.%%%%%.%%%%%%%%%%%%.%%%%::::.%%~~~%%..%%%%,,,%%.%%%%%.%%%:%.%%..%%%%...%%%%%%%%%%%%,,::::::::..%:::,:::%%%.%%%%%%%%%%.%%~~~~~~~~~~~~~~~,,,%%%%%%%%%%%%%.,%%%.%,,,,,,%%%%.%%%%%%%%%%%%%%%%%.%%%%%%.%...%.%%%%%..,.%%.%%%%%%%%%%%%%%.%%%%%%%%.%%%%h%%%%%%%...%.%.,,%%%%.-.%%%%%%%..%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%.%%%%%%....%%%%,%.%%%..,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------c---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,----------,,,,,,,,,-,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.%%%%%%%.%%%%%%%%%%%%%,.%.%%%%%.%.%.%..%%.%%%%%%%.%%%%.%%%%%%%%%%%%%%.%%.%%%%%..,%%.%%%%%%%%%%%%%,%%%%%%%%%%%.~~..%%%..,,,,,,%%%%:%.%%%%%:%.%%%%%%%.%%%%%%%%%%%%,:::%%%:::.::::::,::%%%%%%%%%%%%%%%%.%~~~~~~~~~~~~~~~~,,%%%%%%%%.%%%%..,%%%.,,,,,.%.%%%.%%%%%%%%%%%%%.%.%%%%%%%%..%%%%.%%%%%%,,.%%..%.%%%%%%%%%%%%%%%%....%%%%%%%%%%%%.%%...,,,,,..~--....,,%%%%%%.%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%%.%%,,,%%.%%.,..%%.%,,,,-----------------------------------,------------------------------------------------------------------------------------------------------------------------------------------,----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------,---------------c--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,-----------,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%.%%%%%%%%%.%%%%%.%%%%.%%%%..%%%.%%%%%...%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%.%%%.%.%%%.,,%%%%%%%%%%%%%%%,,,,%%::%%%%%~~~.%.%.%%%%%,,,%%%::::::%%::::,,%%%:::%:::::::::,,,::::::::,:.::::,:::%%%%.%%%%%%%%%%%.%.~~~~~~~~~~~~~~~,,%%%%%%%%.%%.%....%%%,,,,,,.%%%%%%%%%%%%.%%%%%%%%.%%%%%%.%%%....%%%%%..%.%%%.%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%%%.,,**~~***,,,%%%%%%%%%.%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%..%%%%%%%%%.%%%%%%%%%,%%.%%%%%,.%%%...,,,,,,-----------------------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------c--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,-----------,,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%.%%.%.%%%%%%%%%%%%%.%%%%.%%%%%%%.%%%%%%.%%%%%%%%%%.%%%%%%%%%%.%%%%%%.%%%%.%.,%%%.%%%%%%%%%%%%,,,,,::%::::~~~~.%%%%.%%%%%,,%%:::::::::::::,,%%::::::::::::::::::::::::::,:::::,,:::%%%..%%%%%%%%%%%%%.~~~~~~~~~~~~~~,,,%%%%%%.%%.%%%%.%.%,,,,,%.%.%.%.%%%%%%%%%%%%...%%%%%%%%.%%%%%%%%.%%%...%.%.,..%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%,,,,,~~-,,,,,.%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%.%%%...%%%%%%.%%..%%%%,%%%.%%%.%%.%.%%,,,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------,---------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,------------,,,,,,--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%.%%.%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%.%.%%%%%%%%%%%%%%.%%%.%%%%%%%%%%.%%,%%%...%%%%%.%%%%%%%%%%%,,,,,%:::::,_~~~...%.%%%%.%%%,::::::::::::::,,,%::::::::::::::::::::::::::::::::,,:::%%%,,,,%%%%%%%%%%..~~~~~~~~~~~~~~,,,.%%%%%%%%.%%%%%..,.%%%%%%%%%%%.%%%%%..%%%.%%%%%%%%%%%%%%%%%%%.%..%,..%%%%.,,%%.%%%%%%%%%%.%%.%..%%%%.%%.%%%%%%%%%%%%,,,,***----,,%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%.%%%.%.%%%.%%%%.%..%%%%.%%..%.%%%.,.%%%%%.%.%%%%%,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------c--------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,-,,,-------------,,,,----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%.%..%%%%%%%%%%.%%..%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%..%.%..,%%%%,,%%%%.%%%%.%%%%%%,,,,,,:::::::_____.%%%.%%%%%%%:::::::::::::::,,,,::::::::::::::::::::::::::::::::.,,:::%%,,,.%%%%%%%%%%%%%%~~~~~~~~~~~~,,,,%%%%%%%%%.%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%.%%%%%%%%%%%%%%%%%%%.%%%%..%.%.%.%%%.%..%.%%%%%%%%.%.%.%.%%%%%%%%,,%%%%%%.%..,----~----.%%%%%%%%%.%%%%%.%%%%%.%%...%%%%%%%%%..%%%%.%%%.%.%%%.%%%.,...,,.,,,%.%%%...%%%..,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------c---------------------,-------------------------------..---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,--------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,%,%%%%%%%%.%%%%%%%%%%%%%%%%..%%%,.,,,%%%%%%%%%%%%%%%%%%%%%%%%%,%.%%%%%%%..%%%,,,,,,,,,,,%%%%%.%%%%%%.%%%%,,,,,,::::::_____.,..%%%%%%%::,:,::::::::::::::::::::::::::%::::::::::::::::::::::::%%%.,,.%%%%%%%%%%.%%.%~~~~~~~~~~~~,,,,.%%%%%%%%.%%.%.%.%.%%.,.%.%.%%%%%%%..%%%%.%%%%%%%%%%%%%%%%,..%%.%,,%%%%%%.%%%%%..%,%%%%%%%%%%%%%%%.%%%%%%.%%%%%%.%..,,----~----,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%%.%%%.%..%%..%%%.%%.%.,.,%%%,,,,,..%.%.%%%%%.,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------c------------------------------------------,-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,---------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%,,,%%%%%%%%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%,%.%%%%%%,,%%%%%%%%%%%%%%.%,,,,,::::::::,____,,,,..%:%%%%:;:;::,:::::::::::::::::::::::%:::::::::::::::::::.:::%%%%%%%.,%%%%%%%%%%%%%%~~~~~~~~~~~~,,,,%%.%%%.%%%%...%%%%.%.%.,.%%%%.%.%.%..%%%%%%%%%%%%%%%%%%%.,,.%%%%%.,%.%.%%%%%%.%%%.,%%..%%%.%.%.%.%....%%.,,,.%.%...%,,--~~~----,%%%%%%%%%%%%%%%%%...%%%,%%%%%%%%%,%%%%%%%..%,%..%%.%.%%..%..%%%%,,,,.%.%%....%.,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*~****$,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,;,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%.%%.%%%%%%%%.%%%%,%.%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%,,,%%%%%%%%%%%..%,,,,,,::::::::___:::,,,.%...%%%:,,::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%:%%.,%%%%%%%%.%.%.%~~~~~~~~~~~~,,,,,.%%%%.%%%%%...%.%%%%%%.%.%.%,.%.%.%.%%%%%%%%%%%%%%%%%.%%.,...%%%%%%%%%%%..%.%%%%.,%.%..%.%%%.%%..%,%.%%.,,.%%%%%%%%,-~~~~~-----%%%%%%%%%%%%%%%%%%.%%%%,,%%%%.%..,%%%..%.%%.%%%..%%...%%%%..%%%%,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,---,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,--------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*~~****,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%..%%%%%.%%%%%%%%%%%%%%%%%,.%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%...,%%%%%%%%%%%.%%,,,,,:::::::::__:::::,%%:::..%%%:,;:::::::::::::::::::::::::::::::::::::::::::::::::::%%:::%%%%%.%%%%%..%.%%.~~~~~~~~~~~,,,,,%.%%%.%%%.%,..%%..%%%%.%%%%%..%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%.%%%%%.%.%%%%%%%.%%%.%%.%.%%%..,%%%%.%%%..%,%%%%.%%..%,~~~~~~~---,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,,,%%%%%%%%%%%%%%%..%.%.%%%%.%%%%%.,,,,,%%%%%%%%,,..,,,,,,,,,,,,,,,-,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,----------------------------------------,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*~~****,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%h%%.%%%%.%%%%%%%%%%%%%%%%.%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%%%,,,,,:::::::::,.::::.%%:.::::%:::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%.,%.%%%.,.~~~~~~~~~,,,,,.%%.%.%%%%%,,%.%%.%%%%.,..%.%%.%%%%%.%%%%%%%%%%.%%%%%%%%%.%%%%%..%%%%%%%%%%..%..%%%.%%%%...%.%%%%%%.%%...,%%%%.%%.%,,~~~~~~----,%%%.%%%%%%%%%%%%%%%.%%.,%%%%%%,,,%%.%%%%%%%%%%%%%%%%%.%%%.%....,,.,,,,.%%%.%%%%%%%%,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------c-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,*****,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,%%%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%..%%%%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%.%.%%%%%%%%%%%%%%,,,,,:::::::::::::::.:::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::.::::::,%%%..%%%%%%.%%.%..~~~~~~~,,,,,,%....%%%%...,%%%%%%.%%..%%%%%%%%%%%%%.%%%%%%%%%%%%%,%%%%%%%%%%.%%%%%%%%..%%%%%%%%%%%%.%%%.%%.%%%%%%.%%%%%%%%%%%.%%.%~~~~~------,%%%.%%%%%%%%%%%%%.%%%.%,%%%%%%%,,%..%.%%%%%%%%%%%%%%%.%%%.%%%.%%.%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,------------c----------------------------------------------c-------------------------------------------c------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%.%%%.%%%,%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%..%%.%.%%%%%%%%%%%%%%%%%%,,,,,,:::::::::.:::::.::::::::::::,:::::::::::___:::::::::::::::::::::::::::::::::::::::::::%.%%.%.%.%%..%.%.%.~~~~~~,,,,,,,%%%%.%%%%.%.%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%%%%,.%%%..%%%%%%%%%%%%%%.%%%%%%%%%%.%%.%.%%%%%%%%%%%%%%%%.%%%%%%%%%.~~~~------,.%%%%.%%%%%%.%%%%..%%%%%,%%%%%%%%.%%%%%.%%.%%%%.%%%%%%%%%..,%.%.%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,-,,,-c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------c---------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-c-~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%..%%%%%,%%%%%.%.%%%%%%%%%.%.%.,.%%%%%%%%%%%%%%.%%%.%%%%,%.%%%%%%%%%%%%,.%%.%.%.%%%%%%%%%%%%%,,,,,,,,,:::::::::::.:::.:::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::.%%%%%%.%%%%.%%%%.,,,~~~,,,,,,,,%%%%%%%%%%.%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%..%%.,,%%%%%,%%%%%%%%%%%%.%%%%%%%%%%%%..%.%%%%%%%%%%%%%%%%%.%%%%%%%%.%~~~~,%%%,,,,....%..%%%%%%.%%..%%%.%,%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.,.%%%%%.%%%%%..%%%.%%%%%%%%,,,,,,,---,,---,,,---c----------------------------------------------------------------------------------~~~~~~~----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%.%%%%%%%%%%%.%%%%%%.%.%.%%.%%%,.%%%%%%%.,.%%%%..%%%%,,,%%.%.%..%%%,%%%%%.%%%%%%%%%%.%%%%%,:,,::,,,:::::::::.::::::.:::::::::::;:::::::::_______::::::::::::::::::::::::::::::::::::::.:::..%%%.%%%%%%..%%..,,,~,,,,,,,,,,%.%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%.%%%.,.,%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%%%%%%%%.%.%%%%%%.%%,,%,%...%,,,.%..%%%%%.%..%%.%%.%%%%%%.%%%%.%.%.%..%%%%%%%%%%%%%%%.%%%.%%%%%..%%%%%%%%.%%.%%%%%%,,,,,,,,----------------c--------------------------------------------------------------------------------~~~~~~~--------------------------------------------------------c----------c--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------,-c----------------------------------------------------------------------,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%...%%%%%%%%%%%%%%%%%%%%%..,.%%%%.%%%%%%%%...%%%.%....,,,,%%%%%%.%.,,%%%%%.%%%%%%%%%%%%..%%%%:,:::::::::::::::::::.::.::.:::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::.%%%.%%%%%%.%..%%.,,%%%%%,,,,,,%..%%%%%.%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%,%.%%%..%%%%%%.%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%.%%%%%%.%.%%%%%%%%%%%,,%%%.%%%.%.%%%.%.%.%%%%%%%.%%%%%%..%%%.%%%%.%%%%%%%%.%%%%%%%%%%%.%%%%.%%%.%.%%%.,..,,,..,,,--------------------c----------------------------------------------------------------------------~~~~~~~----------------------------------------------------------------c----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------c--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%..%%%%%,%%%%..%%%%%.%%%%%%.,,...%%%%.%%%%%%%.%%.%.%.%%.,,%%%%%.%%.%.,%%%%%%%%%.%.%%%%%.%%%.%%,,::::::::::::::::::::.::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::%%%%%::%%%%%%%,.%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%..,,%%%%,,.%%%%%%..%.%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%.%%%.,%%%%.%%%%%%%%%%%%%%%%.%%%%.%%%%%..%%%..%%%%%.%%,%%%,%.%...%%%%%%%%%%%%%%%%%%%%%%...%.%%%%..%%%.%%%%,,,,%%...,,,--------------------------------------------------------------------------------------------------~~~~~~~-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------,-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------c-----------,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,---------,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%..%%%%%,.%.%%%%%%%%%%%%%%%.,%.%%.%%%%%%%%%%%%%.%.%.%.%.,,,%%%%%.%%%%%%%%%..%%%%%%%.%%%%%%%%%%,::::::::::::%%%.%%::::::.%%:%%%%%::::::::::,:::____::::::::::::::::::::::::::::::::::::::::::::%%..%:::%%%%%%,,%%%%%..,,%%%%%.%%%%%%.,%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%,,,,,...,.%%%%%%.%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%.%%%%.%%%%%%.%,,.,,%%%%%,%%%%%%%%%%%%%%.%%%.%,,,,%%.%%%%%,%%%.%%%,,,,,,,,%%%.%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%.%.%%%%%,,,,%%%%.,,,---------------------------------c---------------------------------------------------------------~~~~~~~~-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------c-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.-----------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,-------,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%,.%%.%.%%.%%%%%.%%%%%%..%%%.,,.%%%%%%%%%%%%%.%%%%%.%.%%.%%%%%%%%%%,,:::::::::::::::%%:::::::.%:%%:%%%%::::::::::::::___:::::::::::::::::::::::::::::::::::.:::::::::...::::::%%%,,,%%%%%.%,%%%%%.%.%%%%%%,.%%%%%%%%%.%%,,%%.%%%%%%%%%%%%.%,,,,,,,,.%%%%%..%.%.%%%%%.%%%%,%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%,..,.,%%%,,%%%%%%%%%%%%%...%...,,.%%%%%.%%.,,,,,,,,,,,,,,%.%%%...%.%%%%%%%%%%%%%.%...%%%.%.%%%.%%%%..%%%%,..%%%..%%.-------------------------------------------,----------------------------------------------------~~~~~~~~-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,-*,,,,,,,,,,-,,,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.%%.%.%%%%%%%%%%%%%%.%%%%.%%%%.%%%%%.%%%%%%%%%%%%.%.%.,%%%%%%%%%%%%%.%.%...%%%%%%%%%%%%%:::::,:::::::::::::::::::::::::%%%%:%%:::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::,:::.::,::,,,,,,%%.%%%.%..%%%%%%%%%%%%%..%%%%%%%%%%%%%%.%.%%..%%%%%%%,,,,,,,,,,%%%%%%.,.%%%.%%%%...%,,.%%%%%%%%%%%%.,%%%%.%%%%%%%.%%%%%%%%%%%%%,,.%%%%%%%%%%%%%.%%.%%,,,,,%.%%..%,,,,,,,,,,,,,%%%%%%%%%%.%%%%%%%%%%%%.%%.%%%%%.%%%%%%...,..%%%%%..%%%%.%%---------------------------------------------------------------------------------------------------~~~~~~-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.-------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%.%%%%%%%%%%%%%%%%.%%.%%.%%%.%%%%..%.%%%%%.%%%%%..%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%::::,,,:,:::::::::::::::::::::::%%%::%:::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::,:,,::,,,,,,%.%%%%%%.%%%%%%%..%%%%%.%%%%%%%%%%%%%%%%%%.%%%%%%%%%,,,,,,,,,,.%%%%%%%%%.%%...%.%.%%.%.%%.%%.....%..%%%%%%%%%%%%%.%%%%%.%%%%%%%%..%%%%%%%%%.%.%%%.%%%,,.,,.%%%%.%%,,,,,,,,,,,,%%%%.%%..%%%.%%%%%%%.%.%%%.%%%%%.%%%%%%%.%%..%%%%%%%%.%.%%%.---.----------------------------------------,------------------------------------------------------~~~----------------------~~-------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%..%.%%%%%%%%%%..%%.%%.%.%,,.%.%%%%%%%%%%%%.%,,,.%%%%%%.%%%%%%%..%%%.%.%.%%..%.%%%::..::,,::::::::::::::::::::::::::%%::::::::::::::::_::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,%%.%%.%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%.%%%%%..,,,,,,,,,,,,%%%%%%%.%%%%.%.%..%%%..%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%.%%%%%%.%.%%%%%%%%%%%%%.%%%%..%.%%%%.%%%%%,,,,,~~~~~~~%%%.%.%%.%%%%%%%%%%%%%%%%%%%..%%%%%.%%%.%%%.%%%%%%.%%%%%%.%.--------------------------------------------------------------------------------------------------------------------------~~~~~-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,--------------,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%..%.%.%%%%%%%%%...%%%%%%%%.%.%.,.%..%%.%%%%%%%%%,,...%%%%%%%%%%%%%%.%%%%.%%%..%.,%.%%::.::.::.::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,%%%%.%%%%%.%%%.%.%.%..%%%%.%%.%%%%%%%%%%%%.%.%%..,,,,,,,,,,,,%%%%%%%%%..%.%.%%%%%%%%%%%%%%%%%%%.,,%%%%%%%%%%%%%%.%%%%%.%.%%%%%%%%%%%%%.%%%%%%.%%%%%%.%%%%%%%.%%%%,,,,,~~~~~~~%%.%%%%.%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%..%%%.,%%%.%%%.%%%%.-----------------------------------------,---,-----------------------------------------------------------------------------~~~~~------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------c-------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%.%%%%%%%%%%.%%%%%.%%%%%.%..%%%%..%.%.,%.%%%%%%%%%%%%%..%..%%%%%%%%%%%..%%,...%%%%%%.,.%%%:.:.:.::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,,,,,,,,,,%%%%%%%.%%%%%.%%%.%%%%%%%%%%.%.%.%%%%%%%%....%%%%..,,,,,,,,,,,,,%%%%%.%%.%%.%,.%%%%%.%%.%%%%%%%%%,,%%.%%%%%%%%%%%%%%,,.%%%%.%%%%.%%%*%%%.%%%.%%%%%%%.%%.%%%%%%...%%%,,,,~~~~~~~~%%%%%%%%%%%%%%%...%%%%%%%..%.%%%%%%%%%%.%%%%%.,,%%%%.%%%%..---------------------------------------------------------------------------------------------------------------------------~~~~~-----------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------,,,,,,,,,,,,,,,,,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%..%%%%%%%..,%.%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%.,,,%%%::%%.%.%%%.:..::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,%%%%%%%.%%%%.%%%...%%%%.%%%%%...%%%%%%...,.,%%.%.%%,,,,,,,,,,,,.%%%%,,.%%%%%%%,%%%%%.%%%%%%%%%%h%%%%%.%%%%%%%%%%%,,,,%%,...,%.%.%%%%-***..%.%%%%%%%%%%.%%.%%%%%%%%%%%%,~~~~~~~~%%%.%%%.%%.%%%.%%%%%..%.%.%%.%%%%%%%.%%...%%%.%%%%%%%%%.%%%----------------------------------------------------------------------------------------------------------------------------~~~~~~------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,---------------------------------------------------------------,,,,,,,,,,,,,,,,,,------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%.%%%.%%%%%---.%%.%%%%%%%%%%.%%.%%%%%%%-~.%%%%%%%%%%%%%..%%%%%%%%%%%%%%.%%...%%%%%:::%%:...::..:::.:.::::::::::%::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,%%%%..,%.%%%%%%%%%%%.%%.%%%%.%.%.%,,%.%%%%%%...%%%%.,,,,,,,,,,,.%.%%%,%%%%.%%%%%.%%%%%.%%%%%%%.%%%.%.%%%%%%%%%%%%.%.%%%,,,,%%%%%%%%%.***%%%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%~~~~~~~%%%%%%%%.%%%%%%%%%%%%.%%%%%.%..%%%%%%%%.%%%%%%%%%%%.%%%%%%%,--------------------------------------------------------------------------------------------------------,-------------------~~~~~------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-----------------------------------------------------------------,,,,,,,,,,,,,,,-------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%....%%%%--%%%%.%%%%%%%%%%.%.%%%%%%%~~.%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%%%.%%%%%%%:::.:::..:.:.:..::.,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::,,,,,,,,,,%%%%%,,;%%%.%%%.%%......%%%%..%%%%.%%..%.%%%.%%%%%%%.,,,,,,,,,,,,%%.%%%%%.%.%.%.%%%%.%.%.%%%%%%%.%%%.%%%%%%%%%%%%%.%%%%%,,,%.%%%%%%%%...%%.%%%%%%%%%%%%%.%%%%%%%%%%%%%%%~~~~~~~%%%%%%%%.%.%.%%%%%%%.%...%.%%%.%%%%%%%%%.%%%%.%%%..%%%%%%%,,----------------------------------------------------------------------------------------------------------------------------~~~~~~-------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------c-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,----------------------------------------~~~----c-----------------,,,,,,,,,,,,,,--------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%.%.%%%%%.~~~--%%%%%%%%%%%%%,.%.%%%%%%~~~%%%%%%%%%%%%..%%%%.%%.%%%%%%%.%.%.%%%%%%:::::...:....:::.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,.%%%%,;,,.%%%%%.%%%%,.%..%.,,%.%.%%%%%..%%%.%%%%%%%%%,,,,,,,,,,,,.%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%..%%%%%%%..,,%..%%%%%%.%%...%.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%~~~~~%%%%%%%%%%%%%%%%%%%%,,.%%..%%%.%%%%.%%%%%.%%.%%%%%%%%%%%%%.,%%--------------------------c--------------------------------------------------------------------------------------------~~~~~~~~~~---------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,--------------------------------------~~~~~~---------------------,,,--,,,,,,,,,,-------------------------,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,%%%%%%%%%..%~~~~--%.%%%%%%%%.%%,%%.%%%%%~~~~%%%%%%%%%.%%,,.%.,,.%.%%%%%%..%%%%%%%%:::::.::.:..:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::____:::::::::::::::::::::::%,,,,,,,,,,,,;..%%%;,..%%..%.%%%.%,%%.%.%%..%.%%%.%.%%.%%%.%%%%%%%%,,,,,,,,,,,,,,.%%%.%%..%%%%%%%%%.%%%%%%%%%%%%%%,..%%%%%%%%%%%..%..%,,%%%..%%%.%.%%%%%%%%%%%%%%%%%.%%%%.%%%%%%%%%%%%~~~~~~%%%%%%%%%%%..%%%%%%,,,.%%%.%%.%%..%.%%%.%.%.%%%%%%%%%%%.%%%%%%-----------------------------------------------------------------------------------------------------------------------~~~~~~~~~-----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------~~~~~~~-------------------,,,----,,,,,,,,,,---------------------------,--~,,,,,,,,,,,,,,----,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,%%%%.%%%%%%%~~~~~~~%%%.%%%%%%.%.%%.%%%%%%~~~~%%%%%%%.%%%%%%.%%.,,,%%.%.%%.%.%.%%%%::::::::::.::.::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________:::::::::::::::::::::%%%,,,,,,,,,,,,.%%%%%,%%%%%..%%%..%%%.%.%.%;.%.%%%%%%..%.%%%%%%%%%%%,,,,,,,,,,,,....%%.%%%.%%%%%%%%..%%%%%%%%%%.%%%,,.%%%%.%%%.%%,%%%%,,.%%%.%.%%%.%%%.%%%,%%.%%..%%%%.%%%%%%%%%%%%%%%%~~~~~~%%%%%%%%%%%%%%%%%%%%%..%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%------------------------------c------------------------------------------------------------------------------------------~~~~~~~------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------,----,----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------c----~~~~~~~~-------------------,-----,,,,,,,,,---------------------------------,,,,,,,,,,,,,-----,,,,,,,,,,,,,,,;,,,,,,,,..,,,,,,,,,,%%%%%%%%%%%,--~~~~~.%%.%%%%%%%%%%%%%%%%%%~~~~~.%%%%%%%%.%%%%%%%%%%%%%%%%%%.%%..%%%%:::::.:::.:::.:::::,:::::::::::::::::::::::,::::,:::::::::::::::::::::::::::::::::_________:::::::::::::::::::::%%%,,,,,,:::,,,,%%%%%.%%%.%.%.%.%.%%.%.%%%%;%%%%%%%%%%%..%%%%%%%%%%%,,,,,,,,,,,,,.%.%.%%.%%%%%%%%%%%%%.%%%%%%%%,,.,,,..%%%%%%%%%%%%%%%,,..%%%%.%%.%%%.%.%%%,%%%.%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.-------------------c--------------------------------------------------------------------------------------------------------~~-------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------,--------------c-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------~~~~~~~-------------------------,,,,,,,,,--------------------------------,,,,,,,,,,,,,,,---,,,,,-,,,,,,,,,,,,,,,,,.%%%,,%,,,.,,.%%%%%%%%%%%%---~~~~~~%%%%%%%%%.%%%%%%%..~~~~~~~%%%.%%%....%%%%..%%%.%%%%%%%...%%%%%:::::.::::.:::..:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::___________:::::::::::::::::::::%%,,,,,,::::,,,%%%%%.%%%%%..%.%%.%%%%..%%%%%%%%%%.%%%%%%%%%%%%%%%%%,,,,,,,,.,,,...%%%.%%%%.%%%%%%%%%%%%%..%%%%,.,,,,,.,,%%%%%%.%%%%%%,,.%%%.%%%%%%%%%%.%%%%,,,%.%%%%%.%%%..%%%%%%%%,.-~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------,-------------------------------c-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------~~~~~~~----------------------------,,,,,---------------------------------,,,,,,,,,**,,,,---,,,,------,,,,,,,,,,,,..%%.%%%%,.%..%%%%%%%%%.%.,----~~~~~.%%%%%%...%%.%%%.~~~~~~~%%%,,%%%%%%%.%%%%%..%%%.%%%%%%,.,%%%%%::::::::::.:::..:,::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::__________:::::::::::::::::::::::,,,,,:::::%%%%.%%%.%.%.%...%%%%%%%%.%%%.%%%%%.%%%%%%.,%%%%%%%%%%%,,,.%%..%%%,..%.%.%%%%%%%.%%%%%.%%%%...%%%.,,,,,..%%%%%%%%.%%%%%%%.%.%%.%.%%%%....,%%%%%%,%%%%%%%%%%%%%%%%%%%%%,,,--~~~~~~~~..%%%%.%%%%%%%%%%%%%,,..%%%.%%%%%%.%%...%%%%%%%%%%%%%%..---------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------c------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.------------------~---~--**----------------------------------c-------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------~~~~~~-------c----------------------,,,,--------------------------------,,,,,,,,,,*-,,,,,-------------,,,,,,,,,,,,%%%%%.%%.%.%.%%%%%%%%.%%%%%%.-~~~~~%%%%%%%..%%%~~~~~~~~~~~~%%...%.%..%%..%%%%.%.%%..%%%%%,,,,%%%%%%%%::::::::...:.::::::::::::::::::::::::::::,:::::::::::::::::%:%:%::::::::::::::__________::::::::::::::::::::::%:::%%::::%%%%%%%%%%%%.%.%%..%.,%%%%%..,,.%%%%%.%%%%%%,%.%%%%%%%%..,,,%.%%%%%%%%%%.%%%%%%%%%%%%%%%%.%%%%%%%.,%%,,,%%%%%%%%,.,,,%%%%.%%%%..%,%%%.%..,,%%%%%%,%%%%%%%%%%%%%%.%%.%.,,.%.%.~~~~~~~-,%,.%%%%%,,.,,,,%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%.%%.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~~~-~~~~~~--------,-----------------------------------c---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------------------------------------------------------------------------------,,,,,,,,-----,---------------,,,,,,,,,,,,,.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%-,,~~~%%%%%%%%~~~~~~~~~~~~~~~%%%.%%%%%%%%%.%....%%%%%.%%%%%,,,,,,%:%%%:%::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::___:::____::::::::::::::::::::::::::::::::::%%%%%%%%%%..%%..%%%,%%%%%%%.%%%%.%%.%%%%.%,%%.%%%%%%.%%.%..%%%%%%,%%....%%%%%%%%.%%%%%%%%%%%%%%%%%%,,,%%%%%%%,,,,,,,%%%%%%%%%%,,,,%%%%,~~~%%%%%,%.%%%%%%%.%%%%%%%%%%%%%.%%%~~~~~~~~,,,,%.%%%%,,;,,.%%.%%.%%%,%.%%.%...%%.%%.%%%%%%%.%%------------------------c----------------------------------------------------------------------------------------------------------------------~--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.--------------~~~-~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------------------------------------------------------------------------------------------------------------,,,,,,,,-------------------,,,,,,,,,,,,,.%%.%%,%%%%%%%%%%%%%%%%%.%%.%.%.%%%%~~~%~%%%~~~~~~~~~~~~~~~~%%.%.%.%.%,%%%%%%%%%%%.%.,%%%,%%%,,,,:%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:%:::::::::::::::____:::____::::::::::::::::::::::::::::::::::::::%%%%%%%%.%.%.%.%.%%%%%%.%.%.%%%%%.%%%.,%.%%%%%.%.%%%%%%%%.%%%,,,.%%%%%%%%%%%%%%%%%%..%%%%%%.%%%,,,,,,,,,,--,,%%%%%%%%%.%%%,,,..,,,,~~~~~,,,,%%%%%%%%%%%%.%%%%%.%%%%.%%%--~~~~~~~,,,,..,,,,,,,,.%%%%%%%%%,%%.%%.%..%,,%.%%%%%%%%%%-----------------------------------------------------------------------------------------------------------------------------------------------~~~------------------------------,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~~~-~~~~~~~----------------------,-,------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------,---------------------------------------------------------------------------------,,,,,,--------------------,,,,,,,,~~~~~~.,,,,.%%%%.%%.%%.%%%%%.%..%%%..,%%%%~~~~~~~~~~~~~~~~~~~~~~,..%%%.,,,,,%.%%%.%.%..%%.,,,,%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-___::::::::::::::::::::::::::::::::::::::,::::::%..%.%%.%,.%%%%%.**%%%%.%%%%...%%%.%..%%.%%%%%%%%%%%%%%.%%%%%,%%%%%%%%%%%%%%%%.%%%%.%%%%.%%%%%%,.,,,,,,~~----%%%%%%.%%%%%.,,,,,,,,~~~~~~~,,,,%%%.%%%%%%.%%%%%%%%%%%%.%%---~~~~~~~,,,,,,,,,,,,,%.%...%...%%%.%%%.%%%.%.%%%%%%%%%%%---------------------------------------------------------c----------------------,--------------------------------------------------------------~~~-------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~--~~~~~~*-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------------------------------------------------------------------------------------------------------------,,,,,,-------------------,,,,,,,,,~~~~~~~~~,,%%%%%.,%%%%%%%%.%%%%%.%.%.,%%%%~~~~~~~~~~~~~~~~~~~~.%%%%.%%%.,,,,%%.%%%.%%%%..%,,,,%%:%%%%:::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::.%.%.%%%.%.%.%%%.**%.%%%%.%%%..%..%.%%.%%.%,%%.%%,%%%%.....,.%%%%%%..%%.%%%%%%%.%.%%.%%%.%%%%%,.,,,,,,~~~~~~-%%%%%%%%%%%%%.,,,,,,,~~~~~~~,,,,,%%%%,,%%%%%%.%%%%%%%%%%%.%%.%~~~~~~~-,,,,,,,,,,,%%%%.%%%%%.%%..%%%%%%%%%%%%%%%%%%%%-----------------------------------------------------------------------------------------------------------------------------------------------~~~-------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~-------------------------------------------,-------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------,-------------------------------------------------------------------------------------,,,-------------------------,,,,.~~~~~~~~~,%%%%%%%%%%%%%%%%%%%%%..%.%%.%%%%~~~~~~~~~~~~~~~~~~~.%.%.%%.%%,,,..,...%...%%%%%,,,,,%::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::,%%%%%.%%%%..%%%%..*.%%%,%%.%%%%.%%%%%..%%%%,%%%%,.%%%%%,.%%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%,,,,,~~~~~~~~~%%%%%%%%%%%%.%..,,,,~~~~~~~~~,,,,%..%..*%%%%%%%%%%%%%%%%%,%.%%%.~~~~~~-,,,,,,,,,..%%..%%%.%%%%%%.%.%.%%%%%%%%%%%%.%%---------------------------------------------------------------------------------------------------------------------------------------------~~~~~--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~~~~~~------------------------,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------,--------------,,,,,~~~~~~~~~.%%%.%%.%%%.%%.%%%%%%%%%%%%%%%.%%.~~~~~~~~~~~~~~~~~~.%%%%...%%.%%.%%..%%%%.%%,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::,%%%%%.%%%%***..*.%%%%%%.....%%%.%%%%%...%.%.%%%%%.%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,~~~~~~~~~~%%%%%%%%%.%.%.%.,,,~~~~~~~~~~,,,,%%.%.%.%%*,%%%%%%%%%%%..%%%%%%%%%%~~~~,,,,,,,,,.%.....%%%%%%%%%%.%%.%%%%%%%%%%%%%%%-------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~-----------------------------------~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~~-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.--------------------------------------------------------------------------------------------------------------------------------------------,,,,-~~~~~~~~~.%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%..%.%%%~~~~~~~~~~~~~.%.%%..%%%.%%%.%.%.,.,,.,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::%%%%.%%%%%%.****.%%%%.,%%%%...%%%%%..%.%%%%.,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,~~~~~~~~~~~-%%%%%....%%%%.%%~~~~~~~~~~~~,,,%%%%%.%.%**%%%%%%%%%%..%%%%%%%%%.%.~~~~~~~,,,,,,,....%.%.%%%%%.....%%..%%%%%%%%%.%--------------------------------------------------------------c------------------------------------------------------------------------------~~~~~~----------------------------------~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------*~~~~~~~----------------------------------,-------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------,,--.~~~~~~~~,.%%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%..%%%%~~~~~~~~~~~~~~%%%.%%..%%%%%%.%%,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::%%%%%%%%%%%%.*.%%..%%%%..%%%.%.%%%%%.%%.,.,,.,,%%%%%%%%%%%%.%.%%%%%%%%%%%%.%%%%%%..%..%%%%%%%%%%%,,,~~~~~~~~~~~~~.%%%%.%%%.%%%.%%%.~~~~~~~~~~,,,.%.%%%%%%**%%%%%%%%%%.%%%%%%%%%%%%~~~~~~~~~~,,,,,,,,-.%.%%%%%.%%...%%%%%%%%%.%%%%%------------------------------------------------------------------------------------------------------------------------------------------------~~------------------------------------------~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------------------------------------------------------------------------------------------------------------------------------------c-,---.,.,,,,,.%%%.%%%%%%.%%%%%%%%%%%%%%%,%..%%%..%%%%~~~~~~~~~~~~~~.%.%%%...%.%%%.%%%%%%%%,,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%.%%%%.%%.%.%.%%%%%.%...%%%%%%%%%.%%%%.,,%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%.....,.%.%%.%%%%%%%%%,-,,~~~~~~~~~~~~~.%%%.%.%%%.%.%%%%.~~~~~~~~~~~~,,.%.%%%.%%*%%%%%%.%%%%%%%%%%%%.%.%.~~~~~~~,,,,,,,,,,--~.~.~%%%%.%...%%%%%%%%%%%%%%--------------------------------------------------------------------------------------------------------------c---------------------------------------------------------,--------------------~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------------------------------------------------------------------------------------------------------------------------------------,---,----,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%.%.%%%%.~~~~~~~~~~~%%%%%,...%%.%%...%%%%%%%%,,::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%.%%%%%%%%.%.%%..%.%%-~~%.%%%%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%.%%.,..%.%.%%%%%%%...%%%%~~~~~~~~~~~~~~,.%%..%%%..,%%%%%~~~~~~~~~~~~~~~%%%.%.%%%%**%%%%.%%%%%%%%%%%%%..%~~~~~~,,,,,,,,...---~~~~~%%..%%%%.%.%.%.%..%%%%%-----------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------------------------------------------------------------------------------------------------------------,,,--,,,,,,,%%%%%%%%%%%%%%.%%%%%%%%%%%%.%.%%%%..%%%%%%%,,~~~~~~--%%%%%,..%%%%...%%%%%%%%%%.::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::%%%%.%%%%%%%%%.%...-.~~~%%%.%%%%%%%%%%.%%%.%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%.%%%%,%%%%....%%%%%%%%%%~~~~~~~~~~~~~~-,%%%%.%%%%..%%%~~~~~~~~~~~~~~~~%%.%..%%%%***%%%%%%%%%%%%%%..%%%%%~~~~-%%%,,,,.%%%%--~~~~~%%.%%%.%%.%.%%%%%%.%%,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------~~~~~~~~~~~~~~~~~~~~-~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~------------------c---------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------------------------------------------------------------------------------------------,---------------------------------,----------,,,,,,,,,,,,%%...%%%%%%%%%%%%%%%%%%%%%%%%.,%%%..%.%.%%..%%%%-----%%%%%%.%.%%%%%%%%%%%%%%%%%,:::::,::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::%%,%%%%.%%%.%%%%%-~%~~~%%.%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%..%%%.%..%%%.%.%.%%%.%%%.%%%%%%%%%%%%%%~~~~~~~~~~~~~~-,,.,%%.%%%.,,,.~~~~~~~~~~~~~~~~~~--.%%%,,,,%%%%%,,%%%%%%%%%%%%%%%~~%%-%%%%%,,%%%%%--.%%%%%.%%%%%%%%%%,,.,.%%%%,,,----,-------------------------------------------c----------------------------------------------------,-----------------------------------------------------------------------------------------c----------~~~~~~~~~~~~~~~~~~~----~~---------,-~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%.%%%..%%%..%%%%%.%%-%%%%.%%%%.%%%%%%.%%%%%%%%%:,:::,::::::;::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%::%%%%%%%.%%%%%.%%.%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%%%%.%%%%%%%%%.%,.%%%%%%%.%%%%%%%%%,%%%%.~~~~~~~~~~~~~--%%.,.%%.%%%%,,~~~~~~~~~~~~~~~~~~~~-%%%%,,,,%%%%%%%.%%%%%%%%%%%%.%%-%%%%%%%%%%.%%%%.,%%%%%%%%%.%.%%%%%,%%%%.%%%%,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~-------------------------,----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------,-------------------------------------,----------------,%%%%%,,,,,%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%.%%%%%...,%%%%%.;%.%%%%%%%,,,::,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%.%%%%%%%%%,.,...%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%%.%.%.%%%.,%%%%%%%,,,%.%..~~~~~~~~~~~~%%%%%%,%%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~.%%%,,,,%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%..%%%%..,,,,,,,,%%%.-------------------c---------------------------------------------------------------------------------------------------------------------~~~~~~---------------------------------------,---------------------------------------------~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------^^^----------------------------------------------------------------------------%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%......,%%%%%%%%%%.%%%%%%%%%%%%%%%%%%.,,,.;,%%%%%.:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%.%%%%%%%%,,,,.,%%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%%%%%%%%%%%%%.,.,,%%%.~~~~~~~~~~~~%%%%%,,%%%%%%%.,~~~~~~~~~~~~~~~~~~~~~.%%%%%,,,,%%%%%%.%%%%.%%%%%%%%.%.%%%%%%%%%%%.%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%,,,,.,,,%%%%%,-----------------------c--------------------------------------,------------------------------------------------------------------------~~~~~~~----------------------------------------------------------------------------------------~~~~---------------------------------------c-----------------c--------------------------------------------------------------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------^^^-------------------------------------------------------------------,,,,-,,,,%%%.%.%%%%%%%%%%%%%%%%%%%.%.%%%%,%%%%%%%%%%%.%..,,,,%%%%.%.%%%%.%%%%%%.%.%.%%,,,,,,,,,%%%%%,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::%%:::::::::::::::::::::::::::::,::::::::::::,;:::,:::::,:::::::::::::%%%%%.%%%%%.,,,,,%%%.%%.%%%%%%%%%.%%%.%%%.%%%%%.%%%.%%%%%%%%%.%%%%%.%%%%%%%%%%%..%%.%.%%%%%%,.,,%%%%~~~~~~~~~..~-.%%%%%,%%%%.%.%..~~~~~~~~~~~~~~~~~~~~~~%%.%,,,,,,.....%%%.%%%%%%%%%%.%%%%%%%.%%%.%...%%%%%%%%%%%%%%%%%%%%%%.%%%.%,,,,%%%,,%%%%%,-------------------------------------c-----------------------------------------------------------------------------------,-------------~~~~~~~-------------------------------------------------------------------------------------------------------c--------------------------,-,--------------------------------------------------------------------------------------------~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------c--------------------------^^*-------------c-------------------------------------------------------,,,,,.,,%%%%%%.%%%%%%%%%%%%%.%.%%%%%~~~~~%%%%%%%%,.%%%%%,,,,%%%.%.%%%%%%%%%%%%%%%.%%%%%,,,,,,,,%%%%,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::,:::;:,:,:::::::::::::::%%%%%,.%%%%%,,,,,%%%%%%.%%%%%%%.%%%%%%%%%%%.%.%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%..%,,,,%%%.~~~~~~~.%%%%.%%.%.%,%%%%%%%..%%~~~~~~~~~~~~~~~~~~~~~~,,;.,,,,,%....%%.%%%%%%%%%%%%.%%%%%%%%%%.%%%%%%.%%%%%%%%%%%%.%%%%%%%%%%%%.,.%%%%%,%%%%%--------------------c-------,---c------------------------------------------------------------------------------------------,-------------~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------^*^^^-------------------------------------------------------------------,,,%.%.,.%..%%%.%%%%%%%%.%%.%%.%%%%.~~~~~~%%%%%%,,,%%%%.,,,,%...%%.%%%%.%%%%%.%%%%%%%%%,,,,,,;;,..,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,;,::::,:::::;::,;:::::::::::::%%%%%%%%%%%%%,,%.%%%%%%%%%%%%%%%%...%%%%.%%%%%%..%%.%%%%%%%%%%,%%%%%%%%%.%%%%%%%%%..%.%%%%.%%%,,,,--.~~~~~~~.%.%%.%.%%%.,,,,,,,..%%.%~~~~~~~~~~~~~~~~~~~~~~;,-,,,,,..%%%%.%..%%%%%%%%%%%%%%%%%%%%%.%.%%%%%.%%%%%.%%%.,%.%%%%%%%%%%%%%,.%%%%%.%%%%%.-----------------------------------------------------------------------------------------------------------------------------------------~-~~~~---------------------------------------------------------------------------------------------------------------------c------------------,------------c----------------------------------------------------------------------------~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------^^^^--------------------------------------------------------------------,,,%%%%%.%%%%%%.%%%.%%.%%%%%%--%%%%~~~~~~~~~%~~~,,,%.%.%.,,..%%%.%%%%%%%%%..%.%.%%%%%%,,,,,,;,,,,:::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::,:::::::::::,::::::::::::::::::::::%%%%%%%%..%%%,.%%...%%%%%%%%%%%%.,.%%%%%.%.%%%%%..%.%%%%%%%%.%,;%.%.%%%%,,%%%%%%%%%%.,%%%%%%%,,.,,,%%~~~~~~~.%%%%.%%%%%%,,,,,,,.%%%%%.~~~~~~~~~~~~~~~~~~~~~,,---,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%..,.,,,%%.%%..%%%%.%%%%%%%%%.%--%.---------------------------------c-----c----------------------------------------------------------------------------------------------~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,-------------------------------------c-----------------,----^----------------------------------------------------------------------,,%%%%%.%%%..%%%%%%%.%%%%%.%.-.-~~~~~~~~~~~~~~~,,..%%%%,%%.%.%%%..%%%.%.%%.%%%%%%%%%%%%,,,,,,,,,:::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%::...%%%.,.%%%%%%%.%%%%%%%%%%%%.%%%.%%%%..%...%%%%..%.%%%%%%,%.%%%....,%%%%%%%%%%,%%%%%%,.%%%%%%%%%~~~~~~..%%%%.%%..,,,.,.,,%.%.%~~~~~~~~~~~~~~~~~~~~~~,-----,,,%.%%%%.%%.%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%..%%.%%,,,%%%%%%..%.%.%.%%%.%%%%%--%%%-------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------------------c-*---------------------------------------------,----------------------,,,,,..%%%.%%.%.%.%%%%%%..%%%%%%%---~~~~~~~~~~~~~~~---.%.%%%%.%%%%%.%..%%%%%%%.%%%%%%%%%%%,,,,,,%%%,:::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::%::...:.%%%..%%%%.%%%%%%%%%%%%%%%%%.%%.%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%..,.,,%,%%%%%%.%%%%%%~~~~....%%%%%%%%%,,%%%%%%%%.%%~~~~~~~~~~~~~~~~~~~~~~,-----,,.%.%%%%%%%%%%.%%%%%.%%%%%%.%%%%%%%%%%%%%%%%%%%.%.%.%.,,%%%%..%..%%.%%%%%,%%%%%,.%%%---------------------------------------------------------------,---------------------------------------------------------------------~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---,---------------------~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------,---------------------------------------------------------------------------,,,,.%%%%.%%%%%%.%.%%%%%%%%%%%%.%.--~~~~~~~~~~~~~~~----%%%%%.%%%..%%%%%%%%%%%%%.%%%%%%%%%%,~,,,%%%%%%::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..:%%.%%%%%%%%%%%%%%%%%%%%%.%%%%%..%%%%%.%%%%%%%%%%,%%%%%%.%.%%..%%%.%.%%%%.,,,,,%%%%%%%%..%%%%%%%%~~.%.%%%%....%%%...%%%.%.%...~~~~~~~~~~~~~~~~~~~~~,,----,,,%%%%%%%%%%.%..%%%%%.%%%%.%.%.%%%%%%%%%%%%%%%%%%%%.%..,.%%%.%%%%%%%%%.%.%.,%%%%...%%--------------------------,---------------------------------------------------------------,------------------------------------------~~~~~~~------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------,,,...%%%%%%.%..%..%%%%%%%%%%%%%---~~~~~~~~~~~~~~~---.%%%%%%.%.%...%%%%%%.%%%%%%%%%%%%%%%~~~~_:%%%%%:::;::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::%:::::::::::::::::::::::::::::::.:.%.%%%%%%%%%%%%%%%%%%%%%.%.%%..%%%.,.%%%%%%%%.%%%%%.%%%%..%%%...%%%.%%%%.,,,.,%%%%%%.%..%%.%%%%...,%%.%.%.%%%%,.%.%%%%.%%%%.,~~~~~~~~~~~~~~~~~~~~~,,,---,,,,%%%%%%%%%%%%.%.%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%..%%%%%,,.%%%%%%.%.%.%%.%%,%%%%%%%%%-------------------------------------------------------------------------------------------------------------------------------,---,---~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------,--------------------------------------------------,,----,,---,,,..%%%..%%%%%.%%%%%%%%%%..%%.----~~~~~~~~~~~~~~~--%%%%.%%.%%%%%%%.%%%....%%%%%%%%%%%%%~~~___:%%%%:::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::.%%.%%%%%%%%%%%%%%%%.%%%..%...%%%%.%.%%%%%%%%%%%.%%%%%%,%.%.%.%.%.%....%,.,,%%%%%..%.%%.%%%%%%%%%%%.%%%.%%%%%.,%.%%.%%%%%.%,.~~~~~~~~~~~~~~~~~~~,,-----,,,.%%%.%%%%%%.%%.%.%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%.%.%%.%%%.%%%,...%%.%%%%%%%%-----------------------------------------------------------------,-------------------------------------------------------------------------~~----------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------------------------------------------------------------------------------------,,,,-,,,,--,,,,.%%.%..%.%.%%%%%%%%%%%%%%%,%%%.~~~~~~~~~~~~~~~--%%%%%%%%..%%%%%%%%.%%.%%%,%%%%%%%%%~~~~____:::_::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::,,::::::::::::::,:::::::::::::::;;:::;::::::::::::::::::::::::::::::::....%%%%%.%.%%%%%%.....%.%.%%.%.%.%%%%%%%%%%%%.%%%%%%%%%.%.%%%.%.%%%%%%%.%%.,.,....%%%%..%%%..%.%%%%%.%.%.%%%%.,.%%.%%%%%%%%.%%~~~~~~~~~~~~~~~~~--,--------.%%%%%%%%%%%.%%..%%%%.%%..%%%%%%%%%%%.%%%%%%%%%%%%%%%%%.%%%.%%%%%%,%%%%%%%%%%%%%%%%.------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,.%%%%.%%%%%%.%%%%%%%%%%%%%.%%%%~~~~~~~~~~~~~~~--%%%%%%%%%%%%%%%..%%%.%.%.%%%%.%%%%%~~~~__________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::,:,::::::::::::;::::::::::::::::::::::::::::::::::::.:..%.%%%%.%%%%%%%%%%.%%%%%.%%%.%.%%%%%%%%.,,%.%%%.....%%%....%%,.%%%%%%.%%%,%.%.%%..%%.%%.%.%.%%%%..%.%...%%%%%%.%%.%%%%%%%%..%%,,~~~~~~~~~~~~~--,,---------%%%%%%%%%%%%.%,,,,%%%%%%%%%%.%%%%%%.%%%%%%%%%%%%%%%%%.%%%%.%%.%.%%%%%%%%.%%%%%%%%%------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------------~~~-----------------------------------------------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,,.,..,,%.%.%%%%%%%%%%%%%%%.%%%%~~~~~~~~~~~~~~---%.%%%%%%%%%%.%%%%%.%%%%%%%%..%%%%%~~~~~~___________::::::::::::::::::::::::::::::::::::,:::::,,,:::::::::::::::::::::::::::::,::::::::::::,::::,::::::::::::::::::::::::::::::::::::::::::::::::::.:.%%%%%%%%%.%%%%.%%%.%%%...%.%%,,.%%%%%%%%%,%%%%%%.%.%%%%....%%%%%%%%%%.%%%%,%%%%%%...%%%%..%%%%%%%%%%%.%%%%%%%%%%.%%%%%%%%%%%%%%,,,,~~~~~~~~~----,----------.%%%%%%%%%%%%%.%.%%%%%%%%%%%%..,.,,,%%%%%%%%%%%%%%%%%%....%....%%%%%%%%%%%%%%%%%%%------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~-----------------------------------c--------------------------,-----~~~~~~-------------------------------------~-------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,..,.%.%.%%%%%%%%%%%%...%%%%.~~~~~~~~~~~~----%%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%.~~~~~~~____________:::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::;,::,:::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::%%%%%%.%%%%%%%%%.%%%%%%.%.%%%%%..,%%%%.%%%%..%%%%%%%%%%%..%%.%%%%%%%%%%%%%%%%...%%%.%.%%.%..%%.%.%...%%%%%%%%%..%%%%%%%%%%%.%%%,.,,,,,,~~~~~~~,,--------------..%%%%%%%%%%%%%%%%%%%.%..%.%%%....,,%%%%%,,%%%%%%%%%%%%.%.%.%.,.%.%%%%%%%.%%%%%%%%------------------------------------------~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~--------------------------------------------------------------------~~~~~~~-----------------------------------~~-------------------------~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,,,%%%%%,....%.%%%%%%%%%.%%%%%%%%%.%.~~~~~~~-----%%%%%%%%%%%%%%%%%%%%%%.%.%%,,,~~~~~~~~~~____________:::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::.:%%.%%%%%%%%%%%%%%%%%%%%.%%.%%%%.%,....%%%%.%%%%%%%%%.%%.%.%%%%%%%%.%%%%%%%%%.%%%%%%%,,,,,%%%.%%%.%%...%%%%%%%%%%%%%%%%%%%%%%%%%.,,,,,,,,~~~~~,,,---------------..%%%%%%%.%%%%%%%.%%%%%%%%.%%%%%,,,%%%%.%%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%.%%%%%%%.%.------------------------------------~~~~~~~---------------------------------------,--------------------------------,---------------------------------------------------------------------------------------------------------------~~~~~--------------------------------------------------------------------~~~~~~~--------------------------~~~~~-----~------------------------~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,-----------------------------------------------------------------------------------------------------------------------,,,.,,%%%%,,,,,,%.%%%%%..%%%.%.%%%%%.%%%%,,,%%.%%.%%%~~%,,,-,,%%%%.%%%%%%%%%%%%%%%.%%%%%%%,~~~~~~~~~~______________:::::::::::::::::::::::::::::::::,:,:::::::::::::::::::::::::::::::,:;,:,::::::::::::::::::::::::::::::::::,::::::::::::::::::::.::::::::::::%%%%.%.%%%%%%%%%%%%%,%.%%%%..%%%.%%%.%%.%%%.%%%%%%%%%%%%.%%%%%%%%..%%%%%..%%..%%%.,%,;.%%%%%%%%,.%%%..%%%%,,%.%%%.,%%%..%%%%%%%%%%%%,,,,,,,,,,,,--------------------%%%.%%..%%%%%%%%%%%%%.%%%%.,,.%%%%%%%%%%%%%%%%%%%%%.%%%%%.%.%,%%%%%%%%%%%.%%-----------------------------------~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~--------------------------------------------------------------------~~~~~~--------------------------~~~~~~~----------------------------~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,--------------------------------------------------------------------------------------------------------------------------,%%%%%,..,,.%%%.%%%.%%%%%.,,%%%%%%.%.%,%.%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%%%.%%%.%.%%..,~~~~~~~~~~~________________:::::::,:::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::::::::::::%%..%%%%.%%%%.%%%%%%.%%%%....%.%..%.%.%%%.%%%%%%%%%%%%%%..%%%%%%%.%%%%.%%.%%.%%..,,;,%%%%%...%%%.%%%%%.,,%%%%%%..,%%.%%%%%%%%%%%%%%%,,%%%,,,,-----------------------,.%%%%%%%%%%%%%%%%%%.%.%.%%%,%%%%%%%%%%%%%%%%%%..%.%%%,%%%%%..,--%%%%%%%%%%%----------------------------------~~~~~~~~~---------------------------------------------------,---------------,--------------------------------------------------------------------------------------------------------------------~~~~~--------------------------------------------------------------------~~~~~~--------------------------~~~~~~~---------------------------~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------------------------------------------------------------------------------------------%%%%%.%%.%..%%%%%..%%%.%.,,,.,...%%%%.%.%..%%%%%%%%%%.%.%.%%%%.%%%%%%%%%%.:%%%.%%%%-~~~~~~~~_~__________________:::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,:::,::,:::::.:.::::::::::.:%%:::::::::%%%%%%.,,,%.%%%%%%%.%.%%%.,%.%%.%%%%.%.%.%%%%%%%%%%%....%.%.%.%%%.%%%%%%%%.%%%...,,,%%%.%%.%%.%.%%%%%%,,%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%..----------------------,%.%%%..%%%%%%%%%%....%%%.%%,%%%%%%%%%%%%%.%%%..%%%%%,,%.%.%.,----%%-%%%%%%------------------------------------~~~~~~~~~-----------------------------------------------------c-----------------------------------------------c---------------------------------------------------------------------------------~~~~~---------------------------------------------------------,----------~~~~~~-----------------------------~--~-~~-----------------------~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------------------------------------------------------------------------------------------------%%%%%.%.%..,%%%%%%%.%%%.,.%..%%%%.%.%.%%..%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%:::%:---~~~~~~~~~~_____________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::..::.:.:,.,:%%%%%%%%%:::::::%%%%%%%.%%%..%%%%%%%.%%.%,.%%.%%,%%%.%%%..%.%%%%%%%%%%...%%.%%%%%%.%%%%%%%%%%..%%...,..%.%%%..%%%%%%%%%%%%%%%%%%%.%..%%%%%%%%%%%%%%%%%%%%.%.%.----------------------%.%%.%%%%%.%%.%%%..%%%%..%%%....,%%%.%.%%%%%%%,,,.,,,,,,%%%%%,,,-----%%%%%%%-------------------------------------~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------c----------------------------------------------~~--------------------------------------------------------------------~~~~~--------------------------------~~~~~~~-------------------~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,---------------------------------------------------------------------------------------------------------------------------------%%.%...%%%%,%%%%.%%..,.,%%%%%.%.%.%%.%%.%%%%%%%%%%%%%%.%.%%%%%%%%%%%%%%%%::::::--~~~~~__~~~~______________________:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::,:::::::,::::,::.:.::::::.::%.%.%%%%%.%%%:.::.:::%%%%%%%%%%%%%%%%%%%%%..,,%.%%%%%%%%%%..%%%.%%%%%%%.%.%%%.%.,%%%,,%%%%%%%%%%%%%,..%%%%%%%%%%%%%..%%.%%%%..%,%%..,%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%----------------------%%%%.%.%%%%,,,,%%.%.%.%.%%%%%%.%%%%%%%%%%%%%,.,,,,,,,,,,,....,,,------%%%----------------------------------------~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~-------------------------------------------------------------------~~~~~--------------------------------~~~~~~~------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,----------------------------------------------------------------------------------------------------------------------------------.%%%%%%%.%,,%%%%%%%%.,,%%.%.%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%,,%%%::::::-~~~~~~___~~~_______________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::.::::::::::.%%..%%%%%.%%:::::::%%%,,%%%%%%%%%%%%%%%%%%.%%%%%%%%%....%%%%%%%%%%%%..%.%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%..%%%.%.%%%%%%%.,,,..,.%%..%.,...%%%%%%%%%%%%%%%-------------,---.--%%%%%%%%%.%,,.%%%.%%%%.%%%%%%.%.%.%%%%%.%%%,,,,,,,,~~~~,,,,,,,,,--------%-----------------------------------------~~~~~~~~~~--------~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~----------**-*-*-*----------------------------------------------------~---------------------------------~~~~~--------------------~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,---------------------c------------------------------------------------------------------------------------------------------------.%.%.%%%%%.,,,%%%%%%%%%.%%%%%%%.%.%%%%%%%%.%%%%%%%.%%%.%%%%%%%%,:::_~~:::::::::%~~~~~____~~~_____________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::,.::::::.:::..:%%%%,%%%%%%%%::.%::%.%%%,%%%%%.%%%%%.%%%%%%.%.%%%%%%%%%..%%%%%%%%%%%%%,,,%%.%%%%,,%%%%%%%%%%%.%%%%%%%.%%%%%%%.%%%.%%%%.%%%%....%.%%%%.%%.%.%%%%%%%.%%%.%%%.%%%%%%%%%%,----------------%%%.%%%.%%.%%%,,,%%%%%%%.%%%%,,.%%%..%%%%.,,.,,,,,,~~~~~~~~~,,,,,,---------------------------------------------------~~~~~~~~~~-----~~~~~~---c----------------------------------,--------------------------------------------------------------------------,-----------------------------------------------------------~~~~-------*--***---*---------------,----------------------------------------------------------------------~~~~~-------------------~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,-----------------------------------------------------------------------------------------------------------------------------------.%%%%%...,.,,,%%%%%%%%%%%%%%.%%%%.%%%%%%.%%%%%%%%%%%.%%%%.%%%%%,:::____::::::::%~~~~~_____~______________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,:::::::..:::.:.::.:::%%%%.%%%%%%%..%,%%%%.%.%,,%%%%%%%%%%%%%%%%.%%%%%%%%%.%%%%..,%%%%%%%%%%,,,,...%%%.,,,,%%.%%%%%%%%%%%%%.%%%%%.%%.%.%%%%%,%.%%%%%%%.%%%%.%%%%%%%%%%%%.%%.%%%%.%.%%%.%%%%%%--------------%%%%...%.,%%%..%,,%%%%%%%%%.%%,.%.%%%,.%%%%..,%%%,,,~~~~~~~~~~,,,,,------------------------------------------------c---~~----~~-----~~~~~~~------------------------------------------------------,-----------------------------------------------------------------------------------------------,----------------------~~~~----------***-***---------------------------------------------------------------------------------------~~~--------------,-----~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------,------------------------------------------------------------------------------,---------------------------------------------%.%...%%,,,,,%.%%%%%%%%%%%%%...,%%%%%%,,,%%%%%%%%%%%%%%..%::::::::______:::::::__________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::.:::.::.:::::%%%%%%%%%%.%%.,,%%%%.%.%.,...%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%,,%%%...,.%,..%%%..%%%%%%%%%%%%.%%%%%%%,.%.%%%%%.%.%.%.%.%%%%%.%%%%.,%%.%%.%%%%%.%%%.%.%%%%%%%%%-------------...%%%%%%%.%%..%%.,,%%%%..%...%.,%%.%%%.%%,.%%%%%%,,~~~~~~~~~~~~,,,,,---------------------------------------------------------------~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~---------*********------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------c--------------..%.%%%%%,,%,,%.%%.%%%%%%.%%%%%%,.%%%%%%,,,.%%%%%%%%.%.%%,%::::::::_______:::::____________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::.::::::::::::%%%%%%%%%%.%%%%%.%%.%%%%,%.%%%.%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%.%%%.%,%%%%%%.%%,,,.%%%%%%%%%%%%%%%.%%%%%%%%,,.%%%%.%..%..%%%%%%%%%,%.%.%%%..%%%%.%.%,,%%%.%%%%%%%%%%------------.%%%.%.%.%%%%.%%%%.,,.%%%%%..%%.%....%.%%%%.%.%.%%%,-~~~~~~~~~~~~~,,,,---------------------------------------------------------------~~~~~------------------------------------------c---------------------------------------------------------------------------------------------------------------,---------------------~~~~-----------------------------------------------------------------------------------------------------------~~~---------------~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------------------------------------------------%...%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%,,.%%%%%%%%%%%,%%::::,::_________:________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::,...::.::.%:::%%%%%%.,,%%.%%%.%%%.%%%%.%.%%%.%%%%%%%%.%%.%%%%%%%%%%%%.%.%.%%%.,.%%%%.,%%%.%.%.%%,,%.%%%%.%%%%%%%%%%%%%%%%,,,,,,..%%..%%%.%%%.%.,,,,%%.%%%%%%%%%.%%%%,,,%%%%%%%%%%%%%-------------%%%%.%.%%%.%.%.%..,%%%%%.%%.%.%.%.%.%%%%..%.%%%%%%,-~~~~~~~~~~~~~~,,,---------------------------------------------------------------~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------,------,----------------------~~~~--------------------------------------------------,------------------------------------------------------~~~~~~~~------------~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------------------------------------------------------------------------,---------------------------------------%%%%%,,%%%%%%%%.%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%..%.%,::::_________:________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::.::.::.%%%%%%.%%%%%..%%%.%%%%%%%%%%%..%%%%%.%%%%%.%..,.%%%%%%%%%%.%%.%..%.%%..%.%%%%%%..%%%%%.,,%%%%%%,.%%%%%%%%%%%%%%.,,,,.%%%%%%.%%%%%%.%%.,,,%%%%%%%%%%%%%,,%%,.,%%%%%%%%%%%%%%-------------.%%%.%%.%.%...%%%%...%.%.%%.%%%%..%%%.%%%%%%.%%%%%--~~~~~~~~~~~~~~,,,---------------------------------------------------------------~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------------------------------------------------c---------------c-------------------------------,--------------------,-----------------------------,%%%%%%%%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%..%%%%%%%.:::::_________:_______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:::..::%%%%%%%.%%%%.%%%%.%%.%.%%%%%%%..%%%%%%%%..%%..%.%.%%.%%%%%%%.%%%%.%..%.%..%.%.%%.%.%%.,.,,%%%%%%.%%%%%%%%%%%%%%%%,,.,%%%%%%%%%%%..%,,,,,.%%%.%%%%.%%%.%.%%%%.,%%%%%%%%%%%%%-------------%%%%%..%%%.%%%.%.%..%%%%%%%.%.%...%%.%%%.%.%%..%%%%%~~~~~~~~~~~~~~,,,----------------------------------------------------------------~~~~-------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------~~~~~------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------------------------------------------------------------------------------------------------c--------------------------------------------------,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%..%%%%%.:::::________::______________________________________________________:::::::::::::,,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,.:.:.::::%%..%%.%%%%%%%%%.%%.%%%%%%%%%.%%%%%,%%%%,%%.%%..%%%%%.%%.%%%%%%%%%%.%.%%%%.%%%....%%%.%%,,,%%.%%,%%%%.%%.%.%%%%%%,,.%%.%%.%%%%%%%%%.%%%.,%%.%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%------------.%%..%%%.%.%%%.%.%..%.%.%.%%.%.%%%%%%%%%%%..,%.%%.%%-~~~~~~~~~~~~~~,,,-----------------------------------------------------------------~.----------------------------------,--------------------------------------------------------------------------------,--------------------------------------c--------c-------------~~~~~----------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-------------------------------------------------------------------------------------,-----------c-------------------------------------------------------,%%%%%%%%%.%%%%%%%%%%%.%%..%%%%%%%%%%.%%%.%%%%%.%%%%..:::::_______:::______________________________________________________::::::::::::,:,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:.:::::.%%%%%.%%.%%%%%%%%%%.%.%%%,%%%%,,....,..,.%%%%%%%%.%%%.%%%%%..%.%%%%%.%%%%%.%%%%%.%%...%%%,,.%.%.%.%%%%%%%%.%%.%%%%%%%%.%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%%%%---------------..%%%%%..%%%%.%.%.%.%%%.%%.%%%%.%%%%%%.%.%..%%%%%%%%%%~~~~~~~~~~~~~,,,---------------------------,------------------,---------------------------------------------------------------------------------------,-----------------------------------------------------------------------------------------------------------~~~~~~---------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-----------------------------------,---------------------------------------------------------------------------------------------------------------------%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%.%%.%.%%.%,%%::::___::::::::____________________________________________________:::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..::.%%%%%%%%%%%%%%%%%%%%%%%%,,,,.,,,%%%%%.,,%%.%.%%%.%%%.%...%%%%%%.%%%%,..%.%%.%%%%%%%%%%%%%.,.%%%%..,,.%%%%%%%%.%%,..%.%.%.%%%%%%.%%%.%%%%%,%%%%%%%%%%..%.%%%%.%%%%...%.%%%%----------------.%%%%%.%%%%%.%%%%%%%..%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%~~~~~~~~~~~,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------c---------------------------------------------------------~~~~~~----------------------------c---------------------------,---------------------,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------------------------------------------------------------------------------------------------------------------------------------------------------%%.%%%%%%%%%%%..%%%%%%..%%%%%%%%%%%%%%%%,,,..%...%%.%..,%::::::::::::::::___________________________________________________:::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::%%%%%%%%%%%%.%%.%%%%%%%.,,,.,%%%%.%.%.%.%%%%..%%%%%%%.%,%.%%.%%.%%%,%.%%%%%%.,..%%%.%%%%%%%,,,%.%.%%%,,.,%%%%%.%.%%.%%%.%%%%%%%%%%%%%%%%%%%%.%%%%.%%%%.%%%%%%%%.%%%%.%%.%.%%------------------%%%%%%%.%.%%%%%%%%%.%%..%%%..%%%%%..%%.%%%%%%%%%%%%%~~~~~~~~~~,,,,,,--------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-~~~~~~~-----------------------------------------------------------------------------------,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------,---------------------------------------------~~~-----------------------------------------------,------------------------%%%%%%%%%...%%%%%%%%%%%%%%%%%%%%%%%%%h%%%%...%..%%.....,,%:::::::::::::::::_________________________________________________:::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::,::::::.%%%%%%%%%%%%%%.%%%%%%%%.,,,,,%%%%.%%%%..%%%%%%.%.%%%%.%,%%.%%%%%%,,,%%%...,,,%%.%%.%,,,%%%,,,.%%.%%%%.,..%,%%%%%%%%%.%.%%%%%%%%%.%%%%%%%%%%%.%%%%.%%%%%%%%%%%%%.%%%..%%%%.%%%----------------,,,%%%%%...%%%%%%%%%%%%%%.%%.%%%%.%%%%%%.%%%%%%%%%%%.%~~~~~~~~,,,,,,-------------------------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------------------------~~~~~~~~~~----------------------------------------------,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------------------------------------------------~~~----------------------c-------------------------------------------------%%%%%%%%%%%%%%%.%.%.%%%,,,,%%%%%%%%%%%%%%.,%%%%%%%%%.%%,%%::::::::::::::::::_________________________________________________:::::,:::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::%%%%%%%%%%%.%.%%%%%%%,,,,,,,%%%%%%%%.%,%%%%%%%%%%%%%%%%%%..%%..%%%.%%%%%.%.,%%.%%%%%%%.%,,,,,.,.%.%.%.%%%%%%...%%%.%%%%%%%%%%.%%%.%.%%%%%%%,%%%%.%%%%%%%%%%%%.%%%%.%.%%%.%%%----------------,,,%.%%%,,,.%%%,,%%%%%.%.%.%%.%.%,,,%.%%%%%%%%%%%%%%%%%.~~~%%%%,--,,----------------------,-------------------------------------------------------------------------------------------------------,----------------------------,--------------------------------------------------------------------------c----~-~~~~~~~~~~~~----*------------------------------------------,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,------------------------------------------------------------------------------~~~-------------------------------------------------------------------------%%%.%%%%%%%%,,,%%%%%%,,,,,%%%%.%%%%%%%%.%%%%%%%%%%.%.%,%%::::::::::::::::::___________________________________________________::::,:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::.::%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,;.%%%%,,%%%%%.,,%%%%%%%%%%%%%%%.%%%%%%..%%%.%%%%%%%%%%%%%,,,,%%...%%.%%%%%%%%%%%%%%.%.%.%%%%%%%%%%%%.%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%.%%%.%.---------------,,,-%%%%%,,,,,,,,,,%%%%%%,,.,,%%%%%%%.%%.%.%%%%%%%%%%%%.%~%%%%%%----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*~~-~~~~~~~~~~~--*---------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,----------------~-------------------------------------------------------------~~~----~~~~~--------------------c------c--------------------------------------%-%%%%%%%.,%%%%%%%,,,,,,%%%%%.%%%%%%%%%%%%%%%%%.%%%..%:::::::::::::::::::___________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::%%%%%%%%%%%%%,,%%%,,,,-,,,,,,,,,,,..-.---,%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%.%%%%%%%%%%%.%%%%%,,%%%%.%%%%%.%%%%%%%%%..%%%...%%%.%%%%%%%%%%%%.%%%%%%%.,%%%%%%%%%%%%%%%%%..%.%%.%%.--------------------,,,,,,,,,,,,,,-,,,,,,,,,,,,,%%%%...%%.%%%%%%%%.%%%%.%%%%%%------,------------------------------------------------,------------------------------------c---------------------------c--------------------------------------------------------------------------------------------------------------------*~~~~~~~~~~*~-~---**-,*-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,----------------~~------------------------------------------------------------------~~~~~~~----------------c-------------------------------------------------,%-.-%-%%%%%%%%%,,,%%%,,%%%,%%%%%%%%%%%%%%.%%%%%%.%.%:::::::::::::::::::::_________________________________________________:,:::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,.%%%%%%%%%%...%%,,,,,~~~~~~~~~~~~~~~~--------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,%%%.%.%%%.%%,,%%%%%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%%%%%%.%%%%%.,,,%%%%.%%%%%.%%%%%%%.%%%%%---------------------,,,,,,--,,,,----,,,,,,,,,,,,.%%.%.%%%%%%%%%%%%%.%....%%.%%----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-----------------------------------------~~~~~~~~~*****~****--*--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-,,,,------------------------------------------------------------------------------------~~~~~~~-----------------------------------------------------------------------.-%%%%%%%%%%%%::%%,,,,%%:,%%%%%%%,%.%..%.%%%..,::::::::::::::::::::::_________________________________________________,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::;:::::::::....%%%%%%%%.%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~-.%%%%.%%.%%%%%%%%%%%%%,,,%%%%%%.%.%.,%%.%.%%%%%%.,,..%.%.%%.%%%%%%%%%%%,,,,,,%.%.%%%%.%%%%%%%%.%%%%%%%%%,,,%%%%%%%%..%%%%%%%%..%%%%.---------------------,,,,----,,-----,,,,,,,,,,,%%%%%%%.%%%%.%%.%%%.%.%.,,-%-.,-------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------~~~~~~~~~~*******-**-*---*-----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------------------------~~----------------------------------------------------------~~~~~~~~-------------------------------------------------------------------------%%%%%%%%%%%:::::::::::%,,%%%%%%,.%%%%%..%..,,,:::::::::::::::::::::_________________________________________________:,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:;::::::.:%%%..%,,,%%,%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~--%.%%%%%.%.%%%%%%%%%%%%%%%%%%.%%%%%,,,,..%%%%.%%%%%%%.%%%.%%%.%%%%%%%%%%,,,,..%%%.%%%%%%%%%%%%%%%,,,.%%%.,,%%%%%%..%.%%.,%%%%..%%%%.----------------,-------------------,,,,,,,,,,%%%.%%%%%%%%%%%,%%%%%%..%%.--------------------------------------------------------------------------------------------------------------------c----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~********-----*------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,----------------------~~----~~-----------------------------------------------------------~~~~~~~~------------------------------------------,-------------------------..-%..%%%%%%%%%%::::::::::::,,%:%%%%.%.%%%.%%%,,,,,,::::::::::::::::::::_________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::;:;::::,:,:::.%%%.%,,%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%.%%%.%.%%%%%%%%%%.%%.%.%%..%%%%.,,,%.%.%.%%%.%%%%.%.,..%%%%%%%%%%%%,..,.%...%%%.%%%%%%%%%%%..,,%%%.%..%%%%%%%%%%...%%.%%.%%%.%.------------------------------------,,,,--,,,,%%.%%%%..%%.,%,,,%%%%%%%%%%--.-..-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~*******------------------c------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,-----------------------~~---~~~------------------------------------------------------------~~~~~~-----------------------------------------------------------c--------.%%%%%%%%.%%%%%%%::::::::::::,,:::%%%.%%%%.%%%%%%,,,,::::::::::::::::::::_________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::%%%.%%,,%%%%%..%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~...%%%.%%%%%%.%%%%%.%%%%%%%%%%.%%%%%%.,,%%%%%.%%%%%%%%%..,.%%%%%%%%%%%%.%%%%%.%...%.%%%.%%%%%.%.%%%%.%%%.%%.%%%%%%%%%%%.%%.%%%...-.-------------------------------------,,,----,,,%%%%.%.%%%%%%%.%%%%%%..%%%%------------,-----------------------------------------------,--------------------------------------------------------------,----------------------------------------c-------c--------------------------------------------------------------------~~~~~~~-~~*-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-,,-----------------------~----~~-------------------------------------------------------------~~~~-c------------------------------c--------------------------------------%%%%%%%%%,,%%%%..::::::::::::,:::%%,,.%%%%.%%%%%,,,,:::::::::::::::::,::___________________________________________::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.:%%.%%,,,%%%..%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%%.%%%%.%%%.%%.%%%%%.%%%%.%%%%%.,.%..,.%.%%%%%%.%....%%%.%%%%%%%%%.%.%.%%%%%%%%%.%.%%.%..%%%%%.%%%.%..,%%%%%.%.%...%%%%%-------------------------------------------------,--%%%%%%%%%%%%..%.%%%%%.%%%------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~------------------------------------------------------,-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,--------------------------------------------------------------------------------------------------~~---------------------------------------------------------------------%-%%%%%%%%%,%.%%%.%::::::::::::::::%%%%.%%%%...%%%,,,,::::::::::::::::::::___________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::,:::::::,,:,:::::::::::::..%.%%,,,%%.%.%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~%%%%%%%%%%%,,,%%%%%%%%%%.%%%%%%%.%%%%.%%,..%.%.%%%.%%%%%.%%%%%%%%%%%%..%%%.%%%.%.%%%%%%%%%.%%%%%%.%%%%..%%%%%%%%.%%%.%%%.%%-------------------------------------------------------%%.%%%%%%%%%%%%%%%,%%%--------------------------------------------------------------------------------------------------------------------c----------------------------------------------------------c-----------------------------------------------------------------~~~~~~~--------------------------------------------c------------------------------------.-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------%%%%%::%%.%%%%..:.%.:::::::::::,%%%%.%%%%%.,.%%%%%,,,,::::::::::::::::::::___________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::;::::::::::::::::::::::::::::::..%..%%,,,.%%%%..%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%.%%.%%%%,,........%%%..%%%%.%%%%%.%.%%%%.%.%%%%,...%%%%%%..%.%..%.%%%%%%%%%%%%,,,.%%%%.%%--------------------------------------------------------%.%.%%%%%%%%.%%%.%,%-------.------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~---------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------------------------------------------------------------------------------------------------------~~~----------------------.%%%%%:::::.%%..::%..:::::::::::,%%%%%%%%%%.%.%.%.%,,%::::::::::::::::::::::__________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::..,,,,,,,%.%%%.,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%..%,%%%%%%%%.%%%%.%%.%%%%%.%,,.%%.%.%.%.%.%%%.%%%.%%.%%%%%%%%.%%.%%%%..,,,%%%%%%%%%--------------------------------------------------------.%%%%%%%.%%%......,,.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------~~~~~------------c--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------------------------------------------------------------------------c------------------------------------------------------------------~~~~~~-------------------.%%%%%:::::::%%::.:%.::::::::::::%%%%%.%%%%%%%..%%%.,%%::::::::::::::::::::::_________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::,::::::::::::%%%,..,.%%.%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%.%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%,%%%%%%.%%.%%%%..%%%%%%%%%,,.,,.%%%%%.%%%.%.%%%..%..,.%%...%%%.%%%%,,,,%%%%%---------.-------------------------------------------------.%%%%%%%%%.%%%.%.%,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------------~~~~---------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~--------------------%%%%:.:::::::::::.%.:::::::::::,:%%%%%..%%%%%.%.%%%.%%::::::::::::::::::::::_________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::.%%.%%..,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.%%.%%%%%%.%%%%%%..%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%..%%%%,%%%%%,,,,%%%.%%%%%%%%%%%.%%.%%,,,.%%%%%%%%%.%,,,,,%%%%.--------.------------------,-------------------------c----.%%%%%%%%%%%%%.%%%------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-------------------------~~~~--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------,---------------------------------------------------------------------------------------------,------------~~~~~~.--------------------%%:::::::::.::...:::::::::::::::%%%%%,%%%%%.,.%%%.,%%%:::::::::::::::::::::_________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::,::::::::::::::::::::::::::::::,.:.%.%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%.%%%.%%.%%%%%%%.%%%%%%%%%%%%%%%%%%,,.%%%%%%%%%%%%%%.%%%,%%%%%.%%,%%%%.%.%%%%%%%%%%%%%%,,,%.%%%.%%%.%%,,,,,---.-------..-----------c--------------------------------------%%%%%%%%%%%%..%%%%----.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~---,----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------c----------c----%%%-%::::::::::,,,,:::::::::::::::::%%%%.%%%%%%,,..,,,,%%:::::::::::::::::::::_________________________________________:::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:,::::,:::::::::::::::::::::::::::::::..:%::.%.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%%%..%%%%%%%%%..%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%.%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%.%%%%%%%....,,----------.------------------------,--,------------------------%%%%%%%%.%%%%%%%.%.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------~~--,-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------,,--------------------------------------------------------------------,--------------~~~~-------------%::::::%:%%::::::::::::::::::::::::%:::::::::::,:,,:::::::::::::::::::::::::::::_____________________::________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,.:.::::.,:,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%.~~%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%,,,%%%%,%%%%%%%%%%%%%%%%..%%%%%%%%%.%%%.%%%%%%%%%%,,,,.%%%,.....%%.%%,,,----------------------------,---------------------------------%%%%%%%.%%%%..%.%%----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-------------------,------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~-------c-----%::::::::%::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::_______________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::,,:;:;:::::::::::::,:::::::::::::::::::::.:::,.:::::,,::,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%.%,.,%%%%%%%%%%%%%--%%%%%%%%%%%,,%%%%%%%%%%%%.%.,%%%%%%%..%%.%.%.%.,,,-.------------------------------------------------------------%%%%%%%%%%.,.-..------------------------------------------------------------------------------------------------------------------------------------------------,-----------------------------------------------------------------------------------------------------------~------------------,-----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------------------------,--------------------------------------------------------------------------,---------~~~~~~------------%:::::::::::::::::::::::::::::::::::::::::::::,,,::,::::::::::::::::::::::::::::::_______________________________________::::::::::::::::::::::::::::::::::::::::::::::::,:,,::::;;:::::::::::::::::::::::::::::,::::::,:,:,,,:.,:::::,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%~~~~~~%~%~~~~.,,,,,%%%%%%%%%%%%%,,%%%%%,%%%%%%%%%.%%%%-~~~~~~~-,,,,,,%%%%%%%%%%%%..%%%%%%%%%%%%%..%%%..,,,.---------------------------,-----------------------------------%.%%%%%%------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~------------------,----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------------------,------------------------------------------------------------------------------------------------------------c-----------,---------~~~~--------------::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::_______________________________________::::::::::::::::::::::::::::::::::::::::,::::,::,,:,:::;::::::::::::::::::::::::::::::::::::::::::::,::::::::,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%,,,%%%%%.%%%%%%%%%%.%%%%%~~~~~~~~,,,,,,%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%..,,-------------,-----------~~-~--------------------------------------%%%,%------------------------------------------------------------------------------------------------------------------------,-------------c-----------------------------------------------------------------------------------------------c----------------------------~---------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::__,:::::::::::::::::::::::%:::_:::::::::________________________________________::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~%%%%%%%,,,%.%%%%%%%%%%%%%.%%%%%%%~~~~~~~~~,,,,..%%%.%%%,,%%%%%%.%%%%%%%%%%%%%------------------------c---~~~~~--------------------------------------%-%--------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------------------------------------------------------------------~-----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::__:::____::::::,::::::::::::::::%%:__:::::::::________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::;:::::::::::::::::::::::::::::::::::::::::,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%~~~,,,...%.%%.%%%%%%%%%%%%%%%~~~~~~~~~~,,,..%%%%%%%%%%%.%%%%.%...%%%%%...----------------------------~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------,----------------------------------------------------,-----------------------------------~~~~~~~~~~~~---------------------------~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::_____________:;::::::::::::::::::::%%____::::::::_________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::,%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,..%%%.%%.%%%%%%%%%%.%%%~~~~~~~~~~,,,,,%.%%%%%%.%%%%%%%%%%%%%%%%%%.%----------------------------~~~~~~~~~~-----------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------------------------,--------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::____________________:::::::::::::::,:::::%%_______::::___________________________________________::_____::::::::::::::;::::::::::::::::::::::::::::;::;:;::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%.%.%%%%%%%%%%%.%%%.%~~~~~~~~~~~~,,,%%%%%.%%%%%..%%%%%%%%%.%%%%%%..-------------c-------------~~~~~~~~~------,-------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------c----------c---,----------------------------------------------------------------~---------------------~~~~~~~~~~~~~~~~~~~~~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------\\\\\----------------------------------------------------------------:::::::::::::::::::::::::::::::::::::_______________________:::::::::::,:::::::%___________:____________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%..%%%%.%%%%.%%~~~~~~~~~~~~~,%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%.----------------------------~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---c-----------------------------------------------------------------------------------------------------------------~--------------------~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------\HHH\-------------------------------------------------------------:::::::::::::::::::,:::::::::::::::::::__________________________:::::::::::::::___________________________________________________________________:,::::::::::::::::::::::::::::::::::::::::;::;::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....%%%.%%%%%.%%%%%%~~~~~~~~~~~~-,%%%,,%%%%%%%%%%.%%%%%%%%%%%.%.%.-----------------------------~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,-------------------------------------------------------------------------------------\HHH\-----------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::___________________________:::::::::,:,______________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%.%%%%%%%%%%%%%~~~~~~~~~~~~--.%%.%%%%%%%%%%..%%%%%%%%.%.%.%%-------------------------------~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~c~~-----------------------------------------------------------------------------------------------------------------------------------~~---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------........--\HH.\-----------------------------------------------------------::::::::::::::::::::::::::::::::::::::::______________________________::::::::________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::;:::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...%%%.%%%%.%.%%%%-~~~~~~~~~~~~~-%%..,%..%%%%%%%%%%.%%%%%%.%%%%%%-----------------c------------~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~--------------------------,-----c-------------------------------------------------------------------------------------------------~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------....H.......--\\\\\-----------------------------------------------------------::::::::::::::::::::::::::::::::::::::::______________________________________________________________________________________________________________:::,:::::::::::::::::::;::::::::::::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::,,,.,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%%%%%%%%%%%%%.-~~~~~~~~~~~~~-%%%.%.%%.%%%%%,%%%%%%.%%%%%...%%------------------------~~-~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------,------~~~~~~-----------------------------------------------------------------------------------------------------,-----------------------------~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------.....H......------------------------------------------------------------------::::::::::::::::::,::::,::::::::::::::::______________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::,::::,,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::,.,...,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%%%%%%.%.%,-~~~~~~~~~~~,.%%%.%.%.%%%%%.%%%%%%.%%%%%.%.%%%-----------------------~~~~--~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-----------------------------------,-------------------------------------------------------------------------------------------~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------------------------------------------......H.....------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::_____________________________________________________________________________________:::::____________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,.%%%%%,,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,%%%%%%%%%%%%%%%%%%%,---~~~.~.~~,,.%%%,.%%%%.%%%%%%%%%,%%%%%.%.%%%-----------------------~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~-----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------------------------------------------.......H....------------------------------------------------------c----------::::::::::::::::::::::::::::::::::::::::::___________________________________________________________________________________::::%:::::_________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,%.%.%%%%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,.%.%.%%%%%%%%%%,,%,,,,,,-.%%.%~,,,,%%%.%.%%%%%%%%%%%.%,,%%%,..%%%%.----------------------~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,------------------------------------------------------------------------------------HHHHHHHH....------------------------------------------------------------------::::::::::::::::,,,:%%%%:::::::::::::::::___________________________________________________________________________________:::::::::::________________:::::::::::::::::::;::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,.%%%%%%.%%.%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,-%%.%%.%%%%%%%*-*-,.,%%%%.%.%%%.,.,%,,,%%%%%.%%%%%%%%%,,,,,,.%.%%%.----------------------~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------.......H....--hhhhh--------------------,------------------------------------------:::::::::::::::,%%%::::::::::::::::::___________________________________________________________________________________:::::::::::::_____________:::::::::::::::::::::::::::::::::::::::::::,::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::,::.%%%.%%%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------,-----.%%...%%%%*-*---..%%%.%%%%%%%.%,%%%.%...%,.,,,,;%%,,,,,,,.%%.%.----------------------~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------c-----------------~~~~~~~-------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------......H.....--hhhhh----------------------------------------------------------------::::::::::::::::::::::::::::::::::::_______________________________________________________________:___________________::::::::::::::________:::::,,:::::::::::::::::::::::::::::::::,:::::::::,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::.%%.%%%%%%.%.%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------------%--%--------,.%%%%%...%%%.%,.%%%%%.%%%%.,,,,,,,,,,,,,,,,,.,,----------------------~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~---------------------------------------------------------------------------------------------------------------c---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------............--hhhhh----------------------------------------------------------------:::::::::::,::::::::::::::::::::::::_______________________________________________________________::__________:::___:::::::::::::::::______::::::::,,:::::::::::::::::::::::::::,:::,:::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::%.%..%,%%%%%..%%%%%~~~~~--------~~~~~~~~~~~~~~~~~~~~~.,,---------------------**--**-,.%%%%%%%%..%%%,,%%%%%%.....%,,,,,,,,,,,,,,,,--------------------------~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------,------------------------------------------------------------------------------------hhhhh----------------------------------------------------------------%:::::::::::::::::::::::::::::::::::_______________________________________________________________:::::_____:::::::::::::::::::::::::::____:::::::::::,::::::::::::::::::::::,:::::::::,::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%.%.%%%%.%%%%%~~~,,,---------~~~~~~~~~~~~~~~~~,,,,-----------------------*-**--.%%%%%%%.%.%%%%%,%.%%%.%%%%%%,,%;,,,,,,-,,,,---------------------------~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------c-------c----------------------c-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------%%:::,:::::::::::::::::::::::::::::::_______________________________________________________________::::::::::::::::::::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%,.%%..%.%%%%%%~~,,,,-----------~~~~~~~~~~~~~~,,,,,---------------------***--%%..%%%%%%%%%%%%%%,,%%%%%%%%%.%%%%%%,,,,,,---,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~-----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------%%::::::::::::::::::::::::::::::::::________________________________________________________________::::::::::::::__::::::::::::::::::::::___:::::::,,::::::::::::::::::::::,:::::,,,::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,..%...%%.%%%,,-,,,,-----------~~~~~~~~~~~~~,,,,,,,------------------------*%%%.%%%%%%%%%%%%%%%%%.%%%..%%%%.%%%%,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------%%:::::::::::::::::::::::::::::::::________________________________________________________________::::::::::::::_____::::::::::::::::::::::_:::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,,.,%%.%%%%%%%.,--,,,--------------~~~~~~---,,,,,,,--------------------------.%%%%%%%%%%%%.%%.,%%%%.%%%..%%..%%%%,,,,,,---------------------------------------,------------c-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------%:::::::::::::::::::::::::::::::::________________________________________________________________::::::::::::::______::::::::::::::::::::::_::::::::::,:::::::::::::::::::::,::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,..::%%%%%.%%%.----,--------------,,,,,,,,-,,,,,,,---------------------------%%%.%%%%%%%%.%.%%.%%%%%...%.%%%%.%%---,,,,---------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------------%::::::::::::::::::::::::::::::_______________________________________________________________::::::::::::::_______:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%.%.::%%%%%%%%%.-------------------,,,,,,,,,,,,,,,,,--------------------------%%%%%%%.%%%%%%%%.%..%%%%%%%%.%%%%.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------,----------------------------------------------------------------------------------------------------------------%:::::::::::::::::::::::::::::________________________________________________________________::::::::::::::_______::::::::::::::::::::::::::::,,:::::::::::::::::::::::,::,,,::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%,--------------------,,,,,,,,,,,,,,,,,---------------------------.%%%%%%%%%%%%.%%%%%.%%%%%%%%%%%%.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------hhhhh----------------------------------------------------------------------------:::::::::::::::::::::::::::::_______________________________________________________________::::::::::::::________::::::::::::::::::::::::::::::,::::::::::::::::::::::::,:::::::::::::::::_____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%.--------------------,,,,,,,,,,,,,,,,,,---------------------------%.%%.%%..%%%%%%%%%%%.,..%%%%%%%.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------,------------------,--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------hhhhh.--hhhhhhhhh---------------------------------------------------------------::,:::::::::::::::::::::::::::___________________________________________________________::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::%%%%%%%.-------------------------,,,,,,,,--,,,,---------------------------%%.%%%%%%%%%%%%%%%,,..%..%%%%%%.----------------------------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------c---------------------------------------------------------------hhhhh---h.......h---------------------------------------------------------------::::::::::::::::::::::::::::::__________________________________________________________:::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::_______::::::::::::::::::::::::::::::::::::::::::::::::::::::,:.::::::%...%%%%.------------------------------------,----------------------------%%.%%%%%.%%%%%%%%.%%%.%%%.%%%%------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---c--------------------------------,----------------------------------------------------,------------------------------~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------c-----------------------------------hhhhh---h.......h---------------------------------------------------------------::::::::::::::::::::::::::::___________________________________________________________::::::%::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%.%%%%.---------------------------------------------------------------%%%.%%.%%%%%%%%%%%%%.%.%%%%.%%-----------------------------------------------------------------------------------------------------------------------------------------,----------------------------------------------------------------------------------------------------------,----------------------------------------------,-----------------------------------~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~--------------------------------------------------------------------------------------------h~~~~~~~h---------------------------------------------------------------:::::::::::::::::::::::::::___________________________________________________________::::::::%:::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%%.---------------------------------------------------------------%%%%,%%%%%.%%%%%%%%%..%%%...,---------------------------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*-**--*------------~~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~-----------------------------------------------------,-----------------------....H...-------h.......h---------------------------------------------------------------:%%%%%:::::::::::::::::::::_________________________________________________________:::,:::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::__________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%%%-----------------------------------------------------------------%%%%,%%.%%%%%%%%%%%%%-%%%%%.,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-------------------------------------------------------*-*--***-----------~~~~~~~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------~-------------------------------------------------------c----------------------....H...-------h.......h-----------------------------------------------------------------%%%:::::::::::::::::::::__________________________________________________________::,:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%,,-------------------------------------------------------------------%%%%-...%%%%%%%%%%%%--.--,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*--**---*-------------~~~~~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~-----------------------------------------------------------------------------------....H...---i---hhhhhhhhh-------------------------------------------------------------------:::::::::::::::::::::___________________________________________________________::::,:::%::::::::::::::::::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%,,,-------------------------------------------------------------------------,,,,,%%%%%%%%%-----,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------,--------*-*-*******--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...-------------------------~~~---------------------------,--,------------------------------------------------....H...--i.i--h.......h-------------------------------------------------------------------:::::::::::::::::,:_____________________________________________________________:::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::%%%,%,,,,--------------------------------------------------------------,--------c---,,,,%%-%%%-------,,,,----------------------------------------------------------,--------------------------------------------------------------------------------------------------------------c-------------------------------------------------------------------------------------------------------------------------------------------*-*-*--*--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~---.-------------------------~~~-~~~~----------------------------------------------------------------.........---.H...H...---i---h.......h-------------------------------------------------------------------:::::,::::::::::,:_____________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,,,,,,---------------------------------------------------------------------------,,,,,-%---------,,,,------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------------------------------------------------------------------,-------------------------------***-*****----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------~~~--~~~-------------------------------------------------c--------------.........---..H..H...-------h~~~~~~~h-------------------------------------------------------------------::::::,,:::::::::_____________________________________________________________:::::::,,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________:::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,,,,,---------------------------------------------------------------------------,,,-----------------------------------------------------------------,----------------------------------------------------------------------------------------------------------------------------,-------------------------------------------,-----------------------------------------------------------------------------------------****--*--*-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~------------------------------------,-------------c---------------.........---...H.H.H.-------h.......h------------------------------------------------------------------::,,:::::::,,:_________________________________________________________________::::::::,:::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--,,,,------------------------------------------------------------------,------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------**----**----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------,-------------------------------------------------,------~~~~~-----------------------.........---....HHH..-------h.......h------------------------------------------------------------------,,::::::::::__________________________________________________________________:::::::::,,:::::::::::::::::::::::::::::::::::::::::,:::,:,:::::::::::::::::::::::::::::::::::::::::::::::________:::::::::_::::::::::::::::::::::::::::::::::::::::::::::::::::::----,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------,-----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------,------,------------------------~~~~~~-----------------------.........---.........-------hhhhhhhhh--------------------------------------------------------------------::::----:________________________________________________________________:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::________:::::::::__:::::::::::::::::::::,::,::::::::::::::::::::::::::::-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------~~~~~~-----------------------.........---.........---------------------------------------------------------------------------------------------_______________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________::::::____::::::::::::::::::::::::,:::::::::::::::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------~~~~~~~----------------------.........---.........---------------------------------------------------------------------------------------------______________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________:::______::::::::::::::::,:::::,::::::::::::::::::::::::::::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------c--------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------~~~~~~~-----------------****-.........---.........-----------------------~~~~~-----------------------------------------------------------------_____________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________::::::::::::::::::,,:::::::::::::::::::::::::::::::--------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------~~~~~~~~~----c-----------****--------------------------------------------~~~~~~~---------------------------------------------------------------~____________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::;:::::::::::::::::::::::::::::::::::::::__________________::::::::::::::::::::,::::::::::::::::::::::::::::-----------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------,-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------~~~~~~~-----------------****---i---------------------------------------~~~~~~~~------------------------,-------------------------------------~____________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:;:::::::::::::::::::::::::::::::::::::::_______________:::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------------------------,-------------------------------------------------------------------------------------------------------------c---------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------~~~~-------------------------------------~~~~~~-----------------****--i.i------hhhhhhh-------------------------~~~~~~~~~------------------------------------------------------------~__________________________________________________________:_::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________::::::::::::::::::::::,::::::::::::::::::::,:::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------~~~~~~-------------------------------------~~~~~------------------------i-------h..~..h------------------------~~~~~~~~~~~-----------------------------------------------------------~_________________________________________________________:::::::%%%:::::::::::::__::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::;:;::::::::::::::::::::::::::::::::::::::::______________:::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------------------------------------------~~~~~~~--------------------------------------~~~~--------------------------------h..~..h-----------hhhhhhhhh---~~~~~~~~~~~~~-----,----------------------------------------------------~________________________________________________________:::::::::::::::::::::::____:::::::::::::::::::::::::::,,::::::::::::::,::::::::::::::;:::::::::::::::::::::::::,::,:,::::::::::______________:::::::::::::::::::::::::::::::::::::::::::,,::-----------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------~~~~~~~~-------------------------------------~~~--------------------hhhhh-------h..~..h-----------h.......h---~~~~~~~~~~~~~---------------------------------------------------------~~______________________________________________________::,::::::::::::::::::::::____:::::::::::::::::::::::::::::::::::::::;:,::,:::::::::;:::::::::::::::::::::::::::::::::,,:::::::::::___________:::::::::::::::::::::::::::::::::::::::::::,:::,:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------------------------------------------~~~-~~~~~~------------------------------------~~~-------------------.hhhhh-------h..~..h---hhhhh---h.......h---~~~~~~~~~~~~~~--------------------------------------------------------~~~__________________________________________________:::::,:::::::::::::::::::_______::::::::::::::::::::::::::::::::::,::::::;:::::::::::::,:::::::::::,:::::::::::::::::::::::::::::::::::________::::::::::::::_::::::::::::::::::::::::::::,:,,:::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------c-----------~~~~~~~~~~~------------,------------------------~~----------........--hhhhh-------h..~..h---hhhhh.--h~~~~~~~h----~~~~~~~~~~~~~--------------------------------------------------------~~~______________________________________________::::,::,,::::::::::::::::::_____:::_::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::,::,::,:::::::::::::::::::,::::::::::::::::::______:::::::::::::::__::::::::::::::::::::::::::,:,:::,:-------------------------------------------c----------------------------------------------------------------------,----------------------------------------------------------------------------,-----------------------------c----------------------------------------------------------------------------------------------------------------------------------------------------------c-----------c---------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------~~~~~~~~~~~-------------,-----------------------~~----------........--hhhhh-------h..~..h---hhhhh---h.......h----~~~~~~~~~~~~~--------------------------------------------------------~~~_~~~________________________________________:::::::::,:,:::::::::::::::::____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::,::::::::::::::::::::::::::::::::::::::::_____:::::::::::::::____:::::::::::::::::::::::,::,:::,:---------------------------------------------------------------------------------------------------------------------------------------------c-----------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------c--------------~~~~~~~~~~~-------------------------------------~-------\\\\........-----------,--h..~..h---hhhhh---h.......h----~~~~~~~~~~~~~----------------------,--------------------------------~~~~~~~________________________________________::::::::,:,,,:::::::::::::::______:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::__::::::::::::::::::::::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-------------------c--------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------c---------------------~~~~~~~~~-----------------------------,---------------\,,,........--------------hhhhhhh-----------hhhhhhhhh----~~~~~~~~~~~~~~-----------------------------------------------------~~~~~~~~_____________________________________::::::::,::,:,::,:::::::::::::_______::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::__:_:::::::::::::::::::::::::::::::::::::::::::::::::::::_::::::::::::::::::::,:::::::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------------------------------------------------------c------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------------------------------------------------~~~~----------------------------------------------\,,,........--------------------------------h.......h----~~~~~~~~~~~~~~----------------------------------------------------~~~~~~~~~____________________________________::::::::::,::::::::,::::::::::::_______::::,::::::::::::::::::::::::;::::::,,::::,:::::::::::::::::::::::::::::::::_::_::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,-------------------------------------------------------------------------------------------------------\,,,........--------------------------------h.......h---~~~~~~~~~~~~~~~------------------------~~~~~~----------------------~~~~~~~~~~~__________________________________::::::::,:,:::,::::::::::::::::::_____::,:::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::_::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,:--------------------------------------------------------------------------------------------------------------------------------------------------c-------------------------------------------------------------------------------------------c-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------c-------------------------------,------------------------------------------------\,,,........--------------------------------h~~~~~~~h----~~~~~~~~~~~~~~-----------------------~~~~~~~----------------------~~~~~~~~~~___________________________________:::::::::::::::::::::::::::::::::____:,:::::::::::::::::::::::::::::,::::::::,:::;:::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::---------------------------------------------------------------------------------------------------------c-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------------------c----------------------------------------------------------------------------------\,,,........--********----------------------h.......h----~~~~~~~~~~~~~~------------------------~~~~~-----------------------~~~~~~~~~~____________________________________::::::::::::::::::::::::::::::::___::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------c--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------------------------------------------------------------------------------------------------------\\\\........--*********---------------------h.......h----~~~~~~~~~~~~~~-----------------------~~~~~~~----------------------~~~~~~~~~____________________________________::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::,:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::--------------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------------------------------------------------------------------------------------------------------------------.*********---------------------hhhhhhhhh-----~~~~~~~~~~~~~------------------------~~~-~~~---------------------~~~~___~____________________________________::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c----------------------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------------------------------------------------------------------------------------------***.*****-----------------------------------~~~~~~~~~~~~--------------------------~-~~~~----------------------~~~~______________________________________:::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::----------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------c-----------------------------------------------------------------------------------------------********------------------------------------~~~~~~~~~~~--------------------------~~~~~~~-----------------------~~~______________________________________:::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------,-----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~---------------,------------~~~~~~~------------------------~~_____________________________________::::::::::,:::::::%%%::::::::::::::::::::,::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~-----------------------------~~~~~--------------------------~~_____________________________________::::::::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,----------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~-----------------------------~~~~~--------------------------~~____________________________________:::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::;:::,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::----------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------------------------------------------------------------------,-----------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,------------------------------------------------------------------------------------------------------------------hhhhh-------------------------------------------------~~~-------c--------------------------~~---------------------------~~___________________________________:::::::::::::,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,:::::::::::::::::::::::-----------------------------------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,------------------------------------------------------------------------------------------------------------------hHHHh------------------------------------------------c---------------------,---------------------------,----------------~~__________________________________::::::::,:,,:::,::,::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::,::,,,,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,__::::::::::::::::::::::----------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,-------------c--------------------------------------------------------------------------------------------c-------hHHHh.----------------------------------------------------------------------------------------------------------------::____________________________________,::::::::::::::::,::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,___:::,::::::::::::::::::-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------hHHHh-----------------------------------------------------------------------------------------------------------------::___________________________________:::::::::::::::%:::,:::::::::::::::::::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__,::_::::::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~---,-------------c----------------------------------,--------------------------------------------------------------------hhhhh-------------------------------------------------------------------------------------------~~~~------------------::___________________________________::::::::,::::::%::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::___:::::::::::::::::-----------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------------~~~~~~------------------:__________________________________:::::::::,,:::::%:::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:______::::::::::::::::----------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------,---------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,---------,,-------------------c---c-----------------------------------------------------------------------------------------------------=======------------------------------------------------------------------------------~~~~~~~~~-----------------:__________________________________::::::::,::,::::::::::::::::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________::::::::::::%--------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------------------------------------------------c----------------c---------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,-------,,------------------------------------------------------------------------------------------------------------------hhhhhhhhh---=*****=----------------------------------------c--------c---------------------------~~~~~~~~~~----------------::__________________________________::::::::::::::::::::::::::::::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:_______:::::::-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------c---------------------------------------------------------------------------------------------------h.......h---=*****=--------------------------------------c--------------c-----------------------~~~~~~~~~----------------:::__________________________________::::::::::::::::::::::::::::::::::::::::::::::::____::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,_______::::::--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------,--------------------------------------------------------------------------------------------------------h.......h---=*****=--------------,--------------------------------------------------------------~~~~~~~~-----------------::___________________________________::::::::::::::::::::::::::::::::::::::::::::::::_____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____::::::------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------h~~~~~~~h---=*****=------------------------,----~~~--------c-------,-c-------------------------~~~~~-~~~~~---------------:____________________________________::::::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____:::::::::__:::---------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------c-------c-------------------------------------------------------------------------c--c--------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------,----------------------------------------------------------------------------------------------------h.......h---=*****=---------------------------,-~~~~.------------------------------------------~~~~--~~~~~~---------------~~~~________________________________:::::::,:::::::::::::::::::::::::::::::::::::::______:::::::::::%::::::::::::::::::::::::::::::,,:::::::::::::::::::,,:,:::::::::::::::::::::::::::::::::::::::::::::::::::____::::::::::------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,-----------------------------------,-------,--------------------------------------------------------------------------------------,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------c----------------------------------------------------------------i-------h.......h--.=*****=-----------------------------~~~~.-------------------------------------------~----~~~~~---------------~~~~_________________________________:::::::::::::::::::::::::::::::::::::::::::::_______::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::,:,:::,::::::::::::::::::::::::::::::::::::::::::::::::___::::::::::%----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------------------------------------,------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------c--------------c-------------------------------------------------------------------i.i------hhhhhhhhh--.=*****=-----------------------------~~~~~.-------------------------------------------~~~~~~~~----------------~~~~_________________________________:::::::::::::::__::::::::::::::::::::::::::::________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:,,::::::::::::::::::::::::::::::::::::::::::::::::::::_::::::::::%-------------------------------------------------------------------------------,--------------------------------------------------------------------------------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------------------------------------------------------------------------------------------------------------------.=*****=-----------------------------~~~~~~~------------------------------------------~~~~~-------------------~~~~_________________________________:::::::::::::____::::::::::::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,,::,::::::::::::::::::::::::_:::::,,:,::,::::::,:::::,___:::__::::%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------------------------------------------------------------------------------------------------------------------------------------------------=======----------------------------~~~~~~~~--------------------------------------------~---------------------~~~~~_________________________________::::::::::______:::::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,:::,:::::::::::::::::::::::::_::::::::::,:::::::::::::________:::::------------------------------------------------------------------------------,-------------------------------------------------------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------~~~~~~~~------------------------------------------------------------------~~~~~___________________________________::::::________:::::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::,::::::::::::::::::::::::::_:::::::::::,::::,:::::::_______::::::--------------------------------------,;,,,,;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------hhhhhhhhhhhhh--------------------------------------------~~~~~~~~.-----------------------------------------------------------------~~~~~____________________________________:_____________:::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::_:::::,,::::::::::::::::______:::::::--------------------------------------,,CCC,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------h..~..h..~..h--------------------------------------------~~~~~~~~~-----------------------------------------------------------------~~~~~__________________________________________________:::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::_____::,,::::::::::::::_______:::::::c-------------------------------------;,CCC,,-,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------h..~..h..~..h---------------------------------------------~~~~~~~~-------------------------------::---:-----------------------------______________________________________________________:::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::_:::::::::,:::::::::::::_____:---------------------~~~-~~------------------,,CCC,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------h..~..h..~..h---------------------------------------------~~~~~~~~-------------------------------:::::::----------------------------_______________________________________________________:::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,:,::::::----------------------~~~~~~~-----------,-----,,CCC;,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:-----------------------c------------------------------------------------------------------------------------------h..~..h..~..h---------------------------------------------~~~~~~~--------------------------------::::::::------:--------------------:________________________________________________________:::::::::::::::::::::::::_______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------~~~~~~~~-----------------,,CCC,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:---:::::::::-----------------------------------------------------------------------------------------------------------h..~..h..~..h----------------------------------------------~~~~~~-----------------,--------------::::::::::%%%::::----------------::::_______________________________________________________________::::::::::::::::________::::::::::::::::::::::::::::::::::::::::::::,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----c--------------~~~~~~-----HHHHH--=------=,,CCC,,=.**=--=------=---------------------------------------------------------,--------------------------------c-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_:::::::::::-----------------------------------------------------------------------------------------------------------h..~..h..~..h----------------------------------------------~~~~~~~------------------------------:::::::%::::%:::::---------------:::::___________________________________________________________,:::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::---------------------~~~~~~~----HHHHH----------,;CCC,,..|=*-------------------------------------------------------------------------------------~~---~~~~-----------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___:::::::::-----------------------------------------------------------------------------------------------------------h..~..h..~..h-----------------------------------------------~~~~~~,---------------------------::::::::%%::::::::::---------------:::::___________________________________________________________,::::::::::::::::::__________:::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------------~~~~~~~~~---HHHHH--------.-,,CCC,;.[|=*------------------------------------------------------------------------------------~~~~--~~~~-------c-----------------------------------------------------------------------------------------------------------------,----------------------------------------------------------------------------------------------------,--------c-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____::::::::-----------------------------------------------------------------------------------------------------------hhhhhhhhhhhhh-----------------------------------------------~~~~~~~--------------------------:::::::::%%:::::::::-----------:-----::::___________________________________________________________:::::::::::::::::::___________::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------~~~~~~~~~---HHHHH----------,,CCCCC*==.*---.--------------------------------------------------------------------------------~~~~--~~~~----------------------------------------------------------------------------------------------------c-------------------------------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____:::::::::---::---------c------------------------,--------------------------------------------------------------------------,--------------------------------------------------~~~~~~~~~--------------------:::::::::::::%%::::::::%----------::-----::::__________________________________________________________::::::::::::::::::::____________:::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~-------~~~~~~~~---HHHHH----------,,CCC,..=..*-------------------------------------------c----------------------------------------~~~~---~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,--------------------c-----------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~---------%%%%%------::::::::::::::%:::::::::---------:;::---:::::_______________________________________________________:::::::::::::::::::::::_____________::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~-------~~~~~---HHHHH--=------=;,CC..,=***=--=------=-------------------------------------------------------------------------------~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___:::-:::::::::-----------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~--------%%%%%%%-----::::::::::::::::::::::::-------::::::::::::_______________________________________________________:::::::::::::::::::::::::______________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~------~~~---------------------CCC-----------------------------------------------------------------------------------------------~~~~~--------------------------------------------------------------------------------------------------------------------------------------,-------------------.~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____:---::::::::::--------------------------------------------------------------,-----------------------------------------------------------------------------------------c------~~~~~~~--------%%%%%%%-----:::::::%%%%%::::::::::::-----::::::::::::::______________________________________________________::::::::::::::::::::::::::_______________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~----------------------------CCC-------------------,----c---------------,-----------------------------------------------------~~~~~~------------------,-------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__:----,,::::::::---::----,--------------------------------------------------,--------------------------------------------------------------------------------------------------~~~~~~--------%%%:::::-:::::::::::::::::::::::::::----::::::::::::::_______________________________________________________::::::::::::::::::::::::::_________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~-,-------\\\\\--=------=,,CCC;,..=..--=------=-----------------------------------------------------------------------------~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------.~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_------,::::::::--::::------------------------------------------------------------------------------------------------------------------------------------------------c--------c~~~~~--------%%:::::::::::::::::::::::::::::::,::---:::::::::::::::_______________________________________________________:::::::::::::::::::::::::___________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~---------\...\----------;,CCC,,..=..---------------------------------------------------c-----------------------------------~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------::::::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------------------~~~~--------%%%:::::::%:::::::::::::::::::::::::::::::::::::::::::_______________________________________________________:::::::::::::::::::::::::____________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~~~~~~~~~~~~~----------\..~\--------.-,,CCC,,..=..-----------------------------------------c--c-------,----------------------------------~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~--------------,---------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:::::::::::::::::::,------------------------------------------------------------------------------------------------------------------------------------------------------~~~~---------%::::::::%:::::::::::::::::::::::::::::::::::::::::::_______________________________________________________::::::::::::::::::::::::_______________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~----------\...\----------,,CCC,,..=..---.------------------------------------------------------------------------------------~~~~-----------,----------------------------,-----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::::::::::::::::::----,------------------------------------------------------------------,--------c--------------------------------------------------------------------~~~---------:::::::::%:::::::::::::::::::::::::::,::::::::::::::::______________________________________________________::::::::::::::::::::::__________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~----------\...\----------;,CCC.;..=..-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------,---------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::::::::::::::::::------------------------------------------------------------------------------------------------------------------------------------------------------~~---------:::::::::%::::::::::::::::::::::::::::::::::::::::::::______________________________________________________::::::::::::::%:::::::_________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________~~~~~~~~~~~~~------------\\\\\--=------=,,CC..,..=..--=------=-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::::::::::::::::::------------------------------------------------------------------------------------------------------------------------------------------------------~~~--------::,::::::%::::::::::::::::::::,:::::::::::::::::::::::______________________________________________________::::::::::::::%:::::::__________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::_________________~~~~~~~~~~~------------------------------CCC--------------------,---------------------------------------------------------------------------------------------,--------------------------------------------------------,--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------**=**-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------::::::::::::::::%::::------------------------------------------------------------,------------------------------------------------------------------------------------------~~~~~~~~~~___:::::::::::::::::::::::::::::::::,:::::::::::::::::_______________________________________________________::::::::::::::::::::::_________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::__________________~~~~~~~~~~-------------...=...-----------CCC------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------*===*--------------------,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,:::::::::::::::%::::----------------------------------------------------------------------,---------------------------------------------------------------------------------~~~~~~~~~____:::::::::::::::::::_____::,:,::,::::::::::::::::::________________________________________________________:::::::::::::::::::::_________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,::::::____________________~~~~~~~~~~-------------...=...-=------=;,CCC,,i\\\i--=------=-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------==*==----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------::::::::::::::::%::::----------------------------------------c--------------------------------------------------------------------------------------------------------------~~~~~~~~~~___:::::::,:::::::::::______:::::,::::::::::::::::::::_______________________________________________________:::::::::::::___::::___________________________:::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,,::::_____________________~~~~~~~~~~-------------...=...---------,,CCC,,\...\-------------------------------------------------------------------------------------------------------------------------------------------------------------------,----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------*===*----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:::::,::::::::::%::::------------------------c-------------------------------c-----------------,---------------------------------------------------------------------------~~~~~~~~~~~__:,::::::,::::::::::_______::::,,:::::::::::::::::::________________________________________________________::::::::::::___________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________~~~~~~~~~~~~~~-------------...=...-------.-,,CCC,,\.~.\------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------**=**-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:,::::::::::::::%:::-----------------------------------------------------------------------------------------------------------------------------------c-------------------~~~~~~~~~~~_:::::::::,:::::::::::______::,::::::::::::::::::::::_______________________________________________________:::::::::::_____________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:____________________~~~~~~~~~~~~~~-------------...=...---------,,CCC,;[HH.\---.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~--------------------------c---------------------------------------------------c----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::::::::::::::--------------------------------,---,-------------------------------------------------------------------------------------------------------------------~~~~~~~_~~~~::::::::::::::::::::::______::::::::::::::::::::::::::_____________________________________________________:::::::::::_____________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,_________________________~~~~~~~~~~~~~-------------...=...---------,,CCC.,*.H.\--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~-----------------------------------------------c------c------------------------------------,-----------------,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------::::::::::::::::::------------------------~-------------------------------------c-------,--------------------------------------------------------------------------------~~~~~~______,:::::::::::::::::::::::___::::::::::::::::::::::::::::__________________________________________________:::::::::::::____________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________~~~~~~~~~~~~~----------,--...=...-=------=;,CC..,i\\\i--=------=-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~-----------------------------------------,---------------c--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::::::::::::::::-----------------------~--~~---------------------------------------------------------------------------------------,-----------------------------------~~~~~~_____:::,:::::::::::::::::::::::_::::::::::::::::::::::::::::__________________________________________________::::::::::::_____________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________~~~~~~~~~~~~~-----,,,,,,,,...=...-,,,,,,,,,,CCC,,,,,,,--;,,,,,,,;,,,------------------------------------------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------~~~~~~-,------c-----------------------------------------------------------------------------------------------------,----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::::::::::::::::------------,---------~---~~--------------------------------------------------------------------------------------------------------------,------------~~~~~~_____:,::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________________________:::::::::::::_____________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________~~~~~~~~~~~~~----,,,,,,,,,,.;,,,--,,,.,,;,,,CCC,,,,,,.--;,,;,,,.,,,,--------------------------------------------------------------------------------,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------c-------------c---------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------::::,::::,:::::::::----------------------~---~~------------------------------------------------------------------------------------------------------------,--------------~~~~~~____::::::::::::::,::::::::::::::::::::::::::::::::::::::::::_________________________________________________::::::_::::::______________________________________::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________~~~~~~~~~~~~~----,CCCCCCCCC.CCCCCCCCC.CCCCCCCCCCCCCCC.CCCCCCCCC.CCC,------------------------------------------------------------------------------,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::,:,::::::::::::----------------------~---~~-------------------------------------------------------------------------------------------------------------------------~~~~~~~___::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::_________________________________________________::::::__:::::______________________________________::::::::::::;::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________~~~~~~~~~~~~~~~-----,CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,------------------------------------------------------------------------------,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::::::,::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~__::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::__________________________________________________:::::____::________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________~~~~~~~~~~~~~~~~~~-,--,,CCCCCCCCCCCCCC%%%%%CCC%%%%%CCCCCCCCCCCCCCCCCCCCCC,-----------------------------------------------------------c------------------,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------c----------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::::,::::::::::::::::::---------,---------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~_:::::::::::::::::::::::::::::%%%:::::::::::::::::::::::,:_____________________________________________________:::::______________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________~~~~~~~~~~~~~~~~~~~------,;;,,,,,,;,,,,,-%%%%%,,,%%%%%CC,,,,;,,,,,,,,-,;,,,;,----------------------------------------------------------------------------,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------::::::::::::::::::::::::::-------------------~~-------------------------c-----c-------------------------------------------------------------------------------------------~____~~~~::::::,:::::::::::::::::::::::%%%:::::::::::::::::::::::,_______________________________________________________::::_____________________________________________:::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~-,,,,bbbbbbb,,;,,,,,,,,-%%%%%,,,%%%%%CC,,,,,;,,,,,,,-,,,,,,,-------------------------------------------------------------------------,-,,,,,,,,,,~~~,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------::::,::,,:::::::::::::::::-------------------~~-~------------------------------------------------------------------------------------------------------------------------:____::%-:::_:::::::::::::::::::::::::::%%%:::::::::::::::;:::::::,_______________________________________________________:::_____________________________________________::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~~~--,,,,bbbBbbb,,,,;,,,,,,-%%%%%%%%%%%%%CC,,===========---------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------c--------------c-------------------------~~~----------------------------------------,----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------::::::,:::::::::::::::::------------c--------~--------------------------------------,----------------------------------------------------------,--,---------------------:___::::::_:,:::::::::::::::::::::::::::%%%::::::::::::::;::::::,,_______________________________________________________________________________________________________:::::,::::::::::::::::::::::::::^^^:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________~~~~~~~~~~~~~~~---,,,,bbbBbbb,,,,=bbb=,,-%%%%%***=%%%%CC,,=..=*****i=--------------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~----------------------------c----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------:,::::::::::::::::::::::---c-----------------------------------------------------------------------------------------------,--------------------------------------------:___:::::::::::::::::::::::::::::::::::::%%:::::::::::;:::::::::::_______________________________________________________________________________________________________::::::::::::::::::::::::::::::::^^^^:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________~~~~~~~~~~~~~~~---,,,,bbbBbbBbbb=BBBbB=,--=*******=,,CCC,,====**c*c*=-----,--------------------------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~-~--------------------------------------,--------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,:,::::::::::,:::::::::::-----------------------------------------------------------------------------------------------------------------------------------------------::___:::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::_______________________________________________________________________________________________________::::::::::::::::::::::::::::::::^^^^^:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________~~~~~~~~~~~~~~~---,,bbbBbBbBbbbbbB.bBbb,--***i=i***=iCCC,,=******c**=---------------------------------------------------------------------------,,,,,,,,,,,----,,,,,,,,,,,,,,-----------------,,,---------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------~~~~~~--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------::-::::::::::::,,:::::::::::---------------------------------------------------c---,-------------------------------------------------------------------------------------::::::_::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::________________________________________________________________________________________________::,:::::::::::::::::::::::::::::::::::::^^::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________~~~~~~~~~~~~~~~----bBbbbbBBBbbbbbbBbBbBb,--**\=~=\****CCCCC=*=b******=-------------------------------------------------------------------------,,,,,,,,,,,,,----,,,,,,,,,,,,,,,-------------,,,,,,,,,---------------------------------------------------------------------------------------------------------------,--------------------------------------------------------------------------------------~~~--~~----------------------------c---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::,::::::::,::::::::::::::::--------------------------------------------------c-----------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________~~~~---~~~~~~~-----HbBBbbbBbbbbbbbbBbBbb,--**=~~~=****CCCCC=********.=------------------------------------------------------------------------,,,,,,,,,,,,,,--------,,,,,,,,,,,,------------,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------::::::,,:::,::,::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________~~-------~---------bbBbbbbbbbbbbb=BbBbB=,--**\=~=\****CCCCC=*=b******=----------------------------------------------------------------------,,,,,,,,---,,,,,--------,,,,,,,,,,,,------------,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:::::,::::::::::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________:______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________:::%%-----------------bbBbbbbbbbbbbbb=bbb=%%--***i=i***=iCCC,,=******c**=---------------------------------------------------------------------,,,,,,,,,---,,,,----------,,,--,,,,,,,,,,,--------,,,,,,,,,,--------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::,::,:::::::::::::::::::---------------c------------------------------------------------------------------------------------------~~---------------------------------%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________:::::%%----------------HbBBbbbbbbbbbbbbbbb-----=*******=,,CCC,,====**c*c*=---------------------------------------------------------------------,,,,,,,,,,---,,-----------,-----,,,,,,,,,,------,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------::,::,:::::::::;:::::::::::::-----------------------------------------------------,------------------------,------------------------~~~~~-~------------------------------%::::::::::::::::::::::::::,:::::%%%::::::::::::::::::::::::::::::::::::::::___________________________________________::::::_____________________________________:%:%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________:::::%%----------------bBbbbbbbbbbbbbbbbbb%%%-%%%%****=%%%%CC,,=..=*****i=---------------------------------------------------------------------,~~,,,,,,,---,-----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----::::::::::::::::::::::::::::::----------------c--------------------------------------------------------------------------------------~~~~~~~~-----------------------------%:::::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::__%%%_______________________________:_____,:::::::____________________________________:%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________:::::%%----------------,,bbbbbbbbbbbbbbbbb,,,-%%%%%%%%%%%%%CC,,===========-------------------------------------------------------------------~~~~~,,,,,,,---------------------,,,,,,--,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-----c-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----::::::::::::::::::::::::::::::-:::-------------------------------------------------------------------------------------------------~~~~~~~~~------------------------------%:%-%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_:::%%_____________________________::,___::::::::::_________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________:::::%%-----------------,,,bbbbbbbbbbbbbbb,,,-%%%%%;,,%%%%%CC,,,,,;,,,,,,,-,,,,,,,-----------------------------------------------------------~~~~~,,,,------------------------,,,,,---,,,,,,,,,,,,,,,,,,,,----------,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----::::::::::::::::::::::::::::::::-------------------------------------------------------------------------------------------------~~~~~~~~~~------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%_____________________________,:,:::::::::::::_______________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________::::::%%--------------,--,,,,,,,,,,,,,,,,,,,,,-%%%%%,,,%%%%%CC,,,,,;,,,,,,,-,,,,,,,-----------------------------------------------------------~~~~~,,,,-------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------::::::::;::::::::::::::::::,:-------------------------------------------------------------------------------------------------~~~~~~~~~~------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%____________________________:::,:::::::::::::_________________________::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________:,::::%-----,-------------,CCCCCCCCCCCCCCCCCCCC%%%%%CCCC%%%%CCCCCCCCCCCCCCCCCCCCCC,----------------------------------------------------------~~~~~~,,,,--------------------------c----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------~~~~~~~~-------------------------------------:::--:::::::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::%:::__________________________:::::::::::::::::________________________::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________:,:,:,:--------------------,CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,----------------------------------------------------------~~~~~~,,,,-----------------------c-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-------------------------------------------------,-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------%:::::::::::::::::::::::-----------%%%-----------------------,-------------------------------------------------------------~~~~~-~~------------------------------------:::---:::::::::::::::::::____::::::::::::::::::::::::::::::::::::::::::::::::::________________________:::::::::::::::::_______________________,:::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________,:,,:::----------~~--------,CCCCC.CCCCCCCCC.CCCCCCCCC.CCCCCCCCCCCCCCC.CCCCCCCCC.CCC,----------------------------------------------------------~~~~~,,,,,-------------------------------------,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------:::::::::::::::::::::::%---------%%%%%-----------------------------------------------------------,-------------------------~~~~~~--------------c----------------------------:::::::::::::::::::____:::::::::::::::::::::::::::::::::::::::::::::::::::_______________________::::::::,::::::::______________________::::::::::::::::::::::::::::::::::::::::::,:::,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::________________________:::,::::::---------~~~~------,,,,,,.,,,,,,,,,.,,,--,,,,.,,,,,,CCC,,,,,,.,,,,,,,,,.,,,,---------------------------------------------------------~~~~~~~,,,---------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,-------c--------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::::::::::::::;:,::::::%%--------%%:::---------------------,----------------------------------------------------------------~~~~~~-----------------------------------------::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::______________________:::::::::::::::::_____________________::::::::::::::::::::::::::::::::::::::::::::::,,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::_______________________,:,:::::,::---------~~~~~~-------,,,,,,;,,,,,,,,;;--,,,,,,,,,,,CCC,,,,,,,,,,,,,,,,,,,,,------------------------------------,--------------~~~~~~~~~~~~~~,-----------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------,--------------------------------,-------------------------------------------------~~~~~~------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::::::::::::,::;::::::::%--------%%::::::::---------------------------------------------------,-----------------------------~~~~~~---,-------------------------------------::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::______________________:::::::::::::::::____________________:,::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________,::,:::-----------,-~~~~~~~~-------------------------=-------=,,CC..,---------,--------------------------------------------------------~~~~~~~~~~~~~~~~~~------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------c------------------------------------------------------------------------------------------------c---------------~~~~~~-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------::::::::::::::::::,:::::-:::::---%:::::::::--:::::------,-----------------------------------------------------------------------------------------------------------------:::::::::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________________:::::::::,::::::___________________::::::::::::::::::::::::::::::::::::::::::::::,:,:::,:::::::::::::::::::::::::::::::::::___:::::::::__________________::_______::::::-------------~~~~~~~~~~---------------------------------,,CCC,,-----------------------------------------------------------------~~~~~~~~~~~~~~~~~,------------------------------------------------,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,-----------------,--------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------::::::::::,:::::::::::,::::::---%::::::::::::::::------------------------------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________::::::::::,:::::::_________________::::::::::::::::::::::::::::::::::::,::::::::::::::::,:::::::::::::::::::::::::::::::::_______:::::_____________:::::__::::::___::::--------------~~~~~~~~~~~~~~~~~~~~~~~~------,-------------;,CCC,,-------BB-------------------------------------------------------~~~~~~~~~~~~~~~~~~,--------------------------------------------,,,,,,,,,,,,,,,,,,*,,,,----,,,,,,,-----------------------------c--------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------:::::::::,::::::;:::::::::::::::::::::::::::::::---c---------------c----------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________::::::::::::::::::::::___________:-::::::::::::::::::::::::::::::::,,:,,:,:,:::::::::::::::::::::::::::::::::::::::::::::_________________________:::::::::::::::__::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~-------------------,,CCC,,-------BB----B-------------------------------------------------~~~~~~~~~~~~~~~~-~~,-------------------------------------------,,,,,,,,,,,,,,,,,,,,,**,----,,,,,,,--------------------------------------------------------,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:------:::::::;:::::::::::::::::::::::::::::::::::::::,---c------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________:::::::::::::::::::::::_________::-:::__::::::::::::::::::::::::::::,,__________::::::::::::::::::::::::::::::::::::::::__________________________:::::::;::::::::::::,--------------~~~~~~~~~~~~~~~~~~~~~~~~~----------=-------=,;CCC,,-------BB----BB--B---B----------------------------------------~~~~~~~~~~~~~~~~~---,-------------------------------------------,,,,,,,,,,,,,,,,,,,,,,**----,,,,,,,----------------------------------------------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::%%%%%::::::::::,::::;::::::::::::::::::::::::::::::-------c----,-----------------------,--------------,--------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________:::::::::::::::::::::::________::::::______::::::::::::::::::::::::::____~~~~~~~_,:::::::::::::::::::::::::::::::::::::___________________________:::::::::,:::::::::::----,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------CCC,,----BBB$$BBBBBBB--B-B----------------------------------------~~~~~~~~~~~~~~~~~~~--,--------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,---,,,,,,,,-----------------------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::::::::::::%%%%%::;:,::::::::::::::::::::::::::::%::-------------------------------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________::::::::::::::::::::::::________::::::______:::::::::::::::::::::::::___~~~~~~~~~~~,::::::::::::::::::::::::::::::::::___________________________::::::::::::,:::,,::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------=-------=,,CC..;----BBB$$BBBBBBB---B-----------------------c-----------------~~~~~~~~~~~~~~~~~~--,,--------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,---,,,,,,,,,,,,,---------------------------------------c----,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:::::::::::::%%%%%%%:,::::::::::::::::::::::::::::::%::-------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________:::::::::::::::::::::::::________::::_______::::::::::::::::::::::::____~~~~~~~~~~~~____:::::::::::::::::::::::::::,____________________________:::::::::::::::,,::,:::::-------c----~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,CCC,,-------BB----BB---B-B----------------------------------------~~~~~~~~~~~~~~~~~---,,--------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------::::::::::::%%%%%%%:::;::::::::::::::::::::::::::::%:::----------------------------------------------c-------------------------------------------------------------------------:::::::::::::::::::%:::::::::%%%::::::::::::::::::::::::::::::,:,,:::::::::::::::::______________::::::::::::::::::::::::::_________:________:::::::::::::______:_______~~~~~~~~~~~~~~_____::::::::::::::::::::::::::_______~____~_____________~~::--%::::::::::::::,%%:::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,CCC,,-------BB----B---B---B---------------------------------------~~~~~~~~~~~~~~~~-,,,,,,-------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:::::::::::::::::::,::::::::::::::::::::::::::::::%:::--------------------------------------------------------------,----------------------------------------------------------:::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::_____________::::::::::::::::::::::::::__________________:::::::::::_~~~~~~~~~~~_~~~~~~~~~~~~~~~~~____~,,::::::::::::::::::::,,:_____~~~~~~~~~~~~________~~~~----%:::::::,:::::::%%%%%------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,,CCC,,-------BB---------------------------------c-----------------~~~~~~~~~~~~~,,,,,,,,,,,,--,,,------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------c-------------------------------------------------------------------------------------------------------------------c-------------------------------~~---------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----:::--:::::::::::::::::::::::::::::::::::::::::::::::::::%::-------------------,-------------------------------------------------------------------------------,-----------c----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________:::::::::::::::::::::::::::_________________::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~:::::::::::::::::::::_______~~~~~~~~~~~~~~~____~~~~~-,,,%:::::::::::::::%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,----=-------=,;CCC,,-------BB---------------------------------------------------~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c------~~~~----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------c------------------------------------------------------------------------------------------------------::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:::::::::_________::::::::::::::::::::::::::::________________::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___::::::::::::::::________~~~~~~~~~~~~~~~~~~~~~~~~~,,,::::::::::::::::%%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------CCC,,---,-BBBBBB-------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,-----------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------c-------------------------------------------------------::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::______::::::::::::::::::::::::::::::_____:_______:::::::::::_~~~~~~~~~~~~~~~~,::__~~~~~~~~~~~~~~~~~____:::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,::::::::--::::::::%%%%%%%-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~-------=-------=,,CC..,------BBBB---------------------------------c----------------~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,---------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------,-------------------------------------------------------------------------------------------------------------------------------~~~~~,----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::_::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------------------------------------------------------------------------------------------------:::::,:,:::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,:::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::_____:______:::::::::::___~~~~~~~~~~~~~~,,::::~~~~~~~~~~~~~~~~~_~___:::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::-----::::%%%%%%%%%%%------------~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,CCC;,-------BB---------------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,---------------------,----,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,-------------,,,,,----------------------------------------------------------------------------------------------------------------------------------------------,------------------------~~~~~~~------------------------------------------------,-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::_:::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------------------------------------------------------------------------------------------------:::::,::,::,,::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::____________:::::::::____~~~~~~~~~~~~,,,,:::::_~~~~~~~~~~~~~~~~~~___::::::::________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,:::---~~~~~%%%%%%%%%%%%%%------------~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,CCC,,-----------------------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,-----------------------------------------,----------------------------------------------------------------------------------------------------------------------------~~~~~~~~--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------,--------------------------------------------------------------,---------------~-------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::__________:::::::_____~~~~~~~~~-,,%%%,::::::__~~~~~~~~~~~~~~~~~~~~~::::__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-~~~~~~~~~%%%%%%%%%%%%,-------------~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,CCC,,----------------------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------,,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------c-c---------------------------------------------------------------------------------------------------------------------~~~~~~~~---------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------%%:::::::__:::::::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------------c--------------------------------------------~~~~-------------::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::___________::::______~~~~~-----,,%%%%%,:::::::~~~~~~~~~~~~~~~~~~~~~_:::_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~%%%%%%%%%,,-,,-,,,,-------~~~~~~~~~~~~~~~~~~~~~~~--------=-------=,,CCC,,------BBBBB----------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------,,,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------,---------------------------------------------------------------------~~~~~~~~----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------%%::::::______:::::::::::::::::,:::::::::::::::::::::::::-----------------------------------------------------------------------------------------------------------~~~~~~~~----------::::,:::::::::::::::::::::::,::::::::::::::::::::::::,::::::::::::::%::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::____________:::____~~~~~~-:::,,:::%%%%::::::::,,~~~~~~~~~~~~~~~~~~~~_:____~~~__~~~~~~~~~~~~~~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%------,,,,--------~~~~~~~~~~~~~~~~~~~~~~-------------------CCC,,---------B-----------------------------------------------~~~~~~~~,,,,,,%%%%,,,,,,,,,,,,,,,,,,,-----------,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~-----------------c-----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------%%:::::__________:::::,::::::,,::::::::::::::::::::::::::---------------------------c-------------------------------------------------------------------------------~~~~~~~~~-----c----:::::::::::,::::::::::::,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________~~~~~~-::::,::,:%%%%::::::::::,~~~~~~~~~~~~~~~~~~~______~~~~~~~~~~~~~~~_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%~~~~~-------,,,,--------~~~~~~~~~~~~~~~~~~~~~-----------------,,,,;,,--------B-----------------------------------------------~~~~~~~~,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,-,,,-,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------,-------~~~~~~~~----------------------------------------------------------------------------------~----------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------%::::______________::::::::,,::::::::::::::::::::::::::::------------------------------------------------------------------------------------------c------------c--~~~~~~~~~~---------:,::::::::::::::::::::,::,,::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________::%~~~~~-:,::,,:,::::::::::::::::,,,,,,,,~~~~~~~~~~~~_____~~~~~~~~~~~~~~~_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,---------~~~~~~~~~--~~~~~~~~--------------------------------B-----------------------------------------------~~~~~~~~~,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------c--------------------~~~~~~~-------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------::::________________:::::::::::::,::::::::::::::::::::::--------------------------------------------------------------------------------------------c---------c---~~~~~~~~~~---------:,:::::::::::::::::::::,,:,::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________%:%%%%~~~::::::,:::::::::::::::::::,,:::::::_~~~~~~~~~_____~~~~~~~~~~~~~~~_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,-----------~~~~~~-----~~~~---------------------------------BBBBB------------------------------------------~~~~~~~~~~~,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------~~------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------:::::---------%%%%%::::__________________::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------,---------------------------~~~~~~~~~~---------::::,:,:::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::,:::::::::::::::::________~~~~~~~_____%%%%%%%%,,::,::::::::::::::::::::::::::::::::__~~~~~~~~___~~~~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%-----------~~~~------~~~--------------------------------------------------------------------------,------~~~~~~~~~~,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,---------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:::::::-------%%%:::::::___________________::::::::::::::::,::::::::::::;::::---------------------------------------------------------------------------------------------------------~~~~~~~~~~------------::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::,::::::::::::::::::::::::::____~~~~~~~~~~~~~___~%%%%%%%%%,::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%------------~~~-------~---------------------------------,-----------------------------------------------~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::::::::------%%%:::::::____________________:::::::::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------~~~~-~~--------------::,,:::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::______~~~~~~~~~~~~~~~~~~%%%%%%%%,:::::::::::::::::::::::::::::::::::::,---~~~_~~~~~~~~~~~~~~~~__::,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%-------------------------------------------------------------------------------------------------------~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,-,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------::::::::::------::::::::::____________________::::::::::::::,,:::::::::::::::::::----------%%%----------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::%%%::::::::::::::::%%%::%%%:::::::::::::::::::::::::::::::::::::::::::::,:::::::::::_________~~~~~~~~~~~~~~~~%%%%%%%%%::::::::::::::::::::::::::::::::::::::,,,,,____~~~~~~~~~~~~~-::::,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%~------------------------------,---------------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,----,,-,,,,,---~~,-------------------------------------------------------------------------------------c-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:::::::::::----:::::::::::::___________________::::::::::::,,::::,:,;:,:;:::::::::::--,,:,:::::%------------------------------------------------,------------c-------------------------------------------------::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::___________~~~~~~~~~~~~~~~%%%%%%%%%%:::::::::::::::::::::::::::::::::::::::,,,::___~,,,::,-------:::,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%~~~~-------------------------------------------,-----------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,-,,,,--,,,-~~~~~~,-------------------------------------------------------------------,-------------------------------------------------------,----------------------------------------------------------------------------------------------------------------,-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------:::::::::::::::%::::::::::::____________________:::::::,:::,:::::,,::;:::::::::::::::::::::::::%---------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::::::,,::::::::_________~~~__~~~~~~~~~~~~~~~~%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::,,:::_:,,,,:::,---:::::::,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------,--------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,;,,,,,,,,,,,,,,,,,,,,,,-----,--~~~~,,,----------------------------------------------------------------------------------------c---------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------::::::::::;::::%%:::::::::::______________________::::::::::,,::::::,,,::,;::::::::::::,:::::::%-------------------------------------------------------------------------------------------------------------------::::-:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:,:::::,:::::::___________~~~~~~~~~~~~~~~~~~~~,%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::,,,,::::::::::::,,,,,,%%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,-----,,-,~~~~,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------::::::::::::::::%%:::::::::::_______________________::::::::::,:::::;,;:,::::;::::::::::::,:::::----------------------------------------------------------------------------------------------------------------------:----::::::-:::---::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::,::::____________~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::,,,:::::;::::;:,,,,,,,%%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~~~-----------------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,;,,,,,,,,,,,-----,,,~~~~~~---------------,----------------------------------------------------------c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::::::::::::::::::%%:::::::::::_______________________::::::::,::::,:::::,:::::::::::::::::::::::;-----------------------------------------------------,-----------------------------------------------------------------~----:::-------------::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::,::::::::____________~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::;::::::,%%%%,%%%%%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~----------------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,-----,,,,~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:::::::::::::::::::%::::::::___________________________::::::::,,::,::::::,:::::::::::::::,::,::::;--------------------------------------------------------------------------------------------------------------------~~~~~-------------------::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::,::::::,::::,:::_________~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,%%%%%,,,,::::::::::::::::::::::::::::::::::::::::::::::,:::,::___:::::,%%%%%%%%%%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~~~,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------~~~~------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------::::::::::::::::;:::::::::::_____________________________:::::::::::%:::::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------------------~~~~~~..-----------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::_________~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,%,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::___::::%~%%%%%,,,;,--.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------~~~~~~~~~~~,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,~~~~,,,--------------------------------------------------------------c----------------------------------------------------------------------------------------------------------------------,-~~~~------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------:::::::::::::::::::::::::::::::_____________________________::::::::,::::::::::;:::::::::::::::,::::::---------------------------------------------------------------------------------------------------------------------~~~~~~~~------------------::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::,:::::::::_________~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::,:,,:::__::::%~%%%%%,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------~~~~~~~~~~~,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------~~~~~~,-----------------------------------------------------------------------------------------------------------------,-----c---------------------------------------------c-----------------~~~--------------------------------c----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------::::::::::::::::::::;:::::::::::::______________________________::::::,::,::::::::::::::::::::::::::::::,:-------------------------------------------------------------------------------------------------------------------~~~~~~~~~~-----------------c::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::,,::::::::::_____~~~~~~~~~~~~~-------,,,%%%,,%%%,,,,,%%%%%,,%%%%%::::::::::::::::::::::::::::::::::::::::::,::::;:;:::::~~~%%%%%%,,,;---.-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------~~~~~~~~~~~,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-------~~~~~~,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~--------,-----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------::,::::::::::::::::::::::::::::::__________________________________::::,:_:::::::::::::::::::::::::::::::------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~-------------------:::::,::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::_____~~~~~~~~~~~~--------,,%%%%%%%%%%,%%%%%%%%,,%%%%:::::::::::::::::::::::::::::::::::::::::::::::::__:___~~~%%%%%%%%,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------~~~~~~~~~~,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,~~~~~~,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,:::::::::::::::::::::::::::::::_______________________________________________::::::::::::::::::::::::::---------------------------------------,-----------------------------------------------------------------------,--~~~~~~~-~~--------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~-------,,,%%%%%%%%%%%%%%%%%%%%%%%%%::::%:::,::::::::::::::::::::::::::::::::::::::::________~%%%%%%%%,,,,----%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,~~~~~,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,::::::::::::::::::::::::::::________________________________________________________:::::::::::::::::::------------------------------------------------------------------------------------------------------------------~~~~~-------------------------:,::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~------,,,,%%%%%%%%%%%%%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::,:::::________~%%%%%%%%,,,,,,,-%%%%%-------~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.------------------------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,~~~~~~~~~~~~~~~---,----------------------------------------------------------------------------------------------,-----------------------------------------------------------------------~-----------------------------------c-----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%--::::::::::::::::::::::::::::_________________________________________________________:::::::::::::::::::------------------------------------------------------------------------------------------------------------------~~~~~~------------------------::---::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~----,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%:::::%%%%::::::::::::::::::::::::::::::::::,::::________:,%%%%%%%%,,,,,,,,%%%%%----------%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~~~--------------------------------------------------~~~~~~~~,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,,~~~~~~~~~~~~~~~~~,----------------------------------------------c-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%-,:::::::::::::::::::::::::::_________________________________________________________::::::::::::::::::::-----------------------------------------------------------------------------------------------------------------~~~~~~------------------------:-----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~----,,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%::%%%%%%:::::::::::::::::::::::::::::::::::::::____::::::::%%%,,,,,,,,,,,%%%%%------%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~----------------------------------------,---------~~~~~~~,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~---------------------,----------------------------------------------------------------------------------------------------------------------------c--------------------~------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%-:::,::::::::::::::::::::::::_________________________________________________________:::::::::::::::::::------------------------------,-----------------------------------------------------------------------------------~~~~~~------------------------------:::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~--%%%%,,,%%%%%%%%%%%%,,%%%%%,,%%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::,::::::::::::::::,,,,,,,,%%%%,,%%%%%------%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-.--~~~~~~-----------------------------------------------~~~~~~~,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,--------,,~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------c----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%-::::::::::::::::_::::::::::__________________________________________________________::::::::::::::::::::----:-------------------------------------------------------------------------------------------------------------~~~~------------------------------:,:,::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::____~~~~~~~~~~~-%%%%%,,,%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,%%%%%,,,,,,,,,,-,,%%%%%%%%%,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,---,,-~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%---,:::::::::_______::::::::___________________________________________________________:::::::::::::::::::::---:::--------------------------------------------------------------------------------------------------------------------------------------------:,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~-%%%%%,,,%%%%%%%%%%%%%%%%%%%,,%%%%%,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%;;,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------~~~~~~~~~~~,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,---,,-~~~~~~~~~~~~~~~~~----------------------------------------------,----------------------------------------,----------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,----::::::::::_______:::::::____________________________________________________________::::::::::::::::::::::-,:,::---------------------------------------------------------------------------------------------------------c--------------------------------:,,:,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~,%%%%%,,,%%%%%%%%%%%%%%%%%%%,,,%%%%,,,,,,,%%:::::::::::::::::::::::::::::::::::::::::::::::::%%%,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,---,,----,,~~~~~~~~~~~~~--------------c----------------------------------------------------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,----:::::::::::______::::::_____________________________________________________________::::::::::::::::::::::::::::-----------------------------------------------------------------------------------------------------c------------------------------------:::,::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~,,%%%%,,,,,,%%%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------~~~~~~~~~--,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,~~~~~~~~~-------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--,,----:::::::::::______::::::______________________________________________________________:::::::::::::::::::::::::::-----------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~,%%%%%%%%,,,,,%,%%%%%%%,,,,,,,%%%%%,,,,,,,,,:,:::::::::::::::::::::::::::::::::::::::::::::::%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,;%%%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,~~~~~~~---------------------------------------------------------------,------c------------,---------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------::::::::::::______::::::______________________________________________________________:::::::::::::::::::::::::,:::-----------------------------------------------------------------------------------------------------------------------------------------,----::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~,,%%%%%%%%%%%,,,,%%%%%%,%%%%%,,%%%%%,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::,,,,%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------,---------~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,-~~~~~~~------------c----------------------------------------------------------------------------c-------------------c-------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------::::::::::::______:::::________________________________________________________________:::::::::::::::::::::::::::::---------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~,,%%%%%%%%%%%%,,,,%%%%%,%%%%%,,%%%%%,,,,,,,,%:::::::::::::::::::::::::::::::::::::::::::::::::,,,%%%%%,,,%%%%%,%%%%,,,,,,%%%%%,,%%%%%----~%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------~~~~~~~~-----,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,,-~~~~~~~-----------------------------------------------------------------------------------------------------------c-----c---------------------------------------------------------------------------------------------------------------------------------~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------:::::::::::::_____::::::__________________________________________________________________:::::::::::::::::::::::::::---------------,----------------------------------------------------------------------------------------------------------------------------,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~~,,%%%%%%%%%%%%,,,,,%%%%%%%%%%,,%%%%%,%%%%,,%%%::::::::::::::::::::::::::::::::::::::::::::::::,,,%%%%%,,,%%%%,%%%%%,,%%%,%%%%%%%%%%%%%---%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------~~~~,-------,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,--~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------:::::::::::~~_____:_:_____________________________________________________________________:::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,%%%:::::::::::::::::::::::::::::::::::::::::::%%%:,,,,%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%---%%%%%~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------~~~~~,,------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,,,,,,,,,,,---~~~~~---------------------------------------------------------------------------------------,------------------------------------------------------------------,--------------------------------------------------------------------------------------~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------::::%%::::~~~~______________________________________________________________________________::::::::::::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~,,,,%%%%%,%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,%%:::::::::::::::::::::::::::::::::::::::::,%%%%%,,,,,%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%---%%%%%,-,,,,;,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------~~~~~~~,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,,,~~~~~~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,%%%,,,:,,~~~________________________________________________________________________________:::::::::::::::::::::%----------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~,,,,,%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,::::::::::::::::::::::::::::::::::::::::::;,,%%%%%,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,-%%%%%%%%,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~--,--------------------------------------------------------------,-----------------------------------------------------------------------------------------------------------------------------------------------c-------------------------------~-~~~---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,~~~__________________________________________________________________________________::::::::::::::::::::-----------------------------------------------c----------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~~,,,,,,%%%%%,,,,%%%%%%%%%%%%,,,,,,,,,,,,%%%%,,::::::::::::::::::::::::::::::::::::::::::,,,%%%%%,,,,,,%%%%%%,,,,%%%,%%%%%%%%%%%,,%%%%%%%%%,,,;,,%%%%%,;,,,,;,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,*,,,~~~~~,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,~____________________________________________________________________________________:::::::::::::::::::,,:---------------------------------------------~~~---------------------,-------,----------------c-------------------------------------------,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~___~~~~~~-,,::,,%%%%%,,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%%,::::::::::::::::::::::::::::::::::::::::;:,,,%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,;,,,,,;,,,%%%%%,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------~~~~~~~~,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,*,,,~~~~~~,,,------------------------------------------------------------------------c----------------------------------------------------------------------,------------~-,--------------------------------c----c----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,:%:________________________________________________________________________________________:::::::::::::::::::------------------------------------------~~~~~~~---------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~_~~~~~%%%::::,%%%%%,,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%,:::::::::::::::::::::::::::::::::::::::::,,,,,,,,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%,,,,,;,,,,,,;,,,,,%%%%%,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~--~~~~~~~~,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,--,,------~~~~~~~,---,,----------~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~~~~-----------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,%::::______________________________________________________________________________________::::::::::::::::::::::,,--------------------------------------~~~~~~---------------------------------------------,-------,----------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~~~~~~-%%:::::,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,%%%%%%%%%,::::::::::::::::::::::::::::::::::::::::%,,,,,,,,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%;,,,,,%%%%,,,,,,%%%%%%%,,,,,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,-,,,------~~~~~~~~,,,,,,--------~~~~~~~~~~----------------------------------------------------------------------------,-------------------------------------~~-----------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%,,,,,:::::______________________________________________________________________________________:::::::::::::::::::::,:::-----------------------------------------~~~~~.----------------------------------------c-----------------------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~~~~---%%::::::,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,:::::::::::::::::::::::::::::::::::::::%,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%;,,,,,%%%%%,,;,;,%%%%%%%%,-,,-,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,----~~~~~~~~~~~,,,,,-------*~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------~----------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,:::::_____________________________________________________________________________________::::::::::::::::::::::,,:::---------------------------------------~~~~~~~--------------------------------------c--------------------------------------------------::::::::::::::::::::::::%%%::::::::::::::__:::::__~~______~~~~~------%%%%%%:,%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:::::::::::::::%::::::::::::::::::::::::,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%,;,,%%%%%%%,,,;,,%%%%%%%%-------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,--------~~~~~~~~~~-------------------------------------------------------------------------------------------------------------c--~~--------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,::::::______________________________________________________________________________________::::::,:::::::::::::::::::::--------------------------------------~~~~~~~-----------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::::::::_______~~~~~~____~~~~~-----:,%%%:::%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%::,:::::::::%%%%,::::::::::::::::%::::,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,,%%%%%%%%--~~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~,,,---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,-----------~~~~~~----------------------------,----------------------------------------------,-----------------------------------~~~~~-------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,:::::______________________________________________________________________________________::::::::,::::::::::::::,::::::-------------------------------------~~~~~~.-----------------------------------------------------------------------------------------::::::::::::::::::::::::::::::::::___________~~~~~~~~~~_~~~~~~-----::%%%:::%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%%,,,%%%%%%%%%,,,,::::::::%%%%,::::::::::::::::%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%,;,,%%%%%%%,;,;;,,%%%%%%%%~~~~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~~~~~~~~~~~~~~~~~~~~~,,,,---,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,--------------~~----------------------------------------------------------------------------------------------------------------~~~~~-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,:::::_____________________________________________________________________________________::::::,:,::::::::::::::::::::::-------------------------------------~~~~------------------------------------------------,--------------------------------------------:::::::::::::,:::::::::::::::::____________~~~~~~~~~~~~~~~~~,---:::::::::::%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,,,,%%%%%%%%%,,%::::::::::%%%:::::::::::::::::%%,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,%%%%%,,;,,,,,,,,,%%%%%~~~~~~~~~,%%%%%;-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~~~~~~~~~~~~~~~~~~~~,,,,----,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~,,,,---------------------------------------------,-------------------------------------------------------------------------------------~~~-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,::::____________________________________________________________________________________:::::::,::::::::::::::::::::::::-------------------------------------~~~----------------------------------------------------------------------------------------------:::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~_::,,,::::,:::::::::::%%%%,,,,,,,,%%%%%,,,,%%%%%%%%%%%,,%%%%%,%%:::::::::::%%::::::::::::,::::%%,,,,,,,%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~,%%%%%,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~,,,-----------------,------------------------------------------------------------------------------------------------------------------~~---------------------------------------c-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,::::___________________________________________________________________________________::::::::::,::,:::::::::::::::::::%%------------------------------------~~------------------------------------------------------------------------------------------------::-:::::::----:::::::::::::::_________~~~~~~~~~~~~~~~~_:::::::::::::::::::::::%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,%%%%%%%%%::::::::%%%:%%%:::::::%,:::%%,,,,,,,%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,-,,,~~~~~~~~~~~~~~~~~~~,%%%%%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~,,,-,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~%%%%%~~~~~~~~~~~~,,,----------------,--------------------------c------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,:::__________________________________________________________________________________:::::::,,,::,,::::::::::::::::::::%%%-----------------------------------------------------------------------------------------------------------------------------------------:::::-----::::::::::::::____~~~~_~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::%%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%::::%%,%::%%,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------.~~~~~~~~~~~~~~~~~,,,,--,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%~~~~~~~~~~~~,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,:::__________________________________________________________________________________::::,::,:::,::,::::::::::::::::::::%%--------------------------------------------------------------------------------------------------------------------------------------------------::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~,,*:::::;::::::::::::::::%%%%%,,,,,,%%%%%,,,,,,%%%%%%%%,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%::::%%,%%%%%,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~,,,,,;,;,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,-----------.~~~~~~~~~~~~~~~~,,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%~~~~~~~~~~~,,,,------------------------------------------------------------------------------,----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,:::__________________________________________________________________________________:::::::::,::::::::::::::::::::::::::%%------------------------------------------------------------------------------c---------,--------------------------------------------------------:::::::::::::______~~~~~~~~~~~~~~~~~~_:,,,,,**:::::::::::::::::::::%%%%%,,,,,,%%%%%,,,,,,,%%%%%%%,,,,%%%%%,,,,,,,%%%%%,%%%%,,%%%:::%,,,,,,,,,,,,,,%%%%%%%%,,,,,,%%%%,,,,,,,%%%%%%%%,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~,,,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------.~~~~~~~~~~~~~~~---,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,~~~~~~~~,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%,,,,,,,::::_________________________________________________________________________________,::::::::::,:::::::::::::::::::::::::%%------------------------------------------------------------------------------------------------------------------------------------------------::::::::::::______~~~~~~~~~~~~,::::::::::::,,,,::::::::::::::::::::,%%%%%::,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,%%%%%,,,,,,,,%%:::%,,,,,,,,,,,,,,,%%%%%%%,,,,,%%%%%,,,,,,,%%%%%%%%,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~,,-,,,,,,;,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,-,,~~~~~~,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,,,,::::________________________________________________________________________________::::::::::::::::::::,:::::::::::::::::%%-------------------------------------------------------------------------------------------------------------------------------,-----------------,::::::::________~~~~~~~~~~~:::::::::::::::,,,::::::::::::::::::::,%%%::::,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%,,%%%%%%%,,,,,%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%,,,,%%%%%,,,,,,,%%%%%%%%~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------c---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,:::_______________________________________________________________________________:::::::::::::::::::,:::::::::::::::::::%-----------------------------,---------------------------------------------------------c------------------,----------c----------------------------:::::::::_______~~~~~~~~~~~_:::::::::::::::::::::::::::::::::::::,,,,,::::%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,%%%%%%%%%%%,,,,,%%%%,,,%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,---~~~~~~~~~~~,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~,,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,:,:______________________________________________________________________________:::::::::::::::::::,:::::::::::::::::::-------------------------,---------------------------------------------------------------------------------------------------------------------------,::,::::______~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::,,,:::::%%%,,%%%%%,,,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%,,,,%%%%%,,,%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~,,-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------c-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,,::__________________________________________________________________::_________::::::::::::::::::::::::::::::::::::::::--------------------------------------------,------------------------------------------------------------------------------------------------------------::::_____~~~~~~~~~~~__:::::,:::::::::::::::::::::::::::::::::::::,,::%%%%,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%,,,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~,,----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~,,,-----------------------------------------------------------------------------------~~~------------------------------------------------~----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,---~___________________________________________________________________________::::::::::::::::::::::::::::::::::::::::--------------------------------,----------------,--------------------------------------------------------------------------------------------------------:::_____~~~~~~~~~____;::::::::::::::::::::::::::::::::::::::::::,,,%%%%%,%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%,%%%%%%%,,,,%%%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,~~~~~~,,------------------------------------------------------------------------------~----~~~~~----------------------------------------------~~~--------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,-----~_________________________________________________________________________;::::::::::::::::::::::::::::::::::::::::----------------------------------------------------------------------------------------------------------------------------------------------,------------::_____~~~~~~~~~___::::;:::::::::::::::::::::::::::::::::::::::,,,%%%%%,%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%,%%%%%%%%,,,,%%%%%%%%%%%,%%%,,,,%%%%%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,--------~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,----------------------------------------------------------------------------~~----~~~~~----------------------------------------------~~~--------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,-----~~________________________________________________________________________::::%::::::::::::::::%::::::::::::::::::::---------------------------------------c------------------------------------------------------------------------------------------------------------------::_____~~~~~~~~~__:::::::%%%::::::::::::::::::::::::::::::%:,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%,,,%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,-----------~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,------------------------------------------------,-----------------,---------~~~~--~~~~~---------------------------------------------~~~~--------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,------~~_______________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::--------------------------------------------------------------------------------------------------------c----------------------c-------c------------::::-:::_____~~~~~~~~~__:::,:::::::,::::::::::::::::::::::,::,%%%,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%,,%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,%%%%%%%%%%%%%%%,,,,%%%%%%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,*****,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,--------------------------------------------------------------------------~~~~-~~~~~~---------------------------------------------~~~~---~~~--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,------~~~~~_____________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::%%-------------------------------------------------------------------------------------------------------------------------------------,-----------::::::::_____~~~~~~~~__::::::,::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,%%%,,%%%%%%%,,,,,%%%%%%%,,,,,,%%%%%%%%,%%%%%,,%%%%%%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,*****,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,---------------------------------------------------------------------------~~~~-~~~~~~---------------------------------------------~~~~--~~~~~----------------------~~~~~----------------------~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------~~~~~_____________________________________________________________________::::::::::::::::::::::::::::::;:;::::::::::%%%-------------------------------------------c----------------------------------------------------------------------------------------------------:,,:::::_____~~~~~~~___:::::::::::::::;::::::::::::::::,,,,,,,,%%%%,,,,,,,,%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,%%%%%%%,,,,,,,,,%%%%%%%%,,,,,,,,,,%%%%,,,,,,,%%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,*,,,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,---------------------------------------------------------------------------~~~~-~~~~~~---------------------------------------------~~~--~~~~~~---------------------~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~----------,~~~~~~~~~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~____________________________________________________________________::::::::::::::::::::::::::::::;::::::::::::%%%--:------------------------------------------------------------------------------------------------------------------c--------------------------:::::::::____~~~~~~~___:::,:,::::::::;:::::::::::::::::,,,,%%%%%%%%%,,,,,%%%%%%%%%%,%%%%%%%%%;%%%%%,%%%%,,%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****-,,,,,,,,,,,,,,,,,*,,,,,,,****,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,----------------------------------------------------------------------------~~~~-~~-~-----------------------------------------------~~~--~~~~~~---------------------~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~-----------,,~~~~~~~~%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~____________________________________________________________________:::::::::::::::::::::::::::::::;::::::::::::%%-:::::-------------------------------------------------------------------------------------------------------------------------------::,-------::::::::::___~~~~~~~~__:::::,,,:::::::::::::::::::::::,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%,%%%%%%%%%,%%%%%%%%%%,,,,%%%%%,,%%%%%%%%%%%%%,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,*,,*,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,--,,-------,--------------------------------------------------------------------~~~~----------------------------------------------------~~~--~~~~~~----------------------~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~----------,,--~~~~~~%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~___________________________________________________________________:;::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------------c------------------------------------------------------------------------------------:::::::,,:::,::::::::__~~~~~~~~~___::::::,:::::::::::::::::::::::,,,%%%%%%%%%%%%,,,,%%%%%,%%%%,,,,,,%%%%%,%%%%%%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%,,%%%%%,,%%%%,,,,,%%%%%%%,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,*****,,,,,,,,,,,,,,;,,,,,,,;,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,~~~~~~~~~~,,,--------------------------------------------------------------------------------~~~~-----------------------------------------------------~---~~~~~-------------------------~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~-----------,,,-----~.%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::,::::::------------------------------------------------------------------------------,----------------------------------------------::,::::::;:::::::::::__~~~~~~~~~____::::::::::::::::::;::::::::::,,%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,%%%,%%%%%%%%%%%,,,,,,,,,%%%%%%%,%%%%%%%%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,**,,,,,,,,,,,;,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,---------------------------------------------------------------------------------~~~---------------------------------------------------------~~~---------------------------~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~------------------%%.%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::--------,---------------------------------------------------------------------------------------------------------------------:::,:::::::::::::::::_~~~~~~~~~____:::::::::::::::;:::::::::::::,,%%%%%%%%%,,,,,,,,%%%%,%%%%%%%%,,%%%%%,,%%%%,%%%%%,,,,%%%%%%%,%%%%%%%%%%%%%%,,,,,%%%%%%%%%,,,%%%%%%%%%%%%%%,,%%%%,,,,,%%%%%%%%%%%%%%%%,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,--------------------------------------------------------------------------,-------~-----------------------------------------------------------~-----------------------------~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~-------------.-..%%%.%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____________________________________________________________________::::::::::::::::::::::::::::::::::::::::::,,:::,:::%::::------------------------------------------------------------------------------c----------------------------------------------:::::,:::,::;:::::::::_~___~~~~___:::::::::::::::::::::::::%:::,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%;;%%%%%,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%,,,%%%%%%%%%,,,%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%%%%%%,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~,,,--,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~-------------------~~~~~~~~~~~~~~~~~~~~-----------------.%%%%%.%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::,:::::::--------------------------------------------------------------------------------------------------------------------------%%::::::::::;:::::::::::_____~~~~~~~::::::::::::::::::::::::,,,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%%%%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%%%%%%,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,------------------c-------------------------------------------------------------------------------------------------------------------------------------------------------------------------,------------~~~~~~~~~~~~~~~~~~~~,-----------.----.%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------,---------------------------------------------------------------------------------------------------------%%::::::::::;;::::::::::::____~~~~~~~::::::::::::::::::::::::,,,,%%%%%,,,,,,,,%%%%,,,,,,,%%%%%%%%%,;%%%%%,,%%%%%,,,,,,,,,,,%%%%%,,,,%%%%%%%,,%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%%%%%%%%%,,%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,****,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,^^^~~~~~~~~,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------~~~~~~~~~~~~~~~~~~~~,---------.------.%%.%%.%.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~_________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::,:,::::---------------------------------------------------------------------------c-----------------------------------------------%:::::::::::;;::::::::::::____~~~~~~~_::::::::::::::::::::::::,,,%%%%%,,,,,,,,%%%%%,,,,,,%%%%%%%%,,,;%%%,,,%%%%%,,,,,,%%%%%%%%%%,,,,%%%%%%,,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,-**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^^^^^^^^^^^~~~~~~,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~,,----------------,,...%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::----------------------------------------------------------~~-----------------------,---------------------------------------:::::::::::::::::::::::::::____~~~~~~~_:::::::::::::::::,,*::::,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,%%%%%%%%%%%%%%%,,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^^^^~~~~~~~,,,,--------------------------------------------------------------c------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~,,---------------,%%%%.%.%.%%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______________________________________________________::,:::::::::::::::::::::::::::::::::::::::::::::::::::----::--------------------------------------------------~~~~~---------------------------------------------------------------::::::::::::;:;:::::::::::___~~~~~~~~~___:::::::::::::::,*,,::,,,%%%%,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,,,;,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,-c---~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^^^~~~~~~,,,,,,--------------------------------------------------------------------------------------------------------------------------------------------------c----,c-------------------------------------------------------~~~~~~~~~~~~~~~~,,,---.-.---%%..-.,%%.%%.%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______________________________________________________:::::::::::::%%%%%::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------~~~~~~~-~~-----------------------------------------------------------,:::::::;::::::;:::::::::%%%~~~~~~~~~_____:::::::%::;:::,*%%%%%,,,,%%%%%%%%,,,%%%%,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%,%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,------~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^^~~~~~~,,,,,,,,,,----------------------c--c------------------------------------------------------------------------------------------------------------------------------------------c-------------------------------.--.-%%%%~~~~~~~~~~~~~~~,,,%%%.%%.-%%%%%%%%.%%%%%%%.%%%%%%..,..,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___~~________________________________________________:::::%::::::%%%%%%%:::::::::::::::::::::::::::::::::::::::::------------------------------------------------~~~~~~~~~~~~-----------------------------,-----------------------------:::::::::::::::;:::::::%%%%%~~~~_~~_______:::::::::::::,*%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,;,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%~~~~,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,--------~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^~~~~~~,,,,,,,,,,,,--------------------------------------------------------------------~~~~~-------------------------------------------------------------------------------------------------------------------------%%%%%-%%%%.~~~~~~~~~~~~~~--%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~____________________________________________::,::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::------------------------------------------------~~~~~~~~~~~-----------------------------------------------------------::::::::::::::;:::::::::::%%,~~__~~________::,,,:,:::::,*%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%;,,;;%%%%%%%%%%,,%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%,%%%%%%%%%%%%%%%%%%%%%%%~~~~,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~,,,,-----------~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,----------------------------------------------------------c---------~~~~~~-----------------------------------------------------------------------------,-----------------------------------------%%%%%%%%%%%%%%~~~~~~%%%~---.%%%%%%%%%%%%%%%.,%.%%%%%%%%%%%%%%%%%...%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___________________________________________::::::::::::::::::::::::::::::::::::%::::::::::,:::::::::::::--------------------------------------------------~~~~~~~~~~---------------------------------------------------------:::::::::::::;::::::::::::::::,~___~~~_~~~~~__:,,,,,,,,:%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,;,,%%%%%,,,,,%%%%,,,,,,,,,,%%%%%%%%%%%%%%,,,%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%~~~,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,~~~~~~;,,,,,,,,,,,,----------------------c----------------------------------------------~~~~------------------------------------------------------------------------------------------------------------------------%%%%%%%%%%%%%%,~~~~%%%%%.%%%%%%%%%.%%%%%%%%%..,%%%%%%%%%%%%%%%%%%.%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__________________________________________:::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::--------------------------------------------------~~~~~~~~~~---------------------------------------------,---------:,,::::::::::::::;:::::::::::::::____~~~~~~~~~~~~%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,;,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,%%%%%%%,,,%%%%%%%%%%%%,,,,,,,,%%%%,%%%%%%%%%%%%%%%%%%%%%,,~,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,----------------------------------------------------------------------~~~~~~~-------------------------------------------------------------------------------------------------------------------.--%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________________________________________:,,:::::;::;::::::::::::::::::::::::::%%:::::::::::::::::::::::----:::-------------------------------------------~~~~~~~~~~-------------------------------------------------------:::::::,::::::::::::::::::::::::::_::%%~~~~~~~~~~%%%%%,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,,,,%%%%%,,,,,,,;,;,,,,;;,%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%,,%%%%%%%%%%%%%%,,,,%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~-,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,------,,----------------------------------------------------------------~~~~~~~~--------------------------------------------------c--------------------------------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%.%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::---::::::------------------------------------------~~~~~~~~~---------------------------------------,----------:----::::::::,:,::::::::::::::::::::::::::::_~~~~~~~~~%%%%%,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,%%%%%%%%%%%%%%%,,%%%%%,,,----~~~~~~~~~~~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,;,,,,,,,,------,,,,----,---------------------------------------------------------~~~~~~~~-----------------------------------------------------------------------------------------------------------------%%%%%.%%%%%%%%%%%%%%%%%%%..%.%%%%%%%%%%%%.%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____________________________________::::::::::::::::;:::;::::::::::::::::::::::%::::::::::::::::::::::::-::::::::;-----------------------------------------~~~~~~-----------------------------------------------------::::::,,::::::::::::::::::::::::::::::::::::_~~~~~~~~~%%%%%,,%%%%%%%%%%%%,%%%%%%%%,,,,%%%%%%%%%%%%%,,,,%%%%%,,%%%%%,,,,,;,;,,%%%%%,,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,%%%%%%%%%%%%%%%%,%%%%%,,,,---~~~~~~~~~~~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~~,,,,,,,,,,,,,~~,,,,,;,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------~~~~~~---------------------------------------------------------------------------------------------------------------.--%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%,.%.%%.%%%.%%%%%%%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,;:-----------c------------------------------~~--------------------------------------------------------:::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~%%%%,,%%%%%%%%%%,,%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,%%%%%;,%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%,%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%%%%%%,%%%%%,,,,--~~~~~~~~~~~~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~,--------------~~~~~~~~~~~~~,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,;,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------~~~~-----------------------------------------------------------c-------------------------------------------------------.%%%%%%%%%%%%%%%%%%%...%.%.%%%%%%%%%%%%%%%%%%%%%%%%%.,%.%,%%%.%%%%%%%%%%%%%%,,,~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~_____________________________________::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------------------------c----------------------------------------------------------,-------::::::::::::::::::::::::%::::::::::::::::::_~~~~~~~~~~~~~~,,%%%%%%%%%%,,%%%%%%%,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,%%%%,,,,%%%%%%%%%%,,,,,,,,%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%,,,,--~~~~~~~~~~~~~~~~~~~~~%%%%%,,,~~~~~~~~~~~~~~~~~~~~,--------------~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,****,,,,,,;,,,----------------------------------------------------------------~~~~---------------------------------------------------------------------------------------------------------,----------%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%.%%.%.%%%%%%%%%%%%%,%%..%%%%%%%%%%%%%%%,,,,~~~~~~~~~~~--,,,,,,~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~______________________________________:::::::::::::::::::;::::::%::::::::::::::::::::::::::::::::::::::::::::::::;::-----------------------------------------------------------------------------------------------------:::::,:::::::::::::::::%%::::::::::::::_~~~~~~~~~~~~~~~~~~,%%%%%%%%%%,,%%%%%%%,,,%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%,%%%%%,;%%%%%,,,,,,,,%%%%,,,%%%%%,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,%%%%%%%%%%,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,-~~~~~~~~~~~~~~~~~~~~~%%%%%%%,~~~~~~~~~~~~~~~~~~~~---------------~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,;;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,****,;,,;,,,,,-----------------------------------------------------,-----------~~-------------------------------------------------c-----------------------------------------,--------------------------%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%.%%%%%%%..%%.%%%%%...%%%%%%%%%%%%%%.,,,,,~~~~~~~~~--,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~_____________________________________:::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------------------------------------------------------------------------:---::::::::::::::,::::::::%%:::::::___:::~~~~~~~~~~~~~~~~~~~~,%%%%,%%%%,,,%%%%%%%%%,%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,%%%%%%%,,,,,%%%%%,,,%%%%%%%,,,,,,,,,%%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%%,,%%%%%,%%%,,,,,%%%%%,,,,,,,-~~~~~~~~~~~~~~~~~~~~~,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****~,~~~,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%%%.%.%%%%.%%%.%.%%%%%%%%%%%%.%.%,,,,,---------,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~_____________________________________:::::::::::::::::::,:::::::%::::::::::__:::::::::::::::::::::::::::::::::::::,:-------------------------------------------------------------------------------------------------,,::::,,:,:::::::::::::::::%%:::::::_______~~~~~~~~~~~~~~~~~~~,,,,,,,*,,,,,%%%%%%%%%,%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%%,,%%%%%,,,,,,,,,%%%%%,,,,,,,%%%%~~~~~~~~~~~~~~~~~~,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***~~~~~,,,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,,,%%%%%%%%%%%%.%%%%%%%%%.%%%.%%%%%%%%%.%.%%%.%%%.%.%.%.%%%%.%%%%%%%%%%%%%%%%,,,,,---------,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::___________________________________::::::::::::::::::::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::--------------------------------c---------------------------------------------------------------::::,::::::::::::::::::::::%::__:::________~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,%%%%%%%%%,%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,%%%%%,,,,,,%%%%%~~~~~~~~~~~~~~%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~,,,,,,,,,,,~~,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%,,,,,,,,,,%%%,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,;,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,~~~~*,,,------------------------------------------------------------------------------------------------------------------------------c----------------------------------------------------------,,,%%%%%%%%%%..,.%%%%%%%%%%%%%%.%%%%%.%.%%%%%%.%%.%%..%.%%%%%%%..%%%%%%%%%%%%,,,,,,-------,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------:::__________________________________:::::::::::::::::::::::::,::::::::::::____:::::::::::::::::::::::::::::::::::;:;----------------------------------------::::----------------------------------------------------:,:,::,:,:::::::::::::::::::________________~~~~~~~~~~~~~~~~~~,,,,,%%%%%,;,%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%,%%%,,,,%%%%%,,,,%%%%%,,%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%~~~~~~~~~~~~~~%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%%,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,---,,,,,**,,,-------------------------------------------------------------,-----,---------------------------------------------------------------------------------------------------------------------,,,,%%%%%%%%%%%.,%%%%%%%%%%%%..%%%%%%%%%%%%...%%%%.%..,.%%%%%%.%%%%%.%.%.%%%%%,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------:::__________________________________::::::::::::::::::::::::::::::::::::::______:::____::::::::::::::::::::::::::::-------------------------------,--------::::-------------------------------------------------:::-::::,::,:::::::::::::::::__________________~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,%%%%%%%%%%%%%,%%%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,,,,%%%%,,,,%%%%,,,,,%%%%%,,,,,,,,,,%%%%%~~~~~~~~~~~~~~%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,--------------,,,----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.--,,,,,,%%%%%%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%.%%%.%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------%%%-:::::_______________________________::::::::::::::::::::,:::,::::::::::::::________________:::::::::::::::::::::::::----------------------------------------::::-----------------------------------------%%%-----:::::,::,,:,::::::::::::-::::__________~______~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,;;,,,,,,%%%%%,%%%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%~~~~~~~~~~~~~~%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,~~~,~~~,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,-------------,,,-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------,,%%%%.%%%%%%%%%%.%%.%%%%%%%%%.%%%%%%%%%%%%.%%%%%%%..%%%%%%%%%.%%%%%%%.%%%%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%%%::::::::_______:%%____________::%%%:%%%%%:%%%::::::::::%%%:::,:::::::::::::______~__________:::::::::::::::::::::::-----,-------------------------------:::::::-----------------------------------------%%%%%::::::::,,:,:,:::::::::::::--:::___________~~_____~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,;,,,;;,,;,%%%%%,%%%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,,~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~-------------,,,--------------------------------------------------------------------,----------------------------------------------------------------------------------------------------------------,,----,%%%%%%%%%,%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%..%%%..%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%::::::::::::::____::::::_________::::::::::::::::::::::::::::::::,::::::::::::_______~~____~~___::::::::::::::::::::::::------------------------------------::::::::---::::----%:::::-----------------------::::::::%::::::::::::::::::::::::::::___~~~_____~~~~____~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%,,,,,,,%%%%%,%%%%%,,,,,,,,,,,%%%%,,,,,%%%%,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%%%%,%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,%%%%%,,~~~~~~~~~~~~~~~~~~-,%%%%%,,,,,,,%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,%%%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,----------,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------%%%%%,,,%%%%%.%%%.%%%%%%%%%%%%%%%...%.%.%%%%%%.%%%%%%%%%%%%,%.%.%%.%%%%..%%%%%%%.%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:::::::::::::______::::::_________::::::::::::::::::::::::::::::,,::::::::___________~~~~__~~~~~~__:::::::::::::::::::::::--------------------------------,--::::::::%%%:;::::::::::::--------------------:::::::::::%%:::::::::::::::::::::--::____~~~~~__~~~~~~___~~~~~~~~~~~~~~~~~~~,,%%%%%,,,%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%,,%%%%%,%%%%%%,,,,,%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%,,,~~~~~~~~~~~~~~~~~~-%%%%%,%%%%%,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,-----------,---------------------,----------------------------------------..-.-------------------------------------------------------------------------------------------------------------------%%%%%,,,-%%%%%%%%%%%%%%%%%%%%%%%.%%%%%.%%%%%%%%..,,,%%%%%.%.....%.%%%%%%%..%%%.%%%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------:::::::::__________:::::::________:::::::::::::::::::%:::::::::::::::::::_____________~~~~~~~~~~~~__%::::::::::::::::::::-----------------------------------%::::::::::::::::::::::::::-------------------:::::::::::%%::::::::::;:::::::::::-:______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,%%%,,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%%%,~~~~~~~~~~~~~~~~~~--,%%%%%%%%%,%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~--,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------~~~~~.~~.--------------------------------------------------------------------------------------------------------------%%%%%.%%,,-----,---.%%%%%%%%.%%%%%%%%%%%.%%%%%%%%%%,,,,%%%%.%%%%..%.%%%%%%..%%.%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::%:::____________:::::::::::::::::::::::::::::::::%:::::::::::::,:::::________~~____~~~~~~~~~~~__%::::::::::::::::::::-----------------------------------%::::::::::::::::::::::::::--------------::--%:::::::::::%%::::::::::::::::::::::-:______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,%%%%%%%%%%%%%%%%%%%%%,,,,,,%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%,,%%%%%,,%%%%%,,,,,%%%%%,,,,,%%%%%%%%%%%,%%%%%,~~~~~~~~~~~~~~~~~~--,%%%%%%%%%,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~-,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%,,,%%%%%,,%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,,,--------------------------------------------------------------~~~~~~~~~-------------------------------------------------------------------------------------------------,,-----,,-----%%%%.---,,~~~~~~~--%%%%%%%%%%.%.%%%%%%%.%%%%%%%%%%%%,,,%%%%%%..%%.%%%%%%%%%%%%.%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:::%%:::_______________::::::::::::::::::::::::::::::%::::::,::,,:::::::________~~~~___~~~~~~~~~~~__%:::::::::::::::::::;:----------------------------------%%:::::::::::::::;;:::::::--------------:::::::::::::::::%::::::::::::::::::::::::_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,%%%%%%%%%%%%%%%%%%%%%%,,;%%%%,,,,,,%%%%%,%%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,%%%%,,%%%%%,,,,,%%%%%,,,,,%%%%%%%%%%%,%%%%%,~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,--------------------------------------------------------------~~~~~~~~~------------------------------------------------------------------------------------------------,,,...,,,,---,%%%..--,~~~~~~~~~~%%%%%%%.%%%.%,%.%%%%%%%%%%%.%%%%%%%%,%%%%%%.%%%%..%%%.%.%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::%%:::_______________::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~__:::::::::::::::::::::-----------------------------------%::::::::::::::::::;:::::--------------:::::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-,,,,,,,,%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,%%%%,%%%%%%%%%%%%,%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,%%%,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%%,,,,%%%%,,,,,,%%%%%,%%%%%,%%%%%,,~~~~~~~~~~~~~~~~~-%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,--,,,,---------------------------------------------------------------~~~~~~~~~---------------------------------------------------------------------------,------,------------,,,%%.%.,,,,--,%%.%%%,~~~~~~~~~~~%%%%%%%%%%%%.%%%%,%%%.%%%%%%.%%%%%%%%%%%%%%.%%%.%.%.%%%%%%%%%%.%.%%%%%%,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.-----~~~~~~~~~~~~~~~~~~~----::::::%%:::_______________::::::::::____-::::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~~__::::::::::::::::::------------------------------------:::::::::::::::::::::::----------------:,:::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%,%%%%%%%%%,,,%%%,%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%,%%%%%,,%%%%%,,,,,%%%%%,,,,,,,%%%%%,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%,%%%%%,%%%%%,,~~~~~~~~~~~~~~~~~-%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,,,,,--------------------------------------------------------------~~~~~~~~~~---------------------------------------------------------------------------------------,,-------,.%.%%%,,,,,,,,.,%%%~~~~~~~~~~~~%%%%%%%.%.%.%%%%%%%%%%%%%%..%%%%%.%%%%%%%%%%..%%%..%.%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~----:::::___%::________________:::::::::______:-::::::::::::::::::::::::::::______________~~~~~~~~~~~~~~~~~~~~__::::::::::::::::::----------------------------------:::::::::::::::::::::::::-----------------::::,::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~___~~~~~~~~~~~~~,,;,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%,%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%,%%%%%,,%%%%%,,,%%%%%%%,,,,,,,%%%%%,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%,%%%,%%%%~~~~~~~~~~~~~~~~-%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,---------------------------------------------------------------~~~~~~~~~~--------------------------------------------------------------------------------------,,,-,-----,,%%%%%%,,,,,,,,%%%.~~~~~~~~~~~~~%%%%%%%.%..%%%%%%%%%%%%.%%%%%%.%%%%%%%%%%%%%..%.%%%%%.%%%%%%%%%%%%%.%,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~::::::::_______________________::::::::______~_-,:::,::::::::::::::::::::::________________~~~~~~~~~~____~~~~~~_::::::::::::::::----------------------------------:::::::::::::::::::::::::::----------------:::,::::,:::::::::::::::::::::::::::::______~~~~~__~~~~~~______~~~~~_,,,,,,,,;,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%,,,%%%%%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,%%%%%,,%%%%%%%%%%~~~~~~~~~~~~~~~--%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,%%%%~,,,,,,,%%%%%%%%%,,;,;%%%%%%%%%%%%%%%%,,%%%%%%%%%,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,-----------,,,,,,,----,----------------------------------------------------------~~~~~~~~~~-----------------------------------------,--------------------------------------------,,,,----,,,.%%%.%..,%,,,,,,%%.~~~~~~~~~~~~~%%%%%%....%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%..%%%%.%%%%%%%%%,%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~~~~~~~~~~::::::::________________________:::::::______~,::,::,,,,::::::::::::::::::________________~~~~~~~~~~_____~~~~~~~:::::::::::::::::---------------------------------:::::::::::::::::::::::::::----------------:,:,,,:::,::::::::::::::::::::::::::::___~~_~~~~~:::,,,,,:::::::,,:::,,,,,,;,,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%,,%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%%,~~~~~~~~~~~~~~-,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,%%%%,%%%%%,,%%%%,,%%%%%%%%,,,,,%%%%%%%%%%%%%,,,,,,%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,------------,,,,,,,--,,,----------------------------------------------,-----------~~~~~~-~~------------------------------------,-------------------------------------------------,,,,,,-,,,,,%%.%%.%..%%,,,%%%%~~~~~~~~~~~~~,%%%%%%%%.%%%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%.%%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~_::::::_________________________:::::::_______::::::::::::::::::::::::::__________________~~~~~~~_::::_::%~~~~~~:::::::::::::::::---------------------------------:::::::::::::::::::::::::::-----------------,::::,,:::::::::::::::::::::::::::::___~~~~~~~~,,:::,::::::::::::::::;,,;,,,,,%%%%**%%%%%,,*%%%%%%%%%%%%,,,,,,,,%%%%,,,,%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%,%%%%%,,,,%%%%%%%%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%,%%%%%%%%%%%%%%%%%%%,~~~~~~~~~~~~~~,,%%%%%%%%%%%%%%%%,,,,,,,;,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,%%%%%%%%%%,,%%%%%,,,,%%%%,,,;,,%%%%%%%%,%%%%,,,,,,,,,,%%%,,,%%%%%,,,,,,,,,,,,,,,****,,,,,,****,,,,,,,**,,,,,,,,,,,----------,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------------,,,,,,,,,,,,,,.,,.%%%..%%%%%,~~~~~~~~~~~~~~,,,%.%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%.%%%.%%%%.%%%%...%..%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~~~~~_________________________________:::,::_______:::::::::,::::::::::::::___________________~~~~~~~~::::::::%%~~~~~_:::::::::::::::::---------------~~~~~~~----------:::::::::::::::::::::::::::----::-----------:::::,::::::::::::::::::::::::::::::__~~~~~~~~~-:,::::,:,::::::::::::,,,,,,,,%%%%%**%%%%%,,*%%%%%%%%%%%%,,;,,,,,%%%%%,,,%%%%%,,,%%%%%%%%%%%%%%%,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,%%%%%%,~~~~~~~~~~~~~~,%%%%%%%,%%%%%%%%,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%~~%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,-,,,,,,,,,**,,,,,,,,*,,,,,,,,,,,,-----------,,--,,,~,,,---------,-------------------------,---------------------------------------------------------------------------------------------------------------,,-----,,,,,,,,,,,,,,,,%%%%%%%%%%.,~~~~~~~~~~~~~,,,,%%%%%%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..%%%..,.%%%.%%%%%%%.%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------~~~~~_________________________________:,::::______~:::,,:::,,:::::::::::::___________________~~~~~~-%::::::::::%~~~~~~~~~~::::::::::::::::----------~~~~~~~~~~~-----:-:::::::::::::::::::::::::::::::::::::::::----::,:::::,:::::::::::::::::::::::::::_~~~~~~~~~--,:::,:,,,,,:::::::::;,,,,,;,,%%%%%***%%%,,,**%%%,,,%%%%%,%%%%%,,%%%%%,,,%%%%%%,,,%%%%%,,,,%%%%%,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~%%%%%,,%%%%%%%%%,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%~~%%%%%,,,,,,,%%%%%,;,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,--,-----------,,~~~~~~~~~---,,----------------------------------------------------------------------------------------------------------------------------------~~~---,,,,----,,,,,,,,,,,,,,,%%%%%%%%%%%%,~~~~~~~~~~~~~,,,,%%%%...%%.%%%%%%%%%%..%%%.%%%%%%%%.%%%%%.%.%.%,.,.%%%%,.%%%%%%%.,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~__________________________________,:::,:_______::,::::::::::::::::::::______________~~~~~~~~~~_:::::::::::::~~~~~~~~~~~:::::::::::::::---------~~~~~~~~~~~~~---:::::::::::::::::::::::::::::::::::::::::::::::::,::,,:%%%%%:::::::::::::::::::::::___~~~~~~~~---,,,:,,,,,,,:::::::::,,,,,,,,%%%%%***,,,,,,,,*%%%%%%%%%%%%%%%%,,%%%%%,,,,%%%%%,,,%%%%%,,,,%%%%%,%%%%%%%%%%%,,,%%%%,,,,%%%%%%%,,,,,,%%%%%,%%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~%%%%%,,%%%%%%%%,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,~~~%%%%,,,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,---,,,,,,,,,,,,,,,,,,,,,,,---------------,,,~~~~~~~~,,,,----------------------------------------------,------------------------------------------------c--------------------------------~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%~~~~~~~~~,,,,,%,,.%.%.%%%%%%%%%%%%.%%%,%.%%%,%%%%%%%%%%%%%%%,,,,.%%.%%.%%%%..,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~___________________________________,:::::::___::::::::,:::::::%%%%%:::______________~~~~~~~~~~_:::::::::::::__~~~~~~~~~___:,::::::::::------~~~~~~~~~~~~~~~~~-:::::::::::::::::::::::::::::::::::::::::::::::::,:::::%%%%%%%::::::::::::::::::_________~~~~~~--,,,,,,,,,,,,%%%%%::%%%%%,,%%%%%%%%**,,,,,,,,,%%%%%%%%%%%%%%%%%,,,%%%%,,,,%%%%%,,,%%%%%%,,,%%%%%,%%%%%%%%%%%,,,%%%%%,,,,%%%%,,,%%%%,%%%%%,%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%,%%%%%,,,,%%%,,,,,,%%%%%,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~%%%%%,,%%%%%%%%,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,%%%%%%,,~,,,,,%%%%,,,%%%%%,,,,,,,;,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,----,,,,,,,,,,,,,,,,,,,,,,------------------,~~~~~~~~~,,,----------------------------------------,--------------------------------------------------------------------------------------~~~~~~~~~~,,,,,,,,..,.,,,,,,,,.%%%%%%%%%%%%%%%%%%~~.%~%%,,,,,,,,,,.%%%.%%%%%%%%%.%.%.%,.%%%%%%%%%%%%%%%..%%%,,,,,%%%%%%.%..,,.,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~~___________________________________:::::::::__~_::::::::::::::%%%%%%:_______________~~~~~~~~~__::::::::::::::__~~~~~~~~~~__:::::::::::---~~~~~~~~~~~~~~~~~~~~__:::::::::::::::::::::::::::::::::::::::::%%%::::::::::%%%%%%%:::::::::::::::::__________~~~~~%%%%,,,,,,,,,,:%%%%%::%%%%%,,%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%,,,,,*,,*,,,%%%%%%%%%%%%%,%%%%%%%,%%%%%%%%%%%%%%%%%%%,,%%%%%,,,%%%%%,%%%%%,%%%%%%%%%%%%%%%,%%%%,,,,,%%%%%,%%%%%,,,%%%%%,,,,,%%%%%,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~,-----------------------------------------------------------------------------------------,-------------------------------------~~~~~~~~~~~,,,,,%%,%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%.,,.,%%%%,%.%.%%%%%%%%%%%%%.%%%,,%%%%%.%%%%%%%%%%%%%,,,,%%%%%%%%...,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--::-----------------~~~~~~~____________________________________::::,::::::::::::::::::::::::::::_______________~~~~~~~___:::::::::::::::::~~__~~~~~~~_:::::::::::::~~~~~~~~~~~~~~~~~~~~~__~,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~_____~~~~~-%%%%%%%%,,,,,,,::::%%,,%%%%%,,%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%*,******,*,,,,,,%%%%%%%%%,%%%%%%%,%%%%%%%%%,%%%%%%%%%,,%%%%%,,,%%%%%,,,,,,,,%%%%%%%%%,,%%%%%,,,,,,,,%%%%%,%%%%%%%%%%%%%,,,,,%%%%%,%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%,,~~~~~~~~~~,%%%%%%%%%%%%,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,%%%%%,,%%%%%%,,,,;,,,%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~~------------c--------------------------------------------------c--------------------------------------------------------------~~~~~~~~~~~~~,,,%%%.%.%...%%%%,%.%%%%%%%%%%%%%%%%.%%%%%%%.%%%%%%%%%%%%%%%%%%%%%,,%.%%.%%%,,%%%%%%%%%%%%%%%%%%%,,,,%%%%%%...,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----:::::::-----------~~~~~~~____________________________________::::::::::::::::::::::::::::::::::__________~~__~~~~~~~~___:::::::::::::::::_____~~~~~~~___::::,:,:,___~~~~~~~~~~~~~~~~~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~__~~~~~~,%%%%%%%%%,,,,,,,:::%%,,%%%%%,,%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%,,,**,******,*,*,,,,%%%%%%%%,,%%%%%%%,%%%%%%%%%,%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%%%%,%%%%%;,%%%%%,,,,%%%%%%%%%%,,,,,%%%%%,,;,;,,%%%%%,%%%%%%%%%%%%%%%%%,,,%%%%%~~~~~~~,%%%%%%%%%%%%,,,,;,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%,,,,,,%%%%;,,,,,%%%%%%%%%%%%%%%%%%%%,,%%%%%,%%%%,,,,%%%%%,,,,,%%%%%,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,;,,,,,,,,,,,,,,,,,--------------------~~~~~~~~~~c----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~,,,%%%,%%%%.%%%%%.%%.%%%%%%%%%%%%%%%,%%%%%%%%%%.%%%%%%%%.,%%%.%%%%%.%%.%%%%%,,%%%%%%%%%%%%%%%%.%%%%,,%%%,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----:,::::::--------~~~~~________________________________________:::::::::::::::::::::::::::::::::__________~~~~~~~~~~~~____:::::::::::::::::____~~~~~~~~____~___________~~~~~~~~~~~~~~~~~~~~~~,:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~,%%%%%%%%%%%%,,,,,,%%%,,,%%%%%,,%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,************,,,,,%%%%%-~~~,%%%%%,,,%%%%%%%%%,%%%%%,,%%%%%%%%%,,%%%%%%%%%,,,,,,,,,%%%%%%%%%%%%,%%%%%,,,%%%%,,,,%%%%%,%%%,,,,%%%%,,,,%%%%,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%~~~~~~~,%%%%%%%%%%%%%%%%%,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,;%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,%%%%%,,,%%%%%,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------~~~~~~~~~~~,,,-------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~,,,%%%..%%.%.%%%%%.%%%%%%%%%%%%%%%%.%%.%%%%%%%%%%%%%%%%%%%%%%%%..%.%%.,,.,,,,,,,,%%%%%%%%%..%%.%%%%,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:::::::::-------~~~~~_______________________________________::::::::::::::::::::::::::::::::::_________~~~~~~~~~~______:::::::::::::::::::___~~~~~~~~___~~~_________~~~~~~~~~~~~~~~~~~~~~~~~,:::,,:::::::::::,,,:::,::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~,,%%%%%%%%%%%%%%,%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,%%%%%,%%%%%*,,********,*,,,%%%%%-~~~,%%%%%,,,%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,%%%%%,;,,,,%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%,,,%%%%%~~~~~~~,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%,,%%%%%,,,%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------~~~~~~~~~~~,,,------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~--,%%%.%%%%%.%.....%%%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%%%%%.%..%,,,,,,,,,,,,%.%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::::::::-----____~~____________________-_________________:::::::::::::::::::::::::::::::::::________~~~~~~~~~~~~______::::::::::::::::::::_~~~~~~~~~___~~~~________~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,::::,::::,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~~,%%%%%%%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%,,*********,,,,,,,,,,-~~~~,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,%%%%%%%%%%%%,,,,%%%%%~~~~~~~,,%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%,%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------~~~~~~~~~~~,,,,----------------------------------------------------------c------------------------------------------------------------~~~~~~~~~~~~~~~~--%%%,....%..%%.%%.%%%%%%%.%%.%%%%%%%%%%%.%%%%%%%%%%%%%.%%%,,.%%%.%%%,,,,,,,,,,,,,%%%%%%%%%%%.%%%%%,,.,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------:::::::::,:----__________________________-________________:::::::::::::::::::::::::::::::::::_________~~~~~~~~~~~~_____::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~%%%~~~~~~~~~,,,,,,::,,,:::,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::__~_~~~~~~~~~%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%,,**********,*,;,,,,,~~~~~-,,~,,,%%%%%,%%%,%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,~~,%%%%%,,,,,,%%%%,%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%,,,,,,,;,,,%%%%%%%%%%%%%%,,%%%%%~~~~~~~,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%,,%%%%%%%%%%%%%%%%%%,%%%%,,,,,,,,,,%%%,,,,,,,,,%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~,,-----------------------------------------------,----------------------------------------------------------c---------------~~~~~~~~~~~~~~~~--,%%%%%.,%%%%%%.%.%.%%%..%....%%%%%%%%%%%%%%%%%%%%%%.%%%%%,,.%%%%%.%,,,,,,,,,,,,%%%%%%%%%%%%%%.%%%,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~-----------:::::::,:::::__________________________-________________:::::::::::::::::::::::::::::::::::________~~~~~~~~~_________::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%~__~~~~~,,,,~~~~,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~%%%%%%%%%%%%%%%%%,%%%%%%%%%%%,%%%,%%%%%,,%%%%%%%%%,,,%%%,,,,,,%%%%%%%%%,**%%%%%******,,-,,,,~~~~~~,~~~,,%%%%%,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~%%%%%%,,,,%%%%%,%%%%%%%%%%%%%,,%%%%,,%%%%%%,,,,%%%%%,%%%%%,,,,,,%%%%%%%%%%%%%,%%%%%~~~~~~~~~,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------~~~~~~~~~~,,--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~--,,,%%%%,%%..%%%%%,%%%%%%.%%%%%%.%%%%%%%%%%%%%.%%%%%%%%%%,,,...%%%%%,,,,,,,,,,,,,%%%%%%%%.%%.%%%%%%%,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~------~~~~~~~~~~~~~~---------~------------:::::::::::::___________________________________________:::::::::::::::::::::::::::::::::::________~~~~~~~~~________::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%::__~~~~,,,,~~~~~~,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~%%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%,,,%%%%%**,%%%%,---,~~~~~~~,~%%%%%%%%%%,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,,,%%%%%~~~~~~~%%%%%%%,,,%%%%%,%%%%%%%%%%%%%,,%%%%%%%%%%%,,,,,%%%%%%%%%%%,,,,,,,%%,,%%%%%%%%,%%%%%~~~~~~~~~,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~-,,--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~---,,%%%%%%%%%%%%..,%%.%%%%%%.%.%.%%%%%%%%%%%%%%.%%%%%%%%%,.%%%%%%%.,,,~~~~~;,,,,,%.%%%.%%..%.%%%%%%%,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,-----------~~~~~~~~~------------------------::::::::,::::__________________________________________:::::::::::::::::::::::::::::::::::_________~~~~~~~~~_______:::::::::::::::::::::::,:::::_~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%::%%%:::_~,,,,,,,~~~~~~~,,,,~~~~~~,,,,,,:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%,%%%%%%%%%%,,%%%%%%%%%%%%%%,,%%%%%,%%%%%*,*%%%%%---~~~~~~~~,~%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,~~~~~~~~~~%%%%%%%%%%%%%%,%%%%%%%%,,,,,,,%%%%%%%%%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%,%%%%%~~~~~~~~%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%,,,,,,,%%%%%,,,,,,,,,%%%%%,,%%%%%%%%%%%,,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~--------------------------------------------------------------------------------------------~~-----~~--------------------------~~~~~~~~~~~~~~~--,.%%%%%%%%%%%..%%%.%.%.%.%.%%%.%%%%%%.%%%%%%%%%%%%%%%.%.,%%%%%%..%%,,~~~~~;,,,,.%%%.%%%...%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,------------------------------------------,::::::::::::__________________________::_______:::::__::::::::::::::::::::::::::::::::::::_________~~~~~~~~~_______:::::::::::::::::,::,::::::::___~~~~~~~~~~~~~~~~~~~~~~,,,::::::%:::::,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~%%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%,%%%%%%%%%%%%%,,,,%%%%%,%%%%%,,*%%%%%---~~~~~~~~,~%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%,,,,,,,,~~~~~~~~,,%%%%%%%%%%%%%%,%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%~~~~~~~~%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%,,,,,,%%%%%,,,,,%%%%%%%,,,,,,,,,%%%%%,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------~~~~~~~~~-----------------------------------------------------------------c-----c------------------~~~~~~~~~~~~----------,--------------~~~~~~~~~~~~~~~~-,,%%%%%%%%..%%%.%%%..%%%%%%.%%%%%%%%%%%%%%%%%%%%%%.%.%%%,%%%%%%%%%%,,~~~~~,,,,,,,%%%%.%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,--------------------------------------:::::::::______________________:::_:::::::_____::::::::::::::::::::::::%:::::::::::::::::::__________~~~~~~~_______:::::::::::::::::::::::,::::::___~~~~~~~~~~~~~~~~~~~~~,,,,:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,_,,,,::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,,%%%%%%%%%%%%%,,,,%%%%%,%%%%%*,,%%%%%%%--~~~~~~~,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%~~~~~~~~%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,,,,,%%%%%,,,,,%%%%%%%,,,,,,,,,%%%%%,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~,,---------------------------------------------------------------------------------------~~~~~~~~~~~~~------------------------~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%...%.%%..%.%%%%%%%%%%%%%%%%%%%%%%.%.%.%%%%%%%%,~~~~~~--;,,.%%%%%%%%%%.%%%%%%%.,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,-------------------------------------:::::::________________________::::::::::::::___::::::::::::::::::::,:,:%:::::::::::::::::::__________~~~~~~~~~~____::::::::::::::::::,:,,:::::::::___~~~~~~~~~,,,,,,:::,,,,,,:::::::::::,,,,,,,,,::,,,::,,,,,,,,,,,:_~,,,,:::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,,,,%%%%%,,**,****%%%%%%%---------;,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,,,-~~~~~%%%%%%%,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,%%%%%,,,,,,%%%%%,,%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,%%%%,,%%%%%%%%,,,*****%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------~~~~~~~~~-,,--------------------------------------------------------------,------------------------~~~~~~~~~~~~------------------------~~~~~~~~~~~~~~~~~~.%%%.%..%%.%.%%%%%%.%%%%%%....%%%%%%%%%%.%%%%%%%%%%.%%%..,%.%%%%%%%,~~~~~~--,,,,%%%%%%%%.%.%%..%,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,------------------------------------,,::::__________________________:::::::::::::::__::::::::::::::::::::::::%::::::::::::::::::___________~~~~~~~~~~~~__:::::::::::::::::::::::::::::::::::~~~~,,,,::::::::::,,,,,::::::::::::,,,,,,,::::,:::,,,,,,,,,,,:__~~,,,,,::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~,,%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,***,*****%%%%%--------,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%,,%%%%,,,,,,,~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%%%%,,,~~~~~%%%%%%%,%%%%%%%%,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,%%%%%,,,,,,%%%%%,,%%%%%,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%,,****,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------~~~~~~~~~~--,---------------------------------------------------------------------------------------~~~~~~~~~---------------------------~~~~~~~~~~~~~~~~~~~%%%%%%.%%%%%%%%..,,%%%...%%%.%%%%%%.%%%%%%%%%%%%%%.%%.%%%.%.%%%%%%,~~~~~~---,,,%%%%%%.%%%%%%%%%,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,----------------,,,,-------------,,,,,,,:_______________________::::::::::::::::::::::::::::::::::::,_:::::,%::::::::::::::::::___________~~~~~~~~~~~~_::::::::::::::::::::::::::,::::::::::,::,,:::::::::::::::,,:::::::::::::::::,,:::::::::,:::,::,,:___~~~,,,,:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~,,%%%%%%%%%%%,,,,,,%%%%,%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,*,**********,%%%%%-------,,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%,,%%%%%,,,,,,~~~~~~~%%%%%%%%%%%,%%%%%%%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%%%%,,,~~---%%%%%,,,%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%,,%%%%%,,,%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,%%%%,,,***,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------~~~~~~~~~~-,-----------------------------------------------------------------------------------------~~~~-..--------------c--------------~~~~~~~~~~~~~~~~~~.%%.%.%.%%%%.%..%.,%%%%.....%.%%%.%%.%%.%%%%%%%%%%..%..%%%%%%%%%%,~~~~~~~--,,,%%%%%%%%%%%%%%%.%.%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%,,,%%%%%,,,,,,,,,,---------------,,,,----------%%%%%,%%%%:__________________%%%::::::::::::::::::%%%::::::::::::::::::_:::,,%%::::::::::::::::::___________~~~~~~~~~~~~_::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::__~~~~,,,,:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~,%%%%%%%%%%%,,%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,*,***********%%%%%,,,-,,,,,,,,,%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%,,~~~~~~~~%%%%%%%%%%,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,%%%%%,,,,~---%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%,,%%%%%%%%%,,,,,,,,,%%%%%*,****,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------~~~~~~~~~~~~,-----------------------,-----------------------------------------------------------------~~~~~--------------------------------~~~~~~~~~~~~~~~~~~~.%%%%.%%%%%%%%%%..%%%%%%%%..%%%..%%%%%%%%%%%%.%%%%....%%.%%%%%.%~~~~~~~~--,,,%%%%%%%%%%%%%%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,%%%%%,,%%%%%,,,,,,,,,,,--------------,,,,----------%%%%%%%%%%-_________________%%%%%::::::::::::::::%%%%%::::::::::::::::::::,::%%::::::::::::::::::___________~~~~~~~~~~~~_::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::_~~~~~~,,,::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~,%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,%%%,,,,,,,,,,%%%%%,,,,,,,,**************,,%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%,,%%%%%%%%%,,~~~~~~~%%%%%%%%%%,,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%%%,,,,,,,%%%%%,,,,,,,,%%%%%,,,%%%-,%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%,,%%%%%%%%%,,,,,,,,,%%%%%***,***,,%%%%,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,-----------,-~~~~~~~~~~~~~,,-----------------------------------------------------------------------------------------~~~~~-----------------------,---------~~~~~~~~~~~~~~~~~~~%%%.%%%%%%,%%%%.,%%%%.%%%..%%.%.%%%%%%%%%%.%%%%%%%%%,,.%%%%%%%%~~~~~~~~,,,,,%%%%%%%%%%%%%.%.%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,%%%%%,,%%%%%%%,,,,,,,,%%%%%----------,,,,,----,,,,-%%%%%%%%%%,_________________:::::,:,:,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________~~~~~~~~~~~__::::::::::::::::::::::,::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::,,,::::::_~~~~~~,,,:::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~%%%%%%%,,,,,,%%%%%,,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,*,*************%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%,,%%%%%%%%%,,~~~~~~~%%%%%%%%%,,%%%%,%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%%%%%,,%%%%%%,,,,,,,%%%%%,%%%%%,,,%%%%,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%%%%%,,,,,,%%%%%%%%***,******,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,------------,~~~~~~~~~~~~~~,,------------------------------------------------------------------------------------------~~~-------------------------.--.-----~~~~~~~~~~~~~~~~~~%.%.%%,%%%%.%%%.%%%%..%%%%.%%.%%%%%.%%%%.%%%%%.,,%%%,,,%%%%%%%%%~~~~~~~~,;,,,%%%%%%%%.%%%.%%%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,%%%%%,,%%%%%%%,,,,,,,,%%%%%-%%%%%---,,,,,,,,,,,,,,,%%%%%%%%%%,~~~~_____________:::::,::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::___________~~~~~~~~~~~__::::::::::::::::::::::,,,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,_~~~~~~,:::::::::::::::::::::::::::::::::,:::__~~~~~~~~~~~~~~~~,%%%,,,,,,,,,%%%%%,,,%%%%%%%%%%,,,,,%%%%%%%%%,,,,,,,,%%%%%%,,,,,,,**************%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,%%%%%,,~,,,~%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%%%%,,,,,%%%,,,,,,,,,,,,,,%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%,,,,,,%%%%%%%%**,,,****,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------~~~~~~~~~~~~~~~,,,--------------------------------------,--------------------------------------------------------------------.-%%%%.--------------~~~~~~~~~~~~~.%%%..%..,%%%%%.%.%%..%%%.%.....,%%%%%%.%%~~~%.%~~~~~~~~~,%%%%%%%%%~~~~~~~~,,,,,,%%%%%%%%%%%.%,,.%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,%%%,,,,%%%%%%%,,,,,,,,%%%%%-%%%%%---,,;,,,,,,,,,,,%%%%%%%%%%%%%%~~_____________:::::,:,::,:::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::__________~~~~~~~~~~~__::::::::::::::::::::::,,,,::,:::::::::::::,::::::::::::::::::::::::::::::::::::::::::,:::::::::::_~~~~~~,:,:::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%,,,,,%%%%%%%%%,%%%%%,,%%%%%,,,,,,,***-***********%%%%%%%%%%%%%%%%%%%;%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,%%%%,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------~~~~~~~~~~~~~~~,,----------------------------------------------------------------------------------------------------------.%%%%.%%%.----,--------~~~~~~~.~.~~.%.%%%%%%%,%%%%%%%..%.%%%%%.%%..,,%%%%%%~~~~~~~~~~~~~~~~~~~%%%%%%%%~~~~~~~~,,,,,,,,%%%%,%%,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,%%%%%%%,,,,,,%%%%%,%%%%%--,,,,,,%%%%%,,,%%%%%,,,,,%%%%%~~~____________::::::,:::,::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::_________~~~~~~~~~~~__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,----**********%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%-,,%%%%%%%%%%%%,,,,,,,,,,,,,%%%%,,%%%%%,,,,,,,,,,,%%%%,,,,%%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------.-%.%%%%%%%%-.---.....----%%%%~~~%%.~~%%%%.%..%%.%%%%%%%%%%%%%%%...%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~%%%%%~~~~~~~~~,,,,,,,,,,,,%,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,%%%%%%%,,,,%%%%%%%,%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%,%%%%%~~~~~_________-:,,:,,,::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~~~~~~__,::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,%%%%%,,%%%%%%%%,,%%%%%,,,,,,,,---************%%%%%%%%%%%%%%%%%%%%%;,,%%%%%%%%%%%%,%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%---%%%%,%%%%%%%,,,,,,,,,,,,%%%%%,,,%%%%%%%%,,,,%%%%%%%%,,,%%%%%%%%%%%%%,,,,,%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,,%%%%%%%%%%%%,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;--------~~~~~~~~~~~~~~~~~,----------------------------------------------------------------------------------------------------------,%%%%%%%%%%%%%%%%%.%%-%%%%%%.%%%%%%%%%.%..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,;,;%%%%,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%~~~~~~________-::::::::::,,:::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~::::::::::::::::::::::,:::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%,,,%%%%%,,%%%%%%%%,,%%%%%%%,,,,,---*************%%%%%%%%%%%%%%%,%%%%%,,%%%%%%%%%%%%%,,%%%%,,,%%%%%,,,,,,,,%%%%%,,,,%%%%%%%%%%~~-,,,,,%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%%,,,,%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%%%%%,%%%%%,%%%%%%%%%%,,%%%%%,,%%%%%%%%%%%%,,,%%%%%;%%%%,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~~~~~~~~~~~~~~,,,-------------------------------------------------------------------------------------------------..-----,%%%%%%%%%%%%%.%%..%.%.%%%%.%%%%%%%%.%.%.%..%%%%%%%%%%%%%%%.%%%%%%%.%%%%%~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,,;;,,%%%%%%%%%%%%%%%%%%%%%%,,,~~~~_______-:::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::_::::::::::::::______~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~,:::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,%%%%%%%%,,,,%%%%%,,,,,--**%%%%%*******%%%%%%%%%%%%%%%,%%%%%,,%%%%%%%%%%%%,,,%%%%%,,%%%%%,,,,,%%%%%%%%,,,%%%%,,%%%%%~~~~,,,%%%%%%%%%%,,,,,,,,,,%%%%%%%,,,,%%%%%,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%,%%%%%%%,,%%%%%%%%%%,,%%%%%,,%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------~~~~~~~~~~~~,,,,,,,,-----------------------------------------------------------------------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%...%%%.%%%.%%%%%%.%%.%.,...%%%%%%%%%.%.%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,,,;,,%%%%%%%%%%,,,%%%%%,,,,,,,,~~~~_____::::::::::::::::::::::::::::::::::::::,::,::::::::::%%:::::::___::::::::::::______~~~~~~~~~~~~~~:,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~,:::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,%%%%%%%,,,,,%%%%%*,,----**%%%%%********%%%%%%%%%%%%---%%%%%*,%%%%%%%%%%%,,,,%%%%%,%%%%%%,,,,%%%%%%%%%,,,%%%%%,,,~~~~~~,,,,%%%%%%%%%%,,%%%%,%%%%%%%%%%,,,,%%%%%,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%%,%%%%%%%%,%%%%%%%%%%,,%%%%%,,%%%%%%%%%%%%,,,,%%%%%;,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,,--------~~~~~,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------,-------------%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%.%%%.%%%%,.%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,,,,,,,,,%%%%%%%%%%,,,%%%%%%%,,,,,,,,--_____::::::::::::::::::::::::::::::::::::::::::::::,:::::%%:::,,::___::____::::::::_____~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~:::::::::::::::::::::::::::::::::-~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%,,,,,%%%%%,,,,,%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%-,,%%%%,,,,%%%%%%%%%,,,,,%%%%%,%%%%%,,,,,%%%%%%%%%,,,%%%%%,%%%%~~~~,,,,%%%%%%%%%%,%%%%%%%%%%,%%%%%,,,,%%%%%,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,%%%%%%%%%%%%,%%%%%%%%,,%%%%%%%%%,,%%%%%,,%%%%%%%%%%%%,,,,%%%%%,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~,,,,,,,;,,,,,,,,,,---------------------------------------------------------------------------------------------------%%%%%%%.%%%%%%%%%%%%.%%%%.,,,,,,%%%%..%.%,%%%.%..%%%%%%%%%%%%%%%%%%%%%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%,,,,,%%%%%,,,,,,,,-----_:::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::,,::___::____:::::::::____~~~~~~~~~~~__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%~~~~~~~~_:::::::::::::::::::::::::::::::-~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%%%%%%%%,%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%,,,,,%%%%%%%,,,,,,,,,%%%%%%%%**,*,,*,,,,$,,,,%%%%%,,,,,,%%%,,%%%%%,,,,,%%%%%%%%%,%%%%%%%%%%%%~~~~,,,,,%%%%%%%%%,%%%%%%%%%%,%%%%%%%%,,,,,,%%%%%,%%%%%%%%,,,,,,%%%,%%%,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,%%%%%,,%%%%%,,,,,,,,%%%%%%%%,,,,,,%%%%%,,%%%%%,,,,,,%%%%%%%%,,%%%%%%%,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------.%%%.%%%%%%%%%%%%%.%%%%....%,.,.,,.%%%%%%%.%..%%..,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%,,%%%%,,,,,,,,%%%%%,,,,,,,,,%%%%%,%%%,,,,,,%%%%%,,,,,,,,,----:::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::_,_______:::::::::____~~~~~~~~~~~___::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%~~~~~~~__::::::::::::::::::::::::,:___~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,,,%%%%%%%,,,,,,,,,,%%%*,,,***,,,*,*,,$,,**,%%%%%,,,,,,,,,,%%%%%,,,,,%%%%%%%%,%%%%%%%%%%%%%,~~,,,,,,,,,,,%%%,,%%%%%%%%%%,,%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,%%%%%%%%%,,%%%%%,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,%%%%%,,,,,,,,,%%%%%%%,,,,,,%%%%%%,%%%%%,,,,,,,,,,,%%%%%%%%%%%,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~,,,,,,,;,,;,,,,,,,,---------------------------------------------------------------------------------------,--------%%%%%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%%%%.%.%.%%%...%%.%.%%%%%%%.%%%%..%%%%%%%.-~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,;,,,%%%%%,,,,,%%%%,%%%%%,,,,,,,%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________::::::::____~~~~~~~~~~~___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:,:::::%~~~~~~~~__:::::::::%%;:::::::_________~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,,,,,,**%%%,,,,,%%%%%,,,,,%%%,,,,%%%%%,%%%%%,,,,,,,%%%%%,,,,,,,,,,*,*,,,***,,*************%%%%%,,,,,,,,,,,%%%%%%,,,%%%,%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,%%%%%,,,,,,%%%%%,%%%%%%%%%,,,,%%%%%%%%%,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,%%%%%%,,%%%%,,,,,%%%%,,,,,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%;,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------,,,-----%%%%%%%%%%%.%%%%%%%.%.%%.%%%%%.%%%%%%%...%%%%.,,%%%%..%.%%%%%%.%..%%.%%%%,----~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,;,,,%%%%,,,,,%%%%%,%%%%%,,,,,,%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::_________:::::::_____~~~~~~~~~~~____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::%~~~~~~~~__:::::::::%%::::::::__________~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,*****,,,,,%%%%%,,,,,,,,,,,,%%%%%,,%%%%,,,,%%%%%%%%,,,,,,,%%%%%,,,****,**,**********,%%%%%%%%%%%,,,%%%%%%%%,,%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,%%%%%,,,,,,%%%%%,,,,,%%%%%,,,,%%%%%%%%%,,%%%%%,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,%%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,----~~~~~~,,,,,,,,;,;,,,,,,,,,-------------------------------------------------------------------------------------,,,,,-,,%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%,,%.%.%.,..%%%.%.%.%%%%.%.%%%%%%..%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,;,,,,%%%%,,,,,%%%%%,,,,,,,,,,,,%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________-:::::::_____~~~~~~~~~~~~____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~~~~~~~~~~_::::::::%::_::%%:__~~_~~~___~~~~~~~~~~~~~~~~~~,,;,,,,,,,,,,,,%%%%%%%%%%%%%,******,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%,,%%%,,%%%%%*,****,***************%%%%%%%%%%%,,,%%%%%%%%,%%%%%%%%%%%%%%%%%%~~~~~,,,,,,,,,,%%%%,,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,,,,%%%%%,,,,%%%%%%%%%,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%,,%%%%%,,,%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------,,,,,,,,%%%%%%%%%%%%.%%%%%%%%%.%%%%.%..%%%%%%%.,.%%%%%%%%.%%..%%.%.%.%.%%%.%%%%%%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,%%%%%%%:%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____::-:::::::%%%____~~~~~~~~~~~_____:::::::::::::::::::::::::::::::::::::::::::::::::%::::%%%:::::::::::::::::::::::::::::,:::::::,,~~~~~~~~~~:::::::::_____~~~~~~~~~~~___~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%******,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,%%%%%,%%%%%,******,*******$$$*****%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~~,,,,,%%%%%%%%%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%,%%%%%,,,,%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~,,-,,,,,,,,;,,,,,,,--------------------------------------------------------------------------------------%%%,,,,%%%%%%%%%%%.%%%%.%%%%%%%.%.,.,%%%%%%%%%,,..,.%.%.%%%%%%%.%%...%%%..%%%%%%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,%%,,,,,,,,,,,,%%%,,,,,,,,,,,,,%%%%%%%::%::::::::::%%%%%::::::::::::::::::::::::::::::::::::::::::::::_____:::::::::%%%%%___~~~~~~~~~~~______:::::::::::::::::::::::::::::::::::::::%%%::::::%:::%%%%%::::::::::::::::::::::::::::::::::::,,,~~~~~~~~~%::::::_~____~~~~~~~~~~~~___~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%******,,,,,*%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%%%%,%%%%%,,,,************$$*******%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~~%%%%%,%%%%%%%%%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~-----,,,,,,,,,,,,----------,,--------------------------------------------------------------------------%%%%%%%%%%%%%%%%%%%%,,,.,%.%%%.%%%%%%%,,,,%%%%%,,,,,.%%%%%%%%%%%.%%%.%%%%%.%%%%..%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,%%%%%,,,%%%%%,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::____:::::::::::::::___~~~__~~~~~~_______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::,~~~~~~~~~~%%:::_~~~~~~~~~~~~~~~~~~___~~~~~~~~~~~~~~~%%%;,,,,,,,,,,,%%%%%%%%,,,,%%%%%*******,,,,****,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%**,,,********************%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%,%%%%%%%%%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~-----,,,,,,,,,,,,--------,,,--------------------------------------------------------------------------%%%%%%%%%%%%%%%%%%%,,,,,.%%.%%.%%%%%%%%,,.%%%%%.,,,,,%%%%%,%%%%%%.%.%%%%%.%%%%%%%%%%%%%%-~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,%%%%%%%%%,%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%,,,,,%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________~~~~~__~~______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::~~~~~~~~~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,,,,,,,,,,,%%%%%%%,,,,,%%%%%**$$**,,,,,,,,,,%%%%%%%,,,,,,,,%%%,,,,%%%%%%%%,%%%%%%%%%%%%,,,*,,,,,,,*******************,***,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,~~~%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~-----,,,,,,,;,,,,,,,,,--,,,,,-----------------------------------------------------------------------%%%%%%%%%.%%%%%%%%%.,,,,,,,.....%%%%%...%.,,,%%%,,,,%%.%%%%%.%%%%%%%.%%%%%%%%%.%%.%%%...%%.-,--~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%%,,,,%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________~~~~~~~~________::::::::::::::::::::::::::::::::::::::::::::::_:::_:::::::::::::::::::::,,::,::::::::::::::,;,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%,,,,,,,%%%%%%%,,,,,,,,,****$$*%%%%%,,,,,%%%%%%%%,%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,********************,,*%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%,%%%%%,,%%%%%%%%%%,,,,,,%%%,,%%%%%%%%%%,*%%%%%,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,-~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------~~~~~~~~~---------..%%%%%%%%...%%%%%%%%%%%%.,.,,,,%%%%%.%%.%.%%.,,,,,..%%%%%%%%%%%%%.%.%%.%..%%%%%..%.%%%..%%%%%%%%---,~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%,,,,,,,%%%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%,,%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%,,,,%%%%%%%%%:::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________~~~~~~~_________::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::;,:,~~~~~~~~~~~~~~,,,~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%,,,,%%%%%%%%%%,,%%%%%********%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,**********************,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%,,,,,%%%%%%%%%,,,,,,%%%%%,%%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~-----,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------~~~~~~~~~~~-----.--%%%%%%.%%%%.,.%%%.%,..%.%.%%%%%,%.%.%.%.%.%.%.,,.,%%%%%%%%%%%%%%%%%%%.%%%%..%%.%%.%%.%..%.%.%%%%%..----~~~~~~~~~~~,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%,,,,,,,,,,,,%%%%%%,,,,%%%%%,%%%%%,%::::::::::%%%:::::,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________~~~~~~~~~~__~~~~~:,::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%,,%%%%%%%%%%%,,%%%%%********%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,*******************$*,,%%%%%,,,,,,,%%%%%%%,%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,%%%%%%%%%,,,%%%%%%%%,%%%%%%%%%%%%%%%%%,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,,,---~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,---,;,-----------------------------------------~~~~~~~~~~~~-,,,-,%%.%%%%.%%%%.%.,,.%%%.%%%%..,%%%%%%%.%%%%%.%%%.,,,%.%%%%.%%%%%..%..%%%%;..%%.%.%%%.%.%%%%.%%%%...%%%%%..-,--~~~~~,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%%%%%%,,,,,,%%%%,,,%%%%,,,,,%%%%%,%%%%%,%%::::::::%%%%,:::,%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~~~~,::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::;:;:::::_~~~~~~~~~~,,,,::,~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%,%%%%%%%%%%%,,%%%%%********%%%%%,,,,,%%%%%,,,%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,**,,,******************%%%%%%%%%%,,,,,,,%%%%%%,,,%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%,,%%%%%%%%%,,,,,,%%%%%%%%%%%%,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,;;,,,,,,,,,,,,-,,,,,,,----------------------------------------~~~~~~~~~~~~~,,,-%%%%%%%%%.%%%%%.,,%%%%%%%%.%%,%%%%%%.%%%.%.%%%.%.,%%%%%%%%%%%%%%%%%%%%%,,,%%%%.%%.%%%%%%%%%%.%...%%%%%%%%%,--,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%,,,,,,,,,,,,,,%%%%%,,%:::::::::%%%,,,,,%%%%::::::,::::%:::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~,,:::::::::::::::::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::,,,~~~,,,,,,::::,~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%*******,%%%%%,,*,,,,%%%%%,%%%%%%%%%%%%,,,,,,,,%%%%%,,%%%%%%%%%,,,,,,************************%%%%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,-~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~-,,,,,,,,,,,,;,;,,,,,,-------,,,,---------------------------------------~~~~~~~~~~~~~~,,%%%.%%.%%%%..%%.%.,.%%%%%%%%%%%,%.%%%%.%%.%%.%%%....%%%%%%%.%%%%%%%%%%.%%%;.%%%%%%%.%%%..%%%%%%%.%.%%%%%%%.%.-,,,,.,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%%%%%,,,,,,,%%%%,,%%%%%,,%%%%%,,,,%%%%,,,%%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%::::::::::%%,,,,,%%%%::::,::::::%::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~,,,::::::::::::::::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::::::::::;:;::::,,,,,,:,,,,,::::::,~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*******,,,,,***$,,,,%%%%%,%%%%%%%%%%%%,,,,,,,,%%%%%,,%%%%%%%%%*,,,,****************%%%%*****%%%%%,,,,,%%%%%,,%%%%,,,,,,,,%%%%%%%%%,,,,,,,,%%%,,,,,,,,,%%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,~~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~,,,,,,;;,,,,,,-,,,,,,---------,,,-----,---------------------------------~~~~~~~~~~~~~~,-%%%%%%%%%.%.%..%%.%%.%.%%..%..%..%%%%%%%.%%.%%.%%.%%%.%.%%%.%%%%%%%%%%%%%%,.%%%%%.%.%%%..,%%%....%%%%%%%%%..,..,,%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,%%%%%%%,,,,,%%%%%,,,,,,,,,%%%%%%%%,%%%%%,,,,,%%%%%,,%%%%%::::::::::,,,,,,,%%%,::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~,,:::::::::::::::::::::::::::::::::::::::::____::::::::::%%::::::::::,:::::::::::::::::::::::;::,,,,,::::,,,::::::,,~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,*********,,,***$$**,,%%%%%,,%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,*****,,,~%%%%%%%%,,,,,%%%%%,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,,%%%%%,,-~~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,^^^^^*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,~~~~~,,,,,;;-------,,-----------,----------------------------------------~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%...%.%.%%%.%.%%.%.%%.%%%%%%%%.%%%%.%%%%%%%%%%%%%%%%%%%%.%%%%%%%%...%%%..%%%.%.%...%.%%%.%%%%%%%%%%.%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,~~,,%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,%%%,%%%%%,,,,,%%%%%%%,%%%%%,,,,,%%%%%,,%%%%%,,,,,,::::%%,,%%%%%,,::::::,,::%::::::::::::::::::::::::::::::::::::::::::::::::________~~~~~~~~~~~~~~~,:::::::%:::::::::::::::::::::::::::::::::::__:::::::::::%%%:::::::::::::::::::::::::::::::;:::::,,,,::::::::::::,,,,,~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%,%%%%%%,,*********,*****$$,,,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%,%%%%%%%%%%,***,*,~~%%%%%%%%%,,,,,%%%%,,,,,,%%%%%,,,%%%%%,%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,---~~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^^^^*,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,--~--,,,,---------,-----------,---------------------------------------~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%..%%%..%%%,%%%.%.%.%%%%%%%%%%%%%%.%%%%,.%%%%%%%%%%%%%%%%.%%.%..%.,,,,,.%%%%%.,.%%.%%%%%.%%%%%%%%.%..%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%,,,,,,,,%%%%%,%%%%,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,%%%%%%%%%%%%,:::::::::,%::::::::::::::::::::,,:::::::::::::::::::::::::__________~~~~~~~~~~~~~~,:::::::%::::::::::::::::::::::::::::::::::::_:::::::::::%%%:::::::::::::::::::::::::::::%:::::::::::::::%:::::::,,,,,,~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%,,%%%%%%%%%%,%%%%%,,**-****-*******$,,**,%%%%%%,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%*,***,*%%%%%%%%%%%,,,,,%%%%%,,,,,%%%%%%%%%%%%%,%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,%%%%%%%%,%%%%%,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,---~~~%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^^^^,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~--,,,,---~~~~~~~~~~~-------,,,,-----------------------------------~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%.%%%.%.%.%,%%%.%%%%...%%%%%%%%%%%%%%.%..%%%%%%%%%%%%%...%%%%.%.%%....%%.%%%%%%%%.%%%%%%%%%%%..%%%.%%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,~%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%,,,,,,,,%%%%%%%%%%,,,,,,,%%%%%%%%%,,,%%%%,%%%%%%,,%%%%%%%%,,%%%%%,,,,,,,,%%%%%%%%%%%%,:::::::::,::::::::::::::::::::::::::::::::::::::::,:::::::__________~~~~~~~~~~~~~~,:::::::%::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::%%::::::;:::::::%::::::,,,,,,,%%%~~~~~~~~~~~~~~~%%%%%%%%%%%%,,,,,%%%%%%%,%%%%%,,,*-***----******,,**,,%%%%%,,%%%%%,%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%,****,%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,%%%%%%%%%%,%%%%%,%%%%%%%%,,,,%%%%%%%%,,,,%%%%%,,,,%%%%%,,,,,%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,---~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^^^^*,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~------,,,,-------------------------------,-~~~~~~~~~~~~~~~~~~%%%%%%%%%.%%%%..%%%%%..%%,%%%%%.%.%%%%%%%%%%%%%%%%.%.,..%%%%%%..%.%..%%%%.%..%%%.%.%.%.%..%%%%.%%%%%%%%,%%%.%%%.%.%%%%,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%,,%%%%,,,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,%%%%%%%%%%%,,,%%%%%%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%::::::::,,::::,:::::::::::%:::,::::::::::,:::::::::::::::___________~~~~~~~~~~~~~~,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::%%:::::::::::::::::::::,,,,,,%%%%%~~~~~~~~~~~~--%%%%%,,,%%%,,,,,,,,%%%%%,%%%%%,,,***-------,%%%,,,,,,,%%%%%,,,%%%,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%*%%%******%%%%%%%%%,,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%,%%%%%,%%%%%,,,,,,,%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%-,,,,,,,,,-----~---%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^^^^**;*,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,---------------------------------~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%.%%%%...%%....%%.%%.%%.%%%.%%%%%%%%%%.%%,%%%%%%%%%%.%.%...%%%..%%%%..%%%%%%%%%.%%%%%%%%%%%,,%%%.%.%%%%%%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%,%%%%%%%%%%%%%,%%%%%,%%%%%,,,,%%%%%,,,,,,,,,,,,~~~,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,%%%,%%%%%%%%%::::::::::::::::::::::::%%::::::,:,::,::::::::::::::::_____________~~~~~~~~~~~~~~-,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::%%:::::::::::::::::%%,%,,,,,,%%%%%~~~~~~~~~~~---%%%%%%,,,,,,,,,,,,,,%%%,,%%%%%,,,,***-----,,%%%%,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%,,*******,**%%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,%%%%%,,,,,,%%%%,,%%%%%%%%%,,,%%%%%%%%,,,,%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%----,,,,,,,--------%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^,,^^^^^*,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~----,,,,,,--------------------------------~~~~~~~~~~~~~~~~~~~~%%%%%%.%..%%.%.%%.,,,.%%%%%..%%.%,,%%%%%%%%%%%%%%%%%%%%%.%%%.%%%%..%%.%.%..%%%%..%%.%%%%%%%%%%%%%%%%,,%%%%%...%%%%%.,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%,%%%%%%%%%%,%%%%%%%%,%%%%%,,,,%%%%%,,,,,,,,,,,~~~~~%%%%%,,,,%%%%%,,%%%%%%%%%%%%%%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%::::::::::::::::::::::::%%:::,:,,:::::::::::::::,:::::_____________~~~~~~~~~~~~~-,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::,::::::::::::::::%::::::::::::::::%%%%%%%,,,,,%%%%%,~%%%%%~~~~,,-,%%%%%,,,,,,,,%%%%,,,,,,,,,,,,,,,,,*******,,%%%%,%%%%%%%%%,,,,,,,,,,%%%%%%%%%%,,,,,%%%%%%%%%%,,**********%%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%----,,,,,,,--------%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,^^^^^,,,,,,,,,,,,;,,;,,;,;,,,,,,,,,,,,,,,,,,,,-,,~~~~~~~~~~~~~~~~~~~~~~~--,,,,;---------------------------------~~~~~~~~~~~~~~~~~~~~%%%%,%%%.%%%%..%%%%,,%.%.%.%%%%%..,,,%.%%%%%%%%%%%,%%%%%%.%%.%.%.%%%..%%%%%..%.%..%.%%%%%%%%%%..,%%%,%%%%%%.%.%.%.%,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%,,,,,,%%%%%~~~~~~,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%,,,,%%%%,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%,%%:::::::::,::::::::::::::%%:::::::,::::::::,:::::-:::::___________~~~~~~~~~~~~~~--,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::,:::::::::::::::::::::%%%:::::::::::%%%,,%%%%,,,,%%%,,,%%%%%~~,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,********%%%%,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,%%%%,,,*********%%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,%%%%%,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%------,,,,,,--------%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,**^^^^^^,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,---------,----------,-------------~~~~~~~~~~~~~~~~~~~~%%%%,,.%%%%%%%.%%%%%.%%%%...%%%.%.,,,.%%%%%%%%%%.,.%%%%%%.%%.,%..%%%%.,....%..%,.,..%%%%%%%%%%%%%%%%%%%%%%%....%%%..,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%%,%%%%%%%%%%%%%,%%%%,,,,,%%%%%,,,,,,%%%%%~~~~~~,,,,,,,,,%%%%,,,,,,%%%%%%%,%%%%%,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,%%%%%,%%::::::::::::::::::::::::::::;:::;:;::,::::,:::::::::::__________~~~~~~~~~~~_~---,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,%%%%%,%%%%,,,%%%%%,%%%,,,,,,,,,,,,%%%%%****%%%%,%%%%%,,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%,,,,,,***********,%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,%%%%,,,,,,,,,%%%%,,,,%%%,,%%%%%%%%%,,,%%%%%%,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,%%%%%------,,--,,,-------%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,*^^^^^^^*,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,-,---,,,,-,,,--,,,--,,,--,,,--------~~~~~~~~~~~~~~~~~~~~~%%%%.,%.%%%%.%%%%%%.%%%%%%%%%%%%,,,.%%.%%%%%%%,,,,%%%%%%.%%.%...%%%,,,.%%%%%%%.,,%%%%%%%%%%%%%%%%%%,%%%%%%%%%%.%%.,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%~~~~~~,,,,,,,,,,,,,,,,,,,%%%%%%%,%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%,,,%%%::::::::::::::::::::::::,;:::::::::::::::::::::::::___________~~~~~~~~~~__::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::::,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%*********%%%%%%,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%,*************,%%%%%%%%%%,,,,,,%%%%%%%%%%,,,,,,,%%%,,,,,,,,,%%%%%%%%%%%%,,%%%%%,,,,,,,,,%%%%%,,%%%%%,%%%%%%%%,,,,,,%%%%%,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%---------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,*^^^^^^^**,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,-,,,--------~~~~~~~~~~~~~~~~~~~~~%%%%,,,%....%%%.%.%%%%......%%.,,.,,,%%%%%%%%%%,.,,,%%%%%.%%.%%.%,,,.%.%.%%%%..,%%%%%%%%%%%%%%%%%%%,,,,,%%%--%%..%.,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%;%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%~~~~~,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%,,,%%%%%,,,,,,,,%::::::::::::::::::::::::::::::::::,::::,:::::::::____________~~~~~~~~~___:::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::,,%%%%%%%%,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%*********,%%%%%,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%***********%%%%%%%%%%%%%%,,,,%%%%%%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^^^^^,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~-----,;,,,,,,,,,,,,,,,,,,,,---------~~~~~~~~~~~~~~~~~~~~~%%%%,,,%%%%%%%%%%%.%%..%.%..%...,,%%,%.%%%%%%%,,,,,,,.%%%%%%%%%%%.,.%.%...%%%%,,%.%%%%%%%%%%,.,,,,,,,,,,,----..,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,--%%%%~~~~~,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,%%%%,,,,,,%%%%%,,,,,,%%%%%,,,%%%%%,,,,,,,,%:::::::::::::::::::::::::::;:::::::::::::::::::::_______~___~~~~~~~~~~__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::,,::::::::::::::::::::::::::::::::,,%%%%%%%%,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%%%%%*********,%%%%%,%%%%%,,,,,,,,,%%%%,,,,,,,,,,,,,,%%%%%***********%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%,%%%%,,%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*^^^,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,-----..----~~~~~~~~~~~~~~~~~~~~~%%%%,,.,,,.%%%%%%..%%%.%%%%%%.%%.%%%%%%%%%%%%%,,,%%.%,%%%%%%%%%%%%,..%%%%.%%%%,%%%%%%%%%,%%,,,,...,,,,,,,-----,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%,;,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,,--~~~~~~~~~~,,,%%%%%,,,,,,,,,,,%%%%%%%,,,,,,,,%%%%%,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,,,,,,,%:::::::::::::::::::::::::::,,,::::::::::::::::::::______~~~~~~~~~~~~~~~__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::,:::::::::::::::::::::::::::::::::,%%%%,,,%%%,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,%%%%,,,,,,,%%%%%%%%,***,*****,%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%***********%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%,,,,%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,;,,,~~~~~~~~~~~,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--;;-----------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,-----..-----~~~~~~~~~~~~~~~~~~~~~%%.%,,.%.%%%.%.%%.%.%%.%%%%%.%%%,%%%.%%%%%....,.%%%%%,%%%%%%%%%%%%,.%.%%%%%%%%..%%%%%%%%,,%,,....%,,,,,,,,---,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%;,,,%%%%%,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,--~~~~~~~~~~~~,,%%%%%,,,,%%%%%,,%%%%%%%%%,,,%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,,,,::::::::%%::::::::::::::::;::,:::::::::::::::::::::_____~~~~~~~~~~~~~~~~~_:::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::%::::::::::::::,:::::::::::::::::::::::::::::::::,,,,,,,%%%%%,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,**,*****,%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,%%%%,,,%%%%%***********%%%%%,%%%%%%%%,,,%%%%%%%%%%%%%%,,,,,%%%,%%%%%,,,%%%%%%%%%%%%%%%%%%,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,----.-.%--~~~~~~~~~~~~~~~~~~~~~~~~-,,%.%%%,%%%%.%%%%%%%%%%%%%%%.,%%%%%%%%%,%%.%%%%%%%.%%%%%%%.%%%,,%...%.%%%%%%.%%%%%%%%%,%.%%%...,,,------,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%;%%%%%%%%,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,,--~~~~~~~~~~~,,%%%%%,,,,%%%%%,,%%%%%%%%%%,,%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,,,::::::::%%%:::::::::::::::::,::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::%:::::::::,::::::::::::::::::::::::::::::::::::::%%%%,,,%%%%%,,%%%%%%%%%%%,,,%%%%%,,%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,****,,,,,%%%%%,,,,*---*,,%%%%%,,,,,%%%%%,,,,,,,,********%%%%%%%%,,,,%%%%%,,,%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,~~~~~~~,,,,;,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,---.%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~-.%%%%.,%%%%%%%...%%%%.%.%%%.,,,%%.%%%%.%%%%..%.%%%,,%%%%%%%%%,,%...%%.%%%%%%%%%%%%.%%%%..%%%%.,,--------,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%,%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,--~~~~~,~~~~,,,%%%%%%%,,%%%%%,,,%%%,%%%%%,,%%%%%%%%,,,,,,%%%%%,,,%%%%%%%%%%,,,,,,,,,,::::::::%%%::::::::::::::::::::,::,:::::::::::::::______~~~~~~~~~~~~~~~~~~,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,****,,,,,%%%%%*****---***%%%%,,,,,,%%%%%,,,,,,,,**,%%%%,%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,~~~~~~~~,;,,,,,,,,,,,;,,,,,,,,,,,,,,,;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,--.%%%%%.-~~~~~~~~~~~~~~~~~~~~~~~~~-%.%.%.%%%%%%%%.%%%.%.%%.%%.,,%%.%%%%%..%%%%.%%%%%,,%%%%%%%%%,,%%%%%%%%%%%.%%%%%.%%%%%%..%%.%.,----------,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,%%%%,%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,,-,~,,,,,,,%%%%%%%%%%%,%%%%%~~~,,~,%%%%%%%%%%%%%%,,,,,,%%%%%%%%,%%%%%%%%%%,,,,,,,%%%,,,:::::%%%::::::::::::::::::,:::::::::::::::::::___~___~~~~~~~~~~~~~~~~~-:::::::::::::::::::::::::::::::::::::::,::::::::%::::::::::::::::::::::::::,::,:::::,:::::::::::::::::::::::::::,%%%%%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%,%%%%%%%%%,,****,,,,%%%%%,,,,*,,,,,%%%%%,*%%%%%%%%%,,,,,,,,,,%%%%%,%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%,,%%%%%,%%%%%,,,,%%%%,,%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,%%%%%%%%--~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%.%%%%%%%%%%%%%%%%%.,.,,,%%%%%%%%%%%%.%.%%%.%%,%%%%%%%%%,,%%..%%%%%%%%%%%%%%%%.%%%-%%.%%.-----------,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%,%%%%%~~~~~~,%%%%%%%%%%%%%%,,,,,,%%%%%%%%,%%%%%,,,,,,,,,,,%%%::::::;::%%%:::::::::::::::::::::::::::::::::::::__~~~~__~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::,:::,,:::::::%::::::::::::::::::::::::::::::::::::::,::::::::::::::::::,::::::::::%%%%%%,,,,%%%%%,,%%%%%,,,,,,,,%%%%%%%%%%%%%%,,,%%%%%,%%%%,%%%%%,%%%%%%%%,,**,,*,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,%%%%%,,,,,,%%%%%,,,,%%%%%,%%%%%%%%%,,%%%%%,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,---,-----------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,%%%%~~~~~~~~~~~~~~~~~~~~--....%%%%..%%%.%%%...%%.%.%%%%%%%%%%%..%%%%,%%%%.%%%%%%%%%%,,,.%%%%.%%%%%%%.%%%%%%%%%%-.-..,---------------,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,~~~~~~,,,,,,,,%%%%%%%%%,,,,,,%%%%%%%%,%%%%%,,,,,,,,,,,%%%::::;::::%%%::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::,::::::%:::::::::::::::::::::::::::,::::::::,,:::::::::::::::::::::::::::::::%%%%%,,,,%%%%%,,,%%%%,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%,%%%%%%%%%%,,,,%%%%%,,,*,,**,,,,,,,,,,,,%%%%%%%%%%%%%%%%%*,,%%%%%,,,,,,%%%%%,%%%%%,,,,,%%%%%%,,,,%%%%%,,,,,,%%%%,,%%%%%~%%%%%,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,~~~~,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,;;,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~,,,,,,,,,,,,,,,,,,.%%%%.%%%%%.%%%%%%~~~~~~~~~~~~~~~~~~~--%%%%%.%%%%%%..,%.%..%%%%%%%%%%%.%%%%%.%.%.%%%%%%%%%.%%%.%...,,%.%%%%%%%%%%%%%%%%.%.%----------------------,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%%%%%,,,,;,,,,,,%,%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%~~~,,%%%%,,%%%%%%%%%,,,,,,%%%%%%%%,,%%%%,,,%%%,,,:::%:::::::::;:%%::::::::::::::::::::::::::::::::::_____~~~~~~~_~~~~~~~~~~~~~-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%,%%%%%%%%%%,,,,%%%%%,,,,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%**,%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%,,,,,%%%,%%%%,,,%%,,,,%%%%%~%%%%~~~,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,%%%%%%%%,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,;,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~--,,,,,,,,,,,,,,,.%%.%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~---%%%.%%.%.%%%%%%%%%%%%%%%%.%%%%%%%%%%.%%%.%%%%%%%..%.%%%%%%%.,.%%.%%%%%%%%%.%%%%.-.------------------------,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%,%%%%%,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%~~~-%%%%%,,%%%%%%%%%,,,,,,%%%%%%%%,%%%%,,,%%%%%,:::::::::,::::::::::::::::::::::::::::::::::::::::::_____~~~~~~___~~~~~~____---::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,%%%%%,%%%%%%%%%%,,,,%%%%%,,,,%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%,,,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%,%%%%~~~~~~~~,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,%%%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~---,,,,,,,,,,,,,,,,.%.%%%.,%%%..%%%~~~~~~~~~~~~~~~~~~~-,-,,...%%.%%%%.%%%%%%%%%%%%%%%%%.%%%%%....%%%%%%%%%.%.%.%.%%%.%%%%%%%%%%%%%%%%%.----------------------------,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%~~~~%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%%%:%::::::::,;:::::::::::::::::::::::::::::::::::::::_____~~~~~~____________:::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,%%%%%%%,,%%%%%%%%%%;,,,,,,,,,,,,%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%,,,%%%%%,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%-~~~~~~~~~~~~,,,,,,,,,,,%%%,%%%%%%,,,,,%%%%%~~~~~~,,,,,,,,,,,%%%%%%%%%%,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~--,,,,,,,,,,,,,,,,.%%%%%%%%%%%%%.-~~~~~~~~~~~~~~~~~~----,,,.%%%.%.%%%%%%%%%%%%%%%.%%%%%%%%%%..%%%%%%%%%.%%%%,..%%%%%%%%%.%%%%%%%%%%%.------------------------------,---,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%,%%%%%,,,,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%~~~~%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%%%%%:::::,:::::::::::::::::::::::::::::::::::::::::______~~~~~~~________%%%:::::::%%:::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,%%%%%,,,,,,,,,%%%%%,,,,,%%%%%,**%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%,,,%%%%%,;%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%-~~~~~~~~~~~~~,,,,,,,,,%%%%,,%%%%%%%,,,%%%%%~~~~~~~~~,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~--,,,,,,,,,,,,,,,,,.%%%%%%%%%%%.%--%%%%~~~~~~~~~~~~~--%%%,,.%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%.%%%%%%%%%%%%%%,%.%.%.%%%..%%%.%%%%%-------------------------------------,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%%,,%%%%,,%%%%%,%%%%%%%~~~~~%%%%%%%%%,,,,,,%%%%%,,-%%%%%,,,%%%%%,%%%%%%%%%%:::,:::::::::::::::::::::::::::::::::::::::::_______~~~~~~______:%%%%%%::::::%%::::::::::::::::::::%%%%%%%:::::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%,,,,,%%%%%,,,,%%%%%%%,**%%%%,,%%%%%%%%%%%%%%,%%%%%%%%%%%%,%%%%%,,,%%%%%,,%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%-~~~~~~~~~~~~~~,,,,,,,%%%%%,,%%%%%%%,,,%%%%%~~~~~~~~~~--,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------~----------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~---,,,,,,,,,,,,,,,,%.%.%%%%%%%%%%%-%%%%.%%~~~~~~~%%%.,%%%,,.%.%.%.%%%%%%%%%%%%%.%%.%%,%%%...%%%%%%%%%%%%%%%%%,.%%%.%%%%%,-.%.%%%%%.------~~~~~~~~~~~~~~~~~~~~~---------,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%%,%%%%%,,%%%%%,,,,,,~~~~~~~~~,,%%%%%,,,,,,%%%%%---%%%%%,,,%%%%%,%%%%%%%%%%%:::,:,::::::::::::::::::::::::::::::::::::::______~~~~~~~___:::::::::::::,:::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,%%%%%%%%,,,,,%%%%%%%%%%,%%%%%,,*%%%%,,%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%,,,,%%%%%,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~,,,,,,%%%%%,,,,%%%%%,,,%%%%%~~~~~~~~~~---,,,,%%%%%,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,,,;,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~--,,,,,,,,,,,,,,,,,.%%%%%%%%%%%%%%%%%%%%%%.~~~~~%%%%.%%%%%,.%%.%%%%%%%%%%%%%%%%%%%%%%,%%%%%%.%%%%%%%%%%%%%%%,%.,...%%%%,,----%-%.%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%,,,,,%%%,,,,,%%%%%,%%%%%,,%%%%,,,,,,,~~~~~~~~,,,,%%%%,%%%,,%%%%%~--%%%%%,,,,,,,,,%%%%%%%%%,,:::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~_:::::::::::::::::,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,,,:,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%%%,,,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%,,,,%%%%%,,,,,%%%%%%%%%%%%%%~%%%%%~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,-%%%%%%%%,%%%,,~~,-~~~-----,,,,%%%%%,,,,%%%%%,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,,;,,,,,,,,,,,,;,;;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~-,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%.%%%%%%%%%.%.%%%,,.%%%%%%%,,%%%%%%%%%%%%%%%%%%%..%%..%%%%%%%%%%%%%%-,,,,,%%%,,,,-----%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~%%%%,,%%%%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,%%%,%,,,%%%%%,,,,%%%%%,%%%%%,,,,,,,,,,,%%%%%~~~~,,,%%%%%,%%%%%,%%%%%~~~----,,,,,,,,,,%%%%%,,,,:::,:::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~_:::::::::::::::::,%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,,,,%%%,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,%%%%%%%%,,%%%%%%%%,%%%%%,%%%%%%%%%%%,,,%%%,%%%%%,,,,,,,,,%%%%%,,%%%%%%%%%,,,,,,%%%%,,,%%%%%,,,,%%%%%,,,,,,,%%%%,,,,,,,%%%%%%%%~%%%~~~%%%~~~~~~~~~~~~~~~~~~~~~~~%%%%%-----%%%%%%%,,,,,,,,,~~~~~----,,,,%%%%%,,,,%%%%%,%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,-,,,,-------,,,,...%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%%%%%%%%.%%%%%,%..%%%%%%%%%%%%%%%%---,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,.~~~~.,,,,,,,%%%%%,,%%%%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,%%%%%,,%%%%%%,,,%%%%%,,,,%%%%%%,%%%%,,,,,,,,,,%%%%%%%~,,,,,%%%%%,%%%%%,%%%%%~~~~~~-,,,,,,%%%%%%%%%,,,:::::,::::::::::%::::::::::::::::::::::::::______~~~~~~~~~~,,::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%,%%%%%,,%%%%%%%%%%%,,,,,,%%%%%,,,,,,,,,%%%%%%,,,,%%%%%%%%%%,%%%%%,,,%%%%%,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%,,,,,,,,-~~~~~---%%%%%%%%%%,,,,%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----;,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,;,;,,;,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,--,,,,-------,,,,,%%%%%%%%%%%%%%%%%%%%%..%%%%%%%%%%%%%%,,,,,%%%%%,%%.%%%.%%%,%.%%%.%%%%%%%%%%%%%~~~-,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%%,,%%%%%,,,,,,,,%%%%%%%,%%%%%%%%%%,%%%%%,,,,,~~~~~~~~~,%%%%%%%%%,,,,,,,,::::,:::::::::%%::::::::::::::::::::::::::__~___~~~~~~~~,,,,::::::::::::::::,:%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,%%%%%~,,,,,,%%%%%%%%%%%%%%%,,,%%%%%%%%%%,%%%%%,,,%%%%%%%%%%,,,%%%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%%%%%,,,%%%%%,%%%%%,%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,,,,%%%%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%%,,,,,,,,-~~~----%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,-----,,---------,,,,%%%%%%%%%%%.%%%%%%%%%%.%...%%.%.%%%%.,,,,,,--%-,,%%%%%%%%%,%%%%%%%,,%,,%%%%%%~~~~--,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,%%%%%%%%,,,,,%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%,,,,%%%%%%,,%%%%%,,,%%%%%%%%%%%%,%%%%%%%%%%,%%%%%,,,,,~~~~~~~~~,%%%%%%%%%,,,,,%%%%::,,:::::::::%%:::::::::::::::::::::::::__~~~~~~~~~~~~:::::::::::::::::::::::%%:::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,%%%%%,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%%%,,,,,,,--------%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,;,;,,,,,,,,,,,,,,,,,,,,,,,-------------,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,--------------,,-,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,~~~~~~~~~~,,,--------,---------,,,,%%%%%%%%%.%%%%%%.%%%%%.%%%%%%%%%%%%%%,,,,,,----,**..-.,,,.,%.%.%.%.,,,,,,,%~~~~~~~,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,%%%,,,,,%%%%%,,,%%,,%%%%,%%%%%%%%,,,,,%%%%%%%,%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,%%%%,,,%%%%%,,,%%%%%%%%%%%,,%%%%%,%%%%,%%%%,,,,,,~~~~~~~~~,%%%%%%%%%,,,,%%%%%,,,%%::::::::%%:::::::::::::::::::::::::__~~~~~~~~~%%%,:::::::::::::::::::::::%:::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::,,,%%%%%%,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%,,,,,,,%%%%%,,%%%%%%%%%%%,,,,,,,%%%%,,,,,,%%%%%%%%%%,,,%%%%%,%%%%%,%%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%%%,,,,,,,--------%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,~~;,,,,,,,,,,,,,,,,,,,,,,,,-------~~-------,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,~~~~~~~~~~~,,------------------,,,,%%%%%%%%%%%%%%%%%%%%%.%.%.%%.%%%%%%%,,,,,,,,------%%%.%.,,,%%.%%%%.,,,,,,,~~~~~~~~~,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%%%%%%%%%%,,,,%%%%%%%%,%%%%%,,,,,,%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,,%%%%%,,,%%%%%%%%%,,,,%%%%%,,,%%%%%%%%,,,,,,~~~~~~~,~%%%%%%%%%,,,,%%%%%,,%%%::::::::%%:::::::::::::::::::::::::__~~~~~~~~:%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::____:::::::::::::::::::::::::::::,,,,%%%%%,,,,,,,%%%%%,%%%%,,,,,,,,,%%%%%,,,,,,%%%%%%%,,,%%%%%%%,,%%%%%%%%%%%,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,%%%%%*%%%%,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%,,--,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%%,,,,,,,,-------%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,---,,,,,,,,,,,,,,,,,,------------------,---,,,,,,,,,,,,,,,,,,,,,,,,,,;,;;,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~------------------,,,,-%%%%%%%%%%%%%%%%%%%%.%%%%.%.%%%%%.,,,,,---------.%%%%..,,,,,%%%..,,,,,,,,~~~~~~~~~~,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,%%%%%%%%%%,,,,,%%%,,,%%%%%,,,,,,,,,,%%%%%%,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%~~~~~~%%%%,,,,,,,,%%%%%,,%%%%%::::::%%::::::::::::::::::::::::__~~~~~~,:::%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::,:%%::::::::,,,,,%%%%%,,,,,,%%%%%,,,%%%%%,,,,,,,,%%%%,,%%%%,,%%%%%,,,%%%%%,,,,%%%%%%%%%%,,,,,,,,%%%%%,%%%%%%%%%,,,,,,,,,,,,*%%%%%,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,----,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%,,,,,,,-,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,----,,,,,,,,,,,,,,,,,,----------------------,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,;,,,;,,,,,,;,,,,,,,,,,,,,~~~~~~~~~~~~~~~~---------------,,,,--%%%%%%.%%%%%%%%%%%%.%%%.%%%...%,,,,------------.%%%%..-,,,%%%%%,,,,,,,,,,~~~~~~~~~~,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%%,,,,%%%%%,,,%%%%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%,%%%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,%%%%%,,~~~~,,,,,,,,,,,,,%%%%,,%%%%%%::::::%::::::::::::::::::::______~~~~~~,::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::,,,,::%%%%%,,,,,,%%%,,,,,,,%%%%%%%,%%%%%,,,,,,,,,,,,,%%%%%,,%%%%%,,,%%%%%,,,,%%%%%%%%%%%,,,,,,,%%%%%,%%%%%,,,,%%%%,,,,,,,,,%%%%%,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,~~~~~~~~~,,;;,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,--------,-,,,,,,,,,,,,,,---------------------,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,;,;,,,;,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~--------------,,,-.%%%%%%%%%%%%%%%%%%%.%%.%%%%%..,,%,-------------.%.%%%----,%%%%%%%%,,,,,,,~~~~~~~~~,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%,,,,%%%%%,,,%%%%%%%%%%%,%%%%%,,,,%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,%%%%%%%,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%,,,,,%%%%%~~~,~~,,,,,,,,,,,,,,,,,,,%%%%%%::::::::::::::::::::::::::______~~~~~~%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,%%%%%,,,%%%%%%,,,,%%%%%%%%%%%,,,,,,%%%%%,%%%%%,,,,%%%%%,,%%%%%,%%%%%,,,,,,,,%%%%%,%%%%%,,%%%%%%%%%,,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,~~~-~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,---------------------,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,;,,,;,,,,;,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~------------------%%%%%..%%%%%%%%%%%%%%%.%.%%%%%%%--~~~~~~~~~~~~-.%..%.----%%%%%%%%%,,,,,,,,~~~~~~,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,%%%,%%%,,,,,%%%%%,,%%%%,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%,%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,%%%%%%,,,,,,,,,%%%%%,,,%%%%%%%%%,,%%%,,,,%%%%%%,,,,,,,,,,,,%%%%,,,,,,,,%%%%%%:::::::::::::::::::::::::_______~~~~~%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::______:::::::::::::::,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%,,,,,,,%%%%%,,,%%%%,,,%%%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%,,,,%%%%%,,%%%%%,%%%%%,,,,,,,,%%%%,,%%%%%,,%%%%%%%%%,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%,,,,,,,%%%,%%%%%,,,,,,,,,,,,,,%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,~~~,-~~~~~~,,,;,,;,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~-----------------%%%%%%%%%%%%%%%%%%%%%%%%%%,.%%%%~~~~~~~~~~~~~~~~..-------%.%%%%%%%,,,,,,,,,~~~~,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%,%%%%%%%%%,,,,%%%%%,%%%%%,,%%%,,,,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%,,,,%%%%,,,,,,,%%%%%,,,,,,%%%,,,,,%%%%%%%%%%,,,%%%%%,,,,,%%%%%,%%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%,,%%%%%::::::::::::::::::::::::________~~~~~%%:::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::______::::::::::,:::::,,,,,,,%%%%%,,,,,,,%%%%,%%%%%%%%%%%,%%%%,,%%%%%,,,,,,%%%%,,,,,,,,,,%%%%%%%%,,,,,,%%%%%%%%,,,,%%%%%,%%%%,,,,,,,%%%%%,,%%%%%,%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,--------~~~~~~~~,,,,,,-----;,,;,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,,------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.~~~~~~~~~~~~~~~~~~~~~~~-----------------%%%%%%%%%%%%%%.%%%%%%%%%%.%%%%%~~~~~~~~~~~~~~~~~-------.%%%%%%%,,,,,,,,,,,~~~,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%%%%%,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,,,%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%%%%%%,,:::::%%::::::::::::::::::_~~~~~~~~~~~%%:::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::%:::::::%%%%%::::::::::::::::::::::::::::,_____:::::::::::::::,,,,,,,,,%%%%%%,,,,%%%%%,%%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,%%%%%%%,,,,%%%%%,%%%%%,,,,,,%%%%%%,%%%%%,,,,,%%%%%,,,%%%%,,,,,,,,,,,%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,,%%%%,%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------~~~~~~~~~~~~~~~~,,,,,,-,,,;,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------.--%%%%%%%%%%%%%%%%%%.--%.%%~~~~~~~~~~~~~~~~~------.%%%%%%%,,,,,,,,,,,,,,,,,%%%--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,,,%%%%%%%%%%,,,%%%%,,,,,,,,%%%%%,%%%%%,,,,%%%%,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%,:::::%%::::::::::::::::::___~~~~~~~~,,%:::::::::::::::%:::::::::::::::::::::::::::::::::::::;;::::;:::%::::::%%%%%%%::::::::::::::::::::::::::::_____::::::::::::::%%%%%,,,,,,,%%%%%,,,%%%%%,%%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%,%%%%%,,,,,,,%%%%%,%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~,,,,,,;,,,,,,;,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,------------------------;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~----.%%%%%%%%%%%%%-------~~~~~~~~~~~~~~~~~~~~~------%%%%%%,%%%%,,%%%%%,%%%%%%%%%-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,%%%%,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,%%%%%%%,%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,%%%%%%%%%%%,,:::%%%%::::::::::::::::%____~~~~~~,,,,,:::::%:::::::::::::::::::::::::::::::::::::::::::::::::;:::;::%::::::%%%%%%%:::::::::::::::::::::::::::::___::::::%::::::::%%%%%%%%%,,,%%%%%,,,%%%%%%%%%%,%%%%%,%%%%%,,,%%%,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%,%%%%%%%%%,,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,-----------------------,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,%%%%.%%%%%%.------~~~~~~~~~~~~~~~~~~~~~~------%%%%%%,%%%%%,%%%%%%%%%%%%%%%------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,,,,,,,,,,%%%%%,,,%%%%,,,,%%%%,,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%%,%%%%%%%%,,,,,,,,,,,,,%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,%:::::::::::::,::::::%%~~__~~~~~-,,,,,::::::::::::::::::,::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::%:::::::::::;:::::::::::::::::::::::::::::%%::%%%%%%%%%,,%%%%%,,,%%%%%%%%%%,,%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,%%%%%%%%,,,,%%%%%%%%,%%%%%%%%%%,,%%%%%%%,,,%%%,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,**,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----,--,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,--,,,,------------------------,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%%%%%%%------~~~~~~~~~~~~~~~~~~~~~~-----,%%%%%,,%%%%%.%.%%%%..%%%%%%%------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,%%%,,,,,,,,,,%%%%,,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%%%%,,,,,,,,,,%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,%:::%::::::::::::::%%~~~~~~~~--:::,:::::::::,:::,:::,,,:::::::::::::,:,:::::::::::::::::::::::::::;:::::::::::::::%::::::::::::;::::::::::::::::::::::::::%%%%,%%%%%%%%%%,,,%%%,,,,,;;%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,%%%%%%%%%,,,%%%%%,,,,,,***%%%%%,,,,%%%%%,,%%%%%,,%%%%%%%%%%%%,,,,,,%%%%%,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,~~________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,**,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~-----%%%.,,,%%%%.%.%.%..%%..%%%%------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%,,,,,,,%%%%%,,,%%%%%,,%%%%%,,,,%%%%,,,,,,,,,,,,,,,,,,,,%%%%,,,,%%%%%,%%%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,,,,:%:%:::::::::,::::::~~~~~~~~~-:::::::::::::::::::::,,::,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,,,,%%%%%%%%%,%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%,%%%%%%%%%,,,%%%%%,,,,,****%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,~~~~~________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,.%%%%%%%%%%.%.%.%%%%-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%,,%%%%%,,,%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,%%%%,,,,%%%%%%%%,,,,,,%%%%%%%%%%,,,%%%%%,,,%%%%,,%%%%%,%%%,,,,,,,,,,,::::::::::::::::___~~~~~~~~---::::::::::::::::::::,::::,:::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%,,,,,,,,%%%%%,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%,,,%%%,%%%%%%%%%%%,,%%%%%%%%%,,,,,,,,,,,,,*****%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%,,,,,%%%%%,,,%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%,~~~~~~~_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,-----,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,%%%%%%%%%%.%..%%%..%-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%,,%%%%%,,,%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,%%%%%,,,%%%%%,%%%%%%%%%%,,,,,,,,,,:::,:::::::,::::____~~~~~~----:::::::::::::::::::::::::::,::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%,,,,,,,,%%%%%,%%%%%,,,,,,,,%%%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,*****,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,,,%%%%,,,,%%%%%,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%,~~~~~~~~______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~------------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,%%%%%%%%%%%%%%%.%.%.,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%,,,%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,%%%%%%%%%%%%%,%%%%%%%%%%,,,%%%%%,,,::,,%%:::,::::_____~~~~~,,-:::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::%%%%,,,,,,,,%%%%%,%%%%%,,,%%%%,%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,***,,%%%%%%%%%,,%%%%%%%%%%%,,%%%%%%%,,,,,,,,%%%%%,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,%%%%%%,,,,,,,%%%,,,%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%~~~____________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~~~~~~~~------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,%%%%%%%%%%.%%%.%%%%%,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,%%%%,,,,,,%%%%%%%%%,,,%%%%%,,,,,%%%%%,,%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,%%%,,%%%%::::::_____~~~~~,,:::::::::::,:::::::::::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%,,,,,,%%%%%,%%%%%,,%%%%%,%%%%%%%%%,,,,,,,%%%%%,,,,%%%,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,%%%%%%%%%%%,%%%%%,,,,,,,,,,%%%%,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,,%%%%%%%,,,,,,,,,,,,,,,,,,,%:%%%,~~~~___________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,%%%%%%%%%%%%,...%%%,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%%%,,,,,%%%%%%%%%,,,,,%%%%%,,,,%%%%,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%,%%%%%%%%%,,,%%%%%%%%%%,%%%%:::::_____~~~~~,,,,:::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,%%%%%%%%,,,,,,,:,,,::,,,,,:::::,~~~~~___________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,%%%%%%%%%%%%.%%%%..%%%%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%%%,%%%:::::______~~~~,,,,:::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,%%%%%,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,;,,%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%%%::,,,,:::,,,:,,,,,,:::::_~~~~~~___________~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%%%%%%%.%%%%%.%%%%%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,;%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%:::::::_____~~~~_:::,:::,::::::::::::::::::,,::,:::::::::::::::::,:,::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::%,,,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%%%,%%%%%,,,,,,,%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%,*%%%,,%%%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%%%%,%%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%%%,,,,,,%%%%%,,%%%%%%::::,,::::::,,::,,,::::::____~~____________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%%%%%%%%%%%%%%%%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,,,,,,,,,,,,,%%%,%%%%%%%%%%,%%%%%%%%%%,,%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%%:::::::___~~~~~~_:::::::::::::::::::,::::,,:::::,:::::::::::::::::,::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::%%%,,,%%%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%,%%%%%,,,%%%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%*%%%%%,%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%;,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,%%%%%,,,,%%%%%,,%%%%:::::::::,::::::::::::::::____________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%%%%%%%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%%%%,,%%%,,,,,,,%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%%%%%%%,%%%%%,,,,,,,,,,%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%,:::::::___~~~~~~_::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::%%%,,,,,%%%%%%%,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%%,,%%%%%,,%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,%%%%,,%%%%%%%%%%%%%,,,,,,,,%%%%%,,%%%%%%%%,,,,,::::%%%:::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%.%%%%%.%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%%%%%%%,%%%%%%%,,,,,,,,,%%%%%,,,%%%%%%%%,%%%%%,,%%%,%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,,,,:::__~~~~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%,,,,,%%%%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%,,,%%%%%,,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%*,,,%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%,%%%%%,,,,%%%%%,,,,,,,,,,,%%%%%%%;,%%%%%%%%,,,,,::::%%:::::::::::::::::::::::::_____________________~~~~~~~~~~__~~~~~~~~~~~~~~~~~~,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%.%%%%%%%%%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%%,,,%%%%%%%%,%%%%%,%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%,%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%,,,,,:::_~~~~~~~~,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,%%%,,,,,,%%%%%%%%%,,%%%%%%%,,,,,%%%%%,%%%%%,,,,,,,,,,,,,%%%%%%%,,,%%%%,,,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%,%%%%,,,%%%%,,,,,,%%%%%%%%%%%%*,,,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,%%%,,%%%%%,,,,%%%%%%%%%,%%%%,,%%%%%,,,,%%%%%%%%,,,,,:::;:::::::::::::::::::::::::::______________________~~~~_________~~~~~~~~~~~~~~~~,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%%.%%%.%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,**,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%,,,%%%%%%%%;%%%%%,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,::_~~~~~~~~,,:::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,%%%%%%%%%,,%%%%%,,,,,,,%%%%%,,%%%,,,%%%%%,,,,,,,%%%%%%,,,,,%%%,,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%**,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,%%%%%,,,,%%%%%%%%%,%%%%%,%%%%%,,,,%%%%%%%%,,,,,:::::::::::::::,:,:::::::::::::____________________________________~~~~~~~~~~~~~~,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%.%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,**,,--,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,%%%%%%%,,%%%%%,%%%%%,%%%,,,,,,,,,,,,,%%%%%%%,,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,::_~~~~~~~~,,,::::::,::::::::::::::::::::::%%%%%:::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,%%%,,,%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,%%%%%,%%%,%%%%%,,,%%%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%***,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,%%%%%%,,,%%%%%%%%%%,%%%%%,%%%%%,,,,,,,,%%%%::,,,::::::::::::,,::,:::::::::::::______________________________________~~~~~~~~~~~~~,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%.%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,-,,------,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,,,%%%%,,,,,;;%%%%%,,,%%%,,,,,,,,,,,%%%%%,,,,%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%,%%%%,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%,::_~~~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,%%%,,,,,,%%%%%,,,%%%%%%%%%%%,,,,,,,%%%%%,,,%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%%%%%%%,,,,%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%****,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%,%%%%%,,,,,,,,,,,,::::%::::,%%:::,,,,:::::::::::::___________________________________________~~~~~~~~~~~,,,,,----,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,----,--------,,,,%%%,,,,,,%%%%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%,,%%%%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,%%%%%%%,,,,,%%%%%%,::____~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%,,,,,%%%%%,,,,%%%%%,%%%%,,,,,,,,%%%%,,,%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%,,,,%%%%%%%%,,,,,%%%%%%,,,,,,,,%%%%%%%%%%%,,%%%%%,,,,,%%%****,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%%%%%%%%%%%%%%%%%,,%%%%%,,;,,;,,,,,,,,,,,:::::::::::%%::::,::::::::::::::::_______________________:____________________~~~~~~~~~~,,,,---,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,-------------,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,%%%%%,,;%%%%%%%,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,%%%%,,,%%%%%,,,,%%%%%,,,,,%%%%%%%,,,,,%%%%%%%%::__~~~~~~,,,::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,%%%%%%%%%%,%%%%,,,,,,,%%%%%,,;,%%%%%%%%%,,,,,,,,%%%%%%%%,,,%%%%%,,,,********,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%,%%%,,,,%%%,,,,,,,,,,,,,,;,,,,,,,::::::::::,%%:::;:,,:;::::::::::::____________________::::::__________________~~~~~~~~~~,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,--,,,---------------,,,,%%%%,,,,,,,,,%%%%%%%%%%%%,%%%%%%%,%%%%%%%,,,%%%%%%%%%%%%%%%%%%;,%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,%%%%%,,,,%%%%%%%%,,%%%%%,,,,,,,,%%%%%%%::__~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%,%%%%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%,,,*******,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,;,,%%%%,%%%,,,,:::::::::::%:::;;:::::::::::::::::_________________:::::::::________________~~~~~~~~~~~~,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -,,,,----,----------------,,,%%%%%,,,,,,,,,%%%%%%,%%%%%,%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%,,%%%%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,%%%%:__~~~~~~%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%,,%%%%%,,,,,,,,%%%%%%%%,%%%%%%%%%%%%%,,,,%%%%%%,%%%%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%,,,******,,,%%%%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-,,%%%%%%%%%::%%,,:,,,:::%%%,,,,,,,,,%%%%%%%%%%,,*,::::::::::::::,::::::::::::::::::_________________:::::::::________________~~~~~~~~~~~~~-,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --,,,-------------------%%%,,%%%%%,,%%%%%,,%%%%%,,%%%%%,,,,%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,%%%%,,,,,,,,%%%%%%%%%%%,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,%%%%%~~~~~~~%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,%%%%%,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%,,%%%%%,,,,,%%%%%%%,,,,%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%,,,%%%%%,,,,****,,,,%%%%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%%%%%,,,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%%%%%:%::::::::::::%%,,,,,,,,,%%%%%%%%%%,,^^::::::::::::::::::::::::::::::::,:________________:::::::::_________________~~~~~~~~~~~~--,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------------%%%%%,%%%%%,,%%%%%,,%%%%%,,%%%%%,,,,%%%%%,;,%%%%%%%%,,,,,,%%%%%%%%%%%,,%%%%%,,,,,,,,,,%%%%,,%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%~~~~~~~%%%::::::::::::::::::::::::::::::::::::::::::::::::,:,,::::::::::::,,::::::::%::::::::::::::::::::::::::::::::::::::::::::::,,,,,%%%%%,,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%,,%%%%%,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,**,,,,,%%%%%%%%%%,,,,,,,,,,,%%%%%%,%%%%%%%%%,,,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-%%%%%%%%:%:::::::::_::::,,,,,,,,,,%%%%%%%%%%*^*,::::::::::::::;::::::::::::::::::,_________________::::::::_________________~~~~~~~~~~~~~-,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------------%%%%%,,%%%%,,%%%%%,,%%%%%,,%%%%%,,,,,%%%%,;,%%%%%%%%,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,%%%%%,%%%%,%%%%%,,,,,,,,%%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::::%::::::::::::::::::::::::::::::::::::::::::::::,,%%%%%%%%,,,,,,%%%%,,,,,%%%%%,,,,,,%%%%%,%%%%%%,,%%%%%%%%%%,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,%%%%,%%%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%%%%%,,,,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%:::::_____::::,,,,,,,,,,%%%%%%%%%,**,,*:::::::::::::;::::::::::::::::,,:__________________::::::__________________~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,;;,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------------%%%%%,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,;;,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%,,,,,,,;,,,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,%%%%,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::,%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,%%%%%,,%%%%%%%%%%,,,,,%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~%%%%%%%%%%%::_______:::,,,,,,,%%%%%%%%^^,,**,,*,:::::::::::::::::::::::::::::::::__________________::::::_________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------------%%%%%%,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%,,%%%%%%%%%,,%%%%%%,;,,,,,,,,,,,%%%%%%%,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%,%%%%%%%,,,,,,,,%%%%%%%%,,%%%%%,,,,,,,,,%%%%%,,,,,-~~~~~~~~~,,,::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::,::::::::::::::::::,::::::::::::::::::::::::::::::::::::,:%%%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,%%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,,,%%%,,%%%%%,,%%%%%,,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%,,,,,%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___%%:%%%%_,:_________:::::,,,,,%%%%%%%%^*,,,,*,,,::::::::::::::::::::::::::::::::::__________________::::___________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ------------------------%%%%%%,%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%,,,,,,,,%%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,%%%%%%%%%,,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%%,,,,,,,,,%%%%%,,,,,-~~~~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::,::,,::::,:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,,%%%%%;%%%%%%%%%%,,,%%%%%%,,,,,%%%%%%%%%%%%,,,,%%%%%%%%%%%%%,,,,,%%%%%,%%%%%,,%%%%%%%%,,,,,,,,,,,%%%%%%,%%%%%,,,,,,,,,%%%%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___%%%::______________::::::,,,,%%%%%%%%^%%%%%%%%%:::::::::::::::::::::::::::::::::::__________________::_______________________~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------------~~~~~~~%%%%%%,%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%,,;%%%%%%%%%%,,,,,;,,,,,,%%%%%%%%%,,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,%%%%%%,,%%%%%%%%%%%%%,,,,%%%%%,,,,,,-~~~~~~~~,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,::::::::::::::::::::::::::::::::::::::,%%%%%%%%:::,,,%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%,,,,%%%%%,%%%%%%%%%%%%%,%%%%%%%%%,%%%%%%%%%%%%,,,,%%%%%%%%%%%%%,,,,,%%%%%,%%%%%,%%%%%%%%%%,,,,,,,,,,,%%%%%,%%%%%,,,,--,,,%%%::%%%%%~~~~~~~~~~~~~~~~~~~~~~~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___%%%________________::::::%%%%%%%%%%%*%%%%%%%%:::::::::::::::::::::::::::::::::::::__________________________________________~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----------~~~~~~~~~~~~~%%%%%%,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%,,%%%,,,,,,,,,,,,%%%%%%%%%,,%%%%%,,,,,,,,,,,%%%%%,%%%%,%%%%%%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%,,,,%%%%%,,,,%%%%%~~~~~~_:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::,:::::::::::::::::::::::::::::::::::::::%%::,,,:::::,%%%%%%%%%,,,,;,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%;,%%%%%%%%%%%%,%%%%%%%%%%,,,,,%%%%%%%%,,,%%%%%*,,%%%%%,,,,,%%%%,,,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%,%%%%,,,,----,,:::::_~~~~~~~~~~~~~~~~~~~~~~~~________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______________________:::::::%%%%%%%%%%,%%%%%%%:::::::::::::::::::::::::::::::,:::::::_________________________________________~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---------~~~~~~~~~~~~~~~~%%%%-,,,,,,,%%%%%%%,,%%%%%,,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%,%%%%%,,,,,,,,,,,%%%%%%%%%,%%%%%%,,,,,,,,%%%%%%%%,;,,,,%%%%%%%,%%%%%%%%%%%,,,,%%%%%%%%%%%%%,,,,,%%%%,,,,%%%%%~~~~~~~:::,,::::::::::::::::::::::%:::::::::::::::::::::,::::::::::::::::::::::::::::::::,:::%%%%%:::::::::::::::::::::::::::::,::::::::::::::::::%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%,;%%%%%,,%%%%%%%%,%%%%%%%%%%,,,,,,%%%%%%%,,,%%%%%,,,%%%%%,,,~~~%%%,,,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%,-~---,:::____~_____~~~~~%%%%~~~~~~~_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______________________:::::::%%%%,,,,,,,%%%%%%%%:::::::::::::::::::::::::::::::::,%%%%%________________________________________~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -------~~~~~~~~~~~~~~~~~~~~~--,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,%%%%,%%%%%,,,,,,,,%%%%,,,,%%%,,%%%%%,,,,,,,,,%%%%%,,;,,,,,;,%%%%%,%%%%%%%%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,::::::::::::::::::::::%:::::::::::::::::,:::::::::::::::::::::::::::::::::::::::%%%%%%%:::::::::::::::::::::%%%%%::::::::::::::::::::::%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,;%%%%%,,%%%%%%%%,%%%%%%%%%%,,,,,,,,%%%%%,,,%%%%%%%%%,,,,,~~~~~%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%,-~~~--:____________~~~~~%%%%%~~~~~___________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______________________::%%%%%%%%,:,,,,,,%%%%%%%:::::::::::::::::::::::::::::::::%%%%%%%____________________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -----~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,%%%%%,,%%%%,,,%%%%%;,,,,;,,,,%%%%%,%%%%%%%%%%%%,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,::::__~_:,,::::%%:::::%:::::::::::%::::::::::::::::::::::::::::::::::::::::::::,%%%%%%%::::::::::::::::::::%%%%%%%:::::::::::::::::::::%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%;,%%%%%%%,,,,,,,%%%%,,,%%%%%,%%%%%,,,,,,,%%%%%,,,,~~~~~~%%%%%,,,,%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%-~~~~~~_____________~~~~,%%%%%~~~~_____________~~~~~~~~~~~~___~~~~~~~~~~~~___________________________::%%%%%%%%%%:,,,,,,,,%%%%%:::::::::::::::::::::::::::::::::%%%%%%%___________________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ---~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%%,%%%%%%%%%%%%%,,,,,,,,;,,%%%%,%%%%%%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,%%%%%%%,,,,,%%%%%%%,:___~~~~~%%:::,%%:::::%::::::::::%%%%%,,:,,:,:,:::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::,%%%%,,,,,,%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,,;,,%%%%%,,,,,,,,,,,%%%%%,%%%%,,,,,,,,%%%%%,,,~~~~~~~%%%%%,,,,%%%%%%%%%%%%%%,%%%,,,%%%%%%%%%,%%%%%~~__~~_______________~~::::%%:___________________~~~~~~~~~_______~~~~_~~~____________________________::%%%%:%%%%%%,%%%%%,,,%%%::::::::::::::::::::::::::::::::::::::::::__________________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                --~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%,~~~~~~~~%%%%%,%%%%%,,%:::::::::,,%%%,,,::::,,::::::::::::::::::::::::::::::::,::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%,%%%%%%%%,,,,,,,,,%%%%,%%%%%,%%%%%%%%%%,;;,,,;%%%%%,,,,,,,,%%%%%%%%%%%%,%%%%,,,,%%%%%,-~~~~~~~,%%%%%*,,,%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%,_____________________~_::::::___________________~~~~~~~~~________~____~~___________________________:::%%%::%:%:%%,%%%%%,,,,%%:::::::::::::::::::::::::::::::::::::::::::_________________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%,,,,,,%%%,,,,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%,%%%%%,,,,,,,%%%%%,,,,,,,%%%%%%%%~~~~~~~~~%%%%%,%%%%%,,,:::::::::,,,,,,,,::::,::,:::%%:::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::%%%,%%%%%%%%,,,,,,,,,%%%%%%%%%%,%%%%%,,,,;,,,%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%,,,,%%%%%-~~~~~~~,,%%%%%*,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,:_______________________:::_____________________~~~~~~~~~__________________________________________::::%%:%%%%%%%,%%%%%,,,%%%::::::::::::::::::::::::::::::::::::::::::::_______________________________________~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%,,;,,%%%%%,,,,,,,,%%%%%%,,,,,,,,,,,,,,%%%%,%%%%%,,,,,,,%%%%%,,,,,,,%%%%%%%%~~~~~~~~~%%%%%,%%%%%,,,%::%%,,,,,,,,,,,,::%%%%::,::%%%%:::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,%%%%%%%%%,,,,%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,--~~~~~~,,,%%%%%*,,%%%%%%%%%%%,,,,,,,,,%%%%,,,,,,%%%%%,,,::_______________________:______________________~~~~~_____________________________________________:::::%%%%%%%%%::%%%%%,,,%%%:::::::::::::::::::::::::::::::::::::::::::::______________________________________~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%%%,,,,,,,,,,,%%%%%%,,,%%%%%,,,,,%%%%%%%%%%%%%%,,%%%,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%%%,%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,,%%%%%,%%%%%%%%,,%%%%~~~~~~~~,%%%%%%%%%%%%,,%:%%%,,,,,,,,,,,,,,%%%%:::::%%%%::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::,:::::::::::::::::::::::,::%%%%%%%%%%%%,,,,,%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%,,,,,,,,%%%%%%,%%%%%%%%%%,,,,,;,---~~~~~~-,,,,,$*,,,%%%%%%%%%,,,%%%%%,,%%%%%,,,,,,%%%%%,,::,:_____________________________________________~~~~______________________________________________::::%%%::%%::::::%%%,,,,%%%%:::::::::::::::::::::::::::::::::::::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%--~~~~%%%%,,,,,,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,--~~~~~-~~,,%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,,%%%%:::,,%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::%%%%%%%%%%%%,,,,,%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,--~~~~~~-,,,,,$*,,,%%%%%%%%,,,,%%%%%,,%%%%%,,,,,,,%%%,--:::_______________________________________________~~______________________________________________:::::%%%:%::::::::%%%,,,,,%%%,::::::::::::::::::::::::::::::::::::::::::::________________________________________~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%,,,,,,,,,,,%%%%%,,,%%%%%%%%%%,-~~~~~,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,,-~~~~~---,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,:::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::%:::%::%%%,,,,,%%%,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,--~~~~~~-,,,,,**,,,%%%%%,,,,,,,%%%%%,,%%%%%,,,,,,,,,,-~___________________________________________________________________________________________________:::::%%%:::::::::%%%%,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::_______________________________________~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%,~~~~~~~,,,,%%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,%%%%%%%%%,,,,,,,,,~~,-,,%%%%%%%,%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%,,,,,%%%::::::::::::::::::::::::::::::::::;:::::::::::::::::::::,:,:::::,,,:::::::::::::::::::::%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%%%%,%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,---~~~~~~--,,,,,,,,,%%%%%,,,,,,,%%%%%,,%%%%,,,,,,,,,,-~~__________________________________________________________________________________________________:::::::%%:::::::::%%%%,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::______________________________________~~~~~~~~~~~~~~~~~~~~~~~,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%~~~~~~~,,,,,%%%%%%%%%%,,,,,%%%%,%%%%%,,,%%%%%,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,%%%%%,,%%%%%,,,,%%%%%,%%%%%%%%%,,,,%%%%%%%%,,%%%%%%,,,,,,,,,,~~~~~~~,,,,,%%%%%%%%,,,,,,,%%%%%,,:::::::::::::::::::::::,:::::::::,::::,::::::::::::::::::::::::::,:::::::::::%:::%,:%%%%%,:,,,,:,,,,,,%%%%,,,~,,,,,,,,,,,%%%%%%%%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%~~~~~%%%%,,,,%%%%,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,**,-~___________________________::______________________________________________________________________:::::::::::::::::,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::,::::::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,%%%%%,,,%%%%%,,,;,%%%%%,,%%%%%%%~~~~~~~,,,,,,%%%%%%%%%%,,,,,%%%%%%%%%%,,,%%%%%,,,,,,,,,,%%%%%%,%%%%%,%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%,,,%%%%%%%%,,,%%%,,,,,,,,,,,,,,~~~~~,,,,,%%%%%%%%,,,,,,,%%%%%,,::::::::::::::::::::::::::,:,:,:::::::::::::::::::::::::::::,::::::::::::::,::::%%::::::::::,,:::,,,,,%%%%%~~~,,,,,,,,,,,%%%%%~~%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%-----%%%%%,,%%%%%,,,,,%%%%%%%%%,,,,%%%%%,,,,%%%%,-__________________________::::::____________________________________________________________________::::::::::::::::::,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%,,,%%%,,,,%%%%%,,,,,%%%%%,,%%%%%%,~~~~~~-,%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%,,,%%%%%,,,,,,,%%%%%%%%%,,,,,,,%%%%%%%%%%,,,,,,,,%%%%%%%%%%,,%%%%%%%%,%%%%%,,,,,,%%%%%,,,%%%%%%%%%%%%,,;;;,,,,,,,,,,,,~~~~,,,,,%%%%%%%%,,,,,,,%%%%%,,:::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,,,,,%%%%%~~~,,,,,,,,,,,%%%%%~%%%%%%%%%%%%%%,%%%%%%%%%%%%%%%%,,%%%%%,,%%%%%-----%%%%%,,%%%%%,,,,,%%%%%%%%%,,,,%%%%%,,,%%%%%,__________________________::::::::___________________________________________________________________::::::::::::::::::,,,,%%%%%,,%%:::::::::::::::::::::::::::,:::::::::::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,%%%%%,,,,,%%%%,,,,%%%%%,,~~~~~,,%%%%%%%%%%,,,,,,,,,,%%%%%%%%%%,,,,%%%%,,,,,,,%%%%%%%%%,,,,,,,%%%%%%%%%%,,,,,,,,%%%%%%%%%%,,,%%%%%%%,%%%%%,,,,,,%%%%%,,,%%%%%%%%%%%%%,,;,,,,,,,,,,,%%%%%~~,,,,%%%%%%%%%%%,,,,%%%%%,,::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::,:::,,,,,%%%%%~~~,,,,,,,,%%%%%%%%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,%%%%%-----%%%%,,,%%%%%,,,,,%%%%%%%%%,,,,%%%%%,,,%%%%%__________________________::::::::::_________________________________________________________________:::::::::::::::::::,,,,%%::%,%%::::::::::::::::::::::::::::::::::,:,:::::::::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,--~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,%%%%%%%%%,,,,,,,,,%%%%%,,,~~~~,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%,,,,,%%%%%,%%%%,%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,%%%%%,,,,,,%%%%%~~~~~-%%%%,,,%%%%%,,,,,,,,,,::::::::::::::::::::::::::::::::::,::,,:::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::,,:,::::%%~~,,,,,,,,%%%%%~~~%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%,,,%%%%%,%%%%%,,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%,,,,%%%%%,:,,%:::__________________________::::::::::_________________________________________________________________:::::::::::,:,::::::,,,%:::::%%:::::::::::::::::::::::::::::,:,::::::::::::::::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,--,~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,%%%%%%%%%%%,%%%%%,,,,%%%%,,,,,,,,,%%%%%%%%,,,,,,%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,%%%%%%,,,,,,,,%%%%%%%%%%,,,,,%%%%%,,,,,,%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%,,*,,,%%%%%,%%%%%--,,,,,%%%%%%%%,,,,,,,,::::::::::::::::::::::::::::::::::::::,:,,::::::::::::::,::,:::::::::::::::::::::::::::::::::::::,::::::::%~~,,,%%%%,%%%%%~~%%%%%%%%%%%%%%%%%%%,,%%%%%%%%%%%%,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,%%%%::::::::__________________________::::::::::::______________________________________________________________::::::::::::::::::::::,,::::::::::::::::::::::::%%%%%::::::::,,:::::,:::::::::::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~-,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~-,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,%%%%%,%%%%%,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%,,,,%%%%%,,,,,,,%%%%%%%%%,,,,,,,,,,%%%%%,%%%%%,,,,,,,,%%%%,,,,,,%%%%%,,,,%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,**,%%%%%,%%%%%---,,,,%%%%%%%%%,,,,,,,:::::::::::::::::::::::::::::::::::::::,::::::::,:::::::::,::::::::::::::::::::::::::::::::::::::::::::::::~~,,,%%%%%%%%%%~~%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%,,%%%,,,,,,%%%:%%%:::___________________________:::::::::::::::___________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%:::::::,:::,::::::::::::::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~--,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,~~~~,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%,%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,%%%%%,,,,,,%%%%%,,%%%%%%%,,,,,,,,,,,,%%%%%,,%%%%,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,%%%%%,,%%%%%,,,***%%%%%,%%%%%---,,,,%%%%%%%%%%%,,,,,:::%%%%%:::::::::::%%%::::::%::::::::::::::%%:::,:::,::::::::::::::::::::::::::::::::::::::::::::,:::::::::,,,,,%%%%%%%%%%~~%%%%%%%%%%%%%,%%%%%,,,%%%%%%%%%%%%%%%%%%%,%::%%%%%%%,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,,%%%%%%%%:::__________________________%%%%%:::::::::::::::_____________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%:::::::::::,::::::::::%%%:____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~---,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,--,;,,-,,,,,,,,,--------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---,,-%%%%%;,%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%%,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%,,,%%%%,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,%%%%%,,,,,,,,,,%%%%%,,,%%%%,,,******,,,%%%%%~~~-,,,,,,,%%%%%%%%,,,,:,,%:::::::::::::::::::::::::::,:::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,::,%%::%:::~~~~~%%%%%%%%%%%%,%%%%%,,,,%%%%%%%,,%%%%%,::,,,:::::%%%%,,:,,,,%%%%%%%%%%%%%,::%%%,,,,,%%:::::::;:_________________________::::::::::::::::::::::______________________::____________________________::::::::::::::,:::::::,,,::,:::::::::::::::::::::::::::::::::::::,:::::::::::%::::_____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~--,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,---,,---,,,,,,,,,,------,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%,,,,,,,,%%%%%%%%%,,,,,,,,,,,,%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%%%%,;,;,,,,,*****,,%%%%%~~~,,,,,,,,%%%%%%%%%,,,,,,%::::::::::::::::::::::::::::::::::,:::::::::::,,:,,::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::~~~~~~~~%%%%%%%%,,%%%%%,,,,,,%%%%%,,%%%%%,::::,::::::::%:::,,,%%%%%%%,%%%%%,:::::::,,,,%%%::::::::________________________:::::::::::::::::::::::::_______________:::::::___________________________:::::::::::::,::::::::::,:::::,,::::::::::::::::::::::::::::::::::::::,:::::::%::::____________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,--------,,,,,,,,,,,,-,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%,,,,,%%%%%,,,%%%%%,,,,,;,%%%%%%%%%%,,,,%%%,,%%%%,%%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,%%%%%%%%,,,,,,,%%%%*%%%%%-~~~~~,,,,,,,,%%%%%%%%%,,,,,,%:::::::::::::,:::::::::::::::::::::,::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~%%%%%~~~~,,,,,,,,,,,,%%%%%,,%%%%%,,::::::::::::::::,,,%%%%%%%%%%%%%%::::::::,,,,,,::::::::_______________________::::::::::::::::::::::::::::::::________:::::::::_________________________:::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::,::::::::%:::::___________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,-------,,,,,,,,,,;,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,%%%%,,,%%%%%%%,,%%%%%,,,,,%%%%,,,,%%%%%,,,,,,,,%%%%%%%%%,,,%%%%%%%%%,%%%%%%,,,%%%%%%%%%,%%%%%,,,%%%%%,,,,%%%%%%%,,,,,,,,,,,%%%%%%%%,,,%%%%%%%%*%%%%%-~~~~~,,%%%%%,%%%%%%%%%,,,,,,%::::::::::::::::::::::::::::::::,,,:,::::::::::,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~~~~~~~~~%%%~~~~~,,,,,,,,,,,,%%%%%,,%%%%%,,,:::::::::::::::,,,%%%%%%%%%%%%%%::::::::::,,,,::::::::______________________:::::::::::::::::::::,::::::::::::______::::::::::________________________:::::::::::::::::::::::::::::::::,,:::::::::::::%:::::::::::::::::::,:::::,::::::::::::__________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,-------,,,,,;,;,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,%%%%%,,,,%%%%%%%%%,%%%%%,,,%%%%%,,,%%%%%%%%,,,,,,,,,,,,%%%%%%%,,%%%%%%%%%,%%%%%,~~~~~~,%%%%%,%%%%%%%%%%%%,,,::::%%%%%,,:,:::::::::::::::::::::,:,:::::,:::,,,,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%,,,,,,,,,,::::::::::::::::::::%%%%%%%%%%::::::::::::::,,,:::::::::_____________________:::::::::::::::::::,:::::::::::::::_____::::::::::_______________________:::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::__________________________________~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,--------,,,,,;,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%,;,,,,,,,%%%%,,,,,,%%%%%%%%%%,%%%%%,,,,%%%%%%%%%,%%%%,,,,%%%%%,,,%%%%%,,,,%%%%%,,,,,,,%%%%%,,,%%%%%%%%%,%%%%%,,,,~~~~%%%%%,%%%%%%%%%%%%,,,%%%%%%%%%,,,::::::::::::::::::::::::,::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~,,,,,,,,%%%%,,.,,,,,,,,,,,:::::::::::::::::::::%%%:%%:::::::::::::::::,,::::::::::___________________::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________:::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,-------------,,,,,,;,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,%%%%%,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%%,,,,%%%%%%%%%,,,,,,,,,%%%%,,,,%%%%%,,,,%%%%%,%%%,,,%%%%%,,,%%%%%%%%%,,%%%,,,,,;~~~%%%%%,%%%%%,,%%%%%,,,%%%%%%%%%,,,::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~,,,,,,,%%%%%,,,,,,,,,,,,%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________::::::::::::::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,--------------,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,--,,,,,,,,,%%%%%%%%%%%%%,,%%%%%%%%%%%%%%%%%%%%,,%%%%%,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%,%%%%%,%%%%%%,,,,%%%%%%%%%%%%,,,,,%%%,,,,,,%%%%,,,,%%%%%,%%%%,,%%%%%,%%%%%%%%,,,,,,,,,,,,,,~~~~%%%,,%%%%%,,%%%%%,,,%%%%%%%%%,,,::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%,,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________________________~~~~~~~~~_____~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,---------------,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----,,,,,,,,%%%%%,,,%%%%%,,%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,%%%%%,,%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,%%%%%%,,,,,,,,,,,,%%%%%%%%%%,,%%%%%,%%%%%%%%,,,,,,,,,,,,,;~~~~~,,,,%%%%%,,%%%%%,,,,%%%%%%,,,,,,:::::::::::::::::::::::::::::,:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~__~~~~~~~~~~~~,,%%%%%%%%%,,,,,,,%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:,::::::::::::::::::::::_________________________:::::::::::::::::::::::::::::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________~~~~~~~_______~~~~~~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,-----------------,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%,,%%%%%,,,%%%%%,,,,%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,%%%%%,,,,%%%%%%%,,,,,,,,,,%%%%%%%%%%%,,%%%%%,%%%%%%%%,,,,,,,,,,,,,;~~%%%,,,,%%%%%,,,,,,,,,,,%%%%%%,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~___~~~~~~~~~~~~~,%%%%%%%%%,,,,,,,%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::::::::::::::::::::_________________________::::::::::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________:::::::::::_____________________~~~~~,-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,----------------,,,,,;,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%%%,,%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%,%%%%,,,,,%%%%%,%%%%%,,,,%%%%%%%,,,,,,,,,,%%%%%,%%%%%,,,%%%~~%%%%%%%%,,,,,,,%%%%%%%%%%%%%,,,,%%%%,,,,,,,%%%%%%%%%,,,:,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::____________~~~~~~~~~~~~~~~,,%%%%%,,,,%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::_________________________:::::::::::::::::::::::::::::___:::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::_________________~~,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,---------------,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,%%%%%%%%,,,,,,,,,,%%%%%%%%,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%%,,,,,,,,%%%%%%%,,,,,,;,~~~~~~%%%%%%,,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,,,:::,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:::::::::::::::::::::::____________~~~~~~~~~~~~~~~~%%%%%,,,%%%%%,%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::,:::::::::::::::::::::::::________________________::::::::::::::::::::::::::::::___::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--::::::,:,,,,:--_______________~,,,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,--------------,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,%%%%%%%%%%%%,,,,,,,%%%%%,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%,,,,,,,%%%%%%%%,,,,;,,~~~~~~~~%%%%%~~,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,::;,::::,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~%%%%%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::%%::::::::::::,:::::::::::::::::::::::________________________::::::::::::::::::::::::::::::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::,:---:___________:,,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------,,,,,,-,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%,,,,,,,,,,%%%%,,,,,%%%%,,,,%%%%%,,,,,,%%%%%%%%%%%%;,,~~~~~~~~%%%%%,,,,%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~%%%%%%::::%%:%:::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::%%::::,:::::::,:::::::::::::::::::::::_______________________:::::::::::::::::::::::::::::::___::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::,,,:---::__________::,,,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~-----,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,%%%%%,,,~~~~~~~~%%%%%,,,%%%%%%%%%%%%%%,,%%%,,,,,,,,,,,,,,,%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::,:,,::::::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~~~%%%%%,::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::%%::::::%%%:::::::::::::::::::::%%:::::::,::::::::::::::::::::::::::::______________________::::::::::::::::::::::::::::::::__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::,:,:,::--:::_________::::,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~~~~~~~~~--,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,%%%%%%,,,,,,,,,,,,,,,%%%%,,,,%%%%%,,,%%%%%,,,,,,%%%%%,,%%%%%,,;~~~~~~~~,%%%%,,,%%%%%%%%%%%%,,,,,%%%%%,,,,,,,%%%%%%,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,:::::::::%%%::::::::________~~~~~~~~~~_~~~~~~~~___%%%%%,:::::::%%%%::::::::::::::::::::::::::::::::::::::::::::::::%%:::::%%%%%:::::::::::::::::::::%::::::::,:::::%%%:::::::::::::::::::______________%%%%%__::::::::::::::::::::::::::::::::::_::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::%%::::::::::::::::::::::,:::::::________::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,%%%%%,,%%%%,,,,,,%%%,,,,,,%%%%,,,,%%%%,%%%%,,%%%%%,,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,,,%%%%%%%,,~~~~~~~~,,,,,,~,,%%%%%%,%%%%%,,,,,%%%%%,,,,,,%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::,:,::::,::::::::::::::::::::::::_______~~~~~~~~~______~~~~~___:%%%%::::::::::::::::::::::::::::::::,::::,::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::,::::::%%::::::::::_____________________::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::,,,:,::::::_____:::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%,%%%%%,,,,%%%%%%%%%,,,,,%%%%%,%%%%%%,,,,,,%%%%%%%%%%%%%%,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,%%%,,,,,,,,,,,,%%%%%%%,,~~~~~~~~,,,,,~,~,,%%%,,,%%%%%;,,,,%%%%%,,,,,,%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::_______~~~~~~~_________~~~_____~::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::____________::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::,:::,:::::::::::::::::::::::::::::::::::::::,::,:::_____________~~____-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,%%%%%,,%%%%%,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%,,,,,,,,,,,,,,,%%%%%---~~~~~~~,,,,,,%%%%%~,,,,,,%%%%%,,;,,%%%%%%%%%%,%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::,:,,,:,::::,::::::,::::::::::::::::::::::::_________~~~~~_____________________:::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::_________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::,:::::::::::::::::::::::::::::::::::::,,:::____________________~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,%%%%%,,%%%%%,,,%%%%%%%%%%%%%%%%%,,,%%%%%,,,,,%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%--~~~~~~~,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%%%,%%%%%,,%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::,:::::::::::::::::::::::::::::::::_________~~__________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::%:::::::___________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::^::::_____________________~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%,,,,,%%%%%,,%%%%%%,%%%%%%%%%%%%%,%%%%,,%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%-~~~~~~~,,,,,,,,%%%%%,~,,,,,,,%%%%%%%%,,,,,%%%%%,,,%%%,%%%:::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::_____________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::;:::::::::::::::::::::::::::::::::::::::::::::__________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______::::::::::::::::::::::::::::^^^^::::____________________~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,%%%%%%%,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,----~~~~~~,,,,,,,,,%%%%%%%%%,,,,,%%%%%%%%,,,,,%%%%%,,,,%%%:::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::_____________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::;:::::::::::::::::::::::::::::::::::::::::::::::________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______:::::::::::::::::::::::::~~~^^^^:::-___________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,,%%%%%%,%%%%%,,,,,,,,,-----~~~---,,,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%,,%%%%%%%,,,%%%%:::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::_____________________________________::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______:::::::::::::::::::::::::*~~^^^^::-_____________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%,,%%,%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,,---~~~~--,,,,,,,,,,,,,,%%%%%%%%,,%%%%%%%%%%%%%%%%%%%,,%%%::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::______________________________________:::::__:___:::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::__________::::::::::::::::::::::**^^^^^:--_______________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%%,,,,,,,,,%%%%,,,,,,,,,,,,%%%%%%%%%%%,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%%,,,,,,%%%%,%%%%%%%%%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,,-~~~~~---,,,,,,,,,,,,,,%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%,::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________________________::;::::;::::%::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__:_____:::::::::::::::::::::******^:--_______________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%,,,,,,,,,,,%%%%%,,,,%%%%%%,,,,,,%%%%%,,,,,%%%%%,,,,,,%%%%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,,-~~~~----,,,,,,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________________________________::::;:::::%%::::,:::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::_____:::::::::::::::::::::::::::::::::::::::;:::;:;:::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::****-*:--_______________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,%%%%%,%%%%,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%,,,,%%%%%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,~~%%%%%-,,,,,,,,,,,,,,,,,,,%%%%%%,,,,%%%%%%%%%%%%%%%%,,::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________________________:::::%%::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::____::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________:::::::::::::::::::::::::::::-______________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%%%%%%%,,,,,,,%%%%%%%%%%%%%%%%%%,%%%%,,,,,,,,%%%%%,,,,%%%%%%%%,,,,%%%%%,,,,,%%%%%,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%%%%,,,,~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,%%%%%,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________________________________;:;:%%::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::_____:::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::,,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________::::::::::::::::::::::::::::::________________~~____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,%%%,%%%%%,,,%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,%%%%%,,,,%%%%%%%%,,,,,%%%%,,,,,%%%%%,,,,,,,,,%%%%%%%%%%,,,,%%%%%%%%%%%%,,,~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,::%%%%,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________________________:::::%:::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________::::::::::::::::::::::::::::::________________~~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,%%%%%%%,%%%%%%%%%%%%%%%%%%%%%%,%%%%%,,,,,,,,%%%%,,,,%%%%%%%%,,%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,,,%%%%%,,%%%%%,,,~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,:::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______:::::::::::::::::::::::::::::::_________________~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,%%%%%%%%%%%%%%%%%%%,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,,;%%%%%,,%%%%%,,~~~~~~%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%,,,,,,:::::::::,::::::::::::::::::::::::::::::::::::;:::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::%%%_____________________________________________________:::::::::::::::::::::::::::::::::::%%%%%::::::::::::::::::::::::::::::%%%:::::::::::::::______:::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--%%%:::::%%%::::::::::::::::::::::_________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,%%%%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%,%%%%%,,,,%%%,,,,,%%%%%,,,,,%%%%%%%%%%,,;,,,,,,,,,,,,,,,~~~~~~~,,,,,,,%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%::::::::::::::::::::%%%%%_____________________________________________________::::::::::%%%::::::::::::::::::::%%%%%%%::::::::::::::::::::::::::::%%%%%:::::::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%:::%%%%%:::::::::::::::::::::_________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%%%,%%%%%,,,%%%%%,,,,%%%%%,,,,,%%%%%,%%%%,,%%%%%,,,,,,,,,,,~~~~~~~,,,,,,,%%%%%,,%%%%%%%%,,,,,,%%%%%%%%%%,,,,%:::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________________________________________________::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::,,:::::::________,,:::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%%%,,%%%%%,,,,,,,%%%%%;,,,,,,,,,,~~~~~~~~,,,,,,%%%%%,%%%%%%%%%,,,,,,%%%%%%%%%%,,,%%::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________________________:::::::::::::,:::::::::::::::::%%%::::::::::::::::::::::::::::::::::::::,,::::::::::_____:::,:::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,%%%%%,%%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,%%%%%,,%%%,,%%%%%,,,,,,,,,,~~~~~~~~~~,,,%%%%%%%,%%%%%%%%%,,,,,,%%%%%,%%%,%%%,%::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::__________________________________________________________::::::::::::::::,::::::::::::%%%::::::::::::::::::::::::::::::::::::,,,::,:::::::::___::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::%%%:::::::::::::::::::::::,:::::::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%,,,%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%,%%%%%,%%%%%,,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,%%%%%,%%%%%%%%%%%,,,,,,,,,,~~~~~~~~~~~,%%%%%%%%,%%%%%%%%%,,,,,,%%%%%,,,,%%%%%,:::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,__________________________________________________________:_::::::::,:::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::::::::___::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%,,,%%%%%,,,,%%%%%%%%%%%%%,,,,,,,,%%%%%%%%%,%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~%%%%%,,,,%%%%%%%%%,,%%%%%%%%%%,,,%%%%%,::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::,:_____________________________________________________________:::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::,:::::::::::::__:::::::::::::::::::::::::::::;:::;:::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::,,:::::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%,,,%%%%%,,,,,%%%;%%%%%,%%%%,,;;,,%%%%%%%%%,,,,,%%%%%%%%,,,%%%%%%%%%%%,%%%,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,-~~~~~~~~~~~~%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%,%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::_____________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::_:,::::::::,:::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::%%%::::::::::::::::::::::,::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%,,%%%%%,,,,,,,;,,,%%%%%,%%%%%,,,,,,,,,%%%%%,,%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,,-,,~~~~~~~~~~~~~%%%%%,,,,,,%%%%%,,,,%%%%%%%%%%%%,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,:::::::::____________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%%%,%%%%%%%%%%,,,,,,%%%%%,%%%%%,,,,,,,,,%%%%%,,%%%%%%%%%%,,,,%%%%%,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,,--~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%,,:,:::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::_:::________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::,:::-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%%%%%%%%%%%%%%%%%%%%,%%%%,,%%%%%,,,,;,,,;,,,;,,,%%%%%%%,,,,,,,%%%%%,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%,,,:::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::_______________________________________________________:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::--::-----:,:-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,;%%%%,,,,,,;%%%,,,,,,,%%%%%%%,,,,,,,%%%%%,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%,%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::,:::::::::::::::::::::::,:::::::::::::::________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,,:::::::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%,%%%%%,%%%,,,,,,,,,%%%%%%%%%,%%%%,,,,,,,;,,;%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,%%%:::::::::::::::::::::::::::::::::,::::::::::::::,:::::::::::::::::::::::::::,::,:::,:::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::,:::::::::::::::::______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,%%%%%%%%%%%%%%%%%%%%%%%%%%%,;,,,,,~~~~,,,,,,%%%%%%%%%%,,,%%%%%%,%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%,%%%%,,,,,,%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~%%%%%,,%::::,,%%%,,,%%%%%%%,,,,%%%%::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::__________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,%%%%%%%%,%%%%%%%%%,,,,,%%%%,,,;,,,;~~,%%%%%,%%%%%%%%%%%%%,%%%%%,%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%,%%%%%;,,,,%%%%%,,,,%%%%%,~~~~~~~~~~~~~~~~~~%%%%%,,%%::::%%%%%,,%%%%%%%,,::%%%%:::::::::::::::::::::::::::::::::,::::::::::::::::,,:::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::______________________________________________________::::::::::::::::::::::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::::::::::::::::::,:::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,%%%%%,,,%%%%%%,,,,,,,,,,,,,%%%%,,,%%%%%,%%%%%%%%%%%%%,,%%,,,%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%,%%%%%,,,,,%%%%%,,,,%%%%%,,;,,,,,~~~~~~~~~,,%%%%%,,%%:::%:%%%%,,%%%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::_________________________________________________,::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,%%%%%,,,,%%%%,,,,,,,,,,,,,,%%%%%;,%%%%%,,%%%,%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,;%%%%%%%%%%%%%%%%,%%%%%,,,,,,%%%%,,,,%%%%%,,;,,,,,,,,~~~~,,,,%%%%,,,%%%::%%%%%%,,%%%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::______::::::::::::::::::::::::::::::::%%::::::::%%%%%:::::__________________________________________________:::::::,:::::::::::____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,%%%%%,,,,,,,,,,,,;,,,,,,,,,%%%%%,,%%%%%;,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,%%%%,,,,,,,,,,,,~,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,::%%%::%:%%%,,,%%%%%%%%%,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::::::,:::::::::%%%%%:::::::::::::::____________::::::::::::::::::::::::%%%:%%:::::::%%%%%%%:,::_______________________________________________________---:::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::%%%%%:::,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%,,,,,,,,,,,,,,,,,,,;,,%%%%%,,%%%%%,,,,,,;,%%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%%%%%%%,,,,,;,,,,,,,,~~~~~,,,%%%%,,,,,,,,,,,,,,,,,,,%,,,::::::::::%%,,%,,,,::%%%%,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::,::,::::::::::::::::::::::::::_______________::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________________________::::::::::_________:,::::::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::,:::::::::::,:,:::::::::::::::::,,:::::::::::::::::,:::,:::::::::::::::::::::::::::::::::::::::::::::::::%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,;,,,,,,;%%%%%%%%%%%,%%%%,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,:::::::::::%%%%::,%::::%%,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:::::::::::::::::%:::::::::::::::::::::::::::::::::::________________::::::::::::::::::::::::::::::::::;::::::::::::________________________________________________________::::::::_________::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::_:::::::,:::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%,,,,,,,,;,,,,,%%%%%%%%,,%%%%%,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::_________________:::::::::::::::::::::::::::::::;::::::::::::::_________________________________________________________:::::___________:::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,;%%%%%,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%,,,,,,,,,;;;,,%%%%%%%%,,%%%%%,,,,,,,,~,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::_________________::::::::::::::::::::::::::::::::::::::::::::::________________________________________________________________________:::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,%%%%%,%%%%%%%%%,,,%%%%%,,,,,,,%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,,,,,,,;,,,,,%%%%%%,,,,,%%%%%,,,,,,,,~,,,,,,,:::::::,,,::,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_:::::::::::::::%%::::::::::::::::::::::::::::::::::__________________:::::::::::::::::::::::::::::::::::::::::::::________________________________________________________________________:::::____::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::____::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,%%%%%%%%%%%%%%%%,,%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,,%%%%%,,,,,,,,~,,,,,:::::::::::::::,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::_____________________::::::::::::::::::::::::::::::::::::::::::________________________________________________________________________:::::____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%%%%%%%%%%%%%,%%%%%,,,,%%%%%%%%,,,,,,,,,,%%%%,,,,%%%%%%%%%,,,,,,,,%%%,,,%%%%%,,,,%%%%,,%%%%%,,,,,~,%%%::::::::::::::::::::,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________::::::::::::::::::::::::::::::::::::::::_______________________________________________________________________::::::_____:::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,::,:::,::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%%%%%,,%%%%%,%%%%,,,,,%%%%%%%%,,,,,,,,,%%%%%,,,,%%%%%%%%%,,,,,,,%%%%%,,%%%%%,,,%%%%%,,%%%%%,,,,,~,%%:::::::::::::::::::::,,,,%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________::::::::::::::::::::::::::::;:::::::::::____________________________________________________________________:::::::::_______:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,%%%%%%%,,,,,,,,%%%%%%%%%%%%%,,%%%%%,,%%%%%,,,,,~,%%%::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________:::::::::::::::::::::::::::_:::::::::::___________________________________________________________________::::::::::________::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::---:---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,-----%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%,%%%%%%,%%%%%,,,,,,,%%%%:::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________:::::::::::::::::::::::::__::::::::::::__________________________________________________________________,::,::::::________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------%%%%%,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%,,,,,%%%%%%%%%,,,,%%%%%%%%%%%%%%,,%%%%%,%%%%%%,,,,,,%%%%::::::::::::::::::::%%:::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________:::::::::::::::::::::::_____:::::::::::___________________________________________________________________,:,:::::_________:::::::,::,::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------%%%%%,,,%%%%%%%%%%%,,,,,,,,,,,,%%%%,,,%%%%%,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%,,%%%%%,,,%%%%%,,,,,,,,,::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::____________________________::::::::::::::::_______________::::::::__________________________________________________________________:::::::__________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------%%%%%%,%%%%%%%%%%%%,%%%%%,,,,,,,%%%%%,,%%%%%,,%%%,,,,%%%%%,,,,,,,,,%%%%%%%%,%%%%%%%,,,%%%%%,,,,,,,:,::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::______________________________::::::::::::_________________:::::::,____________________________________________________________________::::___________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::;:::::::-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%%%,%%%%%,,,,,%%%%%%%%%,,,%%%%%%%%%,,%%%%%,%%%%%,,,,%%%%,,,,,,,%%%%%,,,,,,%%%%%%%,,,%%%%%,,,,,,,,:::::::::::%%%%%::::::%:::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,________________________________:::_________________________:::::::,_________________________________________________________________:::::::___________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%%%,%%%%%,,,,%%%%%%%%%%,,,%%%%%%%%%,,,%%%,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%%%%;,,,,,,,:::::::::::%%%%%%%::::::::::::::::::::::::::::::::::%%%%%%%::::::::::::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::____________________________________________________________::::::::_____________________________________________________________::::::::::___________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::::%%%%:::::::::::::::::::::::::::::::::::::::::;:;;:::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%,%%%%%,,,,%%%%%%%%%%,,,%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,%%%%%,%%%%%,%%%,,,,,,,,::,:::::::%%%%%%%::::::::::::::::::::::::::%%%%%:::%%%%%%%::::::::%:::::::::::::::::::::::::%::%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,______________________________________________________________::,:::,:___________________________________________________________:::::%%%%%:_________::::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::::::::::%%%%%::::::::::::::::::::::::::::%%%%%:::::::::::::::::::::::::::::::::::::::::;::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%,%%%%,,,%%%%%%%,%%%%,,,%%%%%,,,,,,,,,,,,,,,%%,,,,%%%%,,%%%%%%%%%%,,,,,,%%%%,,%%%%%%%%%%,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::,::::::::::::::::::::::::::::::::,,______________________________________________________________:,::::::__________________________________________________________::::::::::::_______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,%%%%%%,,,,,,,,,,%%%%%,,,,,,%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,,,,:::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::,:::,:,:::::::::::::::::::::::::______________________________________________________________::::::::_________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,%%%%%,%%%%%,%%%%%,,,,,,,,,,,,%%%,%%%%%,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:,::::::::::::::::::::::::::::::::::____________________________________________________________::::::::_________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,,-,,,,%%%%%,,,,,,,,,,,,%%%%%,,,%%%%%%%%,,,,,,,,%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::,,,:::::::::::::::::::::::::::::%::::__________________________________________________________::::::::_________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::;-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------,,----,,,%%%%,,,,,,,,,,,,,%%%%%,,,%%%%%%%%,,,%%%%%%%%%%%%%%%,,%%%%%,;,,,,,,,%%%%%,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,::,::::::::::::::::::::::,::::,::::::::::::::::::::::::::::::%%:::::_________________________________________________________::::::::________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::---::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------,,,,,,,,,,,,,,%%%%%%%%%,,,,%%%%%%%%%,,%%%%%,%%%%%%%%%,,%%%%%,,,,,,,,,%%%%%,,,,,;,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::,::::,,:::::::::::::::::::::::::::::%%:::::_________________________________________________________:::::::::_______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------,,,,,,,,,,,,,,%%%%%,,,,,,,,,%%%%%%%%%,%%%%%,%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::%%:::::::_______________________________________________________:::::::::_______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,,:::%:::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------,,,,%%%,,,%%%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,;,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::_______________________________________________________:::::::::_______________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::%::::::::::::::::::::::::::::::::::::::;::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------,%%%%%,,%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,%%%%,,,,,,::,,,,,,,::::::,::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::______________________________________________________::::::::::______________________________________________________::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----:::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------%%%%%,,%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%,%%%%%,%%%%,,,,,,,,,,,,,,%%%%%,,,,::::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::______________________________________________________::::::::::______________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------%%%%%,,%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%,%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,,,,:::::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::____________________________________________________:::::::::::_____________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------%%%%%,,%%%%%%,,,,,%%%%%,,%%%%,,%%%%%,%%%,,,,,,,%%%%%%%%%,,,,,,,,,,%%%%%,,,,,::::,,,,,,,,::%:::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________________________,:::::::::::____________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------,,,,,%%%%%%%%%,%%%%%,%%%%%,,%%%%%,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,%%%%%,,,,,::::,,,,,,,,,::::::,,,,:,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________________________:::::::::::::__________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------,,,,%%%%%%%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,;,,%%%%%%%%,,,,,,,,,,%%%%%,,,:::::,,,,,,,,,,::::::,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________________________::::::::::::___________________________________________________::::::::::::::::::::::::::::::::::;::::::::::::::%::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------,,,%%%%%%%%%%%%%%%,%%%%%,,,%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,:::::,,,,,,,,,,:,::,:,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%::::::::::::%%%%%_::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::::::::::::::::::::______________________________________________,:::::::::::__________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------,,,,%%%%%%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%%%%%::%%%%,,,,,,,,,,,::::,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%::::::::::%%%%%%%:::::::::::::::::::::::::::::::::::::%%%%%:::::::::::::::::::%%%::::::::::%:::::::::::::______________________________________________::::::%%:::___________________________________________________:::::::::::::::::::::::::::::::::::::::::;::::::%::::::::%%%%%:::::::::::::::::::::::,:,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%::::%%%%%::%%%:::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------,,,,--,%%%%,%%%%%,%%%%%%%%%%%,,,,,,,,%%%,,,,,%%%%%,,,,,,,,,,%%%%%%%%%::%%%%,,,,,,,%%%%,:::,,,,,,,:::,:::::::::::::::::::%%,,,::::,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________________:::_:::::::::::__________________________________________________:::::::::::::::::::,::,::::::::::::::::::;::::::::::::::::::::::,::::::::::::::::::,,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------,,,,,%%%%%,%%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,,%%%,%%%%%,%%%%%,,,,,,,%%%%%,,,,,,,,,,:,,,,:::::::::::::::::%%%%,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________________-:::::::::::::::::_________________________________________________::::::::::::::::::,,,::,::::::::::::::::;::::::::::::::::::::::::::,:::::::,::::::,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,%%%%%%%%%%,%%%%%::,,,,,%%%%%,,.,.,,,,,,,,,,,:::::::::::,::::%%%%%,,,,,,,;,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________:::::::::::::::::::::::::________________________________________________::::::::::::::::::,::::::::::::::::::::;:::::::::::::::::::::::::::,::,:::::::::,:,:::::::::::::%::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------,,,,,,,%%%,,%%%%%%%%%%%,,,,,,,%%%%%,,,,%%%%%,,,,,,,,,%%%%%%%%%%,%%%%::,,,,,,%%%%%%%%.%%,,,,,,,,,,:::::,,,:::,,,,,%%%%%,,,%%%,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,:::::::_____________________________::::::::::::::::::::::::::::_______________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::%::::::::::::::::::::::::,::,::::::::,:::::::::::::::::::::::::::::::::::::::::::::::------------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------,,,%%%%%%%%%%%%.%%%%%,,,,,,,,%%%,,,,,,%%%,,,,,,,,,,%%%%%%%%%,,,,,:;:,,,,,,%%%%%%%%%%..,,,,,,,,,:,,:,,,,::,,,,,,%%%%%,,%%%%%,,,::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::,::::::::::___________________________::::::::::::::::::::::::::::::______________________________________________:::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::,,,::::::::::::%::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------%%%%%%%%%%%%%.%%%%%,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,%%%%%%%%%%,,,,;::,,,,,,,,,,%%%%%%..,,,,,,,,,,,,,,,,,::,,,,%,,%%%,,,%%%%%,,,,,::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::___________________________::::::::::::::::::::::::::::::____________________________________________:::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------%%%%%%%%%%%%%%.%%%%%,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,~~,,,,,,,,,,,,,%%%,,,,,,,%%%%%,,,,,,:::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::,:::::::::__________________________:::::::::::::::::::::::::::::::::_________________________________________::::::::::::::;::::::,:,:::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------...-~---------------%%%%%%%%%%%%%%,%%%%%,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%%%,,,,,,,%%%,,,,,,,.%%%%%%,,,,,,,~~~~~,,,,,,,,,,,,%,%%%,,,,:::::,,,,,,:::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::,,:,:::::::__________________________::,,:::::::::::::::::::::::::%::::________________________________________::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%%%,,%%%%%%,.%%%%%,,,%%%%%%%%%%%%%%%%%,,,;,,,,,,,,%%%%%%%%,,,,,,%%%%%%%%%,,%%%%%%%.,,,,,~~~~~~~~,,,,,,,,,,,%%%%%::::::::::,,,,:::::::::::::::::::::::::::%::::::::::::::::::::::::::___:::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________;::::::::::::::::::::::::::::%::::________________________________________:;:::::::::::;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%%%%%%%%,,,,,,%%%%,,,%%%%%%%%%%%%%%%%%,,,,,,,%%%%,%%%%%,,,,,,,,%%%%%%%%%%,,%%.%%.%,,,,,,~~~~~~~~,,,,,,,,,:::::::::::::::::,,,,,:,,:::::::::::::::::::::::%:::::::::::::::::::___________::::::::::::::::::%%;::,::::::::::::::::::::::::::::::::::::::::::,:::::::__________________________:,:::::::::::::::::::::::::::%:::::______________________________________::::::::::::::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,:::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------%%%%%%%%%,,,,,%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,%%%%%,%%%%%%,,,,,,,%%%%%%%%%%,,,..,,.,,,,,,,,~~~~~~~,,,,,,,,,:::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::___________::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________;:::::::::::::::::::::::::::::,::::::_____________________________________:::::::::::::;::,:,::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,::,::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%,%%%%%,,,,,%%%%%,,,%%%%%,,,,,,,,,,,,,;,,,,%%%%%%%%%%%%,,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,::::::::::::::::::,,,,,,,,::::::::::::::::::::::::::::::::::::::::______________:::::::::::::::::%:,:::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________:::::::::::::::::::::::::::::,::::::::____________________________________::::::::::::::;:;::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----%%%%%,%%%%%,,%%%%%%%%,,,%%%%%%,,,%%%%,,,,,,,,,,%%%%%%%%%%%%,,,,,,,,%%%,%%%%%,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,::::::::::::::::::,,,,,,,::::::::::::::::::::::::::::::::::::____________________:::::::::::::::,:,:,:::::::::::::::::::::::::::::::::::::::::::::::::::_________________________:::::::::::::::::::::::::::::::::::::::_________________________________:::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----%%%%%-%%%%%,%%%%%%%%%%%%,,%%%%%,,%%%%%,;,;,,,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,:::::::::::::::::::,,,,,,,:::::::::::::::::::::::::::::::::::______________________::::::::::::::,,:,:::::::::::::::::::::::::::::::::::::,::::::::::::::________________________:::::::::::::::::::::::::::::::::::::::::::_____________________________:::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:::::::::::::::::::::::::::::::::::::::::::,::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%%--,,,,,%%%%%%%%%%%%,,%%%%%,,%%%%%,,,,,,,,%%%,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,:::::::::::::::::::::::::::::::::::_______________________:::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::____:::::______________::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________:::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,:::::::::::::::::::::::::::::::::::::%::::::::::::::::::-------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---%%%%-,,,,,,%%%%%,,%%%%%,,%%%%%%,%%%%%,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,::::::::,%:::::::,,,,,,:::,::::::::::%:::::::::::::::::::::__________________________::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::___::::::::________:::::::,,:%%%%%::::::::::::::::::::::::::::%%%%%::::::::::::::___________%%%%%%%%%::::::::::,::;:::::::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::%%%:::::::::::::::::::::::::,:::::::::::::::::%%%%%%::::::::::::::::::::%::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,%%%%%,,%%%%%%%,%%%%%,%%%%%,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,,:::::::::,,:::,,,:::::::::::::::::::::::::::____________________________________::____:::,:::::::::::::::::::::::::::::::::::::::::::::::::~__::::::,::______::::,:::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::_________::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,:::::::::,,,,,,,,:::::::::::::::::::::::::::___________________________________________::,,::::::::::::::::::::::::::::::::::::::::::::::::~::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::________:::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,%%%%%,,,%%%%%%%%,%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,.,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,::::::::::::::::::::::::::_____________________________________________:,:::::::::::::::::::::::::::::::::::::::::::::::::~:::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::__:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::,:::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,%%%%%%%%%%%%%%%%,,,,,,,,,,,%%%%,,,%%%%,,,,,,,%%%%,,%%..%%%,,,,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,,,,,,,,,-,,,,,,,,,,:::::::::,,,~,,,,:::::::::::::::::::::::::_______________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:--:::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,-,%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,%%%%%%%%,,%%%%%,.%.%%%%%,,,,,,,,,,,,,,,,,,%%%%%.%,,,,,,,,,,,,,------,,,,,,,,::::::::::,~~~~~,,,:::::__________:::::__________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_::::::::::::::::::::::::::::::::;::;::::::::::::::::,:::::,:::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,--------::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%%%%%,,,,,,,,,,,,,%%%%%%%%%,,,%%%%%%%%,,%%%%%,,%%%%%%..,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,,,,,,,---------,,,,,,,:::::::::,~~~~~~~~,::___________________________________________________________________:::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::;::::::::::::::::::::,:::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------%%%%%%%%%;,,,,,,,,,,,,%%%%%%%%%,,,%%%%%%%%,,%%%%%,..%%%%%.,,,,,,,,,,,,,,,,,,%%%%%%..,,,,,,,,,,,---------,,,,,,,::::::::,,~~~~~~~~~~____________________________________________________________________:::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::,---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,%%%%,,,,,,;,,,,,,,%%%%%%%%%,,,%%%%%%%%,,,%%%%%..%%%%%.,,,,,,,,,,,,,,,,,,.%%%%%%,,,,,,,,,,,~~~~~~~--.,,,,,,,:::::::,,,~~~~~~~~~~__________________~~~~_______________________________________________::::::::::%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,%%%%%,,,,,,,;,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,%%%%%.%.%%%%%,,,,,,,,,,,,,,,,,.%%%%%.%,,~~~~~~~~~~~~~~~~~~~-,,,,,,::::::,,,,~~~~~~~~~~~~______________~~~~~~~~~~______________________________________________:::::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::,::::::,:::::,::::::::::::::::::::::::%:::::::::::::::::::::::::::::::%:::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::%::::::::::::::::::::::::::,,:::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,%%%%%,%%%..%%.,,,,,,,,,,,,,,,,,.%%%.%%~~~~~~~~~~~~~~~~~~~~~~~~,,,,:::::::,,,:_~~~~~~~~~~~_____________~~~~~~~~~~~~____________________________________________:::::::%%%:::::::::::::::::::::::::::::::::::::::::::::,;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::%::::::::::::::::::::::::::::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,%%%%%,,,%%%%%,,,,;,,,,,,,,,,%%%%%,,%%%%%,,,%%%%%,,..,,..,,,,,,,..,,,,,,,,,,...~.~~~~~~~~~~~~~~~~~~~~~~~~~~~,,:::::::::::::~~~~~~~~~~~____________~~~~~~~~~~~~_____________________________________________::::::%%%::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,%%%%%,,,%%%%%,,,,,,,,,,,,,%%%%%%%,,%%%%%,,,,%%%,,,,,,,,,,,,,%....%.,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~:::::::::::::,,,~~~~~~~~~_____________~~~~~~~~~~~~~____________________________________________:::::%%:::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,~~::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,:::::,:::::::::::::::::::::::::::::::::::::::::-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,%%%%,,,,%%%%%,,,;,,,,,,,,%%%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,.%%%%.%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::,,~~~~~~~~_____________~~~~~~~~~~~~~~~____________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,::::,:,::,,::::::::::::::::::::::::::::::::::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,%%%%%,,%%%%,,,,,%%%%%%%.%%%%%%%%,,,,.,,.,.,,,,,,~~~~%%%%%%.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,::::::::::,:,,~~~~~~~~________~~~~~~~~~~~~~~~~~~~~____________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::~~~~~~~~:::,,%%%%%,,::::::::::::::::::::::::::::%::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%.%%%.%%%%%%,,,.%.%%.%.,,,,~~~~..%%%%%%.,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~o~,,,::::::::::,,~~~~~~~~________~~~~~~~~~~~~~~~~~~~______________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::%%:::::::::::::::%:::::::::::::::::::::::::::::::~~~~~~~~~::,%%%%%%%:::::::::::::::::::::::::::::%::::::::::,,:,::::::,::::::::::::::::::::::::::::::::::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%,,,,,,,,,%%%%%,%%%%%,,,,,,,,,.%%%%%.%%%%%-,;%%%%%%%,-,,,~~~~..%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,::::.::::::,,~~~~~~o~_______~~~~~~~~~~~~~~~_~~_______________________________________________:::::::::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::::::::::::::::%%%::::::::::::::::::::::::::::::::::::::::%%%%%:%%%::::::%%:::::::::::::::::::::::::::%%%:::::::::::::::::~~~~_~~~::::%%%%%%%:::::::::::::::::::::::::::::%::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,,,,,%%%%%,%%%%%,,,,,,,,.%%%%%%..~~~---,%%%%%%..---~~~~~.%.%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~:::::::::::,,~___~~~~______~~~~~~~~~~~~~~____~_________________________________________________,:::::::::::::::::::::::::___:::::::_____________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________:::::::::::::::::::::::::::::::::::::::::::::::::,;::,:,:;:::;::::::::::::::::::::::::::::::::::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,,,,,,%%%%,%%%%%,,,,-,,~.%%%%%%..~~~~~-..%%%%%..--~~~~~~~%%.....~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,.:.:::::::____~~~~~~~~~~~~~~~~~~~~_______~~~__~~~_________________________________________::::::::::::::::::::::::::______:%:::_____________:::::::::::::::::::::::,:::::::::::::::::::::::%:::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:,,:::_::::::::::::::::::::::::::::::::::::::%::::::::::,:,:::,:,:,:::::::::::::::::::::::::::::,::::::::-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%%,,,,,,,,,%%%%%%%%%%%---~~~~~~%%%%%.%.~~~~~~~%%%%%%.~~~~~~~~~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,...::::::.::____~~~~~~~~~~~~~~~~~~~~_______~~~~~~~~________________________________________:::::::::::::::::::::::::__________:_______________:::::::::::::::::::::::::::::::%:::::::::::::::%:::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::,,::::,::::::,::::;::::::,:::::::::::::::::::::::,::,:,:::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,%%%%%%%%%%%-~~~~~~~~.%.%%%%~~~~~~~~.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%.%%:::::::,___~~~o~~~~~~~~~~~~~,,,,:______~~~~~~~~~_______________________________________,:,::::::::::::::::::::____________________________::::::::::::::%%:::::::::::::::%:::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::,______:::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::,,,::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,%%%%%%%%%%%-~~~~~~~~~..~...~~~~~~~~..%.%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.:::::%,,~~~~~~~~~~~~~~~~~~,,,,,,::_____~~~~~~~~____________________________________::::::,:::::::::::::::::::____________________________::::::::::::::%%%:::::::::::::::%:::::::::::::::%::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::____:::::::::::::::::::::::::::::::::::::::::::::::::::;:;::::::::::::::::::::::::::,,:::::,:::::::::-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,%%%%-~~~~~~~~~~~~~~~~~~~~~~~~~~..~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%.%:%.%.,,~~~~~~~~~~~~~~~~~,:::,::::___~~~~~~~~____________________________________:::::::::::::::::::::::::::_____________________________:::::::::::::%%%:::::::::::,:::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___:::::::::::::,:,:::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,:,::::::::::::,:::,::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,-,,,,,,,,%%%%,%%%%,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%.%.%%%%,,,~~~~~~~~~~~~~~~~~::::::::,___~~~~~~~~________________________________:::::::::::,:,:::::::::::::::::______________________________:,::::::::::%%%:::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------,,,,%%%%%%%%%%,,---~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%...,..,,,,,o~~~~~~~~~~~~~~,:::::::::___~~~~~~~~________________________________:::,:::::::::::::::::::::::::::______________________________,,::::::::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::,::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::,::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,%%%%%%%%%%,,--~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%.%,,,,,,,,,,,~~~~~~~~~~~~~,,::::,,:,:____~~~~~~~~~~~___________________________::::::::::::::::::::::::::::::::_______________________________:::::::::::%%%::::::::::::::::::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::,::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,%%%%%%%%%%,,,-~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,,,,,,,,,,~~~~~~~~~~~~,,,:;,,,:::____~~~~~~~~~~~____________________________::::::::::::::::::::::::::::::::______________________________::::::::::::%%::::::::::::::::::::::::::::::::::::::::::,::::%::::::::::::::::::::::::::::::::::,::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::,::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,%%%%%%%%%%,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,.,,,,,,,,,,,,,~~~~~~~~~~~,,,,,,,,,:::____~~~~~~~~~~__________________________________:::::::::::::::::::::::::::______________________________:::::::::::::::::::::::::::::::,::::::::::::::::::::::,,:,,:%%::::::::::::::::::::::::::::::::,:::::::,::::::::,:,:::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::,:::,::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,%%%%%%%%,,,~~~~~~~~~~~~,,,,~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,,%::::_______~~~~~~____________________________________________::::::::::::::::::____________________________::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,::,%%:::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%%--~~~~~~~~~~~~~-,,,,~o~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,%%%%%,%%%%%_______~~~~~~____~~________________________________________:::::::::::::,:::___________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::---~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%--~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,..,.,,,,,,,,,,,,,,,,,,~~~,,,,%%%%%%%%%%%%________~~~~~~~~~~~~~~~___________________________________::::::::::::::::::____________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::,:::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::%::::::::::::::::::::--~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%.%%%.,,,,,,,,,,,,,,,,,~,,,,,%%%%%%%,%%%~_______~~~~~~~~~~~~~~~~___________________________________::::::::::::,,:,::____________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.%.,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,~~~~________~~~~~~~~~~~~~~~___________________________________:::::::::::::,::::_____________________________::::::::::::::::::::::::%%%:::::::::::::::::::::::::::::::::%::::::::::::::::::::,,::::::::::__:::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::%:::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%~~~~~o~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%~~~~__________~~~~~~~~~~~~~~~~~_________________________________:::::::::::::::::_______________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::_____:::::_:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--..~~~~~~~~,,,..%%%%%..,,,,,,,,,,,~~~~~~~,,,,,%%%%%%%,~~~_______________~~~~~~~~~~~~~__________________________________::,:::::,,:,:::_______________________________::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::_____________::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---.%%%%.%.~,,,,,,.%%%%%..,,,,,,,,~~~~~~~~~~~~~,,,%%%%%,,~~_________________~~~~~~~~~~~~____________________________________,:::::,,,:::::_______________________________:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~---.%.%%%%%.,,,,,,%.%%%.%.,,,,,,,,~~~~~~~~~~~~~~~,,,,,,,,~~__________________~~~__~~~~~~~____________________________________:::::::::::::________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~..~~~~~~~o~~~~~~~----.%%%%%%%,,,,,,,%%...%%,,,,,,,,~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~___________________~~~~~~~~__________________________________::::::::::::::_________________________________:::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::,:::::::_________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::,::::::::::::%%::::::::::::::::::::::::::::::::::::::::::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~%%.%%.%~~~~~~~~~~~~~~~---,,%%%%%%%.,,,,,,,,,,.,.,,,,,,,,~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~__________________~~~~~~~~~___________________________________::,,:::::::::_________________________________:::::::::::::::::::::::::::::::;:::::::::::::::::::::_:::::::::::::::::::::::::::::_________________::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~...%%%%%~~~~~~~~o~~~~~~-,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~___________________~~~~~~~~~___________________________________:::::::::::::_________________________________::::::::::::::::::::::::;:::::::;:::::::::::::::::::__:::::::::::::::::::::::::::::_________________::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::;::::,::%::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,..%%%%%..~~~~~~~~~~~~~,,,,,.%.%%%.%,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~,,,,,,,,,_____________________~~~~~~~~~_____________________________________:,:::::::::________________________________::::::::::::::::::,::::%:::::::;::::::::::::____________::::::::::::::::::::::::::::_________________::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::,:::::%::::::::::::::%%:::::::::::::::::::;:::::::::::::::----::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,%%%%%%.~o~~~~~~~~~~~~,,,,,,%%.%.%%,,,,,,,..,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~o,-,,,,,,_____________________~~~~~~~~~~_____________________________________::::::::::________________________________::::::%%::::::::::::::%%:::::::::::::::::::______________:::::::::::::::::::::::::::__________________:::::::::::::::::%:::::::::::::::::::::::::::::::::::::::,,,,,:::%:::::::::::::::%:::::::::::::::::::;:::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--~~~~~~~~---,,,,,,,,,%%%%%%.~~,,,,~~,,,,,,,,,,,,....,,.,,,,%%%.%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,~_____________________~~~~~~~~~______________________________________::::::::_________________________________:::::%%%::::::::::::::%%::::::::::::::::::::_____________:::::::::::::::::::::::::::_________________::::::::::::::::::%::::::::::::::::::::::::::::::::::;;:::::::,:,::::::::::::::::::::::::::::::::::::::::::::::::::::::-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,-,,,,,,,,,~-%%%%%.%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%.%.,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~____________________~~~~~~~~~________________________________________________________________________________::::%%%::::::::::::::%%:::::::::::::::::::::____________:::::::::::::::::::::::::::________________:::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::;::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,;,,,,,,~~-.%...%%,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,%%%%%%..,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____________________~~~~~~~~~_________________________________________________________________________________:::%%%::::::::::::::%%::::::::::::::::::::::___________:::::::::::::::::::::::::::__:::___________:::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::;:::::::::::::::::::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-,,,,,,,,,,,,,,,,,,-~~---....,,,,,,,,,,%%..%%%.,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::__________________~~~~~~~~~___________________________________________________________________________________::%%%::::::::::::::%%:::::::::::::::::::::::__________:::::::::::::::::::::::::::::::::_________::::::::::::::::::::%:::::::::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::-:::-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,~~~~---,,,,,,,,,,,,...%%%.%,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___________________~~~~~~_____________________________________________________________________________________:::%%%:::::::::::::::%::::::::::::::::::::::::_________::::::::::__:::::::::::::::_:::::________::::::::::::::::::::::::::::::::::::::::::::::::::::%%:::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~----,,,,,,,,,,,.%%%%%%%.,,,,,,,,,,,,,.%%%%%..,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________~~~~~~~______________________________________________________________________________________:::,%%:::::::::::::::::::::::::::::::::::::::::::______::::::::::__:::::::::::::::_::::::____%%%%%:::::::::::::::::%%%::::::::::::::::::::::::::::::%%:::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~...-,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,%%.%%%%,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______________~~~~~~_______________________________________________________________________________________:::::::::%::::::::::::::::::::::::::::::::::::::::_____:::::::::_____:::::::::::::_:::%%%%%%%%%%%%%:::::::::::::::%%%%::::::::::::::::::::::::::::::%%:::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~~~-,,,,,,,,,,,,,,,,,~~~~..%.....,,,,,,,,,,%%%%%%.,,,,,,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,-,~~~~~~~~~~~~~~~~~~~~~~~~~~~______________~~~~~~________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::,::_____::::::::___________-::::::_:::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::,::::::::::::::::::::::,:;;:::::::::::::::::::::::::%%%%--:::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,,,,,,,,,,~~~...%%%%%,,,,,,,,,,,%%%%%.%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________~~~~~~~_______________________________________________________________________________________:,:::::::::::::::::::::::::::::::::::::::::::::::::::___::::::::::::______::::::_::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,:::::::::::::::::::::::::;::::::::::::::::::::::::-%%%---:::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.%.,,,,,,,,,,,,,,,~~~~..%%%%%%~~,,,,,,,,,.%...%%,,,.,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~____________~~~~~~~~______________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::-::__::::::::::::::_____-::::_::::%::::::::::::::::::::::::::::::::::::::::::::::::,::::::,,:::::::::::::::::::::::::::,:::::;:;:::::::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%~,,,,,,,,,,,,---~~~~..%%%%%..~~,,,,,,,,,.,.,.,,,..%..%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________~~~~~~~~_____________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::,::::::::::::-___:::::::::::::______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%.~~~,,,,,,,,,---~~~~~~.%%%%%%.~~~~,,,,,,,,,,,,,,,..%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________~~~~~~~~~~~__________:::____________________________________________________________________::::::::::::::_:::::::::::::::::::::::::::_:::::::::::_____:::::::::::______:::::_:::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::;:::::::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.~~~,,,,,,,,--~~~~~~~%.%%%%%~~~~,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~______________~~~~~~~~~~~_________::::::__________________________________________________________________::::::::::::::_:::::::::::::::::::::::::::_:::::::::::___:::::::::::::______::::::__::::::::::____:::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::;::,:,:::::::::::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.%~~~~~~,,,,,~~~~~~~~~~.%%.%%%.~~~,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~____________~~~~~~~~~~~~~___::___:::::::::_________________________________________________________________:::::::::::____:::::::::::::::::::::::,:___::::::::::::::::::::::::::_______:::::::::::,::::________%::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::%%::::;::::::::::,:::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%~~~~~~~~~~~~~~~~~~~~~~.~..~~~~~,,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~__________~~~~~~~~~~~~~~~___:::::::::::::::___________________________________________________________________:::::_________:::___:::___::::::::::_____:::::::::::::::::::::::::::______:::::::::::::::_________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::,:::::::::::::::::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~~..~~~~~~~~~~~~o~~~~~~~~~o~~~~~~~~,,,,,,,-----,,,,,.%%%%%.%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~_________~~~~__~~~~~~~~~___:::::::::::::::______________________________________________________________________________________________:::::______________:::::::::::::::::::::::_____::::::::::::,:::___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.o.~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,---------,,,..%%.%..,,,,,,,,,,,..,..,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~________~_____~~~~~~~~__~,::::::::::::::_______________________________________________________________________________________________:::______________::::::::::::::::::::::::::::::::::::::::::,,:__:::::::::::::::::::::::::::::::::::::::::,:::,:::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~%%...%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~,,,,---------,,,,,,,.,,,,,,,,,,,,,%%%%%%,,,,,,,,.,,,.,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~______________~~~~~~~~~~~,:::::::::::::_______________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::,,::::::::::,___::::%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%.%~~~~~~~~~~~~~~~.~~.~.~~~~~~~~~~~~~~~~~~~~~~~~~~~o~----,,,,,,,,,,,,,,,,..,,.%%%%%.%,,,,,..%.%.%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~-~__________~~~~~~~~~~~~,::::::::__::___________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::,:::::::::,:___:::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~.%%%%%.~~~~~~~~~~~~~~%%%..%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,.%%...%%%%%%%,,,,,,%%%%%...,,,,,,,,,~~~~~~~~~~~~~~~~,,---~~~~~~_____~~~~~~~~~~~~,:::::::_______________________________________________________________________________________________________________::::::::::::%::::::::::::::::::::::::::::::::,::::::::::::%%%:::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%~~~~~~~~~~~~~~%.%%%.%~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,%%%%%%.%%%%%.,,,,,,%%%%%%%.,,,,,,,,,,~~~~~~~~~~~~~~,,,----~~~~~~~~__~~~~~~~~~~~~,::%::::_______________________________________________________________________________________________________________::::::::::::%:::::::::::::::::::::::::::::::::,:,:::::::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.~~~~o~~~~~~~~.%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,.%%%%%%%%%%%%%,,,,,,%%%%%%..,,,,,,,,,,,~~~~~~~~~~.~..,..----~~~~~~____~~~~~~~~~~_::%%::::::_____________________________________________________________________________________________________________::::::::::::%::::::::::::::::::::::::::::::::::,::::::::::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~.%.%%%%%~~~~~~~~~~~~~~.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,.%%%%%..%%%.%,,,,,..%%%%%%,,,,,,,,,,,,,,,-~~~~--%%%.%%%.---~~~~~_____~~~~~~~~~~_::%%:::::::____________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::,%%%:::::::::::::%%%::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~%%%.%.%~~~~~~~~~~~~~..%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~---,,,,,,,,,,,.%%%%%%..%.%%%.,,,,.%%%%%%.,,,,,,,,,,,,,,,,---,,-%.%%%.%.-~--~~~~_____~~~~~~~~~~_:::::::::::____________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::,:::,::::::::::::::::::%%::::::::::::::::::::::::::::,::::::::::::::::,::____-:::::::::::::::::::::::::::::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~.~~~~~~~~~~~~~~.%.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,%.%%%%%..,.,.,,,,,,.%%..%%,,,,,,,,,,,,,,,,,-,,,..%%%%%%.~-~---~~________~~~~~~~~,:::::::::______________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::,,:_____:::::::::::::::::::::,:::::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,%%%.%%%,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.~-~-----:________~~~~~~~~::::::::________________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___::::::::::::::::,::,::,,,,::::::::,~~_____::::::::::::::::::,:::::::,:::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...,.,,,,,,,,,,....*.,,,,,,,..,,.,,,,,,,,....,,,,,,,,,,,,,,,,,%%%%%%%~,---~--,:________~~~~~~~~_::;:::_________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____::::::::::::::::::,:::,:::::::::::,~______:::::::::::::::::::::::,:::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~..~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~%...%%.,,,,,,,,*,****,,,,,,,%..%%%,,,,,%%%%%%%,,,,,,,,,,,,,,,..%%%%%%.,,,,,,,,::__~~___~~~___~___:::_______________________________________________________________________________:::::_______________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____:::::::::::::::,:::::::::,::,:::::,_~_____:::::::::::::::::::::::::::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~.%%..%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%.%%%~~~~~~~~~..~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~.%%%%%.%.,,,,,,,,,***-,,,,,,%.%%%%%,,,,.%.%%%.%,,,,,,,,,,,,,,,,%%.%.%%,,,,,,,,,::__~~~~~~~~~_______::______________________________________________________________________________:::::::______________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__:____:::::::::::::::::::::::,::,::::::::,~___::::::::::::::::::::::,:,::::::::::::::::::::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%%%.~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~%%%%%..~~~~~~~~.%%%.%%%~~~~~~~~~~~~~~~~~~~~~~~o~~~~~.%%%%%%%.,,,,,,,,,***,-,,,,.%%%%%%.,,,,.%%%%%%.,,,,,,,,,,,,,,,,,...,,.,,,,,,,,,::___~~~~~~~~_______________________________________________________________________________________:::::::_______________________________:::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::______:::::::::::::::::::::::::::,:::::::::__:::::::::::::::::::::::::::::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o..%%%%%%~~~~~~~~.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%.,,,,,,,,,,,,,-,,,,,,%%%%%%%.,,,~.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::___~~~~~~~~______________________________________________________________________________________,::::::::______________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::,;,:::::::::::::::::::::-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%.~~~~o~~~.%%%%%%.~~~~~~~~~~~~~~~o~~~~~~~~~~~~.%%%%%%%.,,,,,,,,,,,,,,,,,,,.%%%%%%.,,,~.%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,::___~~~~~~~~~____________________________________________________________________________________:::::::::::______________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____:::::::::::::::::,,_~___::,,:::::::::::::::::::::::::::::::::::::::::::::,:::::::,::------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%.~~~~~~~.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%.,,,,,,,,,,,,,,,,,,,.%.%%%%%.,,~.%%%%%%%,,-,,,,,,,,,,,,,,,,,,,%...%%%,,,,:___~~~~~~~~____________________________________________________________________________________::::::::::::_____________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___::::::::::::::::::_~~~____::,:::::::::::::::::::::::::::::::::::::::::::::::::::,::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~.%.%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~.%%%%%.%.~~~~~~~..%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%.%.%%,,,,,,,,,,,,,,,,,,,.%%%%.%%.,,~~%%%.%.~----,-,,-,,,,,,,,..,.,%%%%%.%.,,,:___~~~~~~~:::::_____________________________________________________________________________::::::::::::::::___________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____:::::::::::::::::::::_____::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%.%~~~~~~~~~o~~~~~~~~~.~~~.~~~~~~~~~.%%%%%%%~~~~~~~~~.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,.,,..,,,,,,,,,,,,,,,,,,,,.,...,.,,,~~~~~.~~~~---,------,,,,,%...%..%%%%%%,,,,:___~~~~~~_:::::::__________________________________________________________________________::::::::::::::::::________________________:::::::::::::::::::::::::::::,,:,:,:::::::::::::::::::::::::::,:::::___:::::::::::::::::::::::___:::::::::::::::::::::::::::::::;:::::::::::%:::::,:,:::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~.~~~~~~~~~~~~~~~~~~~~~%%%%%%.~~~~~~~o.~~.~.~~o~~~~~~~.%...%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~-------~--,,,,,%%%%%.%%%%%%%:::::__~~~~~~~::::::::__________________________________________________________________________::::::::::::::::::_______________________:::,,::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::____:::::::::::::::::::::::___::::::::::::::::::::::::::::::::::;:::::::%%::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~..%%%.%~~~o~~~~~~~o~~~~~~~~~~~~~.....~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~-----~~----,,.%%%%%%.%%%%%%:::::_~~~~~~~~,::::::;:_________________________________________________________________________::::::::::::::::______________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___:::::::::::::::::::::::___:::::::::::::::::%%%%%::::::::::::::::::::%%:::::,,::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~o~~~~~~---o~~~------%%%%%%%.%%%.%.::::_~~~~~~~~,%%%%%;::________________________________________________________________________:::::::::::::::_______________________::::::,:::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%%%%::::::::::::::::::::%:::::,:,::::%-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~o~~~~~~~~~~----%%%%%%.%%%%%.,::::_~~~~~~~~%%%%%%%:::______________________________________________________________________:::::::::::::__________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::%%%%::::::::::::::::::::::::::::::::::::%%%%%%%:::::::::::::::::%-:%::::::::::::%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo..%%%%%%~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,..,,,,,,,,,.,,,,,,,,,,,~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~--%.%%%.%.,.,,,,::::_~~~~~~~~%::::::::::____________________________________________________________________:::::::::::::__________________________:::::,::::,:::::,::::::::::::::::::::,:,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%---%::::,,::::%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%%%.~~o~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%.%%%,,,,%..%.%,,,,,,,~~~~~~~~~~o~~~~~~~~~~oo~~o~~~~~~~~~%%%%%%%.,,,,,,:::___~~~~~~~%%::::::::_____________________________________________________________________::::::::::::___________________________::::::::,::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%----::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%.%%o~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%.,,,%%%%%.%,,,,,~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~..~..,.,,,,,,,::____~~~~~~~%%:::::::_______________________________________________________________________:::::::::::___________________________:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%%%%----:::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~.~.~~.~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%..,,..%%%%%..,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,:,,,,::____~~~~~~~~%%::::::_________________________________________:_______________________________::::::::::___________________________::::,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::--------::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%.,,..%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,::::,:____~~~~~~~~~~%:::::_________________________________________:::________________________________:::::::___________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~.....~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,,.%%%%%..,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~:::::_____~~~~~~~~~~_::::__________________________________________:::__________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~%..%%%.~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%.,,.%.%%%%%.,,,-~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~,:_______~~~~~~~~___________________________________________________::_________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~~~~~~~~~.%%%%%%~~~~~~~o~~~~~~~~~~~~~~~~~o~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%.-,,,%.%%%%%,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______~~~~~~~~___________________________________________________:__________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~.%%%%%%.~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.-----,......,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______~~~~~~~~___________________________________________________:_________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~o~~~~~~~~~~~~~~~~~~~~%%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~~~~~~~~____________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------,,,,,,,,,~~~~~~~~~~~~~~~~~~~~o~~~~~o~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~___________________________________________________________________________________________________________________::::::::::::::::::;:::::;::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::_______________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~o~~~~~~~.%.%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~oo~~~~~__~~~~~~~~~~~~~~____________________________________________________________________________________________________________:::::::::::::::::::::::::::;:::::::::::::::::::,,::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________~_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%..%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~o~o~~~~~~~~~~~~~~~__~~~~___~~~~~~~~~~~~~___________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~________~~~~___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~...o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~____~~~~~~~~~~~~~~~~______________________________________________________________________________________________________________:::::::::::::::::::::::::::::;:::::::::::::::::,::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~_____~~~~~~_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~o~~~____~~~~~~~~~~~~~________________________________________________________________________________________________________________:::::::::::::::::::::::::%%%%%::;:::::::::::::::::::::::::::::::::::::::::::::%,:::::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~o~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___~~~~___~~~~~__________________________________________________________________________________________________________________:::::::::::::::::::::::%%%%%%%:::::::::::::::::::::,:::::::::::::::::::::,%%%%:::::::::::::::::::%%%::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~o~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~____________________________________________________________________________________________________________________________:,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;:::::::::;::::::,,::::::::::::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~____~~~~~~_____________________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::,:::::::,:::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~.~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~o~~~~~~____~~~~~~~______________________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::,::::::::::::::%:::::::::::::::::;:::,::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____~~~~~~~_________________________________________________________________________________________________________________________________:,:::::::::::::::::::::::::_:::::::::::::,:::::::::::%%::::::::::;,:::::,:::,::,:::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~o~~~~~~~~~~~~~~~~~~~__________________________________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::,:::::::::::::%%:::::::::;:;::::::::::,:,::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%....~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__________________________________________________________________________________________________________________________________:::::::::::::::::::::::::::::::::::::::,::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%~~~~~~~~~~~~~~~~~~o~~~~~~~o~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__________________________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::,:::::::::::%%:::::::,,:,::::::::::::::::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%~~~~o~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__________________________________________________________________________________________________________________________________::::::::::::::::::::::::::::::::::::::::::::::::::::%%::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.~~~~o~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%..~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____________________________________________________________________________________________:::____________________________________::::::::::::::::::::::::::_::::::::::::::::::::::::::%::::::::,:::::::::::::::::::::::::::::::::::::::::::::,:::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~.%%%%%%~~~~,~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________________________________________________________:::::::::::_________________________________::::::::::::::::::::::::::_::::::::::::,:::::::::::::::::::::;:,::::::::::::::,::::::::::::::::::::::%::::,::,::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%%%.,,,,,,,,...,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%..%%..,,o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________________________________________________________________________::::::::::::::______________________________:;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,:::::::::::::,::::::::::::::::::::::::%::::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-.%...%.,,,,,,,.%%%%%.,,,,,,,,~~~~~~~~~~~~~~~~~..~.~~~~~~~~.%%%%%.%.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______________________________________________________________________________::::::::::::::::____________________________;:;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::,:,::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,..,,,,,,,,,%.%%%.%,,,,,,,,~~~~~~~~~~~~~~~%%.%.%%.~~~~~~~.%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~.~~.~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____________________________________________________________________________:::::::::::::::,____________________________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_::::::::::::::::::::::::::::::::::::::::::::::,:::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,~~,,,,,,,,,,,%%%%%.%-,,~~~~,%%%%%%..,,,,,,~~~~~~~~~~~~~~o~~~o~~~~~%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~o~~~~~~~~~~~~~~~________:_________________________________________________________________::::::::::::::::::_______________________%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__:::::::::::::::::::::::::::::::::::::::,:::::::,:::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,%%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~o~~%.%%%%%~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______%%%________________________________________________________________:::::::::::::::::::_____________________%%%%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,________::::::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,..%%%%%%,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%,,,,,,,,%%%%%%.,,,,.,,~~~~~~~~o~~~~~~~~~~~~~~.%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______%%%%%______________________________________________________________:::::::::::::::::::::____________________%%%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::__________::::::::::::::::_:::::::::::::::::%:::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,%.%%%.%.,,,,,,,,,,,,,,,,,,,,,,.%%%%%%,,,,,,,,%%%%.%%%%%%%%.,~~~~~o~~~~~~~~~~~~~~~~.%%%%%%%~~~~~~~~~~~~~~o~~~~o~~~~~~~~~~~~~~~~~~~~o~~~~~~--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______::::::_____________________________________________________________,:::,:::::::::::::::::__________________-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::____________:::::::::::::___::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,.%%%.%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,,,.,,.,,%%%%%.%,,~~~~~~~~~~~~~~~~~~~o~~..%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~oo~~~~~~--~~~~~~~~~~o~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~______::::::____________________________________________________________:::::,::::::::::::::::::________________--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________::::::::::____:::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,....,,,,.,..,..,,,,,,,,,,,,,,,%%%%.%%,,,,,,,,,,,,,..%%%%%.,,~~~~~~~~~~~~~~~~~~~o~o.%%%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~---~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______:::::::::________________________________________________________::::::,::::::::::::::::::::____________:::-::::::::::::::,:,::::;:::::::::::::::::::::::::::::::::::::::::::::::_______________::::::_____::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,..,.,,,,,,,,.%%...%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,~~~~~~~~~~~~~~~~~~~~~~~.%%.%%%.~~~~~~~~~~~~~~~~~~~o~~~~~~~o~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______::::::::::_______________________________________________________:::,:::,:::::::::::::::::::::________-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::________________:::::_____::::::::::::::::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,.%%.%%%%.,,,,,,%%%%%%%,,,,,,,,,,,,,,%%.%%%.,,,,,,,,,,,....%%%%%%.,,~~~~~~~~~~~~~~~~~~~~~~~~.~~.~o~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-,-,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~______:::::::::::___________________________________________________::::::::::::::::::::::::::::::::::::_:::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::_________________:::______:::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,.%.%%%.%,,,,,,,%%%%%%%,,,,,,,,,,,,,.%%%%%.%,,,,,,,,,%%..%.%.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~o~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~----,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________:::::::_________________________________~~~_________________::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________:::::::::::::::::::::::::::::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,..,,,,,,,,,.%%%%%..,,,,,,%%%%%%.,,,,,,,,,,,,,,%%%%%%%.,,,,,,,.%.%%%%%%%%%%%-~~~~~~~~~~~~~~~~~~,,,,,,,,,,o~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______::::::_____________________________~~~~~~~~__________:::____:::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%.,,,,,,.%%%%%%%.,,,,,..%%%%%%.,..,,,,,,,,,,.%%%%%%.,,,,,,,,%%%%%%%---.--o~~~~~~~~~~~~~~~~~,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_______::________________________________~~~~~~~~_________:::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::,::::::,::,::::::::::::::::::::::::::::::::::::::::::::::::::::______________________::::::::::::::::::::,:::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~...%%%%..,,,,,,%%%%%%%,,,,,,.%.%%%%%%%%%%.,,,,,,,.%%%%%%%.,,,,,,,.%%%%%%%.-----~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~o~~~o~~~~o~~~~~~~~~~~~~~~~~~---,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________________________________________~~~~~~~~________::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::______________________::::::::::::::::::::::::::::::::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%.,,,,,,,%%%%%.%,,,,,,,%%......%%%%..,,,,,,.%.%%%%..,,,,,,,..%%%%%..---~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~---,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__________________________________________~~~~~~~~~~~~~___:::::::::::::::,:,:::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________________::-:::::::::::::::::,:::::::::::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,.%%%%%.,,,,,,,,,,.,,.%%%%%..,,,,,,,%%%.%..,,,,,,,,.%.%%%.%--~~~~~~~~~~~~~o~~~~~~-,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________________________________________~~~~~~~~~~~~~~~~_::::::::::::::::,::::,:::::::::::::::::::::::::::,:::::::::::::::::::,:::::;::::::::::::::::::::::::::::::::::::::::::::::::::______________________:---:::::::::::::::::::::::::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.,,,,,,,,,..,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,.,,.,,,,,,,,,.%%.%.%%-~~~~~~~~~~~~~~o~~~~~-,,,,,,,,,,,,,o~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~----,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____________________________________~~~~~~~~~~~~~~~~~~~~_::::::::::::::::::::%%::::::::::::::::::::::::::~~~~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________-~--:::::::::::::::,::,:::::::::::,::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%.%.,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%..,,,,,,,,,,,,,,,,,,,,,,,,..,,,,~~~~~~o~~o~~~~~~~~~~--,,,,,,,,,,,,,~~~~...~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~______________________~~~~_____~~~~~~~~~~~~~~~~~~~~~,:::::::::::::::::::%%%::::::::::::::::::::::::::~~~~~:::::::::::,::::::::::::::;::::::::,,::::::::::::::::::::::::::::::::::::________________________~-:::::::::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,.%.%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~o~o~~~~~~~~~~~~~~-,,,,,,,,,,,,.%%.%.%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_________________~~__~~~~~___~~~~~~~~~~~~~~~~~~~~~~~_:::::::::::::::::::%%%:::::::::::::::::::::::::_:::~~~_::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::________________________::::::::::::::::::,::::::::::::,::,,::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,.,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%.%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~---,,,-,,,,,,,%.%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~---,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_:::::::::::::::::::%%%::::::::::::::::::::::::::::::~~__:::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::,::______:________________::::::::%%%:::::,::::::,::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~--------,,,,,.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~--,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__:::::::::::::::::::%%%::::::::%:::%::::::::::,::::::_~___::%%%:::::::::::::::::::::::::::::::::::::::%:::::::::::::::::::::::::::____:::_______________:::::::%%%%%:::,,:,::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~o~~o~~~~~~~~~~~~~~~~~~--,,,,.%%%%%..~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~,,,,,,--~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____~~____~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__::::::::::::::::::::::::::::::::::::::::::::::_:::::_____::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::___::::________________::::::::::::::::::::::::::::::::::,:::::::::::___~~~~~~~~~~~~~~~~~~~~~~_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,**,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~__~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___:::____::::::::::::::::::::::::::::::::::::::__:::______::::::::::::::::::::::::,:,:,,::::::::::::::%::::::::::::::::::::::,:::::::::::________________::::::::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~____::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%.%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~____~______:::::::::::::::::::::::::::::::::::::___________:::::::::::::::::::::::::::,:,::::::,::::::::::::::::::::::::::::::,:::::::::::_________________:::::::::::::::::::::::::::::,::::::::::::::::____~~~~~~~~~~~~~~~~~~~~_:::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%.%%%..,,,,,,,,,,,,,,,,,,~~,,,,,,,.%.%%%%%.,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%%%~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~___~o~~o~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~___~~~~______:::::::::::::::::::::::::::::::::::_____:::___::::::::::::::::::::::::::::::::,,:::::::::::::::::::::::::::::::::,::::::::::_____________________::::::::::::::::::::::::::::::::::,::::::::____~~~~~~~~~~~~~~~_~~~~:::::::--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,..%%%%%%,,,,,,,,,,,,,,,,,,~~,,,,,,,,%%%%%%%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~...~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___o~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~____:::::::::::::::::::::::::::::::::::____:::::__:::::::::::::::::::::::::::::,,::::::::::::::::::::::::::::::::::::::,::::::::_________________________::::::::::::::::::::::::::::::,:::::::,::___~~~~~~~~~~~%::_:,,,,::::::----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,.%%%%%.,,,,,,,...,,,,,,,,,~,,,,,.,..%%%%%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~oo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~____:::::::::::::::::::::::::::::::::::___:::::_::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::::::::::,::::::::::_________________________::::::::::::::::::::::::::::::::::::::,,::____~~~~~~~~%::::::,,::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,..%%%%%..,,.%%%.%%%,,,,,,,,,,,,,.%%.%.%%%%..,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__:::::::::%:::::::::::::::::::::::::::::::::,,:::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________::::::::::::::::::::::::::::::::::::::,::::____~~~~~~~%::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,.%%%%...,,.%%%%%%%,,,,,,,,,,,,,,%%%%%%..%%,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~___::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::,::::::,:::::::::::::::::::::::::::::::_::::::____________________________::::::::__:::::::::::::::::::::::::::,,::,____~~~~~~~%%:::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,....%%.,,,,.%%%%%..,,,,,,,,,,,,,%%%%%%%.%%,,,,,,,~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--******,,-~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::______________________________________:____________:::::::::::::::::::::::::,::::__~~~,:~~::::::::::::::-----::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,...,,,,,,.%%%%%%,,,,,,~~~,,,,,.%%%%%%,,,,,,,,,,~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-****..,.-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,:::::::::::::::::::::::::::::::::::::::::::::,::::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________________________________:::_________::::::::::::::::::::::::::::::::.~~~::::~:::::::::::::::---:::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~,,,,,,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,~~~~~~~.%%%%%%%.,,,,,,,,~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--****%%..%.~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::____________________________________:::::_______:::::::::::::::::::::::::,::::::::.::::::~:::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%%%%.,,,,,~~~~~~~~%.%%%.%.,*,,,~,~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~,,***%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________________:::::_______:::::::::::::::::::::::,:-:::::::-%::::::~~~~~:::::::::::::::::::--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,~~~~~~~~,%%.%%%*,,~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________________::::::______:::::::::::::::::::::::------:::%%-%:::::~~~~~~~::::::::::::::::::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,,,,,,~~,,,,,,,....****~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~o,,,,,,,.%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~o~~~%%%%:::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________:::::::_____:::::::::::::::::::::---------%%%--%%:::~~~~~~~:::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,,,,,***~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,.%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~o~~~~%%%:::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________::::::::::::::::::::::::::::::::----------------%:::~~:~~~::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,..%%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%.%%%:::::::::::::::::::::::::::::::::::::,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::::________________________________::::::::::::::::::::::::::::::::-----------------::::~:~~:::::::::::::::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~,,,,,,,%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_:::::::::::::::::::::,::,::,:::::,::::::%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________:::::::::::::::::::::::::::::::-----------------::::::::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~oo~,,,,~~.,..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.::::::::::::::::::::::,:,,,:::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::______________________________::::::::::::::::::::::::::::::::--------------------::-::::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.,,,,,,,,,,,,,,,,,,,,,,,**~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%:::::.::::::::::,::,::,,:::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::::_____________________________::::::::::::::::::::::::::::::::------------------------:::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%..%%,,,,,,,,,,,,,,,,,,,,,.***..~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%::::.:::::::::::::::::::::::::::::::%%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%::::::::::,::____________________________::::::::::::::::::::::::::::::::------------------------:::::::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,.%.%%%..,,,,,..,,,,,,,,,,,,,%%.%.%%.~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~.~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%.:::::%::::::::::::::::::::::::::::%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%:::::::::::::____________________________::::::::::::::::::::::::::::::::-----------------------:::::::::::::::::::::::,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%,,.%%%..%,,,,,,,,,,...%%%%.~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~%%%%%%,-----,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~.%%%.%:::%%%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::::::::::::______________________::::::::::::::::::::::::::::::::::::::-----------------------:::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%%.,.%.%%%%.,,,,,,,,,,..%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%,,,-,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~..,,,,%%%,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::___________________::,,:::::::::::::::::::::::::::::::::::------------------------:::::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,%%%%%%%.,,,,$*****.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~o~~~~~~~o~~~~~~~~~~~o~~~~~~~~~,,,,,,,,,,,,,~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::,:::::::::::::::,::::::::::::::::::___________________:,:::::::::::::::::::::::::::::::::::::--------------------------:::::::::::::::::::----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,.%.%%%%%.,%%%%%%..,,,,,,,**.%%%%%%..~~~~~~~~~,,~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::__________________::::::::::::::::::::::::::::::::::::::::-------~~~-------------------::::::::::::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,.%%%%.%,,,,.%%%.%%,.%%%%%%.,,,,,,****.%%%%%%%~~~~~~~o~~~-~---,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~..~~~~~~~~--,,,,,,,,,,,,,,~~~~~~~~o~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~,,,,,,%:::::::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::::::::::::::::,:::_________________:::::::::::::::::::::::::::::::::::::::::::----~~~~~~~~~~~~~~~---------::,::::::::---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%.%%%%%,,,,,,,,..,,,%.%%%.%,,,,,,,,*,.%%.%%.%~~~~~~~~-----~---,,,,,,...,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%.~~~~~~---,,,,,,,,,,,,,,o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,::__________________::::::::::::::::::::::;::::::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~---:::::::::::---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,..%%%%%%.,,,,,,,,,,,.%%%.%%%.,,,,,,******.,***~~~~~~~~-~-~~----,,,,%%...%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o~%.%%%%%~~~~~~~---,,,,,,,,,,,,,,~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%....,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::%::::::::::::::::::::::::,:::::::::::::::::::::::::::::::,::::::::::::::::::::::::::::::::::-_________________::::::::::::::::::::::::::::::::::::::::____~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%%..,,,,,,,,,,,,,,,,.,,,,,,,,,,,**,*,,****~~~~~--~~~~~~---,,,,%%%%%%%----~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%.,----~----,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,..,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::%:::::::::::::::%::::::,,::::,::::::::::::,:::::::::::::::::::::::::::::::::::::::::::::::,:-_________________:::::::::::::::::::::::::::::::::::::::~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~__::,:::::::-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,.%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,**********~~~~~~~~~~~~~--,,..%%%%%.,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,-------,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,.,..,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,:::::::::::::::%::::::::::::::%%:::::::::,::::::::::::::,:::::::::::::::,::::::::::::::::::::::::::::::::::,_________________::::::::::::::::::::::::::::::::;:::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__:::::::--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,.%.%%%.%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,******,,,**~~,~~~~~~~~~-,,,..%%%%%.,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.,,,-------,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%%%,,,~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~,,:::::::::::::::::::::::%%%:::%%:::::::,::%%%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________:::::::::::::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__:::::::--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,.%.%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,**,*,,,,,,~~~~~~~~~~~,,,,%%%%%%.,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%.,,,-----,,,,,.,,.,,,,,,,,,~~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,%.%%%%%.,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,:::::::::::::::::::::%%%%%%%%%::::::::,%%%%%:::::::::::,::::::::::::::::,:::::::::::::::::::%:::::%::::::::,_________________:::::::::::::::::::::::::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_::::::--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,*,**,,,,,~~~~~~~~~~~,,,.%.%%%..,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%..%,,,,,,-,,,,,,.%.%.%.,,,,,,,,,,,,,,,,~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~.,,,,%%%%%%..,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,::::::::::::::%::::::::::::::::::::::,::::::::::,::::::,:::::::::::::,:,::::::,,,:,::::::::::::::::::::::::::________________________:::::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--:::----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,*,,*,*,,,,,,~~~~~~~~~~~,,,,.%%.%%.,,,,,-,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~,...,,,,,,,,,,,,,.%.%%%.%,,,,,,,,,,,,,,,.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,.%%%%%%,,,,o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~::::::::::::::%%:::::::::::::::::::::::::::::::::::;,::,:::::::::::,::::,:::::::,,,:::::::::::::::::::::::::::_________________________:::::::::::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,**,,,,~~~~~~~~~~~~,,,,.,..,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,..%%%%%.,,,,,,,,,,,,,,,,~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~.,,,,%%%%%%.,,.,.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~_:::::::::::::%%:::::::::::::::::::::,::::::::::::::,:,:,::::::::::::::::,::::,,::,::,:::::::::::::::::::::::::__________________________:::::::__:::::::::::::_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,*,**,,,,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,%.%%%.%.%%.%.%..~~...~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__::::::::::::%%::::::::,:::::::::::::::,::::,:%::::::;,;::,,::::::::::::,::::::::,::::::::::::::::::::::::::::_____________________________:________:::-::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,*,*,,,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%%%,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~o~~~~~~~~~~~,,,,,,%%.%.%%,%%%%%%%%..%.%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::%::::::::,:::::::::::::::::,:,:%%:::;;:;,:,:::::::::::::::,::::::::::,::::::::::::::::::::::::::__________________________________~~~~:----::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,***,,,**,,,,*,*,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,.%.%%%%%,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,..,,,.,,.%%%%%%%.%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:::::::::::::::::::::,::,:::::::::::::,::,:%%::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::__________________________________~~~~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,***,,,,,,,,~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~,,,%%...%%.,,,,,,,,,,,,,,,~~~~~~~~~~~o~~o~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%%.%%%%%%%~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~_:::::::::::::::::::::,,::::::::::,:::::,::%%::::::::::::::::::::::::::::::::::::,:::::::::::::::::::::::::::_________________________________~~~~----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,**,*******************~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~o~~~,,,,~......,,,,,,,-,,,,,,~~~~~~~~~~~~o~~~~~~~~~~~,,-,,,,,,,,,,,,,,,,.%%%%%%%%%%%%%..--~~~~~~~~~~,..-~~~~~~~~o~o~~~~~~~~___:::::::::::::::::::::::,:::::::::::,:::::%::::,::::::::::::::::::::,:::::::::::::::::::::::::::::::::::::::________________________________~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------::,:--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,---~~~~~~~o~~~~,,,~%%.%%%%.,,,,-----,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,.%%%%%.%.%%%%%%----~~~~~~~~,,,,-,,,~~~~~~~~~~~o~o~~~__:,,::::::::::::::::::::::::::::::::::,:::::;:::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------:,:::----:::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,---~~~~~~~~~~~~~~~~~%%%%%.%.,,,---~~~~~~~~~~~~~~~~o~~~~~~~~~~,,,,,,,**,,,,,,,,,,,,,,.%%.%%%%%%%%%%%-----~~~~~~~,,,,,,,,-o~~~~~~~~~~~~~~~~~~,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________________~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------%%:,::,,::::::::::----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~o~~~~~~~~~~~.%%%%%%.,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~.,.,.,.,,,,,,,,,,,,,,,,,,,,,.,~.~.%..%..-------~~~~,,,,,,,,--~~~~~~~o~~~~~~~~~~~-,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------%%%:::,:::::::::::------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,~~~~~~~~~~~~~~~~~~~~~.%%%%%%.-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%.%%.,,,,,,,,,,,,,,,,,,,,,~~~~~~~.~,,,,,-,,,,,~,,,,,,,,----~~~~~~o~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_________________________________~---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------::::::::::::::::::-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~~~~~~~~~~~~~~~~~~..%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%.%%%.%.,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,----~~~~~~o~~~~~~~~~~~~:::::::::::::::::::::,::::::::,::::::::::::::::::::::::%::::::::::::::::::::::::::::::::::::::::::::::::_________________________________~~----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------:::::::::::,,:::::,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~~~~~~~~~.%.%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%.,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~____::::::::::____::::::::::::::::::::::::::::::::::::%%::::::::::::::::::::::::::::::::::::::::::::::_________________________________~~~~----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----::::::::::,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~o~~.%%.%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~___________~___________:::::::::::,:,:::::::::::::::::%%::::::::::::::%%%:::%%%:::::::::::::::::%%%:::__________________________________~~~-::--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----::::::::%,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~.%.%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,..%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~o~~~~~~~~~~~~~~___________~~__~~______~,:::::::%%%:::::::::::::::::::%%:::::::::::::%%%%%:%%%%%:::::::::::::::%%%%%:___________________________________~~~:::----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----::::::::%,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,.%%%%%.%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----o~~~~~~~~~~~~~~~~~~~~~~~_____~~~~~~~~~__~~~,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-::::::::,;,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%.%%%,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~o~~~~~~~~~~~~~~~~~~_~~~~~~~~~~~~~~~~_::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________________________::::-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-::::::::,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%..~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,...,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____::::::::::::::::::::::::::::::::::::::::::::::::::_____:::::::::__:::_______________________________________::::::--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::%::::,,;,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,*,***,,,,,,,,,,,,,,,,,,,,,,.,,,.,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~__::::::::::::::::::::::::::::::::::::::::::::::::__________________________________________________________:::::::::::------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~___:,:,,,:,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~o~...~~~~.%%%%.%.~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,*,***,,,,,,,,,,,,,,,,,,,,,,.%.%%%,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,::::::::::::::::::::::::::::::::::::::::::::::__________________________________________________________:::::::::::::--------------------~~~~~~~~~~~~~~~~~~~~~~~~_~~~___::,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~o~~~~~~.%%%%%%.~~o~..~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,%.%%%.%.,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,::::::::::::::::::::::::::::::::::::::::::::___________________________________________________________:::::::::::::--------~~~~-----------~~~~~~~~~~~~~~~~~~~~________:,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%.,,,,,,,,,,,,,,,,--o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::::::::::::___________________________________________________________::::::::::::::---~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~________:-,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~..%%%%%.~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.,,,,,,,,,,,,,,,,,--~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%::::::::::::::::::::::::::::::::::::::::::::___________________________________________________________:::::::::::::%%%%%~~~~~~~~~------------~~~~~~~~~~~~~~~~~~________:---,,,,,,,,,,,,,;,,,,,,,---------------------------------------~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~.%%%%%%%~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%..%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,~~~~__~~~~~~~~~%:::::::::::::::::::::::::::::::::::::::::::::________________________________________________________::::::::::::::::%%::%%~~~~~~~~-------------~~~~~~~~~~~~~____________~----,,,,,,,,,,,,,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%.,,,,,,,,,,,,,,,,-~~o~~~~~o~~~~~~~~~~~~~~~~~~~~~~~,::,,,~___~~~~~~~~~%::::::::::::::::::::::::::::::::::::::::::::_________________________________________________________::::::::::::::::::::%~~~~--~~~-------------~~~~~~~~~~~~~____________~-----,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~.~~.~.~.%%%%%.%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%..%%%,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--:,:,,_____~~~~~~~~%%:::::::;:::::::::::::::%:::::::::::::::::::_____________~__________________________________________:::::::::::::::::::::%%~~~---~~~------------~~~~~~~~~~~~~~__________~~-----,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~%%%..%~.%.%.%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,.,.,,,,,,,~~~~~~~~...-..,,,,,---------~~~--,,:,::,____~~~~~~~~~%%%:::::::::::::::::::::%:::::::::::::::::::____________~~~_________________________________________::::::::::::::::::::%%%~~----~~~------------~~~~~~~~~~~~~~__________~~~-::-,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~%%%%%.%..~..~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%...,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%.%%%%.,,,~~~~~~o..%%%.%%.,,------------~--,:::::::,:_~~~~~~~~~~,,:::::::::::::::::::::%:::::::::::::::::::__________~~~~~~__~~____________________________________::::::::::::::::::::%%%~~----~~~------------~~~~~~~~~~~~~~___________~_::---,,,,,,;,,,,,,,,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~..%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%.%%%%%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%.%,,,,,~~~~,,,%.%%%%%,,--------------,,:::%%%%%;:___~~~~~~~~__:::::::::::::::::::::%::::::::::::::::::___________~~~~~~~~~~~~__________________________________::::::::::::::::::::%%-------~~~-----------~~~~~~~~~~__~~~_____________::--,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~.%%%%%%%.~~~~~~~~~~~~~o~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~%%.%.%.%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%.,,,,,,,,,,,.%%%%%%.,,,,--~~~~~--,,,,::%%%%%%%::__~~~~~~~____::::::::::::::%:::::%:%%%::::::::::::::__________~~~~~~~~~~~~~__________________________________::::::::::::::::::::----------~~-----------~~~~~~~~~___________________::--,,,,,,,,,,,,,,,,,,,,,,,,,-----,---------------------------------------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~.%%%%%%%~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~,..%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%..,,,,,,,,,,,%%%%%%.,,,,,,~~~~~~~,,,,,::%%%%%%%:::_~~~~~~~___~--::::.:.:.::%,::::::%%%%%::::::::::::___________~~~~~~~~~~~~~___________________________________:::____::::::::::::::%%%-----~~-----------~~~~~~~~~___________________::--,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,--------------------------------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~.%%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,.%%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,.,%%%%%%..,,,,,,,,,,,.%%%%%%;,,,%%%~~~~~_~,,,:::::::::::::,,~~~~~~__~~--::::.:.:..:,,:::::::::::::::::::::::__________~~~~~~~~~~~~~~~~_________________________________:_______::::::::::::::%%%----::-----------~~~~~~~~_____________________:-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------,,,---------------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~%%...%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~,,%%%%%%%.~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%..,,,,,,,,,,,.%%%%%%%,,,%%%::_~____,,::::::::::::::::____~~~~~~--,::::.:%%.%.,,::::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~__~~~____________:::__________:::::___:::::::::::::::::%---:::-----------~~~~~~_______________________-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------,,,,,,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~.~~~.~.~~~~~~~~~.~~~~.~~~~~~~~~o~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%.%%%.%~~~~~,,,,,,,,,,,,,,,,,,,.,,,,,,,,.%%.%%%%.,,,,,,,,,,,.%%%.%%,,,%::::________::::::::::::::::____~~~~~~~-::::.::%%%%.,,,::::::::::::::::::::_________~~~~~~~~~~~~~~~~~~~~~~~~~__________:::::::___:::::::::::_,::::::,::::::::::::::::::----------~~~~~~_______________________,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------,,,,,,,;-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~~~.....%.~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,.%%%%%%~~~~~~~~,,,,,,,,,,,,-,,,,...,.,.,,,.,,.,,,,.,.,,,,,,,,.,,,,,,,%%::::_:______::::::::::::::::____~~~~~~~::::::::%%%..,,::::%:::::::::::::::_________~~~~~~~~~~~~~~~~~~~~~~~~~~_________::::::::::::::::::::::::::,::::::::::::::::::::::----------~~~~~~_______________________:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,-------,,,,,,,,,------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~.%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,.,,.,~~~~~~~~~~,,,,,,-,,-----.%..%%%%.,,,,,,,,,,.%.%%%.,,,,,,,,,,,,%%%:::_:::::::::::::::::::::::::__~~~~~~~~::::::::%%%.,,,::::%:::::::::::::::_______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_____::::::::;:::::::::::::::::,:::,,:::::::::::::::::::--------_~~~~~~___________________~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,---,,,,,,,,,,,------,,,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~~%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,~~~~~~~~~,,,,-------~~~~~..%%%%%,,,,,,,,,,.%.%%%.%,,,,,,,,,,,,%%%::::::::::::::::::::::::::::__~~~~~~~~~,:::::.%%%....,,:::%::::::::::::__________~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~______:::::::::::::::::::::::::,::::::::::::::::::::::::::::%-::___________________________~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~.%%%%%%%~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,~~~~~~~,,,,,------~~~~~~~.%%%%%%,,,,,,,,,,,%%%%%%.,,,,,,,,,,,%%%:::::::::::::::::::::::::::::__~~~~~~~~~~::::::.%%%%%%%.,,,%::::::::::____________~~~~~~_____________~~~~~~~~~~~_______::::::::::::::::::::::::::::::::::::::::::::::::::::::::::___________________________~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~..%%%%%%.~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,.,,,,~~~~~~~~~,,,,-----~~~~~~~~.%%%%%.,,,,,,,,,,,.%%%%%.,,,,,,,,,,%%%::::::::::::::::::::::::,:::::__~~~~~~~~~~_:::::.::%%%%%,,,,%::::::::::____________~~~~~______________~~~~~___~~________::::::::::,,:,::::::::::::::::::::::::::::::::::::::::::::___________________________~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~%.%%%.%~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~,.,,,,,,~,~~~~~~,,,,-----~~~~~oo~%%%%%%%,,,,,,,,,,.%%%%%%.,,,,,,,,,,%%%::::::::::::::::::::::::::,:::_~~~~~~~~~~~___:::.::%%%%.,,,,,:::::::::______~~~____~~~________________~~~_____~~~________:::::::::::::::::::::::::::::::::::::::::::::::::::::::::________________________~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,.,,.,,,,,,,~~~~,,,,-----~o~~~~~~...%%%%%,,,,,,,,,,.%%%%%...,,,,,,,,%%%%%%,,:::::::::::::::::::,:::::___~~~~~~~~~~~~_:::::%%%%%%,,,,,::::::________~~~~~~~~~~_________________________~~~~~~~~___::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:________________________~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~.~.~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%.,,,,,,,,,,,,,---~~~~~~~~~...%..%%,,,,,,,,,,,%%%.%%%,,,,,,,,%%%%%%%,,,,::::::::::::::::::::::____~~~~~~~~~~~~~----%%%%%%%,,,,,,:::::_______~~~~~~~~~~~_________________________~~~~~~~~___:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::_______________________~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~,,%.%%%.%.,,,,,,,,,,,,,--~~~~~~~~~~~~.~,,.,,,,,,,,,,,,,,,..,,,,,,,,,,%%%%%%%,,,,:::::::::::::::::;:::_____~~~~~~~~~~~~~----%%%%%%%.,,,,,,::%________~~~~~~~~~~~_________________________~~~~~~~~~__:-:::,:::::::::::::::::::::::::::::::::::::::::::::::::::::::_____________________~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,..%%%%%%.,,,,,,,,......-~~~~o~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,~~::::::::::::::;:::::::____~~~~~~~~__~~~~----%%%..%..~..,,~~~~~~_____~~~~~~~~~~~~~_______________________~~~~~~~~~~__:::::,::,:::::::::::::::::::::::::::::::::::::::::::::::,:::::_~_____~~______~____~~-,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...~~~~~~,...%%%%%%.,,,,,,.%%....%-~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%~~%::::::::::::::::::::::____~~~~~~_____~~~------,,,%%..%%.___~~~~~____~~%%%%%~~~~_________________________~~~~~~~~~~__::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%,~~~~~~~~~~____~~~~_~~~~,,,,,,,,,,,;;,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%%.~~~~,,,.%%%%%%.,,,,,,,,%%%%%%..~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%~~%:::::::::::::::::::::__~~~~~~~~~______~~-----,,,.%.%%%.%___~~~~~~~~~~%%%%%%%~___________________________~~~~~~~~~~__::::::::::::::::::::::::::::::::::::::::::::::::%%%:::::::::%,,~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%.%%%.%~~~~,,,,.%%%%%.%,,,,,,,,%%%%%%.-~~~~~~~~~~~o~~o,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,%%%%%~~~%%::::::::::::::::::::_~~~~~~~~~~_____~~~~----,,,.%%%%%%.____~~~~~~~~~%%%%%%%_____________________________~~~~~~~~~__:::::,:::::::::::::::::::::::::::::::::::::::::%%%%%::::::::%,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.~~,,,,,,.%%%%%%,,,,,,,..%%%%%%.-~~~~~~~~~~~~~~~-,,,,,,,,,***,,,,,,,,,,,,,,,,,,~o~~~~~%%%:::::,,;:::::::::__~~~~~~~~~~__~~~~~~~----,--.%%%%%%:.___~~~~~~~~~%%%%%%:::::_________________________~~~~~~~~~__:::::,::::::::::::::::::::::,,,:,:::::::::::::::::::::::::::,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%.,,,,,,,,...,.,.,,,,,,,,%%%%%%%.-~~~~~~~~~~~~~~--,,,,,,,,,***,,,,,,,,,,,,,,,,,~~~,~~~~~~,,::,,,,:::::::,,:_~~~~~~~~~~~~~~~~~~~o~~------.%%%%%%.~~~~~~~~~~~~%%%:::::::::::::____________________~~~~~~~~~~__:::::,::::::::::::::::::::::,:::::%:::::::::::::::::::::::,,;,,~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,-------*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%,,,,,,,,,,,,,,,,,,,,,,,.%.%%%.%--~~~~~~~~~~~~~~---,,,,,,,,,**,,,,,,,,,,,,,,.,...~~~~~~~~,,,,,,,:::::::,,,,,~~~~~~~~~~~~~~~~~~~~~~~-~~~~%.%%%.%.~~~~~~~~~~~_%%%::::::::::::::__________________~~~~~~~~~~~~____:::::::::::::::::::::::::::::::%::::::::::::::::::::::::,,,,,,~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,.%%%%%.%.,,,,,,,,,,,,,,,,,,,,,,.%%%%.%%--~~~~~~~~~~~~~~--..,,..,,,,,,**,,,,,,,,,,.%%..%%~~~~~~~~,,,,,,:::::,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%.%.~~~~~~~~~~~~::%%:::::::::::::::________________~~~~~~~~~~~~~__~~-:::::::::::::::::::::::::::::,%::::::::::::::::::::::::,,,;,,,~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,%%..%%%,,,,,,,,,,,,,,,,,,,,,,,,,..,,..,--~~~~~~~~~~~~-......%%.,,,,,***.,...,,,.%%%%%%%.-~~~~~~,,,,,,::::,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~.~~~~~~~~~~~~~~:::::,:::::::::::::__________________~~~~~~~~~~~~~~~~:::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,~~~~~~~~~~~~~~~~~~,-,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,;,,,,,,,------,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,.%%%.%%,,---~~~~~~~~~~~-.%%%%%...,,,,,,%%..%%%,,,.%%%%%%..~~~~~~~~,,,,,,:,,,..,.,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_::::::::::::::::::::__________________~__~~~~~~~~~~~~___::::::::::::::::::::::,:::::::::::::::::::::::::::::,,,,,,,~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,,,;,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%.%.,,--~~~~~~~~~~,,..%%%%%..,,,,,.%.%%%%%.,,..%%%%%%-o~~~~~~~,,,,,,,,,%%%.%%%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_:::::::,::::::::::::______________________~~~~~~~~~~~_____::::::::::::::::::::,:::,,:::::::::::::::::,,::,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~---,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,;,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%.,,,,-,~~~~o~,,,,,.%%%%%%.,,,,,,%%%%%%%,,,.%%%%%%%.~~~~~~~~,,,,,,,,.%.%%%.%---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_:::::::::::::::::::______________________~~~~~~~~~~~~______::::::::::::::::::::::::::::::::::,,::,,,,:::,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~----,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%..,,,,,,,,,,,,,,,,,%%%%%%%.,,,,,,%%%%%%..,,,%.%%%%%~~~~~~~~~~,,,,,,,.%%%%%%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,:::,:::::::::::::_________________________~~~~~~~~~~~_____:::::::::::::::::::::::::::::::::::::,:,:,::,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%%%,,,,,,,,,,,,,,,,,.%.%%%%%,,,,,,,%%%%%%%.,,,%%%..%%~~~~~~~~~,,,,,,,,,.%%%%%%----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,:::::::::::::::::::________________________~~~~~~~~~~____:::::::::::::::::::::::::::::::::::,:,::::::,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,-------------,;,,,,,,,,,,,,,,,,,,,;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%.%%%%%.,,,,,,,,,,,,,,,,,.%%.%%.,,,,,,,%%%%%%%,,,,,,.-o~~~~~~~~~~~,,,,,,,,.%%%%%%.----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,::,:::::::::::::::::_______________________~~~~~~~~~____:::::::::::::::::::::::::::::::,:::::,::,:,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,;,,,,,,,-----,,,-------------,,,,,,,,,,,,,,,,,,-,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,.%%.%%.%.,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,%%.%%%%.,,,,,--~~~~~~~~....,..,,,,,...%%%%%.----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,:::,:::::::::::::::::_______________________~~~~~~~~~____::::::::::::::::::::::::::::::::,::,:,::,:,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,-,,,,,,,--,--,,,-------------,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%.,.,...,,,,,,,,,,,,,,,,,..%%%%%%,,,,,,,,.,,.,,,,,,,~~~~~~~~~~.%%.%%.%.,,,,..%%%%%%.,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,:,:::::::::::::::::::_______________________~~~~~~~~_____:::::::::::::::::::::::::::::::,::,,:::,:,:,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,----~~~~~~~~~-,,--------------,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%.%%%.%.,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%..,,,,,,,,,,,,,,,,,,,,-~~~~~~~~%.%%%%%.,,,,,,,.,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,:::::::::::::::::::::______________________~~~~~~~~~______:::::::::::::::::::::::::::::::::,::,,,::,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~-----------------,,,,,,,,,**---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,-~~~~~~.%%%%%%%,,,,,,,,,,,,*,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~,,,::::::::::::::::::::::::____________________~~~~~~~~__________________::::::::::::::::::::::::,:,:,::,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~--------------,,,,,,,,,***---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,..%%%.%,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~%%%%%%%,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,::,:::::::::::::::::::::::::::::::::::_____~~~~~~~~___________________:::::::::::::::::::::::::::::,,,,-,,,,,~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~------------,,,,,,,,****--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%.,~~~~~~~,,,,,,,,,,,,,,,,%%.%.%.,,,,,,,,,,,...,,,,,,,,,~~~~~~~%%%%%%%,,,,****,****.,,,.,~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~-,:::,,:::::::::::::::::::::::::::::::::::::____~~~~~~_______________________::::::::::::::::::::::::,::-------,,~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,---***,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%.%%%.%.~~~~~~~~~~,,,,,,,,,,,,,,.,,,...,,,,,,,,,.%%%%.%.,,,,,,,,,~~~~%.%%%.%.,,*****,*,%%%.%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o-::,,,::::::::::::::::::::::::::::::::::::::___~~~~~~~_______________________::::::::::::::::::::::,:::--,-----~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~-----------,------**---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%.%%%~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%%,,,,,..,,,,,.%%.%.%%,,******,,.%.%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~-,,,,:::::::::::::::::_::::::::::::::::::::::_~~~~~~~~_________________________:::::::::::::::::::,:::-:------~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,.,..~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%%%%..%.%%......,,,.,,,,,,***$**,,..%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~o~,,,:::::,,::::::::::____::::__::,::::::::::::~~~~~~~~__________________________::::::::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~,,,,,,,,.,,.,,,,,,,,,,,~~~~,,.%%%%%%.,..%%%%%.%.%.%%,,,,,,,,,**,,,,,%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~~~~~~,,,::,,,:::::::::______:_____-,:::::::::::%~~~~~~~~___________________________::::::::::::::::::::---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,*,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~,,,,~~~~~~~~~~~~~~~~,,,,,,.%.%%%.,,,,,,,,,,,,,,,,,%%%%%%.,,%%%%%%%%%%%.%.,,,,,,,,,,,,,,,.%%%%%%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~,,,,,,,,,:::::::_____~______~~,::::::::::::~~~~~~~~~~~~________________________:::::::::::,:::::::-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,**,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,~~~~~~,,,~~~~~~~~~~~~~~~~,,,,,,%%%%%%%.,,,,,,,,,,,,,,,.%.%%%.%.,.%%%%%%%%%%%..,,,,,,,,,,,,,,,%.%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....~~,,,,,,,,::::::~~~~~~~~_____~~-::::::::::::~~~~~~~~~~~~~________________________::::::::::::::::::-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,**,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,~~~~~~~,,,~~~~~~~~~~~~~~~,,,,,,,%%%%%%%.,,,,,,,,,,,,,,,,%%.%%%.,.%%%%%%.%%%%%.,,,,,,,,,,,,,,,..%..%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%.%%.,,,,,,,,::::__o~~~~~~~~_____~~-::,::::::::,~~~~~~~~~~~~__________________________::::::::::::::::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~,~o~~~~~~~~~,~~~~~~~~~~~~~~~,,,,,,,%%%%%%.,,,,,,,,,,,,,,,,,,,,..,,,.%%%%%.%%%%%%.,,,,,,,,,,,,,.,,,.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~.%.%%%...,,,,,,,,::__~~~~~~~~~~~___~~~~,,,,::::::::_____~~~~~~~___________________________:::::::::::::,:_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,;,;,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~o~~~~~~~~~~,,,~~~~~~~~~~~~~~~~~,,,,,.%%%%%.,,,,,,..,,.,,,,,,,,,,,,,,,,..%%%%%%%%.%.,,,,,,,,%%.%%%.,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,,::_~~~~~~~~~~~~~~~~~~~,,,,::::::::____~~~~~~~~__________________________::::::::::::::,,__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,;,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~,.%.%%%%%.,,,,%%%%%%.,,,,,,,,,,,,,,,.,..,,%..%%%,,,,,,,,.%%%%%.%.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~,,,,:::::::::____~~~~~~~___________________________:::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~.%%%.%%.,,,..%%%%%%,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,,.%%%%%%%.,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o.%%%%%%.,,,,...,,,,~~~~~~~~~~~~~~~~~~~,,,,:::::::::___~~~~~~~~___________________________:::::::::::::::__~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,...,,,,.%%%%%%..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%%%%.%%%,,,~~~~~~~~~~~~~~~~~~~,,::::::::::::____~~~~~~~~_________________________:::::::::::::::___~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,;,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..%%%%%%,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%%.%.%%%%%.,,,~~~~~~~~~~~~~~~~~~::::::::::::::____~~~~~~~~_________________________::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,.%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...%%%.%.---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~..-%%%%%%%.,,,~~~~~~~~~~~~~~~~~~,::::::::::::______~~~~~~~________________________:::::::::::::::_____~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,;,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%.,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,%.%%.%..---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---.%%%%%%,,,..~~~~~~~~~~~~~~~~~,,::::::::::_______~~~~~~~________________________::::::::::::::______~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,;,,,;,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-,,,,,..,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%.%%,,,,,,,,,%%%%,~~,,,,,,,,,,,,,,,,,,,,,.,.,,,----~~~~~~~~o~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%%.%%.%.%%~~~~~~~~~~~~~~~,,,::::::::_______~~~~~~~______________________:::::::::::::::::_________~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~-,,%%%%.%.,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,....,,,,,,,,,,,,%%%%%~%%%%%%%%%,,,,,,,,,,,,,,,,,,,,---~~~~~~~~o~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%%%%%%%%%%%%.%~~~~~~~~~~~..~.,,::::::::::___~~~~~~~~~~______________________::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,;,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,...%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%,,,,,,,,,%%%%%~%%%%%%%%%%%%%%,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~o~~~--.%.%.%.%%%%%%..~o~~~~~~~......:.::::::::::~~~~~~~~~~~~______________________::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,.%%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%,,,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%---~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~o~~~~~~~~---.-..,.%%%%%%.~~~~~~~~~.%.%%::.:::::::::%%~~~~~~~~~~~~~_____________________::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,-----~~~~~~~~~~~~~~~~~~~~~~,,------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,..%%%%%%,~o~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%,,,,,,,%%%%%,%%%%%%%%%%%%%%,,,,,,,,%%%%%%%%,,-~o~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,.%%%%%%.,~~~~~~~.%%%%::::::::::::%%~~~~~~~~~~~~~~____________________::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~~~~,,,,-,,,,,,,,,,,,,,,,,,-------~~~~~~~~~~~~~~~~~~~,,,,-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,.%%%%%.~~~~~~o~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%,,,,,,%%%%%,,%%%%%%%%%%%%%,,,,,,,,%%%%%%%%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~------,,,,%%%%%%%,,,,~~~~~~.%%%%%..:::::::::%~~~~~~~~~~~~~~___________________::::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~~~,,-------,,,,,,,,,,,,,,,,--------~~~~~~~~~~~~~~~~,,,,,,-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,.%%%%%.%.~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,%%%%%%%%,,,,,,%%%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%%%%%,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,..%.%..%,,,,,,,,,,%%%%%%.,:::::::::%~~~~~~~~~~~~~____________________::::::::::::::::::___________~~~~~~~~~~~~~~~~~~~~,,---------,,,,,,,,,,,,,,,,----------~~~~~~~~~~~---,,,,,,--------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,%%%%.%%.~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%,,,--~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,.,,.,.,,,,,,,,,.%%%%%.%.:::::::::_~~~~~~~~~~~~~____________________:::::::::::::::::::__________~~~~~~~~~~~~~~~~~~~~,-,---------,,,,,,,,,,,,,,,------------------------,,,,,,,----,-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,..-~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,%%%%,,,,,,%%%%%%%%%%%%%%%%%%,,,,,%%%%,,%%%%,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-,,,,,,,,,,,,,,,,,,,,,,,,,,.%%%.%%,,:::______~~~~~~~~~~~~____________________::::::::::::::::::::__________~~~~~~~~~~~~~~~~~~-,,-----------,,,,,,,,,,,,,,,,------------------------,,,,,,--,,,,----,--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,,,-~~~~~~~~~~~~~o~~~~~~~~~~~~~,%%%%,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%%%%%%,,,,,%%%%%,,,,,,,,,,%%%%%-~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~o~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,.~~~__________~~~~~~~~~~~____________________::::::::::::::::::::::____________~~~~~~~~~~~~~~,,,----~~-----,,,,,,,,,,,,,,,,----*-**---------------,,,,,,,,,,,,,,--,,,---------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,,~~~~~~~~~~~o~~~~~~~~~~~~~~~~~,%%%%%,,,,,,,,,,,,%%%%%,,,,,%%%%%%%,%%%%,,,,,,%%%%%,,,,,,,,,,%%%%%-,~~~~~~.....~~~~~~~~~o~~~~~~~~~~~~~~~~....,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,,,~~~~~________~~~~~~~~~~~~____::::::::::______::::::::::::::::::::::::__________~~~~~~~~~~~~~~~,----~~~~-----,,,,,,,,,,,,,,,,,-*^^^^-**------------,,,,,,,,,,,,,,,,,,,,----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,,%%%%,,,,,%%%%%,,,,,%%%%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,~~~.%%%..%%~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%%.,,,,,,,,,,,,..,.,.,,,,%%.%%%.,~~~~~~~_______~~~~~~~~~~~~:::::::::::::::____::::%::::::::::::::::::::::________~~~~___~~~~~~~~,,---~~~~----,,,,,,,,,,,,,,,,,,,*^^^^^^^^,----------,,,,,,,,,,,;,,,,,,,,------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~,-,,,,~~~~~~~~~~o~~~~~~~~~~~~~~~~~~,,%%%%%,,%%%%%%%,,,%%%%%,,,,,,%%%%%%%%%,,,,,,,,,%%%,,,,;,,,,,,%%%%%,,,,~~~.%%%%.%~~~~~~~~~~~~~~~~~~~~~~~..%%%%..,,,,,,,,,,,,,%%%.%.%,,.%.%%%.%.~~~~~~~~__~~~~~~~~~~~~~~~-::::::::::::::::__:::::%:::::::::::::::::::::::______________~~~~~~~~,,---~~~~----,,,,,,,,,,,,,,,,,,*,^^^^^^^^-----------,,,,,,,,,,,,,,,,,,,,-------------------~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~%%%%%%.~~~~~~~~~~~~~~~~o~~~~~~~.%%%%%%.~,,,,,,,,,,.%.%%%%.,,.%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~~----:::::::::::::::::::::%:::::::::::::::::::::::______________~~~~~~~~,,--~~~~~~---,,,,,,,,,,,,,,,,,,,^^^^^^^^^-----------,,,,,,,,,,,,,,,,,,,,,----------------~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,,,%%%%%,,,%%%%%,,,,,,,,,;,,,,,,,,,,,,,,,~.%%%%%%..~o~~~~~~~~~~~~o~~~~~~~~.%%%%%%.~~~,,,,,,,,.%%%%%%.,,,%%%%%%%~~~~~~~~~~~~~~~~~~~~~~~~,---::::::::::::::::::::::::::::::::::::::::::::::______________~~~~~~~~,,,-~~~~~~~-,,,,,,,,,,,,,,,,,,,,*^^^^^^^------------,,,,,,,,;,,,,;,,,,,,,---------------~~~~~~~-----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%%%%%%%%%%,,,,,,%%%%%,,,,%%%%%,,,%%%%%,,,~,,,,,,,,,,,,,,,,,,,,,,.%%%%%%..~~~~~~~~~~~~~~~~~~~~~~~%%%%%%..~~~,,,,,,,,.%%%%%%.,,..%%%%%%~~~~~~~~~~~~~~~~~~~~~~,,,,,,::::::::::::::::::::::::::::::::::::::::::::::______________~~~~~~~~~,,,~~~~~~~-,,,,,,,,,,,,,,,,,**^^^^^*-**------------,,,,,,,,,,,,,,,,,,,,,---------------~~~~~~~-------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,%%%%%,,,%%%%%,,%%%,,,,,,,%%%%%,,,,,,,,,,%.%%%.%.~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%~~~~~,,,,,,,..%%%%%..,,..%%%.%.~~~~~~~~~~~~~~~~~~~~,,,::,,::::::::::::::::::::::::::::::::::::::::::::::______________~~~~~~~~~,,--~~~~~~--,,,,,,,,,,,,,,,,*^^^^*-,,*,-------,,,,-,,,,,,,,,,;,,---,,,,,---------------~~~~~~~--------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,,,,,,,,%%%%%,%%%%%,,,,,,%%%%%,,.,..,,,.%%...%%~~~~~~~~~~~~~~~~~~~~~~~~.%%..%%.~~~~,,,,,,,.%.%%%.%.,,%%.%%%%~~~~~~~~~~~~~~~~~~~~,,,:::::::::::::,::,::::::::::::::::::::::::::::::::::______________~~~~~~~~~,,---~~~~~~--,,,,,,,,,,,,,,,*^^^^^,,,,,,,,----,,,,,,,,,,,,,,,,,,----,,,,---------------~~~~~~~~~-------,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,%%%%%,%%%%,,,%%%%%%%%,,,,,,,,,,,,%%%%,,%%%%%,,,;,,%%%%%%%.%%%%,,,.~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~...~~~~~~~,,,,,,,.%%%%.%%,,,,,,~.~~~~~~~~~~~~~~%%%%%,,,,,%%::::::::::::::::::::::::::::::::::::::::::::::::::______________~~~~~~~~~,,---~~~~~~~,,,,,,,,,,,,,,,,**^^^,,,,,,,,,,---,,,,,,,,,,,,,,,,,------------------------~~~~~~~~~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~---,~~~~o~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%,%%%%,,,%%%%%%,,,,,,,,%%%%,,%%%%%,%%%%%,,,,,,%%%%%%.%%%.%.,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,..,,,,,,,,,~~~~~~~~~~~~~~-%%%%%%%,,,%%%::::::::::::::::::::::::::_____:::::::::::::::::::______________~~~~~~~~~,----~~~-~~~,,,,,,,,,,,,,,,,,****^,,,,,,,,,,,,,,,,,,,,,,,,,,,,;-------------------------~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~--..--,,,~~~o~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,%%%%%,,,%%%%%%,,,,,,,%%%%%,,%%%%%%%%%%,,,,,,,%%%%%.%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~--:::%::%%%,::%%%::::::::::::::,:,:::::::::::________::::::::::::::________________~~~~~~~,,----~--~~,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------~~~~~~-----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~------,,~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,,,,%%%%%,,,,,,,%%%%%,,%%%%%%%%%,,%%%%%,,,,,,.%%%%%%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~--::::::::::::::::::::::::::::::::::,:::::::::_______::::::::::::::_________________~~~~~~,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------~~-~~-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~,-----,,,~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,%%%%,,,,%%%%%;,,,%%%%%,,%%%%,%%%%%,,%%%%%%%%%,,%%%%%,,,,,,%%%%%%%.,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~::::::::::::::::::::::::::::::::::,:::::::::::_______::::::::::::::_________________~~~~~~,,---------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------c----~-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~,,,,-,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,%%%%%,,,,,%%%%,;,,%%%%%,,%%%%%%%%%%,,,%%%%%%%%,,%%%%%,,,,,,.%%%%.%,,,,~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~.~~.,,,,,,,,,,,,,,,,,,~~~o~~~~~~~~~-:::::::::::::::::::::::::::::::::::::::::::::_______:::::::;::::::_________________~~~~~~-,,-----::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------c----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,%%%%,,%%%%%%%%,,.%.%%...,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%%%%%,,,,,,,,,,,,,,,~~~~~~~~~~~~-,:::::::::::::::::::::::::::::::::::::::::::::______::::::::::,,::::________________~~~~_~,,:::,:,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~,,,,,,,,~~~~~~~~~~o~~~~~~~~~~~~~~~~----,,,,-~~~~~~~~~~~%%%%%,,,,,,,,,;,,,;,,,,,,%%%%%,,--------,,,,,,,,,%%%%%%%,,,.,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%.%,,,,,,,,,,,,,,,~~~~~~o~~~~~~,:::::::::::::::::::::::::::::::::::::::::::::______::::::::;,:;,:,:_________________~____::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~,,,,,,,,~~~~~~~~o~~~~~~~~~~~~~~~~~-----,,,--~~~~~~~~~~~~%%%%,,,,,,,,,,%%%%,,,,,,,%%%%,------------,,,,,%%%%%%%%%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%,,,,,,,,,,,,,,,~~~~~~~~~~~~~,::::::::::::::::::::::::::::::::::::::::::::_______::::::;:::::::::______________________::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~------,,,---~~~~~~~~~~~%%%%%,,,,,,,,,%%%%%,%%%,,,,,,--~~~~~~~~~---,,,,%%%%%%%%%%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,,,,,,,-~~~~~~~~~~~~~,,:::,::::::::::::::::::::::::::::::::::::::::::___:::::_:::::::;::::_____________________:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~,,,,,,,~~o~o~~~o~~~~~~~~~~~~~~~------,,,,---~~~~~~~~~~~%%%%%,,,,,,%%%%%%%%%%%%%,,,,--~~~~~~~~~~~--,,,%%%%%%%%%%%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..%%%%%%.,,,,,,,,,,,,,,~~~~~~~~~~~~~~,,,,,:::::::::::::::::::::::::::::::::::::::::::::::_____::;:,,:::::_____________________::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,~~~~o~~~~~~~~~~~~~~~~~~~~~,,-,,,,,,-----~~~~~~~~~~%%%%%,,,,,,%%%%%%%%%%%%%,,,,--~~~~~~~~~~~----%%%%%%%,,,%%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%.%.,,,..,,.,,,,,,~~~~~~~~~~~~~~,,,,,:::::::::::::::::::::::::::::::::::::::::::::_______::,:::::::_____________________:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,-----~~~~~~~~~%%%%%,,,,,,%%%%%%%%%%%%%,,---~~~~~~~~~~~~~---%%%%%%%,,,%%%%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.%%.%%%%.,,.%%..%%,,,,,~~~~~~~~~~~~~~,,,,,::::::::::::::::::::::::::::::::::::::::::::__________::::_________________________::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~o~~~o~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,----~~~~~~~~%%%%,,,,,,,%%%%%%%%,%%%%,---~~~~~~~~~~~~~~~~-%%%%%,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~...,,,,,.%.%%%%%,,,,-~~~~~o~~~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::::::______________________________________::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~,,,,,,,,,,,,,----~~~~~~~~~,,,,,,,,,%%%%%%%%,,,,,,--~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,%%%%%%%.,,,,~~~~~~~~~~~~~~,,,,:_::::::::::::::::::::::::::::::::::::::::::_____________________________________;::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,---~~~~~~~~,,,,,,,,,,,,%%%%%,,,,,--~~~~~~~~~~~~~~~~~~~-%%%,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,%%%%%%.,,,,,~~~~~~~~~~~~~~,,,:::::::::::::::::::::::::::::::::::::::::,,:_____________________________________:;::::::::,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,,,,,,~~~~~~~%%%%%,,,,,,,%%%%,,,,,--~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,.%%%%%%,,,,,,~~oo~~~~~~~~~~,::::::::::::::::::::::::::::::::::::::::_________________________________________:,::::::;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~~%%%%%%%%%%,,,,,,,,,,,,,,,~~~~~%%%%%,,,,,,,,,,,,,,,,~~~~~~~~---,,~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,%.%%%.%.,,,,,~~~~~~~~~~~~~~,,::::::::,,:::::::::::::::::::::::::____________________________________________:::::;:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,--~~~~~~~~~~~~~~~~%%%%%%%%%%,,,,,,,,,,,,,,,,~~~~%%%%%,,,,,,%%%%%,,,,~~~~~~~~----,%%%%%~~~~~~~~,-,,,,,,,,,,,%%%%%,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,.%%.%%%%,,,,,,~~~~~~~~~~~~~~,,,:::::::::::::::::::::::::::::::::____________________________________________:::::::::;;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,-~~~~~~~~~~~~~~~~%%%%,%%%%%,,,,,,,,,,,,,,,,,,~~%%%%%,,,,,,%%%%%,,--~~~~~~~~---,,%%%%%~~~~~~~~~----,,,,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,.,.,,,,,,~..~~~~~~~~~~~,,,:::::::::::::,:::::::::::::::::::___________________________________________::::::::::;:;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,-~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,,,,%%%%%,,,,,,,%%%%,,,,,,,%%%%%,,-~~~~~~~~%%%%,,%%%%%~~~~~~~~~-----,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,.%%...%.~~~~~~~~~,::::::::,::::::::::::::::::::::::___________________________________________:::::::::::::;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~...,.~~~~o~~~~~~~~~~~~,,,%%%%%,,,,,,,%%%%%%%,,,,,,,~~~-,-,,,,%%%%%,--~~~~~~~%%%%%,,%%%%%,~~~~~~~~-----,,,,,,,%%%%%,,~~~~~~~~~~~~~~~%%%~~~~~~~~~~~~~~~~~~~~~o~~~,,,,,,,,,,,,,,,,,,,,%.%%%.%~~~~~~~~~,:::::::::::,:::::::::::::::::::::___________________________________________:::::::::::;,:;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~%%.%%.--~~~~~~~~~~~~~~~%%%%,,,,,,,,,,%%%%%%%%,,,,,,,~~~~~~-,,,%%%%%,,~~~~~~~~%%%%%,,%%%%,,,~~~~~~~~----,,,,,,,,%%%%,~~~~~~~~~~~---~%%%%%,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,..,.,,,,,,,..%%%%%.~~~~~~~~~,,:::::::::,::::::::::::::::;::_:___________________________________________::::;::::::;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~.%%%%%.%--~~~~~~~~~~~~~%%%%%,%%%%,,,,,%%%%%%%%,,,,,,---~~~~--,,----,~~~~~~~~~~%%%%%,,,,,%%%%%~~~~~~~-----,,,,%%%%,,,~~~~~~~~~~~%%%,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~,,,,,.%%.%.%.,,,,,,,%%%%%%:_~~~~~~~~~,::::::::::::::::::::::::::_______________________________________________:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~%%%%%%%.-,~~~~~~~~~~~~%%%%%,%%%%%%%%,%%%%%%%%,,,,,,----~~~~~-~~~~~~~~~~~~~~~~%%%%,,,,,,%%%%%-~~~~~~~~--,,,,,%%%%%,~~~~~~~~~~-%%%%%,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,%.%%%%%.,,,,,.%%%%%::__~~~~~~~~~_::::___::::::::::::::::_________________________________________________:::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------,-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~..%%%%%%,,,,,~~~~~~~~~~%%%%%,%%%%%%%%%,%%%,%%%%,,,,,----~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,,%%%%%,-~~~~~~~~-,,,,,%%%%%~~~~~~~~~,-,%%%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~o~,,,,,,%%%%%%%,,,,,,.%.:::::__~~~~~~~~_________________________________________________________________________:,::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------~~~------------------------------,,~~~~~~~~~~~~~~-,,,,,,,-,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~.%%%%%%%,,,,,,~~~~~~~~~~%%%,,%%%%%%%%%%%%%%%%%%,,,,,,---~~~~~~~~~~~~~~~~~~~~~~%%%%%,,,,%%%%%%,,,~~~~~~~~,,,,,%%%%%~~~~~~~~~-,,%%%%%%%%%%%%,,,~~~~~~~~~~~~~~~~~~~~,,,,,,%%%%%%..,,,,,,.:::.::___~~~~~~~~~_______________________________________________________________________:::::,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------c---------------~~~~~-----------------------------,,,--~~~~~~~~~,-----,,---,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~%.%%%%..,,,,,,~~~~~~~~~~,,,,%%%%%%%%%%%%%%%%%%,,,,,,,---~~~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%%%%,,-~~~~~~~~~,,,,,%%%%~~~~~~~~--%%%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~-,,,,,.%%%%%.,,,,,,,,..::,.__~~~~~~~~~~~_____________________________________________________________________,:::::,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------~~~~~-----------------------------------~~~~~~~,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~.%%%.%.,,,,,,,~~~~~~~~~~~,,,,,,%%%%%%%%%%%%%%%%%%%,,,----~~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~----%%%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~~~~~--,,,.%.%%%.%.,,,,,,,:::::::~~~~~~~~~~~~_______~~___________________________________________________________::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------~~~~~~~-----------------------,------------~~,,,,,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,...,,,,,%%%%%~~~~~~~~~~,,,,,%%%%%%%%%%%%%%%%%%%,,,,----~~~~~~~~~~~~~~~~~~~%%%%%,,,%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~-----%%%%%%%%%%%%%,%%%%%~~~~~~~~~~~~~~~~~~--,,,.%%..%%%,,,,,,,,,:::::,,~~~~~~~~~~~_______~~~__________________________________________________________::,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------~~~~~~----------------,-----------------------,,,,--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,%%%%%%%~~~~~~~~~%%%%%%%%%%%%%,,,,,,%%%%%%%,,,----~~~~~~~~~~~~~~~~~~%%%%%,,,,%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~-----%%%%%,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~---,,,,,,.,,,,,,,,,,,,::::,,,,~~~~~~~~~~______~~~~_________________________________________________________:::::,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,---------------------------------------------------------------~~~~~---------------------------------------c------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,%%%%%%%~~~~~~~~~%%%%%%%%%%%%%,,,,,,%%%%%%%,,,-,,--%%%~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~-----,%%%%,,,,%%%%,,%%%%%~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,:::::::,,~~~~~~~~~~~~~~~_~~~~________________________________________________________::::,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,----------------------------------------------------------------~~~------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,,%%%%%%%~~~~~~~~~%%%%%%%%%%%%,,,,,,,,%%%%%%,,,,,,,%%%%%~~~~~~~~~~~--%%%%%,,,%%%%%,,,,%%%%,~~~~~~~~~~~~~~~~------,,,,,,,,,,%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,:,:::,:::__~~~~~~~~~~~~~~~~~_________________________________________________________::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------------------,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,%%%%%-~~~~~~~~~%%%%%%%,;,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,~~~~~~~~~---,%%%,,,,%%%%%,,,,,,,,,~~~~~~~~~~~~~~~------,,,,,,,,,,,%%%%%,%%%%%~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,:::,::::::::__~~~~~~~~~~~~~~___________________________________________________________:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~%%%%%%%,;,,%%%,,,,,,,%%%%%,,,,,%%%%%%%,,~~~~~~~---,,,%%%%%,%%%%%,,,,,,,,,,~~~~~~~~~~~~~~------,,,,,,,,,,,%%%%%,,,,,-~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,::::::::::::,:_~~~~~~~~~~~~~~__________________________________________________________:::::,,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~,%%%%%,,;%%%%%,,,,,,,%%%%,,,,%%%%%%%%,,-~~~~~----,,,%%%%%,%%%%%,,,,,,%%%%%-~~~~~~~~~~~-----,,,,,,,,,,,,,,%%%%,,,,,--~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,::,:::::::::::_~~~~~~~~~~~~~~~____~____________________________________________________::::::,:,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~,%%%%%,,,%%%%%%,,,,,%%%%%,,,,%%%%%%%%%,---------,,,,%%%%%%%%%%,,,,,%%%%%%%----,----------,,,,,,,,,,,,,,,,,,%%%%,,---~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,:::::::::::::::~~~~~~~~~~~~~~~~~~~~___________________________________________________:::::,:::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------,-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,%%%,,,,%%%%%%,,,,,%%%%%,,,,%%%%%%%%%,,-----%%%%,,,%%%%%%%%%%%%%,%%%%%%%%----,----------,,,,,,,,,,%%%%,,,%%%%%,,,---~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,%:::::::::::::;~~~~~~~~~~~~~~~~~~~~__________________________________________________::::::,:::,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,%%%%%%%%%%%%,%%%%%%%%,-,,,,-----%%%%,,,,,,,,,,%%%%%,,%%%%%,,,----~~~~~~~~~~~~~~~~~~,,,,,,,,,,,%%%%%:::::::::::::_~~,;~~~~~~~~~~~~~~~~_________________________________________________::::::,,:,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%~~~~~~~~~~~~,,,,,,,,,,,%%%,,,,,,,%%%%%%%%%,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%%%%%%,%%%%%%%%,%%%,,,----%%%%%,,,,,,,,,%%%%%,,%%%%%%%%%---~~~~~~~~~~~~~~~~~~,,,,,,,,,,%%%%%%:::::::::::::::::;_______~~~~~~~~~~_______________________________________________:::::::,,,,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,%%%%,,,,,,,,%%%%%,,,,,%%%%%%%%%%,,%%%%%,,%%%%%,,,,,,%%%%%,%%%%%,,,%%%%%%%%%%%%%%%%---~~~~~~~~~~~~~~~~~~,,...,,..,%%%%%%:::::::::::::::::::_______~~~~~~~________________________________________________::::::::,,:,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,%%%%,,,,,,%%%%,%%%%%,,,%%%,,,%%%%%,,,,,,%%%%%,%%%%%,%%%%%%%%%,,,,%%%%%,--~~~~~~~~~~~~~~~~~~,,%%.%.%.,%%%%%:,::::::::::::;:::::::____~~~~~~~________________________________________________:::::::::,,,::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%~~~~~~~~~~~~,,,,%%%%,,,,,,,,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,,%%%,,%%%%%%%%%%%%%%%,,,,%%%%%,,,~~~~~~~~~~~~~~~~~~,,%.%%%.%,,%%%:::::::::::::::::,,,::::__~~~~~~~~_______________________________________________::::::::::,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--,-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%~~~~~~~~~~~,,,,,%%%%%,,,,,%%%,,,,%%%%%,%%%%%%%%,,,,,,,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,,,,,,,%%%%%%%%%%%%%%%%,,,%%%%%,,,~~~~~~~~~o~~~~~~~,,.%%%%%%%,,,,,::::::::::::::::::,:::::__~~~~~~~~~_____________________________________________:::::::::::,:,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------c-----------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,~~~~~~~~~~~~~~,,,,,,%%%%%,,,,%%%%%,,%%%%%%,%%%%%%%%,%%%%%,,,,%%%%%%%%%,%%%%%,,,,,,,,,,,,,,%%%%%%%%,,%%%%%,,,%%%%%%%%%%%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~o~,,,.%%%%%.,,,,:::::::::::::::::::,,::::___~~~~~~~~____________________________________________:::::::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~,,,,,,,%%%%%,,,,%%%%%,%%%%%,,,%%%%%%%%,%%%%%,,,,%%%%%%%%%,%%%%,,,,,,,,,,,,,,,,%%%%%%%%,%%%%%,,,,,,,,%%%%,%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~,,,%%%%%%..,,,:::::::::::::::::::,;:,:____~~~~~~~~~___________________________________________:::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------c----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,~~~~~~~~~~~~~~,,,,,,,,,%%%%,,%%%%%%%,%%%%%,,,%%%%%%%%,%%%%%,,%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,%%%%%%%%,%%%%%%%,,,,%%%%%,,%%%%%,,,,,,,,,-,~~~~~~~~~~~~~~~~~,,,..%%%.%,,,,,,:_::::::::::::::::,:::_____~~~~~~~~~_________________________________________:::,:,:,,:::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------c--------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,%%%%%%%,%%%%%,,,%%%%%%%%%%%%%%,,%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,%%%%%,%%%%%%%%,,,%%%%%,,%%%%%,,,,,,----~~~~~~~~~~~~~~~~~,,,,.%%.%%%.,,,**~_.:::::::::::::::::::_____~~~~~~~~~________________________________________:::,,:::,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------,-------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,%%%%%,,,%%%%,,,%%%%%,,,%%%%%%,,,%%%%%%%%%%%%,,,,%%%%%,,,,,%%%%%,,%%%%%%%,%%%%%%%%,,,%%%%%%%,,,,,,,,,,---~~~~~~~~~~~~~~~~~~,,,,,,..,,.,,,,,*%%%:.::::::::::::;,::,:_____~~~~~~~~________________________________________::::::,::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,%%%%%,,,,%%%%%%%%%%%%,,,,%%%%%,,,,,%%%%%,,%%%%%,,,,,,%%%%%,,,%%%%%%%,%%%%%,,,,--~~~~~~~~~~~~~~.~..~.,,,,,,,,,,,,,,,..%%::.:.::::::::::::;,,_____~~~~~~~________________________________________::::,,:,:::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%,,,%%%%%,,,,,%%%%%%%%%%%%%%%%%%%%,,,,,%%%%%,,%%%%%,,,,,,%%%%%,,,%%%%%%%,%%%%%,,,,-~~~~~~~~~~~~~~o%...%%.,,,,,,,,,,,,,,,%%:::::.:::::;:;:,::::,______~~~~_________________________________________:::::,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,%%%%%,,,,%%%%,,%%%%%,%%%%%,,,,,,,,,%%%%%,,%%%%%,,,,,,,,,%%%%,%%%%%%%,%%%%%,,,~~~~~~~~~~~~~~~~.%.%%%.%.,,,,,,,,,,,,,..%:::::::::::,:,,,:::::______~~~~______________::::______________________::,,,:,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%,%%%%%,,,,,,,,,%%%%%,,%%%%%%,,,,,,,,%%%%%%%%%%%%,%%%%%,,~~~~~~~~~~~~~~~~~.%%%%%%%,,,,,,....,,,,,%%:::::.:::::::::::,:::_____~~~~~~_____________:::::::__:_______________::::::,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~,,,,,,,,,,%%%%%,,,,,%%%%,%%%%%,%%%%%,,,,,,,,,,,,,,,,%%%%%,%%%%%,%%%%%,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%,,,%%%%,,,~~~~~~~~~~~~~~,,,,.%%%%%.,,,.%%..%%,,,,,%%:::.:.:::::,::;:,::,:_____~~~~~~~~__________::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%%,,,,,,,,,~~~~~~~~~~~~,,,,,,,.%%%%%%,,~%%%%%%%.,,,,.%%%::%.::::,,::,,;,::::_____~~~~~~~~_________:::::::::::::::::::::::::::::,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------,--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,%%%%%,,,%%%%%%%%%%,,,,,,~~~~~~~~~~~~~~~,,,,,,,%.%%%%%,,,.%%%%%%,,,,,,,,.,,,,,:::,,,,,,,,,,,:,~~~__~~~~~~~~~_______:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~------------------------------------------------------------------------------------------------------------~~-------,------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,%%%%%,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~~~~,,,,,,,,%.%.%%,,,.%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~_____~~~~~~________::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------~~~~~~-----------c------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%%%%%,%%%%%,,,,,,,,,,,,,,%%%%%,%%%%%%,%%%%,%%%%%,,,,,%%%,,,,,,%%%%%,%%%%%~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,..,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~_____~~~~~~________::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------~~~~~~~-----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%%%%%%,%%%%%%%%,,,,,,,,,,,%%%%%,%%%%%%%%%%%%%%%%%,,,,%%%%%,,,,,%%%%%,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,,,,.%%%%%.%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,_____~~~~~~________:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~--,------------------------------------------------------,--------------------------------------------~~~~~~~~---------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,%%%%%%%%%,,,,,%%%%%,,,,,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%,,,,%%%%%,,,,,%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,%%.%.%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,____~~~~~~~_________:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~-,,,------------------------------------------------------------------------------------------------~~~~~~~~----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,,%%%%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,~~~~...,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:___~~~~~~~~~________:::::::::::::::::::::::::::,,,,,,,,~,,,,,;,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~-,,,--------------,**-------------------------------------c-----------------------------------------~~~~~~~~-~-------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,%%%%,,,,,,,%%%%%%%%,,,%%%%%,,,,,,,,,,,,%%%,%%%%,%%%%%,,,,,%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%,,%%%%,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::__~~~~~~~~~___~____::::::::::::::::::::::::::::,,,,,,~~~,;,,;,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~-,,,---------------*---------------------------------------------c----------------------------------~~~~~~~~~~~~-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,%%%%%,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,_~~~~~~~~~__~~~____:::::::::::::::::::::::::,__~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~,,,-------------,--*--------------------------------------------------------------------------------~~~~~~~~~~~----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,%%%%%%%%,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,%%%%%,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,~~~~~~~~~~~~~~_____:::::::::::::::::::::::::_~~~~~~~~~~,,,,,,,,,,,,,,;,;,~~~~~~~~~~~~~~~~~~~~~,,----------------***-------------------------------------------------------------------------------~~~~---~------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,,%%%%%,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,%%%%%,,,,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,~~~~~~~~~~~~_______:::::::::::::::::::::::::,,-~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~,,,------------*****-**---------,---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,,,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-%%%%,,%%%%%%%%,,,~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~____~_____:::::::::::::::::::::,,,--~~~~~~~,,,,,,,,,,,,;,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,------**---**---------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%,,,%%%%%,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%,,,,,,,,%%%%%%---~~~~~~---,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,$,,,,,,,,,~~~~~~~~~___~~________________:::::::::::,,,-::,,~~~,,,,,,,,;,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,--,,*,-**----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%%,,%%%%%,,,,,%%%%%,%%%%%%%%%%,,,,,,,,,,,%%%%%,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,,,,,,,%%%%%%--~~~~~~~----,,,,,,,,,.,..,,,~~~~,,,,,,,,,,,,,,,,,,,-~~~~~~~~~___~~________________:::::::,::::,::::,,,~~,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,*,*-*----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,%%%%%,,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,%%%%%,,,,,,,,%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,%%%%%%--~~~~~~~-----,,,,,,,%%%.%%%,~~~~~,,,,,,,***,,,,,,,,,-~~~~~~~~~~~~~________________::::::::::::::::,,,,,;,,,,,;,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,*,,,*----*------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,%%%%%%,%%%%%,,,,,,,,,,,%%%%%%%%%%,,,,%%%%%,,,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%%,,,,,,,,%%%%,-~~~~~~~~-----,,,,,,,%%%%%%.,~~~~~,,,,,,,***,,,;,,,,,--~~~~~~~~~~~~________________:::::::::::::::,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%,,,,,%%%%%%,%%%%%,,,,,,%%%%,%%%%%%%%%%,,,,%%%%%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%%%,,,,,,,,,,%%%,-~~~~~~~~-----,,,,,,,%%%%%%%,~~~~~,,,,,,****,,,,,,,,,,,~~~~~~~~~~~~________________:::::::::::::::,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,----------,------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%%%%%%,,,,%%%%%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%,,,,,,,,,,,%%%%%,~~~~~~~~~-----,,,,,,%%%%%%..~~~~,,,,,,,****,,,,,,,,,,-~~~~~~~~~~~~_________________:::____::::,:,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%,,,,,,,%%%%%,,,,,,,,%%%%%%%%%%%%%%,,,,,,,,,,%%%%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,%%%%%~~~~~~~~~~----,,,,,,.%%%%%%%,,,,,,,,,,,,***,,*,,,,,,,,,~~~~~~~~~~~~______________________~~__:::::,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%,,,%%%%,,%%%%%%%%%%%%%%,,,,,,,,,,,%%%%%%%,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,%%%%%~~~~~~~~~~----,,,,,,,%.%%%%%,,,,,,,,,,,,*******,,,,,,,,.~~~~~~~~~~~~____________~~_______~~~__::::,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;,,,,,,,,,------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,%%%%%%%%%,,,,%%%%%,,,,,,,%%%%%%,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,%%%%%~~~~~~~~~~----,,,,,,,%%%...%.,,,,~~~,,,,,**,****,,,,,,,,~~~~~~~~~~~~~~~~________~~~~~___~~~~__::::,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,%%%%%,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,%%%%%~~~~~~~~~~---,,,,,,,,,..,...,,,,,~~~~,,,,*******,,,,,,,.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~_,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,-------------------------------------------------------c---------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,%%%~~o~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,*,,,,,,,,,,,,.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,%%%%,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,~~~o~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,;,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,-,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%%%%%,,,,,,,%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,,%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,%%%%,,,,,,,,~~~~~~~o~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,----,--,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------,-----------c----------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%,,,,,,,,,,,,,,%%%%%%,,,,,%%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,%%%%%,,,,,,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,%%%%%%,,,,,%%%%%%%%%,,,,,,,,,,~~~~~~~~~~~~~~~~~~,~~~~~~~~~~~~~,,,%%%%%,,,,,,,~~o~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------,,,,,,,~~~~~~~~~~~~~~~~~,-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%,,,%%%%%%%%%%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%%,,,,,,,,~~~~~~~~~~~~~~~,,,,,~~~~~~~~~~~~~--%%%%%,,,,,,,~~~o~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~__~~~~%%%~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,~~~~~~~~~~~~~~~---,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------c-----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%,,,%%%%%,%%%%%%%,,,,,,,,,,,%%%%%%,,,,%%%%%%%%%%%,,,,,,,,,~~~~~~~~~~~~,,,,,,,,,,~~~~~~~~~~---%%%,,,,,,,~o~~~~o~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-::::-~%%:%%~~~~~~___~~~~~~~~~~~~~~--------,,,,,~~~~~~~~~~~~~~----,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------,-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,%%%%,,%%%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,%%%%%,,,,,,,,,~~~~~~~~~~~%%%%%%%%%%%~~~~~~~~~~--%%%%%,,,,,,-~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::__~~~~___~~~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~-----,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%,%%%%%,,,,%%%%%,%%%%%,,,,,,,,,,,~~~~~~~~,%%%%%%%%%%%%~~~~~~~~~--%%%%%,,,,,,-~~~~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,::::::_________~~~~~~~~~~~~~~~~~~~---~~~~~~~~~~~~~~~~~~-----,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------------------------------------------c---------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%,%%%%,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%,,,,%%%%%,%%%%%,,,,,,,,,,,,,,~,,,,,%%%%%%%%%%%%~~~~~~~~~--%%%%%,,,,,,--~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::-:______~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~-----,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%,%%%%%,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%~~~~~~~~~--%%%%%,,,,,---~o~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%,,::::::::-:::::~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~,,,,,-,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---------------------------------------------------------------------------------------------,---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%,%%%%%,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%,,,%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%~~~~~~~~~-%%%%%%,,,,,,---~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%::::::::::::----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,--------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%,%%%%%,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%,,%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~%%%%%,,,,,,,----~-----.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%::::::::%%::--,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%,%%%%%,,,,,%%%%%%%%%,,,,,,%%%%%,,%%%%%,%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,~~~~~~~~~~~%%%%%,,,,,,,---.%%%..%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::%%,,,-,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,%%%%%,,%%%%%,%%%%%%,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%-~~~~~~~~~~~%%%%%,,,%%%,,--.%%%%%%%.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::%%,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%,%%%%%%,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%%-~~~~~~~~~~~%%%%%%,%%%%%,,-..%%%%%..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::%%,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%,,,,,,%%%%%,,%%%%%,%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%-~~~~~~~~~~~,%%%%%,%%%%%,,,,.%%%%%.%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::%,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,--------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%%%%%%%,,%%%%%,,%%%%,,%%%%%,,%%%%%,,%%%%%%%%,,,,,,,,,,,,,,,,%%%%--~~~~~~~~~~~,%%%%%%%%%%%,,,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,::::,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~-,--------------------------------,-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~------~~~~~~~~~~~~~~~~~~~~~~~~,,,--------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%,;%%%%%%%%,,%%%,%%%%%,,,,,,,%%%%%,,%%%%%,,%%%%%,,%%%%%%%%%,,%%%%%%%%%,,,,,,,,--~~~~~~~~~~,,,%%%%%%%%%%,,,...%%%.%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~---------~~~~~~~~~~~~~~~~~~~~~~,,----------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,;%%%%%%%,,,,,,%%%%%%%%%%,,%%%%%%%%%%%,,,,,,,,,,%%%%%%%%%,,%%%%%%%%%%,,,,,,--~~~~~~~~~~~,,,,,,,%%%%%,,,,.%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------,----,,------------~~~~~~~~~~~~~~~~~~~~.,-----------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,;%%%%%,,,,,,%%%%%%%%%%,,%%%%%%%%%,%%%%%,,,,,,%%%%%%%%%,,%%%%%%%%%%,,,,,--~~~~~~~~~~~~,,,,,,,%%%%%,,,,,,.,...%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------c----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~,,,------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,;,,,,,,,;%%%%%,,,%%%%%%%%%%%%%,,%%%%%%%%%,%%%%%,,,,,,,%%%%%%%,,,%%%%%%%%%%,,,,,-~~~~~~~~~~~~~,,,,,,,,%%%%,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,-------,,,,,,,,,;,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------,,,,,,,,.,,,,,-------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,%%%%%,,,%%%%%,,%%%%%%%%%,%%%%%%%%%,~~~,%%%%,,,,%%%%%%%%%%,,,,,-~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,;,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------------------------------------------------------------------------------------------------------------------------,,,,,,----,,,--------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,%%%%%,,,,%%%%,,,,,,%%%%,,%%%%%%%%%~~~~%%%%%,,,,,,,,,%%%,,,,,,,~~~~~~~~~~~~~~%%%%%,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,-,,,,,,;,,;,,,,,,,,,,;,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------c------------------------------------------------,--------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,%%%%%,,,,;,,,,,,,,,,,,,,,%%%%%%%%%%%%~%%%%%,,,,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~%%%%%,,,,%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%%,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%~%%%%%,,,,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~%%%%%%%%%%%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------c--------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,%%%%%%%%%~%%%%%,,,,,,,,%%%%%,,,,,,~~~~~~~~~~~~~~%%%%,%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%,,%%%%%%%%%~%%%%%,,%%%%%,%%%%%,,,,~~~~~~~~~~~~~~~--,,,,%%%%%%%%%%,,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,%%%%%%%%%~%%%%%,,%%%%%,,,,,,,,,~~~~~~~~~~~~~~~----,,,%%%%%%%%%%,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,%%%%%,,,~~%%%%%%%%%%%%%%%,,,,,,~~~~~~~~~~~~~~---%%%%,,%%%%,%%%,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%,,,,,,,,,,,,%%%%%%%%%%%%%%%%,,%%%%,,,,,,~,%%%%%%%%%%%%%,,,,,~~~~~~~~~~~~~~----%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%,,,,~~~~~~~~~~~~~~~----%%%%%,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%%%%,,,,,,,%%%%%,,,%%%%%%%%%%%%%%%%%,,,~~~~~~~~~~~~~~~-----%%%%%,,,,,,,,,,,,,,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------------------------------------------------------------------c-----------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,,%%%%%%%%%%,,%%%%%,,%%%%%,%%%%%%%,%%%,,,~~~~~~~~~~~~~~,,,-,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------------------------------------------------------,------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,,,,,,,%%%%%%%,,,,%%%%%%%%%%,,,%%%,,,%%%%%,%%%%%%%,,,,,,,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------,,------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,%%%%%%%%,,,,%%%%%%%%%,,,,,,,,,%%%%%,%%%%%,%%%%%,,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,------------,,,,,-----,-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%%,,%%%%,%%%%%%%,%%%%%,%%%%%,~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------------,,,,,,,,,,,------,----------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%%,,,%%%%%%%%%%%%%%%%%%,%%%%%~~~~~~~~~~~~~%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------,,,,,,~~~~,---------------------------------------------------------------------------c---------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,%%%%%%%%%%,,,%%%%%%%%%%%%%%%,,,,%%%%%~~~~~~~~~~~~,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,,,,,,~~~~~~~-----,--------------------------------------------------------,-,-------------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,%%%%%%%%%%%%%%%,,,,%%%%%~~~~~~~~~~~,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~---,--,,,,,,,,,,,,~~~~----,,-------------------------------------------------------------------------------------------------------------------~~~~~~~~~~------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%%%%%%,,,,%%%%%%%%%%%%%%%%%,,,,,,~~~~~~~~~~~,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~..------~~~~~~~~~~~~,,,,,,,,,,,,,,,,-~~~~~---,--------------------------------------------------------c-------------c-----------------------------------------~~~~~~~~~~~~~~~~~--------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%%%,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,~~~~~~~~~,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~-.-----------~~~~~~~~~~~,,,,,,,,,,,-,,,,~~~~~--,--------------------------------------------------------,---,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~-----------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%%%%%%%,,,%%%%,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,~~~~~~~~,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~,,,-------------~~~~~~~~~,,,,,,,,-----,,,~~~~~--,------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%,,,,,,~~~~~~~~,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~,,,,--------------~~~~~~~,,,,,,,,--------,,--~~-,----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%,,,,~~~~~~~,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,~~~,,~~~,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~-,,,-----------------~~~,,,,,,,,,,---------,,,-~,,,-------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,%%%%%,,,,~~~~~~~,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~-,,,--------------------,,,,,,,,,,----------,,,~~,,,,--------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,%%%%%,,,,,~~~~~~,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~----,----------------------,,,,---,-----------,--~~~~~~~~~--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%,,,,%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%%%,%%%%,,,,,~~~~~,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------,,,~~~~~~-------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%%,,,,%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,,%%%%%%%%%%%%,,,,,~~~~~,,,,,,,;,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,-------------------------------------------------,,,~~~~~~-----------------,----------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%%%,,%%%%%%%%,,%%%%%,,%%%%%,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,~~~,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,---------------------------------------------------,~~~~~~~-,-----------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%,,,%%%%%%%%,,%%%%%%%%,,,,,%%%%,,,,,,,,,,,%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,--,----------------------------------------------------,~~~~~~~~~~~~------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,%%%%%%%,%%%%%%%%%%%,,,,%%%%%,,,,,,,%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------,,,--~~~~~~~~-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,%%%%%%%%%,,,%%%%%%%%%%%,,,,%%%%%,%%%,,,%%%%%,,,,%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------,,,,---~~~~~~~------~--------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%,%%%%%%%%%,,,%%%%%%%%%%%,,,,%%%%%%%%%%,,%%%%%,,,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,~~~~~~~-~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------,,,,---~~~~~~~~~-~~~~~~-----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%,,,,,,,%%%%%,%%%%%%,,,,%%%%%%%%%,,%%%%%,,,%%%%%,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;~~~~~---------,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------,,------~~~~~~~~~~~~~~~~----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,,%%%%%%%,,,,%%%%%%%%%,,,%%%%%,,%%%%%,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------~~~~~~~~~~~~~~~---------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%%%%%%%%,,%%%%%,,,,,,%%%%%%%%%,,,,%%%%,%%%%,,,,,%%%%%,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------c-----------------~~~~~~~~~~~~~--------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%,,,%%%%%,,%%%%%,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,;,,,,,;,,,,,,,,,,,,,,,;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------,~~~~~~~~~~~~~----------------------------------,---------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,%%%%%,,%%%%%,,,%%%%%%%%%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------~~~---~~-----------------------------~~~~~~~~~~~~~..----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,%%%%,,,%%%%,,,%%%%%,,%%%%%,,,,,,,,%%%%%,,%%%%%,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------~~~~~~~~~----------------------------,~~~~~~~~~~~~~~.--------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,-----------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,%%%%,,,,,,%%%%%,,,,,,,,,,,,,,,%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,;,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,-------------------------------------~~~~~~~~------------------------------,,~~~~~~~~~~~~~.-----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%,,,,,,%%%%%,,,,,,%%%%%,,%%%%%,,,%%%%,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,------------------------------------------~--------------------------------,,,~~~~~~~~~~~~----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,,,,,,,%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,------------------------------------------------------------------------------~~~~~~~~~~~~~------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%,%%%,,,%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,~~~~~,,,,,,,,,,,,,,,,,;,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,-------------------------------------------------------------------------------~~~~~~~~~~~~~--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%%,,%%%%%%%%%,,,,,,,,,%%%%%,,,%%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~-~~~~~~,,,,,;,,,,,,;,,,,,,;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,-----------------------------------------------------------------------------------~~~~~~~~~~~~~~----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,%%%%%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%,,,,%%%%,,,,,,%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~-,,,,,,,,,,,,,,,,,,,;,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,,------------------------------------------------------------------------------------~~~~~~~~~~~~~~--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%%,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%,,,%%%%%%%%%%%%%%,,,,,,,,,,,,,,,~~~~~-,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~-,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,,--------------------------------------------------------------------------------------~~~~~~~~~~~~------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,%%%%%,,,,,,,%%%%%,,,,,%%%%%%%%%%%%%%%%,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,,~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~--,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------c---------------------------------------------------------------~~~~~~~~~~~~----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,%%%,,,,,,,,%%%%%%,,,,,%%%%%%%%%%%%%%%,,,%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,~~~~~~-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~-,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------~~~~~~~~~~~~~--------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------------------,,---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%,,,%%%%%%%%,,,%%%%,,,;,,,,,,,;;,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~--,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------------,,~---------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,%%%%%%%%%%%%%,,,,%%%%%%%%%%%%%%%,,,,,,,,,,,,,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,;,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,--------------------------------------------------------------------------------------------~~~~~~~~~~~~~~-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,-------------~~~~~~~~~~-----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,;,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,~~~~,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------,--------c-------------------------------------------------------------------------------------~~~~~~~~~~~~~-,,------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------~~~~~~~~~~~--,,,------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%,,,,,,,,,,,,,,,,~~~~~~~~,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------,-------------------------------------------~~~~~~~~~~~~~-;------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~,,,,------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,%%%%,,,,,,,,,,%%%,,,,,,,,,%%%%%,%%%%,,,%%%%%,,,,,,,,-~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,------------------------------------------------------------------------------------------------------,~~~~~~~~~~~~,----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---------~~~~~~~~~~~~~~~,,,,------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%,,%%%%%,,%%%%%,,,,,,,,,%%%%,,,,,,,,%%%%%,,,,,,,,-~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,,----c-------------------------------------------------------------------------------------------------,~~~~~~~~~~~,---------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,------~~~~~~~~~~~~~~~~,,,,------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%%%%%%,,%%%%%,%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,-~~~~~~~~~~--,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----,,---------------------------------------------------------------------------------------------------------~~~~~~~~~~,--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----~~~~~~~~~~~~~~~~~~,,,------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,--~~~~~~~~~--,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------c---,----------------------------------------,--------------------------------------~~~~~~~~~~~~-------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%,,%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%%%,,,,,,,,--~~~~~~~~~--,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,%%%%%,,;,,,,,,,,,-~~~~~~~~~--,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,%%%%%%%%,,%%%%,,,,,%%%%,,,,,,,,,,,,,,%%%%%,;;,,,,,,,,,,~~~~~~~~~--,,$$,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~---------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,---                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,%%%,%%%%%%%%,,,%%%,,,,,%%%%%,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,-~~~~~~~~~-,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------,,,~~~~~~~~~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,---                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%,,,%%%,,,,,%%%%%,,,,,,,,,,,,%%%%%;,,,,,,,,,,,,,~~~~~~~~~--,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------,--------------------------------------------,,,,~~~~~~~~,,------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,---                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%%%,,,,%%,,,,,%%%%%,,,,,,,%%,,,%%%%%,,,,,,,,,,,,,,-~~~~~~~~-,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------,,,-~~~~~~~,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,---                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%,,,,,,,,,%%%%%%%%,,,,,,%%%%,,,%%%%%%%,,,,,,,,,,,,,--~~~~~~--,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~-,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------,~~~~~~~,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,%%%%%,%%%%%,,,,,,,,%%%%%,,,,,,,,,%%%%%%%,%%%%%%%%,,,,,,,,,,,,--~~~~~~--,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,;,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------,,~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%%%,,,%%%%%,%%%%,,,,%%%%%%%,,%%%%%%%,,,,,,,,,,,,,--~~~~~--,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,%%%%%%%%%,,,%%%%%,%%%%%,,,,,%%%%%,,,,%%%%%,,,,,,,,,,,,,,,~~~~~,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------c--------------------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,,%%%%%%,,,,%%%%,,,,,,,,,,,,,,,,~~~~~,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,%%%%%,,,%%%%%,%%%%%,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------c---------------------------------------,--------------------------------,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,%%%%,,,%%%%%,%%%%%,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------c-----------------------------------,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,%%%%%%%%%%,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------------------------------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------c-----------------------------------------------------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,%%%%%%%%%%%%%%%%%,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,**-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,%%%%%%%%%%%%%%,,,,,%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%%%%,,,%%%%%%%%%%,%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,-----------------------------c-------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,,%%%%%,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,--------------------c------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,,,%%%,,%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~,,,,,,,,,,,-------------------------c-----------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,%%%;%%%%%%%%%%%%,,,,,,,,,,,,;,,,,,,,,,,,~,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~,,,,,,,,,,,,,-----------------------------------,------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,**,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,-----------------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------,-------------------------------------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~--,,%%%%%,,,,,,~~~~~,,,,,,,,,,,,,,,-,--~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------c--------------------------------------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,---~~~~~~~~%%%%%,,~~~~~~~~~~,,,,,,,,,~~~,-~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,--~~~~~~~~~~%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,~~~~~~~~~~~~~%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------,-----------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------,-----------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------,------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------,-------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~~~---%%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~~-----%%%%%,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------,--------------------------------------,-----------------,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~-----,%%%%%,,,,,~~~~~~~~~~~~~~,,,,,,--,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------------------------,----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,-,,,%%%%%,,,,,,~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,,%%%%%,,,,,,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,-~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------------------------------------------,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------------------~-------------------------------------,.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------c-------------------------------------~~~--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,%%%,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------------~~~~~~~~---------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,%%%%%,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,****;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,----------------------------------------------~~~~~~~~~~~~-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,:::,,,,,,,,,,%%%%%,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------------~~~~~~~~~~~~~~~~~~~~------------,---------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~~~,,,,,,,,,,,,,,,%%%,:::::::,,,,**,,%%%%%,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~---------------------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,%%%%%%%%::::::::,,*::,,,%%:,%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------c--------------~~~~~~~~~~~~~~~~~~~~~~~--------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~~,,,,,,,,,,,,,%%%%%%%%,::::::::%%::::,,::::%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------,-~~~~~~~~~~~~~~~~~~~~~~~~--------------,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~~,,,,,%%%%,,,,,%%%%%%%%,:::::::::::::::::::::::%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~~,,,,,,%%%%%,,,,%%%%%%%::::::::::::::::::::::::::,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~~~,,,,,,,%%%%%,,,,%%%%,,:::::::::::::::::::::::::::::,:,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,,,,,%%%%%%%,,,%%%%,,%%:::::::::::::::::::::::::::::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~~,,,,,,,%%%%%%%%,%%%%%,,%%:::::::::::::::::::::::::::::,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~~,,,,,,::::%%%%%%%%%%%%,,%%%:::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ~,,,,,,,:,:::%%%%%%%%%%%,%%%%:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,::::::%%%%%%%%%%%%%%%,:::::::::::::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,::::::::%%,,,,,,%%%%%,::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,-------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%:::::::::,,,,,,,%%%%%,:::::::::::::::::::::::::::,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%::::::::,:,,,,,,,%%%::::::::::::::::::::::::::::::,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------.~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%::::::::::,,,,,,,,,,:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,%%%%%,,,,,,,,,,,,,,,,,,,,,,,%%%%%,,,,%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%%%,,,,,,%%%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~,,------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~,----------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~---------,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~--------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------------------,-------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------,----------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------,-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,----~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,---~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,;,;,,,,,,,,,,--,------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,-,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,;,,,,,,,,,,,----------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------c-----------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---,,--,,,,,,,,,,,,,---,,-,,,,,,,,***,,,,,,,,,,,-------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,--,,,,,,,,,,--,------,,,,,,,,,,*,,,,,,,,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,,,,~-,--,--------,,,,,,,,****,,,,,,-------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------,,,~~~~~----,-------,,,,,,,,******,,,--------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,***,,,,-----------------------c-------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~~~~----,,,,,,,,,,,,,,------------c--------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--,,,,,,,,,,,,,,,-------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,,,--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-,,,,,,,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,------,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,~~~~~~~~~~,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~-------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,,-------------,---------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~,-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------c-----------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,~~~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-----------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----~~~~~~~~~~~~~~~~~~~~~~~~~~,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,~~~~~~~~~~~~~~~~~~-----,,,,,,,,,,,,,,,,~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--~~~~~~~~~~~~~~~~~~~~~~~~~,--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,~~~~~~~~~~~~~~~~------,,,,,,,,,,,,,,,,~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,-~~----,,,,~~~~~~~~~~~~~,---------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,---~~~~~~~~~-------,,,,,,~~~~~~,,,,~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,,;,,,,,~~~~~~~~~~--------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,-,,,,,,,,,,,,-,,,,,,,,~~~~~~~~,,~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,~~~~~~~,,,----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,~~~~~,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,--------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,--,,,---,-------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,--------,---,-----------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~