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