ERC-20
Loyalty and Rewards
Overview
Max Total Supply
1,000,000,000 GAT
Holders
3,796 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GATTokenSale
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-20 */ pragma solidity ^0.4.17; // ---------------------------------------------------------------------------- // Copyright (c) 2017 GAT International Limited. // http://www.gatcoin.io/ // // The MIT Licence. // ---------------------------------------------------------------------------- contract Owned { address public owner; address public newOwner; event OwnerChanged(address indexed _newOwner); function Owned() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner returns (bool) { require(_newOwner != address(0)); require(_newOwner != owner); newOwner = _newOwner; return true; } function acceptOwnership() public returns (bool) { require(msg.sender == newOwner); owner = msg.sender; OwnerChanged(msg.sender); return true; } } contract GATTokenSaleConfig { string public constant SYMBOL = "GAT"; string public constant NAME = "GAT Token"; uint256 public constant DECIMALS = 18; uint256 public constant DECIMALSFACTOR = 10**uint256(DECIMALS); uint256 public constant START_TIME = 1513512000; // 2017-12-17T12:00:00Z uint256 public constant END_TIME = 1515326399; // 2018-01-07T11:59:59Z uint256 public constant CONTRIBUTION_MIN = 2 ether; uint256 public constant TOKEN_TOTAL_CAP = 1000000000 * DECIMALSFACTOR; uint256 public constant TOKEN_PRIVATE_SALE_CAP = 54545172 * DECIMALSFACTOR; // past presale uint256 public constant TOKEN_PRESALE_CAP = 145454828 * DECIMALSFACTOR; // 200000000 - what was raised in round 1 uint256 public constant TOKEN_PUBLIC_SALE_CAP = 445454828 * DECIMALSFACTOR; // This also includes presale uint256 public constant TOKEN_FOUNDATION_CAP = 0 * DECIMALSFACTOR; uint256 public constant TOKEN_RESERVE1_CAP = 100000000 * DECIMALSFACTOR; uint256 public constant TOKEN_RESERVE2_CAP = 0 * DECIMALSFACTOR; uint256 public constant TOKEN_FUTURE_CAP = 400000000 * DECIMALSFACTOR; // Default bonus amount for the presale. // 100 = no bonus // 120 = 20% bonus. // Note that the owner can change the amount of bonus given. uint256 public constant PRESALE_BONUS = 120; // Default value for tokensPerKEther based on ETH at 300 USD. // The owner can update this value before the sale starts based on the // price of ether at that time. // E.g. 300 USD/ETH -> 300,000 USD/KETH / 0.2 USD/TOKEN = 1,500,000 uint256 public constant TOKENS_PER_KETHER = 14800000; } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ERC20Interface { uint256 public totalSupply; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); function balanceOf(address _owner) public view returns (uint256 balance); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); function allowance(address _owner, address _spender) public view returns (uint256 remaining); } // Implementation of standard ERC20 token with ownership. // contract GATToken is ERC20Interface, Owned { using SafeMath for uint256; string public symbol; string public name; uint256 public decimals; mapping(address => uint256) balances; mapping(address => mapping (address => uint256)) allowed; function GATToken(string _symbol, string _name, uint256 _decimals, uint256 _totalSupply) public Owned() { symbol = _symbol; name = _name; decimals = _decimals; totalSupply = _totalSupply; Transfer(0x0, owner, _totalSupply); } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } function transfer(address _to, uint256 _value) public returns (bool success) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(_from, _to, _value); return true; } function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } } // This is the main contract that drives the GAT token sale. // It exposes the ERC20 interface along with various sale-related functions. // contract GATTokenSale is GATToken, GATTokenSaleConfig { using SafeMath for uint256; // Once finalized, tokens will be freely tradable bool public finalized; // Sale can be suspended or resumed by the owner bool public suspended; // Addresses for the bank, funding and reserves. address public bankAddress; address public fundingAddress; address public reserve1Address; address public reserve2Address; // Price of tokens per 1000 ETH uint256 public tokensPerKEther; // The bonus amount on token purchases // E.g. 120 means a 20% bonus will be applied. uint256 public bonus; // Total number of tokens that have been sold through the sale contract so far. uint256 public totalTokensSold; // Minimum contribution value uint256 public contributionMinimum; // Keep track of start time and end time for the sale. These have default // values when the contract is deployed but can be changed by owner as needed. uint256 public startTime; uint256 public endTime; // Events event TokensPurchased(address indexed beneficiary, uint256 cost, uint256 tokens); event TokensPerKEtherUpdated(uint256 newAmount); event ContributionMinimumUpdated(uint256 newAmount); event BonusAmountUpdated(uint256 newAmount); event TimeWindowUpdated(uint256 newStartTime, uint256 newEndTime); event SaleSuspended(); event SaleResumed(); event TokenFinalized(); event ContractTokensReclaimed(uint256 amount); // "0x1a4FBba7231Ec0707925c52b047b951a0BeAA325", "0xa85b419eee304563d3587fe934e932f056ca3c14", "0xa85b419eee304563d3587fe934e932f056ca3c14", "0x587d06eb855811ee987cc842880b9255a3aab45b", function GATTokenSale(address _bankAddress, address _fundingAddress, address _reserve1Address, address _reserve2Address) public GATToken(SYMBOL, NAME, DECIMALS, 0) { // Can only create the contract is the sale has not yet started or ended. require(START_TIME >= currentTime()); require(END_TIME > START_TIME); // Need valid wallet addresses require(_bankAddress != address(0x0)); require(_bankAddress != address(this)); require(_fundingAddress != address(0x0)); require(_fundingAddress != address(this)); require(_reserve1Address != address(0x0)); require(_reserve1Address != address(this)); require(_reserve2Address != address(0x0)); require(_reserve2Address != address(this)); uint256 salesTotal = TOKEN_PUBLIC_SALE_CAP.add(TOKEN_PRIVATE_SALE_CAP); require(salesTotal.add(TOKEN_FUTURE_CAP).add(TOKEN_FOUNDATION_CAP).add(TOKEN_RESERVE1_CAP).add(TOKEN_RESERVE2_CAP) == TOKEN_TOTAL_CAP); // Start in non-finalized state finalized = false; suspended = false; // Start and end times (used for presale). startTime = START_TIME; endTime = END_TIME; // Initial pricing tokensPerKEther = TOKENS_PER_KETHER; // Initial contribution minimum contributionMinimum = CONTRIBUTION_MIN; // Bonus for contributions bonus = PRESALE_BONUS; // Initialize wallet addresses bankAddress = _bankAddress; fundingAddress = _fundingAddress; reserve1Address = _reserve1Address; reserve2Address = _reserve2Address; // Assign initial balances balances[address(this)] = balances[address(this)].add(TOKEN_PRESALE_CAP); totalSupply = totalSupply.add(TOKEN_PRESALE_CAP); Transfer(0x0, address(this), TOKEN_PRESALE_CAP); balances[reserve1Address] = balances[reserve1Address].add(TOKEN_RESERVE1_CAP); totalSupply = totalSupply.add(TOKEN_RESERVE1_CAP); Transfer(0x0, reserve1Address, TOKEN_RESERVE1_CAP); balances[reserve2Address] = balances[reserve2Address].add(TOKEN_RESERVE2_CAP); totalSupply = totalSupply.add(TOKEN_RESERVE2_CAP); Transfer(0x0, reserve2Address, TOKEN_RESERVE2_CAP); uint256 bankBalance = TOKEN_TOTAL_CAP.sub(totalSupply); balances[bankAddress] = balances[bankAddress].add(bankBalance); totalSupply = totalSupply.add(bankBalance); Transfer(0x0, bankAddress, bankBalance); // The total supply that we calculated here should be the same as in the config. require(balanceOf(address(this)) == TOKEN_PRESALE_CAP); require(balanceOf(reserve1Address) == TOKEN_RESERVE1_CAP); require(balanceOf(reserve2Address) == TOKEN_RESERVE2_CAP); require(balanceOf(bankAddress) == bankBalance); require(totalSupply == TOKEN_TOTAL_CAP); } function currentTime() public constant returns (uint256) { return now; } // Allows the owner to change the price for tokens. // function setTokensPerKEther(uint256 _tokensPerKEther) external onlyOwner returns(bool) { require(_tokensPerKEther > 0); // Set the tokensPerKEther amount for any new sale. tokensPerKEther = _tokensPerKEther; TokensPerKEtherUpdated(_tokensPerKEther); return true; } // Allows the owner to change the minimum contribution amount // function setContributionMinimum(uint256 _contributionMinimum) external onlyOwner returns(bool) { require(_contributionMinimum > 0); // Set the tokensPerKEther amount for any new sale. contributionMinimum = _contributionMinimum; ContributionMinimumUpdated(_contributionMinimum); return true; } // Allows the owner to change the bonus amount applied to purchases. // function setBonus(uint256 _bonus) external onlyOwner returns(bool) { // 100 means no bonus require(_bonus >= 100); // 200 means 100% bonus require(_bonus <= 200); bonus = _bonus; BonusAmountUpdated(_bonus); return true; } // Allows the owner to change the time window for the sale. // function setTimeWindow(uint256 _startTime, uint256 _endTime) external onlyOwner returns(bool) { require(_startTime >= START_TIME); require(_endTime > _startTime); startTime = _startTime; endTime = _endTime; TimeWindowUpdated(_startTime, _endTime); return true; } // Allows the owner to suspend / stop the sale. // function suspend() external onlyOwner returns(bool) { if (suspended == true) { return false; } suspended = true; SaleSuspended(); return true; } // Allows the owner to resume the sale. // function resume() external onlyOwner returns(bool) { if (suspended == false) { return false; } suspended = false; SaleResumed(); return true; } // Accept ether contributions during the token sale. // function () payable public { buyTokens(msg.sender); } // Allows the caller to buy tokens for another recipient (proxy purchase). // This can be used by exchanges for example. // function buyTokens(address beneficiary) public payable returns (uint256) { require(!suspended); require(beneficiary != address(0x0)); require(beneficiary != address(this)); require(currentTime() >= startTime); require(currentTime() <= endTime); require(msg.value >= contributionMinimum); require(msg.sender != fundingAddress); // Check if the sale contract still has tokens for sale. uint256 saleBalance = balanceOf(address(this)); require(saleBalance > 0); // Calculate the number of tokens that the ether should convert to. uint256 tokens = msg.value.mul(tokensPerKEther).mul(bonus).div(10**(18 - DECIMALS + 3 + 2)); require(tokens > 0); uint256 cost = msg.value; uint256 refund = 0; if (tokens > saleBalance) { // Not enough tokens left for sale to fulfill the full order. tokens = saleBalance; // Calculate the actual cost for the tokens that can be purchased. cost = tokens.mul(10**(18 - DECIMALS + 3 + 2)).div(tokensPerKEther.mul(bonus)); // Calculate the amount of ETH refund to the contributor. refund = msg.value.sub(cost); } totalTokensSold = totalTokensSold.add(tokens); // Move tokens from the sale contract to the beneficiary balances[address(this)] = balances[address(this)].sub(tokens); balances[beneficiary] = balances[beneficiary].add(tokens); Transfer(address(this), beneficiary, tokens); if (refund > 0) { msg.sender.transfer(refund); } // Transfer the contributed ether to the crowdsale wallets. uint256 contribution = msg.value.sub(refund); fundingAddress.transfer(contribution); TokensPurchased(beneficiary, cost, tokens); return tokens; } // ERC20 transfer function, modified to only allow transfers once the sale has been finalized. // function transfer(address _to, uint256 _amount) public returns (bool success) { if (!isTransferAllowed(msg.sender, _to)) { return false; } return super.transfer(_to, _amount); } // ERC20 transferFrom function, modified to only allow transfers once the sale has been finalized. // function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) { if (!isTransferAllowed(_from, _to)) { return false; } return super.transferFrom(_from, _to, _amount); } // Internal helper to check if the transfer should be allowed // function isTransferAllowed(address _from, address _to) private view returns (bool) { if (finalized) { // We allow everybody to transfer tokens once the sale is finalized. return true; } if (_from == bankAddress || _to == bankAddress) { // We allow the bank to initiate transfers. We also allow it to be the recipient // of transfers before the token is finalized in case a recipient wants to send // back tokens. E.g. KYC requirements cannot be met. return true; } return false; } // Allows owner to transfer tokens assigned to the sale contract, back to the bank wallet. function reclaimContractTokens() external onlyOwner returns (bool) { uint256 tokens = balanceOf(address(this)); if (tokens == 0) { return false; } balances[address(this)] = balances[address(this)].sub(tokens); balances[bankAddress] = balances[bankAddress].add(tokens); Transfer(address(this), bankAddress, tokens); ContractTokensReclaimed(tokens); return true; } // Allows the owner to finalize the sale and allow tokens to be traded. // function finalize() external onlyOwner returns (bool) { require(!finalized); finalized = true; TokenFinalized(); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"resume","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bonus","type":"uint256"}],"name":"setBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokensPerKEther","type":"uint256"}],"name":"setTokensPerKEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setTimeWindow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_BONUS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PRIVATE_SALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"END_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contributionMinimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserve1Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"suspended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bankAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FOUNDATION_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_RESERVE1_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALSFACTOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_RESERVE2_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimContractTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserve2Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerKEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FUTURE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRIBUTION_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PUBLIC_SALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_TOTAL_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contributionMinimum","type":"uint256"}],"name":"setContributionMinimum","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suspend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PRESALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_KETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_bankAddress","type":"address"},{"name":"_fundingAddress","type":"address"},{"name":"_reserve1Address","type":"address"},{"name":"_reserve2Address","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"cost","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"TokensPerKEtherUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"ContributionMinimumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"BonusAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newStartTime","type":"uint256"},{"indexed":false,"name":"newEndTime","type":"uint256"}],"name":"TimeWindowUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleSuspended","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleResumed","type":"event"},{"anonymous":false,"inputs":[],"name":"TokenFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"ContractTokensReclaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60405160808062003916833981016040528080519060200190919080519060200190919080519060200190919080519060200190919050506000806040805190810160405280600381526020017f47415400000000000000000000000000000000000000000000000000000000008152506040805190810160405280600981526020017f47415420546f6b656e00000000000000000000000000000000000000000000008152506012600033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600390805190602001906200011492919062000e65565b5082600490805190602001906200012d92919062000e65565b508160058190555080600081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505050620001d062000ddb64010000000002620020d5176401000000009004565b635a365c4010151515620001e357600080fd5b635a365c40635a520bbf111515620001fa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156200023757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156200027357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515620002b057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515620002ec57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200032957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200036557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620003a257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620003de57600080fd5b620004156012600a0a6303404b14026012600a0a631a8d19ec0262000de36401000000000262002480179091906401000000009004565b91506012600a0a633b9aca0002620004cd6012600a0a600002620004b06012600a0a6305f5e10002620004936012600a0a600002620004766012600a0a6317d78400028a62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b141515620004da57600080fd5b6000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550635a365c40601081905550635a520bbf60118190555062e1d480600c81905550671bc16d674ec80000600f819055506078600d8190555085600860026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006b76012600a0a6308ab76ec02600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007296012600a0a6308ab76ec0260005462000de36401000000000262002480179091906401000000009004565b6000819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6308ab76ec026040518082815260200191505060405180910390a3620008176012600a0a6305f5e1000260066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008ab6012600a0a6305f5e1000260005462000de36401000000000262002480179091906401000000009004565b600081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6305f5e100026040518082815260200191505060405180910390a3620009b86012600a0a60000260066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a496012600a0a60000260005462000de36401000000000262002480179091906401000000009004565b600081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6000026040518082815260200191505060405180910390a362000af76000546012600a0a633b9aca000262000e026401000000000262002467179091906401000000009004565b905062000b7d8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c078160005462000de36401000000000262002480179091906401000000009004565b600081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36012600a0a6308ab76ec0262000ca93062000e1c6401000000000262001a40176401000000009004565b14151562000cb657600080fd5b6012600a0a6305f5e1000262000d02600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000d0f57600080fd5b6012600a0a60000262000d58600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000d6557600080fd5b8062000da7600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000db457600080fd5b6012600a0a633b9aca000260005414151562000dcf57600080fd5b50505050505062000f14565b600042905090565b600080828401905083811015151562000df857fe5b8091505092915050565b600082821115151562000e1157fe5b818303905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000ea857805160ff191683800117855562000ed9565b8280016001018555821562000ed9579182015b8281111562000ed857825182559160200191906001019062000ebb565b5b50905062000ee8919062000eec565b5090565b62000f1191905b8082111562000f0d57600081600090555060010162000ef3565b5090565b90565b6129f28062000f246000396000f300606060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461027e57806306fdde03146102ab578063095ea7b3146103395780630b98f975146103935780630e9d02cc146103ce57806318160ddd146104095780631a79c5de146104325780631b3fddb81461047657806323b872dd1461049f5780632a9d04f0146105185780632e0f262514610541578063313ce5671461056a5780633197cbb61461059357806337ba682d146105bc5780634bb278f3146105e55780634f2d7ab51461061257806363b201171461063b57806363cb2afb14610664578063702efdf3146106b957806370a08231146106e657806375b4d78c146107335780637822ed491461075c57806378e97925146107b157806379ba5097146107da57806384fd7ef0146108075780638945a8af146108305780638bc04eb7146108595780638d71f131146108825780638da5cb5b146108ab5780638f14d8a31461090057806395d89b411461092d578063979260bd146109bb578063a3f4df7e14610a10578063a5bc770c14610a9e578063a9059cbb14610ac7578063b3f05b9714610b21578063b46eeebb14610b4e578063ba9bb82714610b77578063c57a4a4d14610ba0578063c806a91d14610bc9578063cb0b7b0314610bf2578063d18e81b314610c2d578063d3b7bfb414610c56578063d4ee1d9014610cab578063dd62ed3e14610d00578063ddaa26ad14610d6c578063e6400bbe14610d95578063eb75dc0314610dc2578063ec8ac4d814610deb578063f2fde38b14610e2d578063f527c85614610e7e578063f76f8d7814610ea7575b61027b33610f35565b50005b341561028957600080fd5b610291611420565b604051808215151515815260200191505060405180910390f35b34156102b657600080fd5b6102be6114f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561034457600080fd5b610379600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611590565b604051808215151515815260200191505060405180910390f35b341561039e57600080fd5b6103b46004808035906020019091905050611682565b604051808215151515815260200191505060405180910390f35b34156103d957600080fd5b6103ef6004808035906020019091905050611747565b604051808215151515815260200191505060405180910390f35b341561041457600080fd5b61041c6117fb565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b61045c6004808035906020019091908035906020019091905050611801565b604051808215151515815260200191505060405180910390f35b341561048157600080fd5b6104896118d7565b6040518082815260200191505060405180910390f35b34156104aa57600080fd5b6104fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118dc565b604051808215151515815260200191505060405180910390f35b341561052357600080fd5b61052b61190c565b6040518082815260200191505060405180910390f35b341561054c57600080fd5b61055461191a565b6040518082815260200191505060405180910390f35b341561057557600080fd5b61057d61191f565b6040518082815260200191505060405180910390f35b341561059e57600080fd5b6105a6611925565b6040518082815260200191505060405180910390f35b34156105c757600080fd5b6105cf61192b565b6040518082815260200191505060405180910390f35b34156105f057600080fd5b6105f8611933565b604051808215151515815260200191505060405180910390f35b341561061d57600080fd5b6106256119fb565b6040518082815260200191505060405180910390f35b341561064657600080fd5b61064e611a01565b6040518082815260200191505060405180910390f35b341561066f57600080fd5b610677611a07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c457600080fd5b6106cc611a2d565b604051808215151515815260200191505060405180910390f35b34156106f157600080fd5b61071d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a40565b6040518082815260200191505060405180910390f35b341561073e57600080fd5b610746611a89565b6040518082815260200191505060405180910390f35b341561076757600080fd5b61076f611a8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bc57600080fd5b6107c4611ab5565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611abb565b604051808215151515815260200191505060405180910390f35b341561081257600080fd5b61081a611ba4565b6040518082815260200191505060405180910390f35b341561083b57600080fd5b610843611baf565b6040518082815260200191505060405180910390f35b341561086457600080fd5b61086c611bbd565b6040518082815260200191505060405180910390f35b341561088d57600080fd5b610895611bc5565b6040518082815260200191505060405180910390f35b34156108b657600080fd5b6108be611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090b57600080fd5b610913611bf6565b604051808215151515815260200191505060405180910390f35b341561093857600080fd5b610940611ea7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610980578082015181840152602081019050610965565b50505050905090810190601f1680156109ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109c657600080fd5b6109ce611f45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1b57600080fd5b610a23611f6b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578082015181840152602081019050610a48565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aa957600080fd5b610ab1611fa4565b6040518082815260200191505060405180910390f35b3415610ad257600080fd5b610b07600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611faa565b604051808215151515815260200191505060405180910390f35b3415610b2c57600080fd5b610b34611fd8565b604051808215151515815260200191505060405180910390f35b3415610b5957600080fd5b610b61611feb565b6040518082815260200191505060405180910390f35b3415610b8257600080fd5b610b8a611ff9565b6040518082815260200191505060405180910390f35b3415610bab57600080fd5b610bb3612005565b6040518082815260200191505060405180910390f35b3415610bd457600080fd5b610bdc612013565b6040518082815260200191505060405180910390f35b3415610bfd57600080fd5b610c136004808035906020019091905050612021565b604051808215151515815260200191505060405180910390f35b3415610c3857600080fd5b610c406120d5565b6040518082815260200191505060405180910390f35b3415610c6157600080fd5b610c696120dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610cb657600080fd5b610cbe612103565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d0b57600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612129565b6040518082815260200191505060405180910390f35b3415610d7757600080fd5b610d7f6121b0565b6040518082815260200191505060405180910390f35b3415610da057600080fd5b610da86121b8565b604051808215151515815260200191505060405180910390f35b3415610dcd57600080fd5b610dd561228a565b6040518082815260200191505060405180910390f35b610e17600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f35565b6040518082815260200191505060405180910390f35b3415610e3857600080fd5b610e64600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612298565b604051808215151515815260200191505060405180910390f35b3415610e8957600080fd5b610e916123d9565b6040518082815260200191505060405180910390f35b3415610eb257600080fd5b610eba6123e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600080600080600860019054906101000a900460ff16151515610f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610f9657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610fd157600080fd5b601054610fdc6120d5565b10151515610fe957600080fd5b601154610ff46120d5565b1115151561100157600080fd5b600f54341015151561101257600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561106f57600080fd5b61107830611a40565b945060008511151561108957600080fd5b6110d060026003601280030101600a0a6110c2600d546110b4600c543461241990919063ffffffff16565b61241990919063ffffffff16565b61244c90919063ffffffff16565b93506000841115156110e157600080fd5b34925060009150848411156111525784935061113a61110d600d54600c5461241990919063ffffffff16565b61112c60026003601280030101600a0a8761241990919063ffffffff16565b61244c90919063ffffffff16565b925061114f833461246790919063ffffffff16565b91505b61116784600e5461248090919063ffffffff16565b600e819055506111bf84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125484600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36000821115611346573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561134557600080fd5b5b611359823461246790919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113bd57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f338486604051808381526020018281526020019250505060405180910390a28395505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147e57600080fd5b60001515600860019054906101000a900460ff16151514156114a357600090506114ef565b6000600860016101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115885780601f1061155d57610100808354040283529160200191611588565b820191906000526020600020905b81548152906001019060200180831161156b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e057600080fd5b606482101515156116f057600080fd5b60c8821115151561170057600080fd5b81600d819055507f7d9e5243a26ab840171b7338448bae49afbea12ab5209c779f4e2ae6e2d141cd826040518082815260200191505060405180910390a160019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117a557600080fd5b6000821115156117b457600080fd5b81600c819055507fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab826040518082815260200191505060405180910390a160019050919050565b60005481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f57600080fd5b635a365c40831015151561187257600080fd5b828211151561188057600080fd5b82601081905550816011819055507f6c118f466f3e47773b4c9da27f548aafdf212f592e28574f28ecc67ef19cd4518383604051808381526020018281526020019250505060405180910390a16001905092915050565b607881565b60006118e8848461249e565b15156118f75760009050611905565b611902848484612580565b90505b9392505050565b6012600a0a6303404b140281565b601281565b60055481565b60115481565b635a520bbf81565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199157600080fd5b600860009054906101000a900460ff161515156119ad57600080fd5b6001600860006101000a81548160ff0219169083151502179055507f0f9b481a37d4503bc76152eef0e2ba08850a8db76068c93d4d6bec0395aee72360405160405180910390a16001905090565b600f5481565b600e5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d5481565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3660405160405180910390a26001905090565b6012600a0a60000281565b6012600a0a6305f5e1000281565b6012600a0a81565b6012600a0a60000281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5557600080fd5b611c5e30611a40565b90506000811415611c725760009150611ea3565b611cc481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7b8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f2bdbc0ce7fbf2aef4c647c03c4bfd8944d985741800d90ca4f1e8c6f5b77419e816040518082815260200191505060405180910390a1600191505b5090565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f3d5780601f10611f1257610100808354040283529160200191611f3d565b820191906000526020600020905b815481529060010190602001808311611f2057829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600981526020017f47415420546f6b656e000000000000000000000000000000000000000000000081525081565b600c5481565b6000611fb6338461249e565b1515611fc55760009050611fd2565b611fcf838361282b565b90505b92915050565b600860009054906101000a900460ff1681565b6012600a0a6317d784000281565b671bc16d674ec8000081565b6012600a0a631a8d19ec0281565b6012600a0a633b9aca000281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207f57600080fd5b60008211151561208e57600080fd5b81600f819055507fe6fafef0739724aaa3f73724864d5821481aa094d2c77c7378b77a69e34d9ac7826040518082815260200191505060405180910390a160019050919050565b600042905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b635a365c4081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221657600080fd5b60011515600860019054906101000a900460ff161515141561223b5760009050612287565b6001600860016101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6012600a0a6308ab76ec0281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122f657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561233257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238f57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b62e1d48081565b6040805190810160405280600381526020017f474154000000000000000000000000000000000000000000000000000000000081525081565b6000808284029050600084148061243a575082848281151561243757fe5b04145b151561244257fe5b8091505092915050565b600080828481151561245a57fe5b0490508091505092915050565b600082821115151561247557fe5b818303905092915050565b600080828401905083811015151561249457fe5b8091505092915050565b6000600860009054906101000a900460ff16156124be576001905061257a565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806125675750600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612575576001905061257a565b600090505b92915050565b60006125d482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a682600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061287f82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058208a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd00290000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c140000000000000000000000000000000000000000000000000000000000000011
Deployed Bytecode
0x606060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461027e57806306fdde03146102ab578063095ea7b3146103395780630b98f975146103935780630e9d02cc146103ce57806318160ddd146104095780631a79c5de146104325780631b3fddb81461047657806323b872dd1461049f5780632a9d04f0146105185780632e0f262514610541578063313ce5671461056a5780633197cbb61461059357806337ba682d146105bc5780634bb278f3146105e55780634f2d7ab51461061257806363b201171461063b57806363cb2afb14610664578063702efdf3146106b957806370a08231146106e657806375b4d78c146107335780637822ed491461075c57806378e97925146107b157806379ba5097146107da57806384fd7ef0146108075780638945a8af146108305780638bc04eb7146108595780638d71f131146108825780638da5cb5b146108ab5780638f14d8a31461090057806395d89b411461092d578063979260bd146109bb578063a3f4df7e14610a10578063a5bc770c14610a9e578063a9059cbb14610ac7578063b3f05b9714610b21578063b46eeebb14610b4e578063ba9bb82714610b77578063c57a4a4d14610ba0578063c806a91d14610bc9578063cb0b7b0314610bf2578063d18e81b314610c2d578063d3b7bfb414610c56578063d4ee1d9014610cab578063dd62ed3e14610d00578063ddaa26ad14610d6c578063e6400bbe14610d95578063eb75dc0314610dc2578063ec8ac4d814610deb578063f2fde38b14610e2d578063f527c85614610e7e578063f76f8d7814610ea7575b61027b33610f35565b50005b341561028957600080fd5b610291611420565b604051808215151515815260200191505060405180910390f35b34156102b657600080fd5b6102be6114f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561034457600080fd5b610379600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611590565b604051808215151515815260200191505060405180910390f35b341561039e57600080fd5b6103b46004808035906020019091905050611682565b604051808215151515815260200191505060405180910390f35b34156103d957600080fd5b6103ef6004808035906020019091905050611747565b604051808215151515815260200191505060405180910390f35b341561041457600080fd5b61041c6117fb565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b61045c6004808035906020019091908035906020019091905050611801565b604051808215151515815260200191505060405180910390f35b341561048157600080fd5b6104896118d7565b6040518082815260200191505060405180910390f35b34156104aa57600080fd5b6104fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118dc565b604051808215151515815260200191505060405180910390f35b341561052357600080fd5b61052b61190c565b6040518082815260200191505060405180910390f35b341561054c57600080fd5b61055461191a565b6040518082815260200191505060405180910390f35b341561057557600080fd5b61057d61191f565b6040518082815260200191505060405180910390f35b341561059e57600080fd5b6105a6611925565b6040518082815260200191505060405180910390f35b34156105c757600080fd5b6105cf61192b565b6040518082815260200191505060405180910390f35b34156105f057600080fd5b6105f8611933565b604051808215151515815260200191505060405180910390f35b341561061d57600080fd5b6106256119fb565b6040518082815260200191505060405180910390f35b341561064657600080fd5b61064e611a01565b6040518082815260200191505060405180910390f35b341561066f57600080fd5b610677611a07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c457600080fd5b6106cc611a2d565b604051808215151515815260200191505060405180910390f35b34156106f157600080fd5b61071d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a40565b6040518082815260200191505060405180910390f35b341561073e57600080fd5b610746611a89565b6040518082815260200191505060405180910390f35b341561076757600080fd5b61076f611a8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bc57600080fd5b6107c4611ab5565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611abb565b604051808215151515815260200191505060405180910390f35b341561081257600080fd5b61081a611ba4565b6040518082815260200191505060405180910390f35b341561083b57600080fd5b610843611baf565b6040518082815260200191505060405180910390f35b341561086457600080fd5b61086c611bbd565b6040518082815260200191505060405180910390f35b341561088d57600080fd5b610895611bc5565b6040518082815260200191505060405180910390f35b34156108b657600080fd5b6108be611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090b57600080fd5b610913611bf6565b604051808215151515815260200191505060405180910390f35b341561093857600080fd5b610940611ea7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610980578082015181840152602081019050610965565b50505050905090810190601f1680156109ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109c657600080fd5b6109ce611f45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1b57600080fd5b610a23611f6b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578082015181840152602081019050610a48565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aa957600080fd5b610ab1611fa4565b6040518082815260200191505060405180910390f35b3415610ad257600080fd5b610b07600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611faa565b604051808215151515815260200191505060405180910390f35b3415610b2c57600080fd5b610b34611fd8565b604051808215151515815260200191505060405180910390f35b3415610b5957600080fd5b610b61611feb565b6040518082815260200191505060405180910390f35b3415610b8257600080fd5b610b8a611ff9565b6040518082815260200191505060405180910390f35b3415610bab57600080fd5b610bb3612005565b6040518082815260200191505060405180910390f35b3415610bd457600080fd5b610bdc612013565b6040518082815260200191505060405180910390f35b3415610bfd57600080fd5b610c136004808035906020019091905050612021565b604051808215151515815260200191505060405180910390f35b3415610c3857600080fd5b610c406120d5565b6040518082815260200191505060405180910390f35b3415610c6157600080fd5b610c696120dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610cb657600080fd5b610cbe612103565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d0b57600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612129565b6040518082815260200191505060405180910390f35b3415610d7757600080fd5b610d7f6121b0565b6040518082815260200191505060405180910390f35b3415610da057600080fd5b610da86121b8565b604051808215151515815260200191505060405180910390f35b3415610dcd57600080fd5b610dd561228a565b6040518082815260200191505060405180910390f35b610e17600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f35565b6040518082815260200191505060405180910390f35b3415610e3857600080fd5b610e64600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612298565b604051808215151515815260200191505060405180910390f35b3415610e8957600080fd5b610e916123d9565b6040518082815260200191505060405180910390f35b3415610eb257600080fd5b610eba6123e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600080600080600860019054906101000a900460ff16151515610f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610f9657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610fd157600080fd5b601054610fdc6120d5565b10151515610fe957600080fd5b601154610ff46120d5565b1115151561100157600080fd5b600f54341015151561101257600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561106f57600080fd5b61107830611a40565b945060008511151561108957600080fd5b6110d060026003601280030101600a0a6110c2600d546110b4600c543461241990919063ffffffff16565b61241990919063ffffffff16565b61244c90919063ffffffff16565b93506000841115156110e157600080fd5b34925060009150848411156111525784935061113a61110d600d54600c5461241990919063ffffffff16565b61112c60026003601280030101600a0a8761241990919063ffffffff16565b61244c90919063ffffffff16565b925061114f833461246790919063ffffffff16565b91505b61116784600e5461248090919063ffffffff16565b600e819055506111bf84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125484600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36000821115611346573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561134557600080fd5b5b611359823461246790919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113bd57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f338486604051808381526020018281526020019250505060405180910390a28395505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147e57600080fd5b60001515600860019054906101000a900460ff16151514156114a357600090506114ef565b6000600860016101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115885780601f1061155d57610100808354040283529160200191611588565b820191906000526020600020905b81548152906001019060200180831161156b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e057600080fd5b606482101515156116f057600080fd5b60c8821115151561170057600080fd5b81600d819055507f7d9e5243a26ab840171b7338448bae49afbea12ab5209c779f4e2ae6e2d141cd826040518082815260200191505060405180910390a160019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117a557600080fd5b6000821115156117b457600080fd5b81600c819055507fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab826040518082815260200191505060405180910390a160019050919050565b60005481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f57600080fd5b635a365c40831015151561187257600080fd5b828211151561188057600080fd5b82601081905550816011819055507f6c118f466f3e47773b4c9da27f548aafdf212f592e28574f28ecc67ef19cd4518383604051808381526020018281526020019250505060405180910390a16001905092915050565b607881565b60006118e8848461249e565b15156118f75760009050611905565b611902848484612580565b90505b9392505050565b6012600a0a6303404b140281565b601281565b60055481565b60115481565b635a520bbf81565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199157600080fd5b600860009054906101000a900460ff161515156119ad57600080fd5b6001600860006101000a81548160ff0219169083151502179055507f0f9b481a37d4503bc76152eef0e2ba08850a8db76068c93d4d6bec0395aee72360405160405180910390a16001905090565b600f5481565b600e5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d5481565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3660405160405180910390a26001905090565b6012600a0a60000281565b6012600a0a6305f5e1000281565b6012600a0a81565b6012600a0a60000281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5557600080fd5b611c5e30611a40565b90506000811415611c725760009150611ea3565b611cc481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7b8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f2bdbc0ce7fbf2aef4c647c03c4bfd8944d985741800d90ca4f1e8c6f5b77419e816040518082815260200191505060405180910390a1600191505b5090565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f3d5780601f10611f1257610100808354040283529160200191611f3d565b820191906000526020600020905b815481529060010190602001808311611f2057829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600981526020017f47415420546f6b656e000000000000000000000000000000000000000000000081525081565b600c5481565b6000611fb6338461249e565b1515611fc55760009050611fd2565b611fcf838361282b565b90505b92915050565b600860009054906101000a900460ff1681565b6012600a0a6317d784000281565b671bc16d674ec8000081565b6012600a0a631a8d19ec0281565b6012600a0a633b9aca000281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207f57600080fd5b60008211151561208e57600080fd5b81600f819055507fe6fafef0739724aaa3f73724864d5821481aa094d2c77c7378b77a69e34d9ac7826040518082815260200191505060405180910390a160019050919050565b600042905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b635a365c4081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221657600080fd5b60011515600860019054906101000a900460ff161515141561223b5760009050612287565b6001600860016101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6012600a0a6308ab76ec0281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122f657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561233257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238f57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b62e1d48081565b6040805190810160405280600381526020017f474154000000000000000000000000000000000000000000000000000000000081525081565b6000808284029050600084148061243a575082848281151561243757fe5b04145b151561244257fe5b8091505092915050565b600080828481151561245a57fe5b0490508091505092915050565b600082821115151561247557fe5b818303905092915050565b600080828401905083811015151561249457fe5b8091505092915050565b6000600860009054906101000a900460ff16156124be576001905061257a565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806125675750600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612575576001905061257a565b600090505b92915050565b60006125d482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a682600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061287f82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058208a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c140000000000000000000000000000000000000000000000000000000000000011
-----Decoded View---------------
Arg [0] : _bankAddress (address): 0x1a4FBba7231Ec0707925c52b047b951a0BeAA325
Arg [1] : _fundingAddress (address): 0xA85B419eeE304563d3587Fe934e932F056cA3C14
Arg [2] : _reserve1Address (address): 0xA85B419eeE304563d3587Fe934e932F056cA3C14
Arg [3] : _reserve2Address (address): 0x0000000000000000000000000000000000000011
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325
Arg [1] : 000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14
Arg [2] : 000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000011
Swarm Source
bzzr://8a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.