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