ddddddddddddddddddeeeeeeeeeeeeeeeeddddddddddddccccccccccccccccccccccccccddddddddeeeeeeeddddeeeeeeeeeddddddddccccccccccccccccccccdddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccccddddeeeeeeeeeeeeeeeeeddddddccdccccccccccdddcccccdddddcccccddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccccccccccccccccccccccccccccccdddddeeeeeeeeeeeeeeeeeeeeddddddddddddddddddddddddddddddddddddddddddddddddeeeedeeeccccccccccccccddddccdddddfffffffffffddddddcccccddddddddddddddccccdddddddddddccccccccccccccccccccccccdddddddddddddddddddddddccccccccccccccddddddddddddffffffffffffffffffddddddddddddcccccccccccddddddddfffffffffffddddcccccccccccccccccccccccccccccccccccccccccccccdddddddddddddffffffffffffffffffffffffdddddddddcccccccccdfffffffffffffffffffffffffffffccccccffffccccccccccccccccccccdddddccccddddffffffffffffffffffccccccccccccccccccccccccccddccccfffffffffffffffffffffffffffffffffffffffddddddddddddcccccccccccccccccccccccfffffffffeeeeeeeeeeeeeeeeccccccccccccccccccccccccdddddffffffffffdeeeeeeeeeeeeeeeeeeeedddddddddddddddccccccccddccccccffffdddddffffffffffeeeeeeeeeeeeeeeeeeccccccccccccccccccccccccddddfffffeeeeeeeeeeedddddeeeedddddddddddddddddcccccccccccccccffffffffffddddddddddfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddffffeeddeeeeeddeeeeeeeeddddddddddddddddcccccccddfffffffffffffffdddddddddddddeeeeeeeeddddddeeeedddddddddeeeeeeedddddddddddddddddfffeeeeeeeeeeeeeeeeeeccccccccdddccccccccccccffffffffffddddddddddddddccccccccccccccdddddddddeeeeeedddeeddcccceefeeeeeeeeeddddddddffdddeeeeeddddddcccccdddcccccccccccccccddddfffffffdddddddddccccccccccccccccccccddeeeeeeeeeeeeeeeeeeeeeecccccccccccccccccccccccdddccccccccccccccccccccccccccccccccccdddddddddddddddfffffffccccccccddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccccccccccffcccccdddddddddddddddccccccccccccccccccccdcccccccceedddfffffffffffdddddfffffffddddeeeeeeeeeeddddddddddddddddddddddeeeeeeeedeedfffffffcddddcccccccccccccccccccccccccccccccccecceedddfffffeeeeeedddddddddffeeeeeeeeeeeeedddddddddeeeeeeccccccccceeeedddeecccccceedddffffddddddddddddfffffffffddddeeeedeeeeeccccfffffffeeeedeeeddeeedeeeeeeeeeedeedddddddddddddddddddcccdddddddddccccddddddcddddcceddddddffffddffffffffffffdeeeeeeeeeeedcccccffffffffeefeeeeeeeeeeeeedeeeeedddeeddddddddddddddeeeeeeeeeeeeeeeeeeeeeeecccccddcccccccccddddfffffffffffffdeeeeeeeeeeeeddccccccffffffffeeeeeeeeeeeeedddddddddddddddddddddeeeeeeeeedddddddfffffffffffffeeeeeeeecccccccccdcccccdffffffdfeeeeeeeeeeeeeedddccccfffffffffeeeeeeeeeeeedddddddddddddddcccccccccddddddddddddddffffffffffffffffffeeeeeeeeeecccceeddcccffffffeeeeefffeeeeedddddcccfffffffeeeeeeeeeeeeddddddccccccccccccccccccccdddcccccccccddfffffffffffffffffddddffffeeeeeeddddccccddcfffffffffdeeeeeeedddcccceeeeeeeeeeeeeeeeeeedddddcccccccccccccccccccccccccccccccccdddffffffffffffeeeeeeeeedddffffffffffdddddcccccdddddddeeeeeddddccccceeeeeddeeeedddeeeeeddddddccccccdddddddeedddddfffffffdddddddddddfffdffffeeeeeeeeeeeeeeeedfffffffffffdddddddcddddddeeddccccccccddddeeeeeeeeeeeeeedddcccccccccdddddddeeeeffffffffffffffddddddddddeeeeeeeeeeeeeeeeeeeeeeeedeeeefffffffffffffddddddcccccccdccddddddddeeeeeeedddddddcccccccccedddddeeeeeeeefffffffffffdddddddddddeeeddddddddcccccccccccccdeeeedddddddffffffffffffdddcccccccccccccccddddddddddccccccccccccddeeeeeeeeeefffffffffffffffffddddddddccccccccccccccccccccccccccccddddddddddddddfffffffffddccccccccccccccddddddddccccddcddddddddeeeeeeeeffffffffffeeeeeeeeedeeeeddddccccccccccccceeeeeeeeeeeecceeccccccddcccddddfffffffffdddcccccccccccccccccccccccccccdddeeeeeeefffffffffffffeeeeeeeeeeeeeeeeddddddddddddfffffffffffeeeeeeeeeecccceccccccccccddfffffddddddcccccccccccccccccccddddddddeeeeeeeffffffffffffffeeeeeeeeeeeeeeeddedddddddddddddffffffffffffccfffffeeeeeecceeeeecccdddffffffffdddddddccddddddddddddddeeeeeeeeeefffffffffffeeeeeeeeeeeeeeeeddddeeeedddddddccccccccccccccccccccffffffffffffeecccccccccddddddfffffdddddddddddeeeeeeeeeeeefffffffffffffdfeeeeeeeeeeeedeeeeeddeeeeeeeddddcccddddddccccccccccccccccfffffffdddffffffffeeeeedddddddddffffdddeeeeeeeeeeeeffffffffffffffffddfeeeeeeeeeedeeeeeeeeeeeddeeedddccccdccccccccccccccccccccccccccccccdddddffffffffffeeefffffffffffffffffffffffffffffffffffffffffffffffeeeedeeeeeeeeeeeddddeedccccccccccddddddddddddeeeedcccccccccccccdddddddffffffffffffffffffffdfffffffffffffffffffffffffffffffffeeeedeeeeeeeeeeeeddddcddddddcccccdddddddddeeeeeeeeeeeeeddccccccccdcccccddddddfffffffffffffffffddddddddfffffffffffffffffffffffeeeddeeeddeeeeeeedccddcccddddddddddddeeeeeeeeeeedfffffffffffffcccccccccccdddddddddffdffffffffffffdddddffffffffffffffffffffffffeeddeeeddeeeeeeddddcccccdddddeeeeeeeeeeeeeeeeeeeffffffffffffffffffdddddddddddfffffffffddddddfffffffdcdddffffffffffffffffffffffeedeeeeeeeeeeddddccccdcceeddeeeeeeeeeeeeeddeeeeeefffffddffffffffffffffffffffffffffffffddcccccdddddddddccccdddfffffffffffffffeeeeeeeeeeeeeeddccccccdccceeeeeeeeeeeeeeedeeeeeeeefffffffffffffffffffffffffffffffffffffffdeeedcccccccccddddcccccdfffffdddddeeeeeeeeeeeedeeecccccccccccceeeeeeeeeeedeeeeeeeeeeeffffffffffffffffffffffdddddddddffffffddddeeeeeeddddccccccccddddcccdddeeeeeeeeeeeeeeeeecccccccccccccdeeeeeeedfffffffffffeeeffffffffffffffffffffffffffffffffffffffffffcccccccccccccccccccccccddddddddeeedeeeeeeeeeecccccccccccccccceeeeeeedddeeeffffffffffffffffffffffffffffffffffeeeeeefffffffffeeeeeeeccccddccccccdccccccccdcddddddeccccccccccccccccccccccccceeeeeeeedeeeeeffffffffffffffffffffffffffddeeeeeeeeeddeeeeeeeccccccccccccccccccccccccccccccccccddcccccccccccccccccccdddddddddddddddeeeeeeeddffffffddffffffddccccddddeeeeeeedddddddddddddccccceeeeeeddddddddddddddddddddddddcccccccccddddddddddddddddddddddddeeeeeeeeeeedddfffffffffffffccccccceeeeeeeeeddddeeeeeeeeeccccdddddddddddddddddddddddddddeeeeedddddddcdddcccccccccddddddddddeeeeeeeeeeedddddddffffffffffffcccccdeeeeeeeeeeeeeeeeedddddddddddddeeeeeeddddddddddddddddddeeedddddeeedddddccccccccccceeeeeeeeeeeeeeeeeeeeddddddfffffffffffffccddeeeeeeeeeeeeeeedddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffdccccccccccccceeeeeeeedeeeeeefffffffffffffffffdfffdecceeeeeeeeeeedddddddddddddeeeccccccccccceeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffdddddddddddddddddddddddeeedfffffffffffffdddddddeeeeeeeeeeeeddddddddddddddddcccccccccccccccccccccccccccedffffffffffffffffffffffffdddddddedddddddfffffeeeffffffffffffffffddddeeeeeeeeeddddddddddccccddddddccccccccccccccccccccccdddddddddddddfffffffffffffffffffffeeeeeeeeeeeeefffeeeeeeeeeeeeffffffffffeeeeeeeeeedddddddddcccccdcccccccccccccddddddfffdddddddddddddddeeeeeeeeeeeeeeeedddfffffffffddeeeeeeeeeeeeeeeeffffffffffffffeeeeeeeeeeeeddddccddcccccdddcccccccccdfffffffffffffffddeeeeeeeeeeeeefffeeeeeefffffffffffffffffffccddddddddddddeedddddffffddeeeeeefeeeeeeeeddddccccccdddddddccccccccdddfffffffffffffeeeeddddddddeeeeeeeeeeeedddffffffffffffffffffdcccccccccccccdddddddddeeeeeeeeeeeeeeeeedddccccccdddddccccccccddddddffffffffdddddeeffffffddeeeeeddddddcccccccccccccccccdddddffffccccccccccccccccddddeeeeeeeeeeeeeeeeeeeccccccccddcccccccccccddddfffffffffdddddeeefffffeeeeecccccccccccccccccccccccccccccccdddddfdfffffccccccccccdeeeeeeeeeedddeeeddccccccccccddccccccccddddffffffffffdddddffeeeeefffddcccccccccccccccccccccccccccccddddddddddddddfffffffffffeecceeeedddddeeeecccccccccccdddddddddcddddfeeeeffffffdddfeeeeeeeeeedeeecccccccccccccccccccddddddddddddddddddddddddddfffeeeeeeeeeeeeeeeeeeeeeedcccccddcccdddddddddddfffffeeeeeeefddeeeeeeeeeeeeeeeeeecccccccccccccccccdddddddddddddeeeeeeeeeeeeeeeffffffffffffffeeeeeeeeeccccccccccccccddddddddddffffffeeeeeeddeeeeeeeeeeeeeeeeeecccccdddddddcccdddddddddddddeeeeeeddddeeeeeeeeeefeeeddddddceecccccccccccccccccccccddddddddddddffffeeeeeeeeeeeeeeeeedeeeeeeeecccccccddddddddddddddcccccccccccccccccccccccceeeeeeeeeeeccccccccccccccccccccccccccddddddddddddddffeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccddddddddcccccccccdcccccccccccccccccccccccccccccdddddcccccccccccccccccccccddddddddddddddddfffeeeeeeeeeeeeeeddddeeeeeeecccccccccddddddccccdddddddddeeedeeeeeeeddddddddddddddddddddddddddddddddddddddddddddddddddeeeeddddffffeeeeeeeeeeeeddcddccccccccccccccccddddddddddddddddddddddeeeedddddddeeeeeeeeeeeeeeeffdddddddddddddddddddddddddddeeeeeeffddddffffeeeeeeeeeeddddcccccccccccccccccccccddddddddffddddffffddddddddddfffffddddeedddeeeeeeeeeeffffddddddddddddddeeeeeeeffffffffdfffffeeeeeeeeeedddcccccccccccccccccccccdddddddddffffdddfffffdddddffffffffffdddddddddddddddeeeeeeeffeeeeeeeeeeeeeeeffffffffffffffffffeeeeeeeeeddccccccccccccccccccdddddddddddddffffffffffeeeffffffffffffddddeeeeeeeeeeeeeeeeddddeeeedddeeeeeeeeeeeeeeeeeffffffffffeeeeeeeeeedddccccccccccccccdddddddddddddddfffffffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddedeeedfffffffffeeeeeeefffffffeeeeeeddeeeedcccccdddddddddddddddddddffdddffffffdeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddeeeeeecccccccccccccccfffffffddfeeeeeeeeeeeeeeddcdddddddddddddddddddddffffffffffdeeeeeeeeeeeeeeeeeeeeeeeeeeeedddcccccccccccccccddddddddccccccccccccddcccdddfffeeeeeeeeeeeeeeddddddddddddddddddddddffffffffffeeeeeeeeeeeeeeeeeeeeeeeccceecccccccccccccccccccccccccccddddccccccccccccccdffffffffeeeeeeeeeedddccdddddddddddffffffffffffffffeeeeeeeeeeeeddddcccccccccccccccccddddddcccccdddddddddddcccccdccccccdcccccdffffffffeeeeeeeeeeddddcccccddffffffffffffffffffffffeeeeeeeeeeeddddddccddeeeeccccdddddddccccccddddddddddddddddcdccccccddddccccccdffeeeeeeeeeeedccccccccccdffffffffffffffffffeeeeeeeeeeeeddddddddcccccccccccccddddddcccccddddddddddddddddeeeeddccddcdddddddddccccccdeeeeeeedddddddccccdddddffffffffffffeeeeeeeeeeeeeeeddddddddccccccccccccccddddccccddddddddddeedeeeeeeeedddddddddddddddddddddddcccccccccddddddddccdddddddddddddffffffeeeeeeeeeeeddddddcccccccccccccccccdddddcccddddddddddeeeeeeeddddddddddddddddddddddddddddddddddddddeeeeeedddddddddddddddcccccdddddeeeeccccccccccccccccccccddddddddddddddcdddddddddeeeeeeedddddffffeeeeeeeeeeeeeeddddddddddddddddeeeeeecccccccdccccccccccccccdddddddcccccccccccccccccccddddddddddddddddddddddddeeeeeeeeedddddeeeeeeeeeeeeeeeeeeeeeefccccccdddddddeeecccccccccccccccccccccccccddddddddddcccccccddddddddddddddddddddddddddddddeeeeeeeeffffddcceeeeeeeeeeffffffffffffffccccccccccccccccccccccccddddddddddccccccccdddddddddddddddddddddddddddddddddddddddddeeeeeeeefffffffddccddcccccfffffffffffffffffffdddcccccccccccccccccccccddddddddddddddddccccdddddddddddddddddddddddddffffffddddddddffffffffffffcccccccccdddddfffffffffffffffffdfdddddddddddddcccccccddddddddddddddddddddcdddddddddddddddddfffffffffffffffffffffffdffffffdfffccccccccccccccfffffffffffffddddfffffddddddddddddddddddddddeeeeeeddddddddddddddddddffffffffffffffeeeeefffffdfffffffffffffffffffccccddffffffffffffffffffffffffffffffeeddddeeeddddddeeeeeeeeeeeeeeeeeddddddddddddddddfffffffffffeeeeeeeeeeeeeeeeeeefdddffffffffffdcddddfffffffddffffffddffffffffeeeeeeedddddddeeeeeeeeeeeeeeffffffffddddddddddddddddddcddfffeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddeedeeedffffffffffffccffdddddccccccccccccceeeeeeeeeeeeeeeeeeeeeeedeeeeeeeeeeeeeeeeeeddddccddddddddddddddddddfffeeeeeeeeeeeedddddeddfffffffffddddddcccddddccccccccccddddeeeeeeeeeedddddddddddddddddddeeeeeeeeeeeeeeeeecccddddddddccccccdddddeeeeddddddeeeddddffffffffffffffddddddcccddccccceeeedddddddddddddddddddddddccccddddddddddddeeeeeeeeddddddeeedcccccccccdccccccddeeedddeeeeeeddddddfffffffffffffddddddcccccccceeeeeeedccccccccccccccccccccccccddddccceeeeddddddddddddddddddccccccccccccccfddddeeedeeeeeddddddddddddffffffffffddddddcccccccedeeeeedccccdddddddccccccddccccccccddcccdddeeeeeeeeeeeedcdddddccccccccdfffffffeeeededddddddddddddddddddddfffffffffdddccccccccceeeeedddccddddddddcccccccccccccccccccccffdffddddeeeeeeeeedcccccccccccddffffeeeeefddecccddddddddccccccddeeeeffffffddcccccccccceeeeedddddddddeeeddddddddccccccdcccdccccddffdffdddddddddddeedddddccccddffeeeeeeeeccccccccccccccccccccceeeeeeeefffddccccccccceeeeeeeeddddddddeeedddddccccccccccccccccdddffffffffddddddddddddddddddddffffeefeecccccccccccccccccddeeeeeeeeeeeeeedfddcccccffffffeeeeeeeddddddeeeeeeefffffffffffddddddfffffffffffffffdddddeedfffffffffffffeeeeeeccccccccccdeeeeeeeeeeeeeeeeeeeeeeeeccccccdfffffeeeeeedddddddeeeefffffffffffffffffffffffffffffffffffffddddedffffffffffffffeeeeeddcccccccceeeeeeeeeeeeeeefffffdddddddddddcdfffdeeeedddddeddfeeeeffffffffffffffffffffffffffffffdfffffffdddddeeeffffffffffffeeeedcdcccccdeeeeeeeeeeeeeffffffffffddddddddddccdffdeededdddeeddeeefffffffffeeeffffffddffffffddddddddfffffdddddeeeeefffdfffffeeeeeddcccddddddeeeeeeeffffffffffffffddddddddddddddddddddedeeeeddeeefffffffeeeeeeeeeeeeeeeddddddddddcceddfeddddddeeeeeffffffffeeeeedcccccccddeeeeeeffffffffffffffffffddddddddddddddddddeeeeddeeeefffffffeeefeeeeedddddddccccdddcccccdeddeeddddddeedeeffffffffeeeedccccccccceeedffffffffdddddddfffffdddddddddddddddddddddddeeeeeeffffffeeeeeeedddddddccccccccccccddddedeeeddddddeeeeeffffffffeeddcccccccccdeeeeffffddddddddddddddffddddddddddddddddddddddeeedeefffdffeeeeeeffddcccccccccccccdddddddeeeeeddddddeeeedeffffffffeedcccccccccdeefeffffdddddddeeeeeeeeddddddddddddddddddddddeeedeeeffffffeeeeedfffdccccccccccdddddddddeeeeeeddddddddeeedefffffffeedcccccccccdeeeeefffddddddddddeeeeeeeeeeeeeeeeeeeeeedddeeeeeeeefffffffeeeeeddddcccdddddddddeeeeeeeeeeeeeefdddddddeeeeeeffdfffeeedccccccccdeeeefffddddddddeedddddeeeeeeeeeeeeeeeedddddeeeeeeedfffffffeeeedddddddeeeeeeeeeeeeeeeeeeeeeeeffffddddddeeeeeeffddfeeedccccccccdeeefffffddddddddeedeeeeefddeeeeeeeeeeeedddddddedddddddddfffeeedddddeeeeeeeeeeedddfeeeeeeeeefffffdddddddeeeeffffdddedddcccccccceeefffffddddddeeeeeeedffffeeeffffffeeeeeeeeeeeddddddddddddddeeddddeeeeeedddddddfffffffffffffffffdddddddeeeeefffdddeeddddcccccceeefffffddddeeeeeeefffffeeeefffffffeeeeeeeeeeeeeddddddddddddddddddddeeedddddfffffffffffffffffffdddddddeeeffffffddcceddddddddcceeefffffddddeeeeeefffeeeeefffffffffffdddddddddddddcccccccccccccdddeeeedddffffffeeeeeffdddddddddddddddeeeffffffddcccdedddddccccceedffffdddeeeeedffeeeeffffffffffffffffcccddddddddddcccccccccccddddedddddfffeefeeeeeddddddddddddddfeeeefffffffddcccdddddccccddccddefffeeeeeeeddfeeeffffffffffdddddccccccccccccccddddccccccddddddfffffdfffeeeeeeeddddddddddcddddddeeffffffffdddccccddddccdddddccfffefeeeeeeefffeeffffdffffffdddccccccccccccccccddddddcccdddddffffffffffeeeeeeeedddeeedcccccdccccddfffdddddddccccddcccccfffffffffffeeeeeeddfffeeffdddddfffdddddcccccddddddddcdcccccddddddddfffffffffffeefdeeeedeeeeccccdccdccccccccddddddccccccccccddddffffffffffeedeeffffffffeeeeddddddddddccccdddddddddccccccccddddddfffffffffffffeefdeeedeeeedcccccccccccccccccccccccccccccddddddfffffffffffeeeeeffffffffffddddeeeeeeeeeeeeeeddddddcccccccccddddddddfffffffffffeefdeeeeeeddddccccccccdcccccccdddddccdddddddddfffffffffffffdddfffffffffffddddddddddddddddcccccccccccccccccdddddddeeedffdfffffffefdeeeeeeddddcccdcccccccccdddddddddddddffffffffffffffffddddddddffffffffccccccdddcccccccccccccccdcccccddddddddddeeeeddddffffffffedeeeeeeddddcccccccdddddddddddddddfffffffffffffffffffddddddddddddccccccccccccccccccccdccccccddccccccddddddddddeeeedddeddfffffffeeeeeeeeddddcccccdddddffffdffffffffffffffffffffffddddddddddcccccccddcccccddcccccccccccccdcccccccccccddddedddeeeeeddeeeeddddffffeeedeeeddddddccddddffffffffffffffffffffffeeeeeeeeeeeeeeeeecccccccccccdddddeeeeeeeeeeeeeedddddddddddddeeeeeeeeeddeeeeeeddddddfffeeddddedddddddffffffffffffffffffeeeeeeeeeeeeddddddddddccccccccccdddddeeeeeeedddddddddddddfffffddddddeeeeeeeeeeeeeeeedddddddddfeeedddddddddddddffffffffffeeeeeeeeeeeeecccccccccccccccccccccddddeeeeeeedddeeddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddddddeefdddddddffffdddfffffeeeeeddeeeeeeeeeeeddddddddccccccccdddeeefeefffffffeeeffffffffffffffffeeeeeeeeeeeddddddddddddddddddddddddddddddddffffffffddffffeeeeeeeeeedeeeccccccccccccccecccceeeeeeeeeefffffeeeeffffffffffffffffffffffffffeeeeeeeeeeeeedddddddddddddddddddfffffffffddfffeeeeeeedddeeeeecccddddddeecccccccddfffeeeeeffffffeeeeeeddffffffffffccccccccfdfffffddddddddfeeeeeeeeeeeddddddddddffffffffffdddfeeeeedddeeeeeecccddeeeeeeedddddddddfeeeefffffffeeeeeeeedddddddddccccccccdddddddddffffffffdddfffffffffffffffffdddffffffffffdddddedeeeeeeeeddccceeeeedddddddddddddeeeeffffffffeeeeeeeddddddddcccccccccccccccccccdddddfffffffffffffdddffffffffffdfffffffffddddddeeeeddeecccccceefeeeeeeeeeeeeeeeeeeeffffffffeeeeeeeddddddddcccccccccccddddddddddcddffffffffffffffffffffffffffffffffffffdddddddddcccccccccceeeeeeeeeeeeeeeeeeeeeeedddddfffeeeedeeddddddcccccccccccccdddddeeeeeeeddddffffffffffffffffffffffffffffffffffdddddddccccccccccdddeeeeeeeeeeeeeeeeeedddddddddddfffddddddddcccccccccccceeeeeeeeeeeeeeeeeddddddddddddddddddddddddddffffffffffffdddddcccccccccccddddeeeeeeeeedddddddddddddddddddddddddddddddccccddcccdeeeeeeeeccccccccccccccccccccccccccccccccdddddddddddffffdddddccccccccddcccccdddddddddddddddddddddddddddddddddddddddddccdddddeceeeeeeeeeeeedddddddddcccccccccccccccccccccccccccccccccdddd