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