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