Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 4,816 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 15595662 | 789 days ago | IN | 0 ETH | 0.0003096 | ||||
Transfer | 15595570 | 789 days ago | IN | 0 ETH | 0.00095894 | ||||
Approve | 14506228 | 963 days ago | IN | 0 ETH | 0.00094013 | ||||
Approve | 12734089 | 1239 days ago | IN | 0 ETH | 0.000883 | ||||
Approve | 12630982 | 1255 days ago | IN | 0 ETH | 0.00042291 | ||||
Approve | 12376257 | 1294 days ago | IN | 0 ETH | 0.00311375 | ||||
Transfer | 12218606 | 1319 days ago | IN | 0 ETH | 0.00208341 | ||||
Transfer | 12213084 | 1320 days ago | IN | 0 ETH | 0.0041217 | ||||
Transfer | 11747928 | 1391 days ago | IN | 0 ETH | 0.00335776 | ||||
Transfer | 11285305 | 1462 days ago | IN | 0 ETH | 0.00113612 | ||||
Transfer | 11243880 | 1469 days ago | IN | 0 ETH | 0.00089727 | ||||
Transfer | 11123859 | 1487 days ago | IN | 0 ETH | 0.00089753 | ||||
Transfer | 10394810 | 1599 days ago | IN | 0 ETH | 0.0008157 | ||||
Transfer | 10245093 | 1623 days ago | IN | 0 ETH | 0.00314229 | ||||
Transfer | 9486101 | 1740 days ago | IN | 0 ETH | 0.00167316 | ||||
Transfer | 9233764 | 1779 days ago | IN | 0 ETH | 0.00018364 | ||||
Transfer | 9192449 | 1785 days ago | IN | 0 ETH | 0.00004079 | ||||
Transfer | 9140627 | 1796 days ago | IN | 0 ETH | 0.00006117 | ||||
Transfer | 8877052 | 1842 days ago | IN | 0 ETH | 0.00061866 | ||||
Transfer | 8877041 | 1842 days ago | IN | 0 ETH | 0.00061866 | ||||
Transfer | 8877028 | 1842 days ago | IN | 0 ETH | 0.00061866 | ||||
Transfer | 8870046 | 1843 days ago | IN | 0 ETH | 0.0006412 | ||||
Transfer | 8864941 | 1844 days ago | IN | 0 ETH | 0.00059176 | ||||
Transfer | 8791903 | 1855 days ago | IN | 0 ETH | 0.00009683 | ||||
Transfer | 8537479 | 1895 days ago | IN | 0 ETH | 0.00077722 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5426335 | 2414 days ago | 0.11890606 ETH | ||||
5426329 | 2414 days ago | 0.11890606 ETH | ||||
5426326 | 2414 days ago | 0.2378 ETH | ||||
5426322 | 2414 days ago | 0.15 ETH | ||||
5426317 | 2414 days ago | 1 ETH | ||||
5426311 | 2414 days ago | 0.14387633 ETH | ||||
5426309 | 2414 days ago | 6.00475624 ETH | ||||
5426307 | 2414 days ago | 0.11890606 ETH | ||||
5426302 | 2414 days ago | 0.3354 ETH | ||||
5426290 | 2414 days ago | 0.025 ETH | ||||
5426279 | 2414 days ago | 0.145 ETH | ||||
5426272 | 2414 days ago | 0.15488224 ETH | ||||
5426269 | 2414 days ago | 0.34597653 ETH | ||||
5426257 | 2414 days ago | 0.17835909 ETH | ||||
5426254 | 2414 days ago | 0.17535909 ETH | ||||
5426251 | 2414 days ago | 0.93533977 ETH | ||||
5426201 | 2414 days ago | 0.1675 ETH | ||||
5426094 | 2414 days ago | 0.35671819 ETH | ||||
5426053 | 2414 days ago | 0.5 ETH | ||||
5426020 | 2414 days ago | 0.1859 ETH | ||||
5426017 | 2414 days ago | 0.35671819 ETH | ||||
5426015 | 2414 days ago | 0.11890606 ETH | ||||
5426010 | 2414 days ago | 0.95 ETH | ||||
5426006 | 2414 days ago | 0.46272303 ETH | ||||
5426003 | 2414 days ago | 0.11890606 ETH |
Loading...
Loading
Contract Name:
RepuX
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-02-07 */ pragma solidity ^0.4.8; /** * Math operations with safety checks * By OpenZeppelin: https://github.com/OpenZeppelin/zeppelin-solidity/contracts/SafeMath.sol */ library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ContractReceiver { function tokenFallback(address _from, uint256 _value, bytes _data) external; } contract Ownable { address public owner; address public ownerCandidate; event OwnerTransfer(address originalOwner, address currentOwner); modifier onlyOwner { require(msg.sender == owner); _; } function proposeNewOwner(address newOwner) public onlyOwner { require(newOwner != address(0) && newOwner != owner); ownerCandidate = newOwner; } function acceptOwnerTransfer() public { require(msg.sender == ownerCandidate); OwnerTransfer(owner, ownerCandidate); owner = ownerCandidate; } } contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /** * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol */ function increaseApproval (address _spender, uint _addedValue) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } // Based in part on code by Open-Zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity.git // Based in part on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol // Smart contract for the RepuX token & the first crowdsale contract RepuX is StandardToken, Ownable { string public constant name = "RepuX"; string public constant symbol = "REPUX"; uint8 public constant decimals = 18; address public multisig; //multisig wallet, to which all contributions will be sent uint256 public phase1StartBlock; //Crowdsale start block uint256 public phase1EndBlock; // Day 7 (estimate) uint256 public phase2EndBlock; // Day 13 (estimate) uint256 public phase3EndBlock; // Day 19 (estimate) uint256 public phase4EndBlock; // Day 25 (estimate) uint256 public phase5EndBlock; // Day 31 (estimate) uint256 public endBlock; //whole crowdsale end block uint256 public basePrice = 1818 * (10**11); // ICO token base price: ~$0.20 (estimate assuming $1100 per Eth) uint256 public totalSupply = 500000000 * (10**uint256(decimals)); //Token total supply: 500000000 RPX uint256 public presaleTokenSupply = totalSupply.mul(20).div(100); //Amount of tokens available during presale (10%) uint256 public crowdsaleTokenSupply = totalSupply.mul(30).div(100); //Amount of tokens available during crowdsale (50%) uint256 public rewardsTokenSupply = totalSupply.mul(15).div(100); //Rewards pool (VIP etc, 10%), ambassador share(3%) & ICO bounties(2%) uint256 public teamTokenSupply = totalSupply.mul(12).div(100); //Tokens distributed to team (12% in total, 4% vested for 12, 24 & 36 months) uint256 public platformTokenSupply = totalSupply.mul(23).div(100); //Token reserve for sale on platform uint256 public presaleTokenSold = 0; //Records the amount of tokens sold during presale uint256 public crowdsaleTokenSold = 0; //Records the amount of tokens sold during the crowdsale uint256 public phase1Cap = crowdsaleTokenSupply.mul(50).div(100); uint256 public phase2Cap = crowdsaleTokenSupply.mul(60).div(100); uint256 public phase3Cap = crowdsaleTokenSupply.mul(70).div(100); uint256 public phase4Cap = crowdsaleTokenSupply.mul(80).div(100); uint256 public transferLockup = 5760; //Lock up token transfer until ~2 days after crowdsale concludes uint256 public teamLockUp; uint256 private teamWithdrawalCount = 0; uint256 public averageBlockTime = 18; //Average block time in seconds bool public presaleStarted = false; bool public presaleConcluded = false; bool public crowdsaleStarted = false; bool public crowdsaleConcluded = false; bool public halted = false; //Halt crowdsale in emergency uint256 contributionCount = 0; bytes32[] public contributionHashes; mapping (bytes32 => Contribution) private contributions; address public platformWithdrawalRecipient = address(0); bool public platformWithdrawalProposed = false; bool platformWithdrawn = false; address public rewardsWithdrawalRecipient = address(0); bool public rewardsWithdrawalProposed = false; bool rewardsWithdrawn = false; event Halt(); //Halt event event Unhalt(); //Unhalt event event Burn(address burner, uint256 amount); event StartPresale(); event ConcludePresale(); event StartCrowdsale(); event ConcludeCrowdsale(); event SetMultisig(address newMultisig); struct Contribution { address contributor; address recipient; uint256 ethWei; uint256 tokens; bool resolved; bool success; uint8 stage; } event ContributionReceived(bytes32 contributionHash, address contributor, address recipient, uint256 ethWei, uint256 pendingTokens); event ContributionResolved(bytes32 contributionHash, bool pass, address contributor, address recipient, uint256 ethWei, uint256 tokens); // lockup during and after 48h of end of crowdsale modifier crowdsaleTransferLock() { require(crowdsaleStarted && block.number >= endBlock.add(transferLockup)); _; } modifier whenNotHalted() { require(!halted); _; } //Constructor: set owner (team) address & crowdsale recipient multisig wallet address //Allocate reward tokens to the team wallet function RepuX(address _multisig) public { owner = msg.sender; multisig = _multisig; teamLockUp = dayToBlockNumber(31); // 31 days between withdrawing 1/36 of team tokens - vesting period in total is 3 years } //Fallback function when receiving Ether. Contributors can directly send Ether to the token address during crowdsale. function() public payable { buy(); } //Halt ICO in case of emergency. function halt() public onlyOwner { halted = true; Halt(); } function unhalt() public onlyOwner { halted = false; Unhalt(); } function startPresale() public onlyOwner { require(!presaleStarted); presaleStarted = true; StartPresale(); } function concludePresale() public onlyOwner { require(presaleStarted && !presaleConcluded); presaleConcluded = true; //Unsold tokens in the presale are made available in the crowdsale. crowdsaleTokenSupply = crowdsaleTokenSupply.add(presaleTokenSupply.sub(presaleTokenSold)); ConcludePresale(); } // Can only be called after presale is concluded. function startCrowdsale() public onlyOwner { require(presaleConcluded && !crowdsaleStarted); crowdsaleStarted = true; phase1StartBlock = block.number; phase1EndBlock = phase1StartBlock.add(dayToBlockNumber(7)); phase2EndBlock = phase1EndBlock.add(dayToBlockNumber(6)); phase3EndBlock = phase2EndBlock.add(dayToBlockNumber(6)); phase4EndBlock = phase3EndBlock.add(dayToBlockNumber(6)); phase5EndBlock = phase4EndBlock.add(dayToBlockNumber(6)); endBlock = phase5EndBlock; StartCrowdsale(); } // Can only be called either after crowdsale time period ends, or after tokens have sold out function concludeCrowdsale() public onlyOwner { require(crowdsaleStarted && !crowdsaleOn() && !crowdsaleConcluded); crowdsaleConcluded = true; endBlock = block.number; uint256 unsold = crowdsaleTokenSupply.sub(crowdsaleTokenSold); if (unsold > 0) { //Burn unsold tokens totalSupply = totalSupply.sub(unsold); Burn(this, unsold); Transfer(this, address(0), unsold); } ConcludeCrowdsale(); } // Make it possible for team to withdraw team tokens over 3 years function withdrawTeamToken(address recipient) public onlyOwner { require(crowdsaleStarted); require(teamWithdrawalCount < 36); require(block.number >= endBlock.add(teamLockUp.mul(teamWithdrawalCount.add(1)))); // 36-month lock-up in total, team can withdraw 1/36 of tokens each month teamWithdrawalCount++; uint256 tokens = teamTokenSupply.div(36); // distribute 1/36 of team tokens each month balances[recipient] = balances[recipient].add(tokens); Transfer(this, recipient, tokens); } // Withdrawing Platform Tokens supply function proposePlatformWithdrawal(address recipient) public onlyOwner { require(!platformWithdrawn); platformWithdrawalRecipient = recipient; platformWithdrawalProposed = true; } function cancelPlatformWithdrawal() public onlyOwner { require(!platformWithdrawn); require(platformWithdrawalProposed); platformWithdrawalProposed = false; platformWithdrawalRecipient = address(0); } function confirmPlatformWithdrawal() public { require(!platformWithdrawn); require(platformWithdrawalProposed); require(msg.sender == platformWithdrawalRecipient); platformWithdrawn = true; balances[msg.sender] = balances[msg.sender].add(platformTokenSupply); Transfer(this, msg.sender, platformTokenSupply); } // Withdrawing Rewards Pool Tokens function proposeRewardsWithdrawal(address recipient) public onlyOwner { require(!rewardsWithdrawn); rewardsWithdrawalRecipient = recipient; rewardsWithdrawalProposed = true; } function cancelRewardsWithdrawal() public onlyOwner { require(!rewardsWithdrawn); require(rewardsWithdrawalProposed); rewardsWithdrawalProposed = false; rewardsWithdrawalRecipient = address(0); } function confirmRewardsWithdrawal() public { require(!rewardsWithdrawn); require(rewardsWithdrawalProposed); require(msg.sender == rewardsWithdrawalRecipient); rewardsWithdrawn = true; balances[msg.sender] = balances[msg.sender].add(rewardsTokenSupply); Transfer(this, msg.sender, rewardsTokenSupply); } function buy() public payable { buyRecipient(msg.sender); } // Allow addresses to buy token for another account function buyRecipient(address recipient) public payable whenNotHalted { require(msg.value > 0); require(presaleOn()||crowdsaleOn()); //Contribution only allowed during presale/crowdsale uint256 tokens = msg.value.mul(10**uint256(decimals)).div(tokenPrice()); uint8 stage = 0; if(presaleOn()) { require(presaleTokenSold.add(tokens) <= presaleTokenSupply); presaleTokenSold = presaleTokenSold.add(tokens); } else { require(crowdsaleTokenSold.add(tokens) <= crowdsaleTokenSupply); crowdsaleTokenSold = crowdsaleTokenSold.add(tokens); stage = 1; } contributionCount = contributionCount.add(1); bytes32 transactionHash = keccak256(contributionCount, msg.sender, msg.value, msg.data, msg.gas, block.number, tx.gasprice); contributions[transactionHash] = Contribution(msg.sender, recipient, msg.value, tokens, false, false, stage); contributionHashes.push(transactionHash); ContributionReceived(transactionHash, msg.sender, recipient, msg.value, tokens); } //Accept a contribution if KYC passed. function acceptContribution(bytes32 transactionHash) public onlyOwner { Contribution storage c = contributions[transactionHash]; require(!c.resolved); c.resolved = true; c.success = true; balances[c.recipient] = balances[c.recipient].add(c.tokens); assert(multisig.send(c.ethWei)); Transfer(this, c.recipient, c.tokens); ContributionResolved(transactionHash, true, c.contributor, c.recipient, c.ethWei, c.tokens); } //Reject a contribution if KYC failed. function rejectContribution(bytes32 transactionHash) public onlyOwner { Contribution storage c = contributions[transactionHash]; require(!c.resolved); c.resolved = true; c.success = false; if (c.stage == 0) { presaleTokenSold = presaleTokenSold.sub(c.tokens); } else { crowdsaleTokenSold = crowdsaleTokenSold.sub(c.tokens); } assert(c.contributor.send(c.ethWei)); ContributionResolved(transactionHash, false, c.contributor, c.recipient, c.ethWei, c.tokens); } // Team manually mints tokens in case of BTC/wire-transfer contributions function mint(address recipient, uint256 value) public onlyOwner { require(value > 0); require(presaleStarted && !crowdsaleConcluded); // Minting allowed after presale started, up to crowdsale concluded (time for team to distribute tokens) if (presaleOn()) { require(presaleTokenSold.add(value) <= presaleTokenSupply); presaleTokenSold = presaleTokenSold.add(value); } else { require(crowdsaleTokenSold.add(value) <= crowdsaleTokenSupply); crowdsaleTokenSold = crowdsaleTokenSold.add(value); } balances[recipient] = balances[recipient].add(value); Transfer(this, recipient, value); } //Burns the specified amount of tokens from the team wallet address function burn(uint256 _value) public onlyOwner returns (bool) { balances[msg.sender] = balances[msg.sender].sub(_value); totalSupply = totalSupply.sub(_value); Transfer(msg.sender, address(0), _value); Burn(msg.sender, _value); return true; } //Allow team to change the recipient multisig address function setMultisig(address addr) public onlyOwner { require(addr != address(0)); multisig = addr; SetMultisig(addr); } //Allows Team to adjust average blocktime according to network status, //in order to provide more precise timing for ICO phases & lock-up periods function setAverageBlockTime(uint256 newBlockTime) public onlyOwner { require(newBlockTime > 0); averageBlockTime = newBlockTime; } //Allows Team to adjust basePrice so price of the token has correct correlation to dollar function setBasePrice(uint256 newBasePrice) public onlyOwner { require(!crowdsaleStarted); require(newBasePrice > 0); basePrice = newBasePrice; } function transfer(address _to, uint256 _value) public crowdsaleTransferLock returns(bool) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public crowdsaleTransferLock returns(bool) { return super.transferFrom(_from, _to, _value); } //Price of token in terms of ether. function tokenPrice() public constant returns(uint256) { uint8 p = phase(); if (p == 0) return basePrice.mul(50).div(100); //Presale: 50% discount if (p == 1) return basePrice.mul(70).div(100); //ICO phase 1: 30% discount if (p == 2) return basePrice.mul(75).div(100); //Phase 2 :25% discount if (p == 3) return basePrice.mul(80).div(100); //Phase 3: 20% discount if (p == 4) return basePrice.mul(85).div(100); //Phase 4: 15% discount if (p == 5) return basePrice.mul(90).div(100); //Phase 5: 10% discount return basePrice; } function phase() public constant returns (uint8) { if (presaleOn()) return 0; if (crowdsaleTokenSold <= phase1Cap && block.number <= phase1EndBlock) return 1; if (crowdsaleTokenSold <= phase2Cap && block.number <= phase2EndBlock) return 2; if (crowdsaleTokenSold <= phase3Cap && block.number <= phase3EndBlock) return 3; if (crowdsaleTokenSold <= phase4Cap && block.number <= phase4EndBlock) return 4; if (crowdsaleTokenSold <= crowdsaleTokenSupply && block.number <= phase5EndBlock) return 5; return 6; } function presaleOn() public constant returns (bool) { return (presaleStarted && !presaleConcluded && presaleTokenSold < presaleTokenSupply); } function crowdsaleOn() public constant returns (bool) { return (crowdsaleStarted && block.number <= endBlock && crowdsaleTokenSold < crowdsaleTokenSupply); } function dayToBlockNumber(uint256 dayNum) public constant returns(uint256) { return dayNum.mul(86400).div(averageBlockTime); //86400 = 24*60*60 = number of seconds in a day } function getContributionFromHash(bytes32 contributionHash) public constant returns ( address contributor, address recipient, uint256 ethWei, uint256 tokens, bool resolved, bool success ) { Contribution c = contributions[contributionHash]; contributor = c.contributor; recipient = c.recipient; ethWei = c.ethWei; tokens = c.tokens; resolved = c.resolved; success = c.success; } function getContributionHashes() public constant returns (bytes32[]) { return contributionHashes; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"crowdsaleConcluded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleOn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"proposePlatformWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"buyRecipient","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"phase1StartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsWithdrawalRecipient","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleOn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmPlatformWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardsWithdrawalProposed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"averageBlockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"withdrawTeamToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase5EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBlockTime","type":"uint256"}],"name":"setAverageBlockTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"platformTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getContributionHashes","outputs":[{"name":"","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multisig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contributionHashes","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase1EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transactionHash","type":"bytes32"}],"name":"acceptContribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionHash","type":"bytes32"}],"name":"rejectContribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase4Cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase2EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnerTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"tokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"concludePresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cancelRewardsWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"concludeCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase3EndBlock","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":true,"inputs":[{"name":"dayNum","type":"uint256"}],"name":"dayToBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmRewardsWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cancelPlatformWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"platformWithdrawalRecipient","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"proposeNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transferLockup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase4EndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamLockUp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"platformWithdrawalProposed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase2Cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"phase3Cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardsTokenSupply","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[{"name":"newBasePrice","type":"uint256"}],"name":"setBasePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase1Cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleConcluded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"contributionHash","type":"bytes32"}],"name":"getContributionFromHash","outputs":[{"name":"contributor","type":"address"},{"name":"recipient","type":"address"},{"name":"ethWei","type":"uint256"},{"name":"tokens","type":"uint256"},{"name":"resolved","type":"bool"},{"name":"success","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setMultisig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"proposeRewardsWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_multisig","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Halt","type":"event"},{"anonymous":false,"inputs":[],"name":"Unhalt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"burner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"StartPresale","type":"event"},{"anonymous":false,"inputs":[],"name":"ConcludePresale","type":"event"},{"anonymous":false,"inputs":[],"name":"StartCrowdsale","type":"event"},{"anonymous":false,"inputs":[],"name":"ConcludeCrowdsale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newMultisig","type":"address"}],"name":"SetMultisig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contributionHash","type":"bytes32"},{"indexed":false,"name":"contributor","type":"address"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"ethWei","type":"uint256"},{"indexed":false,"name":"pendingTokens","type":"uint256"}],"name":"ContributionReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contributionHash","type":"bytes32"},{"indexed":false,"name":"pass","type":"bool"},{"indexed":false,"name":"contributor","type":"address"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"ethWei","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"ContributionResolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"originalOwner","type":"address"},{"indexed":false,"name":"currentOwner","type":"address"}],"name":"OwnerTransfer","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"},{"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"}]
Contract Creation Code
606060405265a5589c6b9000600d55601260ff16600a0a631dcd650002600e556200006860646200004b6014600e54620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b600f55620000b4606462000097601e600e54620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b601055620001006064620000e3600f600e54620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b6011556200014c60646200012f600c600e54620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b6012556200019860646200017b6017600e54620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b60135560006014556000601555620001ee6064620001d16032601054620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b6016556200023a60646200021d603c601054620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b601755620002866064620002696046601054620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b601855620002d26064620002b56050601054620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b601955611680601a556000601c556012601d556000601e60006101000a81548160ff0219169083151502179055506000601e60016101000a81548160ff0219169083151502179055506000601e60026101000a81548160ff0219169083151502179055506000601e60036101000a81548160ff0219169083151502179055506000601e60046101000a81548160ff0219169083151502179055506000601f556000602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602260146101000a81548160ff0219169083151502179055506000602260156101000a81548160ff0219169083151502179055506000602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602360146101000a81548160ff0219169083151502179055506000602360156101000a81548160ff02191690831515021790555034156200046d57600080fd5b6040516020806200517f8339810160405280805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200052c601f6200058b640100000000026200366e176401000000009004565b601b8190555050620005de565b600080828402905060008414806200055c57508284828115156200055957fe5b04145b15156200056557fe5b8091505092915050565b60008082848115156200057e57fe5b0490508091505092915050565b6000620005d7601d54620005ba6201518085620005396401000000000262004498179091906401000000009004565b6200056f64010000000002620044cb179091906401000000009004565b9050919050565b614b9180620005ee6000396000f300606060405260043610610384576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062c988e81461038e57806302dd92c4146103bb57806304549d6f146103e857806304c98b2b1461041557806306fdde031461042a578063083c6323146104b8578063095ea7b3146104e15780630b3af9011461053b57806311a4c71014610574578063145538ea146105a2578063165c86df146105cb57806318160ddd1461062057806319af6f48146106495780631ad874b414610672578063207019671461069f57806321338d1b146106b4578063233dedf1146106e157806323b872dd1461070a578063313ce56714610783578063315a6d65146107b2578063335b7c13146107eb5780633736d853146108145780633fdb705b1461083757806340c10f191461086057806342966c68146108a257806344acb8da146108dd57806345a7b991146109065780634783c35b146109705780634c7b8fba146109c5578063575d462a14610a045780635ed7ca5b14610a2d5780635f504a8214610a425780636380877314610a975780636618846314610abe5780636828d54914610b18578063690c5de814610b3f5780636aa68a1514610b68578063707a7ab314610b9157806370a0823114610ba65780637ff9b59614610bf3578063809ef92f14610c1c57806386517df414610c495780638751775b14610c5e5780638863c8d514610c73578063899ecf2b14610c885780638da5cb5b14610cb15780638f2ec01214610d06578063935814a614610d3d57806395d89b4114610d5257806397ff6d1014610de0578063a39953b214610df5578063a6f2ae3a14610e0a578063a70616de14610e14578063a9059cbb14610e69578063b1c9fe6e14610ec3578063b1f8100d14610ef2578063b9b8af0b14610f2b578063c24fe21b14610f58578063c4fc3a3b14610f81578063c588415e14610faa578063c7876ea414610fd3578063c7c80f0214610ffc578063c974631b14611025578063cb3e64fd14611052578063d73dd62314611067578063d7638b73146110c1578063d8cba7a2146110ea578063da62a24614611113578063dd62ed3e1461113c578063de4b3262146111a8578063e9629d7f146111cb578063e9deb98c146111f4578063eee457f714611221578063f3283fba146112df578063f994789a14611318578063fd17f28914611351578063ff197bc31461137a575b61038c6113a3565b005b341561039957600080fd5b6103a16113ae565b604051808215151515815260200191505060405180910390f35b34156103c657600080fd5b6103ce6113c1565b604051808215151515815260200191505060405180910390f35b34156103f357600080fd5b6103fb6113f5565b604051808215151515815260200191505060405180910390f35b341561042057600080fd5b610428611408565b005b341561043557600080fd5b61043d6114c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047d578082015181840152602081019050610462565b50505050905090810190601f1680156104aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104c357600080fd5b6104cb611502565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610521600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611508565b604051808215151515815260200191505060405180910390f35b341561054657600080fd5b610572600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115fa565b005b6105a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d1565b005b34156105ad57600080fd5b6105b5611b12565b6040518082815260200191505060405180910390f35b34156105d657600080fd5b6105de611b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062b57600080fd5b610633611b3e565b6040518082815260200191505060405180910390f35b341561065457600080fd5b61065c611b44565b6040518082815260200191505060405180910390f35b341561067d57600080fd5b610685611b4a565b604051808215151515815260200191505060405180910390f35b34156106aa57600080fd5b6106b2611b89565b005b34156106bf57600080fd5b6106c7611d37565b604051808215151515815260200191505060405180910390f35b34156106ec57600080fd5b6106f4611d4a565b6040518082815260200191505060405180910390f35b341561071557600080fd5b610769600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d50565b604051808215151515815260200191505060405180910390f35b341561078e57600080fd5b610796611da3565b604051808260ff1660ff16815260200191505060405180910390f35b34156107bd57600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611da8565b005b34156107f657600080fd5b6107fe611fa6565b6040518082815260200191505060405180910390f35b341561081f57600080fd5b6108356004808035906020019091905050611fac565b005b341561084257600080fd5b61084a612021565b6040518082815260200191505060405180910390f35b341561086b57600080fd5b6108a0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612027565b005b34156108ad57600080fd5b6108c36004808035906020019091905050612257565b604051808215151515815260200191505060405180910390f35b34156108e857600080fd5b6108f061243f565b6040518082815260200191505060405180910390f35b341561091157600080fd5b610919612445565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561095c578082015181840152602081019050610941565b505050509050019250505060405180910390f35b341561097b57600080fd5b6109836124a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d057600080fd5b6109e660048080359060200190919050506124cd565b60405180826000191660001916815260200191505060405180910390f35b3415610a0f57600080fd5b610a176124f1565b6040518082815260200191505060405180910390f35b3415610a3857600080fd5b610a406124f7565b005b3415610a4d57600080fd5b610a5561259c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa257600080fd5b610abc6004808035600019169060200190919050506125c2565b005b3415610ac957600080fd5b610afe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061297e565b604051808215151515815260200191505060405180910390f35b3415610b2357600080fd5b610b3d600480803560001916906020019091905050612c0f565b005b3415610b4a57600080fd5b610b52612ec0565b6040518082815260200191505060405180910390f35b3415610b7357600080fd5b610b7b612ec6565b6040518082815260200191505060405180910390f35b3415610b9c57600080fd5b610ba4612ecc565b005b3415610bb157600080fd5b610bdd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613068565b6040518082815260200191505060405180910390f35b3415610bfe57600080fd5b610c066130b1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c2f613230565b604051808215151515815260200191505060405180910390f35b3415610c5457600080fd5b610c5c613243565b005b3415610c6957600080fd5b610c7161334d565b005b3415610c7e57600080fd5b610c8661343f565b005b3415610c9357600080fd5b610c9b613642565b6040518082815260200191505060405180910390f35b3415610cbc57600080fd5b610cc4613648565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1157600080fd5b610d27600480803590602001909190505061366e565b6040518082815260200191505060405180910390f35b3415610d4857600080fd5b610d506136a1565b005b3415610d5d57600080fd5b610d6561384f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610da5578082015181840152602081019050610d8a565b50505050905090810190601f168015610dd25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610deb57600080fd5b610df3613888565b005b3415610e0057600080fd5b610e0861397a565b005b610e126113a3565b005b3415610e1f57600080fd5b610e27613b17565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e7457600080fd5b610ea9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b3d565b604051808215151515815260200191505060405180910390f35b3415610ece57600080fd5b610ed6613b8e565b604051808260ff1660ff16815260200191505060405180910390f35b3415610efd57600080fd5b610f29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613c62565b005b3415610f3657600080fd5b610f3e613d98565b604051808215151515815260200191505060405180910390f35b3415610f6357600080fd5b610f6b613dab565b6040518082815260200191505060405180910390f35b3415610f8c57600080fd5b610f94613db1565b6040518082815260200191505060405180910390f35b3415610fb557600080fd5b610fbd613db7565b6040518082815260200191505060405180910390f35b3415610fde57600080fd5b610fe6613dbd565b6040518082815260200191505060405180910390f35b341561100757600080fd5b61100f613dc3565b6040518082815260200191505060405180910390f35b341561103057600080fd5b611038613dc9565b604051808215151515815260200191505060405180910390f35b341561105d57600080fd5b611065613ddc565b005b341561107257600080fd5b6110a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e81565b604051808215151515815260200191505060405180910390f35b34156110cc57600080fd5b6110d461407d565b6040518082815260200191505060405180910390f35b34156110f557600080fd5b6110fd614083565b6040518082815260200191505060405180910390f35b341561111e57600080fd5b611126614089565b6040518082815260200191505060405180910390f35b341561114757600080fd5b611192600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061408f565b6040518082815260200191505060405180910390f35b34156111b357600080fd5b6111c96004808035906020019091905050614116565b005b34156111d657600080fd5b6111de6141a7565b6040518082815260200191505060405180910390f35b34156111ff57600080fd5b6112076141ad565b604051808215151515815260200191505060405180910390f35b341561122c57600080fd5b6112466004808035600019169060200190919050506141c0565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018315151515815260200182151515158152602001965050505050505060405180910390f35b34156112ea57600080fd5b611316600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614276565b005b341561132357600080fd5b61134f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506143b5565b005b341561135c57600080fd5b61136461448c565b6040518082815260200191505060405180910390f35b341561138557600080fd5b61138d614492565b6040518082815260200191505060405180910390f35b6113ac336116d1565b565b601e60039054906101000a900460ff1681565b6000601e60029054906101000a900460ff1680156113e15750600c544311155b80156113f05750601054601554105b905090565b601e60009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146457600080fd5b601e60009054906101000a900460ff1615151561148057600080fd5b6001601e60006101000a81548160ff0219169083151502179055507fd1cca6fe4d5aee03a8d044728a03c4ddae5db4b5b972a6485d78a168fd6e852460405160405180910390a1565b6040805190810160405280600581526020017f526570755800000000000000000000000000000000000000000000000000000081525081565b600c5481565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165657600080fd5b602260159054906101000a900460ff1615151561167257600080fd5b80602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602260146101000a81548160ff02191690831515021790555050565b6000806000601e60049054906101000a900460ff161515156116f257600080fd5b60003411151561170157600080fd5b611709611b4a565b8061171857506117176113c1565b5b151561172357600080fd5b61175661172e6130b1565b611748601260ff16600a0a3461449890919063ffffffff16565b6144cb90919063ffffffff16565b925060009150611764611b4a565b156117ae57600f54611781846014546144e690919063ffffffff16565b1115151561178e57600080fd5b6117a3836014546144e690919063ffffffff16565b6014819055506117f3565b6010546117c6846015546144e690919063ffffffff16565b111515156117d357600080fd5b6117e8836015546144e690919063ffffffff16565b601581905550600191505b6118096001601f546144e690919063ffffffff16565b601f81905550601f5433346000365a433a604051808981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018686808284378201915050848152602001838152602001828152602001985050505050505050506040518091039020905060e0604051908101604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018481526020016000151581526020016000151581526020018360ff1681525060216000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555060a08201518160040160016101000a81548160ff02191690831515021790555060c08201518160040160026101000a81548160ff021916908360ff16021790555090505060208054806001018281611a3a9190614b00565b9160005260206000209001600083909190915090600019169055507fff0c5a4b2effdcf75368a7b8cb608675e273cbd755505bf9e1a837e9701bd89e81338634876040518086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a150505050565b60065481565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60155481565b6000601e60009054906101000a900460ff168015611b755750601e60019054906101000a900460ff16155b8015611b845750600f54601454105b905090565b602260159054906101000a900460ff16151515611ba557600080fd5b602260149054906101000a900460ff161515611bc057600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c1c57600080fd5b6001602260156101000a81548160ff021916908315150217905550611c8b601354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6013546040518082815260200191505060405180910390a3565b602360149054906101000a900460ff1681565b601d5481565b6000601e60029054906101000a900460ff168015611d845750611d80601a54600c546144e690919063ffffffff16565b4310155b1515611d8f57600080fd5b611d9a848484614504565b90509392505050565b601281565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0657600080fd5b601e60029054906101000a900460ff161515611e2157600080fd5b6024601c54101515611e3257600080fd5b611e70611e5f611e4e6001601c546144e690919063ffffffff16565b601b5461449890919063ffffffff16565b600c546144e690919063ffffffff16565b4310151515611e7e57600080fd5b601c60008154809291906001019190505550611ea660246012546144cb90919063ffffffff16565b9050611efa81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600b5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561200857600080fd5b60008111151561201757600080fd5b80601d8190555050565b60135481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208357600080fd5b60008111151561209257600080fd5b601e60009054906101000a900460ff1680156120bb5750601e60039054906101000a900460ff16155b15156120c657600080fd5b6120ce611b4a565b1561211857600f546120eb826014546144e690919063ffffffff16565b111515156120f857600080fd5b61210d816014546144e690919063ffffffff16565b601481905550612159565b601054612130826015546144e690919063ffffffff16565b1115151561213d57600080fd5b612152816015546144e690919063ffffffff16565b6015819055505b6121ab81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122b557600080fd5b61230782600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235f82600e546148c390919063ffffffff16565b600e81905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca53383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b60105481565b61244d614b2c565b602080548060200260200160405190810160405280929190818152602001828054801561249d57602002820191906000526020600020905b81546000191681526020019060010190808311612485575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6020818154811015156124dc57fe5b90600052602060002090016000915090505481565b60075481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561255357600080fd5b6001601e60046101000a81548160ff0219169083151502179055507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561262057600080fd5b60216000836000191660001916815260200190815260200160002090508060040160009054906101000a900460ff1615151561265b57600080fd5b60018160040160006101000a81548160ff02191690831515021790555060018160040160016101000a81548160ff02191690831515021790555061270f8160030154600160008460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600201549081150290604051600060405180830381858888f1935050505015156127d957fe5b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83600301546040518082815260200191505060405180910390a37f83711c709923be4ac11f3793650dc879f27f832eb4831a15f7c7eaefecdca2608260018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600201548660030154604051808760001916600019168152602001861515151581526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001965050505050505060405180910390a15050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612a8f576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b23565b612aa283826148c390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6d57600080fd5b60216000836000191660001916815260200190815260200160002090508060040160009054906101000a900460ff16151515612ca857600080fd5b60018160040160006101000a81548160ff02191690831515021790555060008160040160016101000a81548160ff02191690831515021790555060008160040160029054906101000a900460ff1660ff161415612d2357612d1881600301546014546148c390919063ffffffff16565b601481905550612d43565b612d3c81600301546015546148c390919063ffffffff16565b6015819055505b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600201549081150290604051600060405180830381858888f193505050501515612da857fe5b7f83711c709923be4ac11f3793650dc879f27f832eb4831a15f7c7eaefecdca2608260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600201548660030154604051808760001916600019168152602001861515151581526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001965050505050505060405180910390a15050565b60195481565b60085481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2857600080fd5b7f5327f96e1b66776c2f90adb141c8f65efa8dd259adb405009213276527cbf69a600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806130bc613b8e565b905060008160ff1614156130fa576130f360646130e56032600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60018160ff1614156131365761312f60646131216046600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60028160ff1614156131725761316b606461315d604b600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60038160ff1614156131ae576131a760646131996050600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60048160ff1614156131ea576131e360646131d56055600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60058160ff1614156132265761321f6064613211605a600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b600d5491505b5090565b601e60029054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561329f57600080fd5b601e60009054906101000a900460ff1680156132c85750601e60019054906101000a900460ff16155b15156132d357600080fd5b6001601e60016101000a81548160ff021916908315150217905550613319613308601454600f546148c390919063ffffffff16565b6010546144e690919063ffffffff16565b6010819055507fb528945f9f8d6e631c43589e01dda0ae94be16ce2ed59fe5d804143fc67d6eb560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156133a957600080fd5b602360159054906101000a900460ff161515156133c557600080fd5b602360149054906101000a900460ff1615156133e057600080fd5b6000602360146101000a81548160ff0219169083151502179055506000602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561349d57600080fd5b601e60029054906101000a900460ff1680156134be57506134bc6113c1565b155b80156134d75750601e60039054906101000a900460ff16155b15156134e257600080fd5b6001601e60036101000a81548160ff02191690831515021790555043600c8190555061351b6015546010546148c390919063ffffffff16565b905060008111156136135761353b81600e546148c390919063ffffffff16565b600e819055507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca53082604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b7f0ca69ffaa24f7585a46a230e239f637d8aab90db504f53ac8e60515d75ee065e60405160405180910390a150565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061369a601d5461368c620151808561449890919063ffffffff16565b6144cb90919063ffffffff16565b9050919050565b602360159054906101000a900460ff161515156136bd57600080fd5b602360149054906101000a900460ff1615156136d857600080fd5b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561373457600080fd5b6001602360156101000a81548160ff0219169083151502179055506137a3601154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6011546040518082815260200191505060405180910390a3565b6040805190810160405280600581526020017f524550555800000000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138e457600080fd5b602260159054906101000a900460ff1615151561390057600080fd5b602260149054906101000a900460ff16151561391b57600080fd5b6000602260146101000a81548160ff0219169083151502179055506000602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156139d657600080fd5b601e60019054906101000a900460ff1680156139ff5750601e60029054906101000a900460ff16155b1515613a0a57600080fd5b6001601e60026101000a81548160ff02191690831515021790555043600681905550613a4a613a39600761366e565b6006546144e690919063ffffffff16565b600781905550613a6e613a5d600661366e565b6007546144e690919063ffffffff16565b600881905550613a92613a81600661366e565b6008546144e690919063ffffffff16565b600981905550613ab6613aa5600661366e565b6009546144e690919063ffffffff16565b600a81905550613ada613ac9600661366e565b600a546144e690919063ffffffff16565b600b81905550600b54600c819055507fc7a327262dbe9cd2bf3282d035e03d69a2b73561e7dcc74caa29f84ee3b9ab6d60405160405180910390a1565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601e60029054906101000a900460ff168015613b715750613b6d601a54600c546144e690919063ffffffff16565b4310155b1515613b7c57600080fd5b613b8683836148dc565b905092915050565b6000613b98611b4a565b15613ba65760009050613c5f565b60165460155411158015613bbc57506007544311155b15613bca5760019050613c5f565b60175460155411158015613be057506008544311155b15613bee5760029050613c5f565b60185460155411158015613c0457506009544311155b15613c125760039050613c5f565b60195460155411158015613c285750600a544311155b15613c365760049050613c5f565b60105460155411158015613c4c5750600b544311155b15613c5a5760059050613c5f565b600690505b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613cbe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613d495750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613d5457600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60049054906101000a900460ff1681565b601a5481565b600f5481565b600a5481565b600d5481565b601b5481565b602260149054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e3857600080fd5b6000601e60046101000a81548160ff0219169083151502179055507f6426a220e8910820230d4f2e29cc2bee7c13058ff2524cbcc4d823ba49aa2f6660405160405180910390a1565b6000613f1282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60175481565b60185481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561417257600080fd5b601e60029054906101000a900460ff1615151561418e57600080fd5b60008111151561419d57600080fd5b80600d8190555050565b60165481565b601e60019054906101000a900460ff1681565b600080600080600080600060216000896000191660001916815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16955080600201549450806003015493508060040160009054906101000a900460ff1692508060040160019054906101000a900460ff1691505091939550919395565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142d257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561430e57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8921d9ed49fbcd5da840617d62bf35c34f4871caaf7bbfef6da589dd8c2c1f3881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561441157600080fd5b602360159054906101000a900460ff1615151561442d57600080fd5b80602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602360146101000a81548160ff02191690831515021790555050565b60125481565b60145481565b600080828402905060008414806144b957508284828115156144b657fe5b04145b15156144c157fe5b8091505092915050565b60008082848115156144d957fe5b0490508091505092915050565b60008082840190508381101515156144fa57fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561454157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561458f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561461a57600080fd5b61466c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061470182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147d382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008282111515156148d157fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561491957600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561496757600080fd5b6149b982600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a4e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b815481835581811511614b2757818360005260206000209182019101614b269190614b40565b5b505050565b602060405190810160405280600081525090565b614b6291905b80821115614b5e576000816000905550600101614b46565b5090565b905600a165627a7a72305820876a49e7475e45a5a65cfe52b59fe90b6291c72614a428157e61518c8c4a0b3e00290000000000000000000000008cae32c636385a14b4e0a0e68a760facfabbcd9c
Deployed Bytecode
0x606060405260043610610384576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062c988e81461038e57806302dd92c4146103bb57806304549d6f146103e857806304c98b2b1461041557806306fdde031461042a578063083c6323146104b8578063095ea7b3146104e15780630b3af9011461053b57806311a4c71014610574578063145538ea146105a2578063165c86df146105cb57806318160ddd1461062057806319af6f48146106495780631ad874b414610672578063207019671461069f57806321338d1b146106b4578063233dedf1146106e157806323b872dd1461070a578063313ce56714610783578063315a6d65146107b2578063335b7c13146107eb5780633736d853146108145780633fdb705b1461083757806340c10f191461086057806342966c68146108a257806344acb8da146108dd57806345a7b991146109065780634783c35b146109705780634c7b8fba146109c5578063575d462a14610a045780635ed7ca5b14610a2d5780635f504a8214610a425780636380877314610a975780636618846314610abe5780636828d54914610b18578063690c5de814610b3f5780636aa68a1514610b68578063707a7ab314610b9157806370a0823114610ba65780637ff9b59614610bf3578063809ef92f14610c1c57806386517df414610c495780638751775b14610c5e5780638863c8d514610c73578063899ecf2b14610c885780638da5cb5b14610cb15780638f2ec01214610d06578063935814a614610d3d57806395d89b4114610d5257806397ff6d1014610de0578063a39953b214610df5578063a6f2ae3a14610e0a578063a70616de14610e14578063a9059cbb14610e69578063b1c9fe6e14610ec3578063b1f8100d14610ef2578063b9b8af0b14610f2b578063c24fe21b14610f58578063c4fc3a3b14610f81578063c588415e14610faa578063c7876ea414610fd3578063c7c80f0214610ffc578063c974631b14611025578063cb3e64fd14611052578063d73dd62314611067578063d7638b73146110c1578063d8cba7a2146110ea578063da62a24614611113578063dd62ed3e1461113c578063de4b3262146111a8578063e9629d7f146111cb578063e9deb98c146111f4578063eee457f714611221578063f3283fba146112df578063f994789a14611318578063fd17f28914611351578063ff197bc31461137a575b61038c6113a3565b005b341561039957600080fd5b6103a16113ae565b604051808215151515815260200191505060405180910390f35b34156103c657600080fd5b6103ce6113c1565b604051808215151515815260200191505060405180910390f35b34156103f357600080fd5b6103fb6113f5565b604051808215151515815260200191505060405180910390f35b341561042057600080fd5b610428611408565b005b341561043557600080fd5b61043d6114c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047d578082015181840152602081019050610462565b50505050905090810190601f1680156104aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104c357600080fd5b6104cb611502565b6040518082815260200191505060405180910390f35b34156104ec57600080fd5b610521600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611508565b604051808215151515815260200191505060405180910390f35b341561054657600080fd5b610572600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115fa565b005b6105a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d1565b005b34156105ad57600080fd5b6105b5611b12565b6040518082815260200191505060405180910390f35b34156105d657600080fd5b6105de611b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062b57600080fd5b610633611b3e565b6040518082815260200191505060405180910390f35b341561065457600080fd5b61065c611b44565b6040518082815260200191505060405180910390f35b341561067d57600080fd5b610685611b4a565b604051808215151515815260200191505060405180910390f35b34156106aa57600080fd5b6106b2611b89565b005b34156106bf57600080fd5b6106c7611d37565b604051808215151515815260200191505060405180910390f35b34156106ec57600080fd5b6106f4611d4a565b6040518082815260200191505060405180910390f35b341561071557600080fd5b610769600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d50565b604051808215151515815260200191505060405180910390f35b341561078e57600080fd5b610796611da3565b604051808260ff1660ff16815260200191505060405180910390f35b34156107bd57600080fd5b6107e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611da8565b005b34156107f657600080fd5b6107fe611fa6565b6040518082815260200191505060405180910390f35b341561081f57600080fd5b6108356004808035906020019091905050611fac565b005b341561084257600080fd5b61084a612021565b6040518082815260200191505060405180910390f35b341561086b57600080fd5b6108a0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612027565b005b34156108ad57600080fd5b6108c36004808035906020019091905050612257565b604051808215151515815260200191505060405180910390f35b34156108e857600080fd5b6108f061243f565b6040518082815260200191505060405180910390f35b341561091157600080fd5b610919612445565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561095c578082015181840152602081019050610941565b505050509050019250505060405180910390f35b341561097b57600080fd5b6109836124a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d057600080fd5b6109e660048080359060200190919050506124cd565b60405180826000191660001916815260200191505060405180910390f35b3415610a0f57600080fd5b610a176124f1565b6040518082815260200191505060405180910390f35b3415610a3857600080fd5b610a406124f7565b005b3415610a4d57600080fd5b610a5561259c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610aa257600080fd5b610abc6004808035600019169060200190919050506125c2565b005b3415610ac957600080fd5b610afe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061297e565b604051808215151515815260200191505060405180910390f35b3415610b2357600080fd5b610b3d600480803560001916906020019091905050612c0f565b005b3415610b4a57600080fd5b610b52612ec0565b6040518082815260200191505060405180910390f35b3415610b7357600080fd5b610b7b612ec6565b6040518082815260200191505060405180910390f35b3415610b9c57600080fd5b610ba4612ecc565b005b3415610bb157600080fd5b610bdd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613068565b6040518082815260200191505060405180910390f35b3415610bfe57600080fd5b610c066130b1565b6040518082815260200191505060405180910390f35b3415610c2757600080fd5b610c2f613230565b604051808215151515815260200191505060405180910390f35b3415610c5457600080fd5b610c5c613243565b005b3415610c6957600080fd5b610c7161334d565b005b3415610c7e57600080fd5b610c8661343f565b005b3415610c9357600080fd5b610c9b613642565b6040518082815260200191505060405180910390f35b3415610cbc57600080fd5b610cc4613648565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d1157600080fd5b610d27600480803590602001909190505061366e565b6040518082815260200191505060405180910390f35b3415610d4857600080fd5b610d506136a1565b005b3415610d5d57600080fd5b610d6561384f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610da5578082015181840152602081019050610d8a565b50505050905090810190601f168015610dd25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610deb57600080fd5b610df3613888565b005b3415610e0057600080fd5b610e0861397a565b005b610e126113a3565b005b3415610e1f57600080fd5b610e27613b17565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e7457600080fd5b610ea9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613b3d565b604051808215151515815260200191505060405180910390f35b3415610ece57600080fd5b610ed6613b8e565b604051808260ff1660ff16815260200191505060405180910390f35b3415610efd57600080fd5b610f29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613c62565b005b3415610f3657600080fd5b610f3e613d98565b604051808215151515815260200191505060405180910390f35b3415610f6357600080fd5b610f6b613dab565b6040518082815260200191505060405180910390f35b3415610f8c57600080fd5b610f94613db1565b6040518082815260200191505060405180910390f35b3415610fb557600080fd5b610fbd613db7565b6040518082815260200191505060405180910390f35b3415610fde57600080fd5b610fe6613dbd565b6040518082815260200191505060405180910390f35b341561100757600080fd5b61100f613dc3565b6040518082815260200191505060405180910390f35b341561103057600080fd5b611038613dc9565b604051808215151515815260200191505060405180910390f35b341561105d57600080fd5b611065613ddc565b005b341561107257600080fd5b6110a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e81565b604051808215151515815260200191505060405180910390f35b34156110cc57600080fd5b6110d461407d565b6040518082815260200191505060405180910390f35b34156110f557600080fd5b6110fd614083565b6040518082815260200191505060405180910390f35b341561111e57600080fd5b611126614089565b6040518082815260200191505060405180910390f35b341561114757600080fd5b611192600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061408f565b6040518082815260200191505060405180910390f35b34156111b357600080fd5b6111c96004808035906020019091905050614116565b005b34156111d657600080fd5b6111de6141a7565b6040518082815260200191505060405180910390f35b34156111ff57600080fd5b6112076141ad565b604051808215151515815260200191505060405180910390f35b341561122c57600080fd5b6112466004808035600019169060200190919050506141c0565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018315151515815260200182151515158152602001965050505050505060405180910390f35b34156112ea57600080fd5b611316600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614276565b005b341561132357600080fd5b61134f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506143b5565b005b341561135c57600080fd5b61136461448c565b6040518082815260200191505060405180910390f35b341561138557600080fd5b61138d614492565b6040518082815260200191505060405180910390f35b6113ac336116d1565b565b601e60039054906101000a900460ff1681565b6000601e60029054906101000a900460ff1680156113e15750600c544311155b80156113f05750601054601554105b905090565b601e60009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146457600080fd5b601e60009054906101000a900460ff1615151561148057600080fd5b6001601e60006101000a81548160ff0219169083151502179055507fd1cca6fe4d5aee03a8d044728a03c4ddae5db4b5b972a6485d78a168fd6e852460405160405180910390a1565b6040805190810160405280600581526020017f526570755800000000000000000000000000000000000000000000000000000081525081565b600c5481565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165657600080fd5b602260159054906101000a900460ff1615151561167257600080fd5b80602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602260146101000a81548160ff02191690831515021790555050565b6000806000601e60049054906101000a900460ff161515156116f257600080fd5b60003411151561170157600080fd5b611709611b4a565b8061171857506117176113c1565b5b151561172357600080fd5b61175661172e6130b1565b611748601260ff16600a0a3461449890919063ffffffff16565b6144cb90919063ffffffff16565b925060009150611764611b4a565b156117ae57600f54611781846014546144e690919063ffffffff16565b1115151561178e57600080fd5b6117a3836014546144e690919063ffffffff16565b6014819055506117f3565b6010546117c6846015546144e690919063ffffffff16565b111515156117d357600080fd5b6117e8836015546144e690919063ffffffff16565b601581905550600191505b6118096001601f546144e690919063ffffffff16565b601f81905550601f5433346000365a433a604051808981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018781526020018686808284378201915050848152602001838152602001828152602001985050505050505050506040518091039020905060e0604051908101604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018481526020016000151581526020016000151581526020018360ff1681525060216000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555060a08201518160040160016101000a81548160ff02191690831515021790555060c08201518160040160026101000a81548160ff021916908360ff16021790555090505060208054806001018281611a3a9190614b00565b9160005260206000209001600083909190915090600019169055507fff0c5a4b2effdcf75368a7b8cb608675e273cbd755505bf9e1a837e9701bd89e81338634876040518086600019166000191681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a150505050565b60065481565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60155481565b6000601e60009054906101000a900460ff168015611b755750601e60019054906101000a900460ff16155b8015611b845750600f54601454105b905090565b602260159054906101000a900460ff16151515611ba557600080fd5b602260149054906101000a900460ff161515611bc057600080fd5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c1c57600080fd5b6001602260156101000a81548160ff021916908315150217905550611c8b601354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6013546040518082815260200191505060405180910390a3565b602360149054906101000a900460ff1681565b601d5481565b6000601e60029054906101000a900460ff168015611d845750611d80601a54600c546144e690919063ffffffff16565b4310155b1515611d8f57600080fd5b611d9a848484614504565b90509392505050565b601281565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0657600080fd5b601e60029054906101000a900460ff161515611e2157600080fd5b6024601c54101515611e3257600080fd5b611e70611e5f611e4e6001601c546144e690919063ffffffff16565b601b5461449890919063ffffffff16565b600c546144e690919063ffffffff16565b4310151515611e7e57600080fd5b601c60008154809291906001019190505550611ea660246012546144cb90919063ffffffff16565b9050611efa81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600b5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561200857600080fd5b60008111151561201757600080fd5b80601d8190555050565b60135481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208357600080fd5b60008111151561209257600080fd5b601e60009054906101000a900460ff1680156120bb5750601e60039054906101000a900460ff16155b15156120c657600080fd5b6120ce611b4a565b1561211857600f546120eb826014546144e690919063ffffffff16565b111515156120f857600080fd5b61210d816014546144e690919063ffffffff16565b601481905550612159565b601054612130826015546144e690919063ffffffff16565b1115151561213d57600080fd5b612152816015546144e690919063ffffffff16565b6015819055505b6121ab81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122b557600080fd5b61230782600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235f82600e546148c390919063ffffffff16565b600e81905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca53383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b60105481565b61244d614b2c565b602080548060200260200160405190810160405280929190818152602001828054801561249d57602002820191906000526020600020905b81546000191681526020019060010190808311612485575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6020818154811015156124dc57fe5b90600052602060002090016000915090505481565b60075481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561255357600080fd5b6001601e60046101000a81548160ff0219169083151502179055507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561262057600080fd5b60216000836000191660001916815260200190815260200160002090508060040160009054906101000a900460ff1615151561265b57600080fd5b60018160040160006101000a81548160ff02191690831515021790555060018160040160016101000a81548160ff02191690831515021790555061270f8160030154600160008460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600201549081150290604051600060405180830381858888f1935050505015156127d957fe5b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83600301546040518082815260200191505060405180910390a37f83711c709923be4ac11f3793650dc879f27f832eb4831a15f7c7eaefecdca2608260018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600201548660030154604051808760001916600019168152602001861515151581526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001965050505050505060405180910390a15050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612a8f576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b23565b612aa283826148c390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6d57600080fd5b60216000836000191660001916815260200190815260200160002090508060040160009054906101000a900460ff16151515612ca857600080fd5b60018160040160006101000a81548160ff02191690831515021790555060008160040160016101000a81548160ff02191690831515021790555060008160040160029054906101000a900460ff1660ff161415612d2357612d1881600301546014546148c390919063ffffffff16565b601481905550612d43565b612d3c81600301546015546148c390919063ffffffff16565b6015819055505b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600201549081150290604051600060405180830381858888f193505050501515612da857fe5b7f83711c709923be4ac11f3793650dc879f27f832eb4831a15f7c7eaefecdca2608260008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600201548660030154604051808760001916600019168152602001861515151581526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001965050505050505060405180910390a15050565b60195481565b60085481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2857600080fd5b7f5327f96e1b66776c2f90adb141c8f65efa8dd259adb405009213276527cbf69a600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806130bc613b8e565b905060008160ff1614156130fa576130f360646130e56032600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60018160ff1614156131365761312f60646131216046600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60028160ff1614156131725761316b606461315d604b600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60038160ff1614156131ae576131a760646131996050600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60048160ff1614156131ea576131e360646131d56055600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b60058160ff1614156132265761321f6064613211605a600d5461449890919063ffffffff16565b6144cb90919063ffffffff16565b915061322c565b600d5491505b5090565b601e60029054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561329f57600080fd5b601e60009054906101000a900460ff1680156132c85750601e60019054906101000a900460ff16155b15156132d357600080fd5b6001601e60016101000a81548160ff021916908315150217905550613319613308601454600f546148c390919063ffffffff16565b6010546144e690919063ffffffff16565b6010819055507fb528945f9f8d6e631c43589e01dda0ae94be16ce2ed59fe5d804143fc67d6eb560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156133a957600080fd5b602360159054906101000a900460ff161515156133c557600080fd5b602360149054906101000a900460ff1615156133e057600080fd5b6000602360146101000a81548160ff0219169083151502179055506000602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561349d57600080fd5b601e60029054906101000a900460ff1680156134be57506134bc6113c1565b155b80156134d75750601e60039054906101000a900460ff16155b15156134e257600080fd5b6001601e60036101000a81548160ff02191690831515021790555043600c8190555061351b6015546010546148c390919063ffffffff16565b905060008111156136135761353b81600e546148c390919063ffffffff16565b600e819055507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca53082604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b7f0ca69ffaa24f7585a46a230e239f637d8aab90db504f53ac8e60515d75ee065e60405160405180910390a150565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061369a601d5461368c620151808561449890919063ffffffff16565b6144cb90919063ffffffff16565b9050919050565b602360159054906101000a900460ff161515156136bd57600080fd5b602360149054906101000a900460ff1615156136d857600080fd5b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561373457600080fd5b6001602360156101000a81548160ff0219169083151502179055506137a3601154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6011546040518082815260200191505060405180910390a3565b6040805190810160405280600581526020017f524550555800000000000000000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138e457600080fd5b602260159054906101000a900460ff1615151561390057600080fd5b602260149054906101000a900460ff16151561391b57600080fd5b6000602260146101000a81548160ff0219169083151502179055506000602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156139d657600080fd5b601e60019054906101000a900460ff1680156139ff5750601e60029054906101000a900460ff16155b1515613a0a57600080fd5b6001601e60026101000a81548160ff02191690831515021790555043600681905550613a4a613a39600761366e565b6006546144e690919063ffffffff16565b600781905550613a6e613a5d600661366e565b6007546144e690919063ffffffff16565b600881905550613a92613a81600661366e565b6008546144e690919063ffffffff16565b600981905550613ab6613aa5600661366e565b6009546144e690919063ffffffff16565b600a81905550613ada613ac9600661366e565b600a546144e690919063ffffffff16565b600b81905550600b54600c819055507fc7a327262dbe9cd2bf3282d035e03d69a2b73561e7dcc74caa29f84ee3b9ab6d60405160405180910390a1565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601e60029054906101000a900460ff168015613b715750613b6d601a54600c546144e690919063ffffffff16565b4310155b1515613b7c57600080fd5b613b8683836148dc565b905092915050565b6000613b98611b4a565b15613ba65760009050613c5f565b60165460155411158015613bbc57506007544311155b15613bca5760019050613c5f565b60175460155411158015613be057506008544311155b15613bee5760029050613c5f565b60185460155411158015613c0457506009544311155b15613c125760039050613c5f565b60195460155411158015613c285750600a544311155b15613c365760049050613c5f565b60105460155411158015613c4c5750600b544311155b15613c5a5760059050613c5f565b600690505b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613cbe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613d495750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613d5457600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60049054906101000a900460ff1681565b601a5481565b600f5481565b600a5481565b600d5481565b601b5481565b602260149054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e3857600080fd5b6000601e60046101000a81548160ff0219169083151502179055507f6426a220e8910820230d4f2e29cc2bee7c13058ff2524cbcc4d823ba49aa2f6660405160405180910390a1565b6000613f1282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60175481565b60185481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561417257600080fd5b601e60029054906101000a900460ff1615151561418e57600080fd5b60008111151561419d57600080fd5b80600d8190555050565b60165481565b601e60019054906101000a900460ff1681565b600080600080600080600060216000896000191660001916815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16955080600201549450806003015493508060040160009054906101000a900460ff1692508060040160019054906101000a900460ff1691505091939550919395565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142d257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561430e57600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8921d9ed49fbcd5da840617d62bf35c34f4871caaf7bbfef6da589dd8c2c1f3881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561441157600080fd5b602360159054906101000a900460ff1615151561442d57600080fd5b80602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602360146101000a81548160ff02191690831515021790555050565b60125481565b60145481565b600080828402905060008414806144b957508284828115156144b657fe5b04145b15156144c157fe5b8091505092915050565b60008082848115156144d957fe5b0490508091505092915050565b60008082840190508381101515156144fa57fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561454157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561458f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561461a57600080fd5b61466c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061470182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147d382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008282111515156148d157fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561491957600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561496757600080fd5b6149b982600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546148c390919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a4e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144e690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b815481835581811511614b2757818360005260206000209182019101614b269190614b40565b5b505050565b602060405190810160405280600081525090565b614b6291905b80821115614b5e576000816000905550600101614b46565b5090565b905600a165627a7a72305820876a49e7475e45a5a65cfe52b59fe90b6291c72614a428157e61518c8c4a0b3e0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008cae32c636385a14b4e0a0e68a760facfabbcd9c
-----Decoded View---------------
Arg [0] : _multisig (address): 0x8CaE32C636385A14b4E0A0e68a760FaCfabBCd9c
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008cae32c636385a14b4e0a0e68a760facfabbcd9c
Swarm Source
bzzr://876a49e7475e45a5a65cfe52b59fe90b6291c72614a428157e61518c8c4a0b3e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.