algorithm 510 867 771 1007 text 118 108 486 1273 text 510 1016 877 1276 text 510 108 878 863