contract Token is PausableToken {
	string public name = "CCC"; // Token 名称
	string public symbol = "ECT"; // Token 标识 例如：ETH/EOS
	uint public decimals = 4; // 计量单位，1 ether == 10000 ccc
	uint public INITIAL_SUPPLY = 50000 * (10 ** decimals); // 初始供应量

	function Token() public {
		totalSupply_ = INITIAL_SUPPLY; // 设置初始供应量
		balances[msg.sender] = INITIAL_SUPPLY; // 将所有初始 token 都存入 contract 创建者的余额
	}

    function crowdsale(address _crowdsale, uint256 _value) onlyOwner public {
        require(_crowdsale != address(0));
        require(_value <= balances[msg.sender]);
        approve(_crowdsale, _value);
    }

    event Burn(address indexed burner, uint256 value);

    function burn(uint256 _value) public {
        require(_value <= balances[msg.sender]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);

        Burn(burner, _value);
    }

    event Mint(address indexed to, uint256 amount);

    function mint(address _to, uint256 _amount) onlyOwner public {
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
    }
}
function Token() public {
	totalSupply_ = INITIAL_SUPPLY; // 设置初始供应量
	balances[msg.sender] = INITIAL_SUPPLY; // 将所有初始 token 都存入 contract 创建者的余额
}

// 初始供应量