defdfdfcddccbfafbcceedcdcffacadacefeafffceecdeeaeddadfedaccbbeecbdaabdadbdcffeccdcfeaafedebbcaebdcbdacdffadbdafddbcccbdacaedbaebfcdeaadfeafffcdfadceaacbfacbcaebfcfabeddfbddfafdafbbaefadefbbbcddaaecaa