A general equilibrium analysis of software development: Implications of copyright protection and contract enforcement