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