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