++++++++++++++////////////////////////////////////////++++++++++++++++++++++////////////////////////////////////++++++++++++++//++++++++++++++////////////////////////////////////////++++++++++++++++++++++////////////////////////////////////++++++++++++++//++!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!//++!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!//++!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!//++!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!//++!!!!aa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaa!!!!//++!!!!aa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaa!!!!//++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaa!!!!//++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaa!!!!//++!!++!!!!++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!aaaa!!!!//++!!++!!!!++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!aaaa!!!!//++++++!!!!++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!aaaa!!!!//++++++!!!!++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!aaaa!!!!??//++++!!!!++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!aaaa!!!!??//++++!!!!++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!aaaa!!++??//++++!!!!++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!aaaa!!++??//++++!!!!++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!aaaa++++??//++++!!!!++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!aaaa++++??//++++!!!!++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!aa!!++++??//++++!!!!++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!aa!!++++??//++++!!!!++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++??//++++!!!!++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++??//++++!!!!++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++!!!!++++??//++++!!!!++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++!!!!++++??//++++!!!!++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++!!!!++++??//++++!!!!++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++!!!!++++??//++++!!!!++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++!!!!++++??//++++!!!!++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++!!!!++++??//++++!!!!++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++!!!!++++??//++++!!!!++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++!!!!++++??//++++!!!!++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++!!!!++++??//++++!!!!++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++!!!!++++??//++++!!!!++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++!!!!++++??//++++!!!!++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++!!!!++++??//++++!!!!++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++!!!!++++??//++++!!!!++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++!!!!++++??//++++!!!!++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++!!!!++++??//++++!!!!++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++!!!!++++??//++++!!!!++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++!!!!++++??//++++!!!!++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++!!!!++++??//++++!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++!!!!++++??//++++!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++!!!!++++??//++++!!aa!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++!!!!++++??//++++!!aa!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++!!!!++++??//++++aaaa!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++!!!!++++??//++++aaaa!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++!!!!++++??//++!!aaaa!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++!!!!++++??//++!!aaaa!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++!!!!++++??//!!!!aaaa!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++!!!!++++??//!!!!aaaa!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++!!!!++++//++!!!!aaaa!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++!!!!++++//++!!!!aaaa!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++!!!!++!!//++!!!!aaaa!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++!!!!++!!//++!!!!aaaa!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!//++!!!!aaaa!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!//++!!!!aaaa!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++!!aa!!!!//++!!!!aaaa!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++!!aa!!!!//++!!!!aaaa!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++aaaa!!!!//++!!!!aaaa!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++aaaa!!!!//++!!!!aaaa++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!aaaa!!!!//++!!!!aaaa++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!aaaa!!!!//++!!!!aa!!++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!aaaa!!!!//++!!!!aa!!++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!aaaa!!!!//++!!!!!!!!++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!aaaa!!!!//++!!!!!!!!++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!aaaa!!!!//++!!++!!!!++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!aaaa!!!!//++!!++!!!!++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!aaaa!!!!//++++++!!!!++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!aaaa!!!!//++++++!!!!++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!aaaa!!!!////++++!!!!++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!aaaa!!!!??//++++!!!!++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!aaaa!!!!??//++++!!!!++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!aaaa!!++??//++++!!!!++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!aaaa!!++??//++++!!!!++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!aaaa++++??//++++!!!!++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!aaaa++++??//++++!!!!++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!aa!!++++??//++++!!!!++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!aa!!++++??//++++!!!!++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!++++??//++++!!!!++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!++++??//++++!!!!++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++!!!!++++??//++++!!!!++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++!!!!++++??//++++!!!!++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++!!!!++++??//++++!!!!++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++!!!!++++??//++++!!!!++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++!!!!++++??//++++!!!!++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++!!!!++++??//++++!!!!++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++!!!!++++??//++++!!!!++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++!!!!++++??//++++!!!!++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++!!!!++++??//++++!!!!++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++!!!!++++??//++++!!!!++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++!!!!++++??//++++!!!!++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++!!!!++++??//++++!!!!++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++!!!!++++??//++++!!!!++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++!!!!++++??//++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++!!!!++++??//++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++!!!!++++??//++++!!aa!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++!!!!++++??//++++!!aa!!!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++!!!!++++??//++++aaaa!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++!!!!++++??//++++aaaa!!!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++!!!!++++??//++!!aaaa!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++!!!!++++??//++!!aaaa!!!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++!!!!++++??//!!!!aaaa!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++!!!!++++??//!!!!aaaa!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++!!!!++++??++!!!!aaaa!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++!!!!++++//++!!!!aaaa!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++!!!!++++//++!!!!aaaa!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++!!!!++!!//++!!!!aaaa!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++!!!!++!!//++!!!!aaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//++!!!!aaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//++!!!!aaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aa!!!!//++!!!!aaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!aa!!!!//++!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!//++!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!//++!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!//++!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!++++++++++++++++++++++++++++++++++++!!!!!!!!!!//////////////////????????????????????????????????????????//////////////////////????????????????????????????????????//////////////////////////////????????????????????????????????????????//////////////////////????????????????????????????????????//////////////