City Court Judge Thomas K. Keefe has formally dismissed more than 100 charges that were still technically pending against the protesters — long after District Attorney David Soares’ office announced that it would not prosecute protesters arrested for nonviolent offenses that did not involve property damage while exercising their free speech rights.

Citing Soares’ refusal to prosecute, Keefe wrote in a brief decision that he had no other choice — making official what had been all but a foregone conclusion.

“Absent a clear abuse of discretion, which is not indicated here, this court’s only recourse is to dismiss,” the judge wrote.