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