More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,862 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Rate | 5553087 | 2441 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5552610 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5552129 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5551639 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5551146 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5550670 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5550184 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5549694 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5549246 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5548761 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5548304 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5547835 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5547373 | 2442 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5546903 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5546411 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5545967 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5545484 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5545009 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5544488 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5544052 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5543566 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5543115 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5542646 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5542184 | 2443 days ago | IN | 0 ETH | 0.00032699 | ||||
Set Rate | 5541730 | 2443 days ago | IN | 0 ETH | 0.00032699 |
Latest 3 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5420578 | 2464 days ago | 0 ETH | ||||
5386719 | 2470 days ago | 349.43811637 ETH | ||||
5018820 | 2532 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DatariusICO
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-02 */ // Datarius tokensale smart contract. // Developed by Phenom.Team <[email protected]> pragma solidity ^0.4.15; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint a, uint b) internal constant returns (uint) { if (a == 0) { return 0; } uint c = a * b; assert(c / a == b); return c; } function div(uint a, uint b) internal constant returns(uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function sub(uint a, uint b) internal constant returns(uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal constant returns(uint) { uint c = a + b; assert(c >= a); return c; } } /** * @title ERC20 * @dev Standart ERC20 token interface */ contract ERC20 { uint public totalSupply = 0; mapping(address => uint) balances; mapping(address => mapping (address => uint)) allowed; function balanceOf(address _owner) constant returns (uint); function transfer(address _to, uint _value) returns (bool); function transferFrom(address _from, address _to, uint _value) returns (bool); function approve(address _spender, uint _value) returns (bool); function allowance(address _owner, address _spender) constant returns (uint); event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); } /** * @title DatariusICO contract - takes funds from users and issues tokens */ contract DatariusICO { // DTRC - Datarius token contract using SafeMath for uint; DatariusToken public DTRC = new DatariusToken(this); ERC20 public preSaleToken; // Token price parameters // These parametes can be changed only by manager of contract uint public tokensPerDollar = 100; uint public rateEth = 1176; // Rate USD per ETH uint public tokenPrice = tokensPerDollar * rateEth; // DTRC per ETH uint public DatToDtrcNumerator = 4589059589; uint public DatToDtrcDenominator = 100000000; //Crowdsale parameters uint constant softCap = 1000000 * tokensPerDollar * 1e18; uint constant hardCap = 51000000 * tokensPerDollar * 1e18; uint constant bountyPart = 2; // 2% of TotalSupply for BountyFund uint constant partnersPart = 5; // 5% of TotalSupply for ParnersFund uint constant teamPart = 5; // 5% of TotalSupply for TeamFund uint constant reservePart = 15; // 15% of TotalSupply for ResrveFund uint constant publicIcoPart = 73; // 73% of TotalSupply for publicICO uint public soldAmount = 0; uint startTime = 0; // Output ethereum addresses address public Company; address public BountyFund; address public PartnersFund; address public TeamFund; address public ReserveFund; address public Manager; // Manager controls contract address public ReserveManager; // // Manager controls contract address public Controller_Address1; // First address that is used to buy tokens for other cryptos address public Controller_Address2; // Second address that is used to buy tokens for other cryptos address public Controller_Address3; // Third address that is used to buy tokens for other cryptos address public RefundManager; // Refund manager address address public Oracle; // Oracle address // Possible ICO statuses enum StatusICO { Created, Started, Paused, Finished } StatusICO statusICO = StatusICO.Created; // Mappings mapping(address => uint) public investmentsInEth; // Mapping for remembering ether of investors mapping(address => uint) public tokensEth; // Mapping for remembering tokens of investors who invest in ETH mapping(address => uint) public tokensOtherCrypto; // Mapping for remembering tokens of investors who invest in other crypto currencies mapping(address => bool) public swaped; // Events Log event LogStartICO(); event LogPause(); event LogFinishICO(); event LogBuyForInvestor(address investor, uint DTRCValue, string txHash); event LogSwapTokens(address investor, uint tokensAmount); event LogReturnEth(address investor, uint eth); event LogReturnOtherCrypto(address investor, string logString); // Modifiers // Allows execution by the managers only modifier managersOnly { require( (msg.sender == Manager) || (msg.sender == ReserveManager) ); _; } // Allows execution by the contract manager only modifier refundManagersOnly { require(msg.sender == RefundManager); _; } // Allows execution by the oracle only modifier oracleOnly { require(msg.sender == Oracle); _; } // Allows execution by the one of controllers only modifier controllersOnly { require( (msg.sender == Controller_Address1)|| (msg.sender == Controller_Address2)|| (msg.sender == Controller_Address3) ); _; } /** * @dev Contract constructor function */ function DatariusICO( address _preSaleToken, address _Company, address _BountyFund, address _PartnersFund, address _ReserveFund, address _TeamFund, address _Manager, address _ReserveManager, address _Controller_Address1, address _Controller_Address2, address _Controller_Address3, address _RefundManager, address _Oracle ) public { preSaleToken = ERC20(_preSaleToken); Company = _Company; BountyFund = _BountyFund; PartnersFund = _PartnersFund; ReserveFund = _ReserveFund; TeamFund = _TeamFund; Manager = _Manager; ReserveManager = _ReserveManager; Controller_Address1 = _Controller_Address1; Controller_Address2 = _Controller_Address2; Controller_Address3 = _Controller_Address3; RefundManager = _RefundManager; Oracle = _Oracle; } /** * @dev Function to set rate of ETH and update token price * @param _rateEth current ETH rate */ function setRate(uint _rateEth) external oracleOnly { rateEth = _rateEth; tokenPrice = tokensPerDollar.mul(rateEth); } /** * @dev Function to start ICO * Sets ICO status to Started, inits startTime */ function startIco() external managersOnly { require(statusICO == StatusICO.Created || statusICO == StatusICO.Paused); if(statusICO == StatusICO.Created) { startTime = now; } statusICO = StatusICO.Started; LogStartICO(); } /** * @dev Function to pause ICO * Sets ICO status to Paused */ function pauseIco() external managersOnly { require(statusICO == StatusICO.Started); statusICO = StatusICO.Paused; LogPause(); } /** * @dev Function to finish ICO * Emits tokens for bounty company, partners and team */ function finishIco() external managersOnly { require(statusICO == StatusICO.Started || statusICO == StatusICO.Paused); uint alreadyMinted = DTRC.totalSupply(); uint totalAmount = alreadyMinted.mul(100).div(publicIcoPart); DTRC.mintTokens(BountyFund, bountyPart.mul(totalAmount).div(100)); DTRC.mintTokens(PartnersFund, partnersPart.mul(totalAmount).div(100)); DTRC.mintTokens(TeamFund, teamPart.mul(totalAmount).div(100)); DTRC.mintTokens(ReserveFund, reservePart.mul(totalAmount).div(100)); if (soldAmount >= softCap) { DTRC.defrost(); } statusICO = StatusICO.Finished; LogFinishICO(); } /** * @dev Function to swap tokens from pre-sale * @param _investor pre-sale tokens holder address */ function swapTokens(address _investor) external managersOnly { require(!swaped[_investor] && statusICO != StatusICO.Finished); swaped[_investor] = true; uint tokensToSwap = preSaleToken.balanceOf(_investor); uint DTRCTokens = tokensToSwap.mul(DatToDtrcNumerator).div(DatToDtrcDenominator); DTRC.mintTokens(_investor, DTRCTokens); LogSwapTokens(_investor, tokensToSwap); } /** * @dev Fallback function calls buy(address _investor, uint _DTRCValue) function to issue tokens * when investor sends ETH to address of ICO contract and then stores investment amount */ function() external payable { buy(msg.sender, msg.value.mul(tokenPrice)); investmentsInEth[msg.sender] = investmentsInEth[msg.sender].add(msg.value); } /** * @dev Function to issues tokens for investors who made purchases in other cryptocurrencies * @param _investor address the tokens will be issued to * @param _txHash transaction hash of investor's payment * @param _DTRCValue number of DTRC tokens */ function buyForInvestor( address _investor, uint _DTRCValue, string _txHash ) external controllersOnly { require(statusICO == StatusICO.Started); require(soldAmount + _DTRCValue <= hardCap); uint bonus = getBonus(_DTRCValue); uint total = _DTRCValue.add(bonus); DTRC.mintTokens(_investor, total); soldAmount = soldAmount.add(_DTRCValue); tokensOtherCrypto[_investor] = tokensOtherCrypto[_investor].add(total); LogBuyForInvestor(_investor, total, _txHash); } /** * @dev Function to issue tokens for investors who paid in ether * @param _investor address which the tokens will be issued tokens * @param _DTRCValue number of DTRC tokens */ function buy(address _investor, uint _DTRCValue) internal { require(statusICO == StatusICO.Started); require(soldAmount + _DTRCValue <= hardCap); uint bonus = getBonus(_DTRCValue); uint total = _DTRCValue.add(bonus); DTRC.mintTokens(_investor, total); soldAmount = soldAmount.add(_DTRCValue); tokensEth[msg.sender] = tokensEth[msg.sender].add(total); } /** * @dev Calculates bonus * @param _value amount of tokens * @return bonus value */ function getBonus(uint _value) public constant returns (uint) { uint bonus = 0; if(now <= startTime + 6 hours) { bonus = _value.mul(30).div(100); return bonus; } if(now <= startTime + 12 hours) { bonus = _value.mul(25).div(100); return bonus; } if(now <= startTime + 24 hours) { bonus = _value.mul(20).div(100); return bonus; } if(now <= startTime + 48 hours) { bonus = _value.mul(15).div(100); return bonus; } if(now <= startTime + 15 days) { bonus = _value.mul(10).div(100); return bonus; } return bonus; } /** * @dev Allows investors to return their investment after the ICO is over * in the case when the SoftCap was not achieved */ function refundEther() public { require( statusICO == StatusICO.Finished && soldAmount < softCap && investmentsInEth[msg.sender] > 0 ); uint ethToRefund = investmentsInEth[msg.sender]; investmentsInEth[msg.sender] = 0; uint tokensToBurn = tokensEth[msg.sender]; tokensEth[msg.sender] = 0; DTRC.burnTokens(msg.sender, tokensToBurn); msg.sender.transfer(ethToRefund); LogReturnEth(msg.sender, ethToRefund); } /** * @dev Burn tokens of investors who paid in other cryptocurrencies after the ICO is over * in the case when the SoftCap was not achieved * @param _investor address which the tokens will be burnt * @param _logString string which contain payment information */ function refundOtherCrypto( address _investor, string _logString ) public refundManagersOnly { require( statusICO == StatusICO.Finished && soldAmount < softCap ); uint tokensToBurn = tokensOtherCrypto[_investor]; tokensOtherCrypto[_investor] = 0; DTRC.burnTokens(_investor, tokensToBurn); LogReturnOtherCrypto(_investor, _logString); } /** * @dev Allows Company withdraw investments when ICO is over and soft cap achieved */ function withdrawEther() external managersOnly { require(statusICO == StatusICO.Finished && soldAmount >= softCap); Company.transfer(this.balance); } } /** * @title DatariusToken * @dev Datarius token contract */ contract DatariusToken is ERC20 { using SafeMath for uint; string public name = "Datarius Credit"; string public symbol = "DTRC"; uint public decimals = 18; // Ico contract address address public ico; event Burn(address indexed from, uint value); // Tokens transfer ability status bool public tokensAreFrozen = true; // Allows execution by the owner only modifier icoOnly { require(msg.sender == ico); _; } /** * @dev Contract constructor function sets Ico address * @param _ico ico address */ function DatariusToken(address _ico) public { ico = _ico; } /** * @dev Function to mint tokens * @param _holder beneficiary address the tokens will be issued to * @param _value number of tokens to issue */ function mintTokens(address _holder, uint _value) external icoOnly { require(_value > 0); balances[_holder] = balances[_holder].add(_value); totalSupply = totalSupply.add(_value); Transfer(0x0, _holder, _value); } /** * @dev Function to enable token transfers */ function defrost() external icoOnly { tokensAreFrozen = false; } /** * @dev Burn Tokens * @param _holder token holder address which the tokens will be burnt * @param _value number of tokens to burn */ function burnTokens(address _holder, uint _value) external icoOnly { require(balances[_holder] > 0); totalSupply = totalSupply.sub(_value); balances[_holder] = balances[_holder].sub(_value); Burn(_holder, _value); } /** * @dev Get balance of tokens holder * @param _holder holder's address * @return balance of investor */ function balanceOf(address _holder) constant returns (uint) { return balances[_holder]; } /** * @dev Send coins * throws on any error rather then return a false flag to minimize * user errors * @param _to target address * @param _amount transfer amount * * @return true if the transfer was successful */ function transfer(address _to, uint _amount) public returns (bool) { require(!tokensAreFrozen); balances[msg.sender] = balances[msg.sender].sub(_amount); balances[_to] = balances[_to].add(_amount); Transfer(msg.sender, _to, _amount); return true; } /** * @dev An account/contract attempts to get the coins * throws on any error rather then return a false flag to minimize user errors * * @param _from source address * @param _to target address * @param _amount transfer amount * * @return true if the transfer was successful */ function transferFrom(address _from, address _to, uint _amount) public returns (bool) { require(!tokensAreFrozen); balances[_from] = balances[_from].sub(_amount); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount); balances[_to] = balances[_to].add(_amount); Transfer(_from, _to, _amount); return true; } /** * @dev Allows another account/contract to spend some tokens on its behalf * throws on any error rather then return a false flag to minimize user errors * * also, to minimize the risk of the approve/transferFrom attack vector * approve has to be called twice in 2 separate transactions - once to * change the allowance to 0 and secondly to change it to the new allowance * value * * @param _spender approved address * @param _amount allowance amount * * @return true if the approval was successful */ function approve(address _spender, uint _amount) public returns (bool) { require((_amount == 0) || (allowed[msg.sender][_spender] == 0)); allowed[msg.sender][_spender] = _amount; Approval(msg.sender, _spender, _amount); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * * @param _owner the address which owns the funds * @param _spender the address which will spend the funds * * @return the amount of tokens still avaible for the spender */ function allowance(address _owner, address _spender) constant returns (uint) { return allowed[_owner][_spender]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_investor","type":"address"},{"name":"_DTRCValue","type":"uint256"},{"name":"_txHash","type":"string"}],"name":"buyForInvestor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"swaped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investmentsInEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"}],"name":"swapTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"},{"name":"_logString","type":"string"}],"name":"refundOtherCrypto","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateEth","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address3","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PartnersFund","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RefundManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BountyFund","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TeamFund","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"getBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Company","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refundEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerDollar","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DatToDtrcDenominator","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preSaleToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Manager","outputs":[{"name":"","type":"address"}],"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":"DTRC","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensOtherCrypto","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DatToDtrcNumerator","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Controller_Address2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ReserveFund","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Oracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ReserveManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_preSaleToken","type":"address"},{"name":"_Company","type":"address"},{"name":"_BountyFund","type":"address"},{"name":"_PartnersFund","type":"address"},{"name":"_ReserveFund","type":"address"},{"name":"_TeamFund","type":"address"},{"name":"_Manager","type":"address"},{"name":"_ReserveManager","type":"address"},{"name":"_Controller_Address1","type":"address"},{"name":"_Controller_Address2","type":"address"},{"name":"_Controller_Address3","type":"address"},{"name":"_RefundManager","type":"address"},{"name":"_Oracle","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"LogStartICO","type":"event"},{"anonymous":false,"inputs":[],"name":"LogPause","type":"event"},{"anonymous":false,"inputs":[],"name":"LogFinishICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"DTRCValue","type":"uint256"},{"indexed":false,"name":"txHash","type":"string"}],"name":"LogBuyForInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokensAmount","type":"uint256"}],"name":"LogSwapTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"eth","type":"uint256"}],"name":"LogReturnEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"logString","type":"string"}],"name":"LogReturnOtherCrypto","type":"event"}]
Contract Creation Code
6060604052306200000f620004e5565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015156200005c57600080fd5b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460025561049860035560035460025402600455640111877e056005556305f5e1006006556000600755600060085560006014806101000a81548160ff02191690836003811115620000ea57fe5b02179055503415620000fb57600080fd5b6040516101a08062004437833981016040528080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919080519060200190919050508c600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050505050620004f6565b60405161138580620030b283390190565b612bac80620005066000396000f3006060604052600436106101ab576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806252992e1461026057806302677e7c146102b65780630e5caf7e146103075780630fcf41ae146103545780631bfe87bd1461038d5780631ed5da2f1461040957806334fcf4371461045e578063353559cb146104815780633d9e23ca146104d65780633e7993351461052b57806342f0b07e1461058057806349e67544146105d55780634aa66b281461062a5780635092f97e1461066157806352608d85146106b6578063560ed6a1146106df578063650c2b28146106f45780636d3e45021461071d5780637362377b146107465780637776466c1461075b57806378357e53146107b05780637ff9b59614610805578063842a64151461082e57806386d7f2f01461088357806389311e6f146108d0578063bdf4bb73146108e5578063c33818fd1461090e578063c4fdc6b814610963578063c80bbb1714610978578063dd49f2fd146109cd578063ec42f82f14610a1a578063f24a534e14610a2f578063fa1a5f5914610a84578063fcb806ac14610aad575b6101c9336101c460045434610b0290919063ffffffff16565b610b3d565b61021b34601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b341561026b57600080fd5b6102b4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190820180359060200191909192905050610d63565b005b34156102c157600080fd5b6102ed600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611106565b604051808215151515815260200191505060405180910390f35b341561031257600080fd5b61033e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611126565b6040518082815260200191505060405180910390f35b341561035f57600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061113e565b005b341561039857600080fd5b610407600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061152a565b005b341561041457600080fd5b61041c61180b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046957600080fd5b61047f6004808035906020019091905050611831565b005b341561048c57600080fd5b6104946118b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104e157600080fd5b6104e96118da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053657600080fd5b61053e611900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058b57600080fd5b610593611926565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105e057600080fd5b6105e861194c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063557600080fd5b61064b6004808035906020019091905050611972565b6040518082815260200191505060405180910390f35b341561066c57600080fd5b610674611ac6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c157600080fd5b6106c9611aec565b6040518082815260200191505060405180910390f35b34156106ea57600080fd5b6106f2611af2565b005b34156106ff57600080fd5b610707611e24565b6040518082815260200191505060405180910390f35b341561072857600080fd5b610730611e2a565b6040518082815260200191505060405180910390f35b341561075157600080fd5b610759611e30565b005b341561076657600080fd5b61076e611fb0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bb57600080fd5b6107c3611fd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561081057600080fd5b610818611ffc565b6040518082815260200191505060405180910390f35b341561083957600080fd5b610841612002565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561088e57600080fd5b6108ba600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612027565b6040518082815260200191505060405180910390f35b34156108db57600080fd5b6108e361203f565b005b34156108f057600080fd5b6108f86121db565b6040518082815260200191505060405180910390f35b341561091957600080fd5b6109216121e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561096e57600080fd5b610976612207565b005b341561098357600080fd5b61098b61233f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d857600080fd5b610a04600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612365565b6040518082815260200191505060405180910390f35b3415610a2557600080fd5b610a2d61237d565b005b3415610a3a57600080fd5b610a42612aed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a8f57600080fd5b610a97612b13565b6040518082815260200191505060405180910390f35b3415610ab857600080fd5b610ac0612b19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000841415610b175760009150610b36565b8284029050828482811515610b2857fe5b04141515610b3257fe5b8091505b5092915050565b60008060016003811115610b4d57fe5b6014809054906101000a900460ff166003811115610b6757fe5b141515610b7357600080fd5b670de0b6b3a764000060025463030a32c00202836007540111151515610b9857600080fd5b610ba183611972565b9150610bb68284610d4590919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c85836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610c7b57600080fd5b6102c65a03f11515610c8c57600080fd5b505050610ca483600754610d4590919063ffffffff16565b600781905550610cfc81601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000808284019050838110151515610d5957fe5b8091505092915050565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e0f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610e675750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610e7257600080fd5b60016003811115610e7f57fe5b6014809054906101000a900460ff166003811115610e9957fe5b141515610ea557600080fd5b670de0b6b3a764000060025463030a32c00202856007540111151515610eca57600080fd5b610ed385611972565b9150610ee88286610d4590919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c87836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610fad57600080fd5b6102c65a03f11515610fbe57600080fd5b505050610fd685600754610d4590919063ffffffff16565b60078190555061102e81601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa8f899a090efad1c1d17d3e3c18b0fc5b732d226b7ce367ab7f00fd824029acc86828686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a1505050505050565b60186020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111ea5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156111f557600080fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611273575060038081111561125657fe5b6014809054906101000a900460ff16600381111561127057fe5b14155b151561127e57600080fd5b6001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561139b57600080fd5b6102c65a03f115156113ac57600080fd5b5050506040518051905091506113e16006546113d360055485610b0290919063ffffffff16565b612b3f90919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156114a657600080fd5b6102c65a03f115156114b757600080fd5b5050507f693cd4f9c45176a5802b8edafb6ccd9e6c89a3ca492ca0ce666c0340fc44f00b8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b60038081111561159457fe5b6014809054906101000a900460ff1660038111156115ae57fe5b1480156115cd5750670de0b6b3a7640000600254620f42400202600754105b15156115d857600080fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561172257600080fd5b6102c65a03f1151561173357600080fd5b5050507f6eecc2693ab244d8ce55c70481606888e6fe7bf754e76b08779f08a144909fab8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117cb5780820151818401526020810190506117b0565b50505050905090810190601f1680156117f85780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561188d57600080fd5b806003819055506118ab600354600254610b0290919063ffffffff16565b60048190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000905061546060085401421115156119b9576119af60646119a1601e86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b61a8c060085401421115156119f9576119ef60646119e1601986610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b620151806008540142111515611a3a57611a306064611a22601486610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b6202a3006008540142111515611a7b57611a716064611a63600f86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b6213c6806008540142111515611abc57611ab26064611aa4600a86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b8091505b50919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600080600380811115611b0157fe5b6014809054906101000a900460ff166003811115611b1b57fe5b148015611b3a5750670de0b6b3a7640000600254620f42400202600754105b8015611b8557506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1515611b9057600080fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611d6157600080fd5b6102c65a03f11515611d7257600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611db557600080fd5b7fc3ec6e7296862136ee23a04b1409ab64b96bd1aa8d6b2c0bd7e17af61e13c3eb3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60025481565b60065481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ed95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611ee457600080fd5b600380811115611ef057fe5b6014809054906101000a900460ff166003811115611f0a57fe5b148015611f2a5750670de0b6b3a7640000600254620f4240020260075410155b1515611f3557600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611fae57600080fd5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915090505481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120e85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156120f357600080fd5b6000600381111561210057fe5b6014809054906101000a900460ff16600381111561211a57fe5b148061214a57506002600381111561212e57fe5b6014809054906101000a900460ff16600381111561214857fe5b145b151561215557600080fd5b6000600381111561216257fe5b6014809054906101000a900460ff16600381111561217c57fe5b141561218a57426008819055505b60016014806101000a81548160ff021916908360038111156121a857fe5b02179055507f0ed6b1715382ee8c647ec35e086f9713aa5d53bf7fd91d1e3a474d2f903d6d7e60405160405180910390a1565b60055481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806122b05750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156122bb57600080fd5b600160038111156122c857fe5b6014809054906101000a900460ff1660038111156122e257fe5b1415156122ee57600080fd5b60026014806101000a81548160ff0219169083600381111561230c57fe5b02179055507f4b314b34e912fda7f95e7d23e9c8c95f82f0aff1984e4ce592a0b005f905562460405160405180910390a1565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915090505481565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124295750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243457600080fd5b6001600381111561244157fe5b6014809054906101000a900460ff16600381111561245b57fe5b148061248b57506002600381111561246f57fe5b6014809054906101000a900460ff16600381111561248957fe5b145b151561249657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561252357600080fd5b6102c65a03f1151561253457600080fd5b5050506040518051905091506125676049612559606485610b0290919063ffffffff16565b612b3f90919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166125f060646125e2866002610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561267457600080fd5b6102c65a03f1151561268557600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661270f6064612701866005610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561279357600080fd5b6102c65a03f115156127a457600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661282e6064612820866005610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156128b257600080fd5b6102c65a03f115156128c357600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661294d606461293f86600f610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156129d157600080fd5b6102c65a03f115156129e257600080fd5b505050670de0b6b3a7640000600254620f42400202600754101515612a9a576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f21cdf6f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515612a8557600080fd5b6102c65a03f11515612a9657600080fd5b5050505b60036014806101000a81548160ff02191690836003811115612ab857fe5b02179055507f94b829fc94722aadef185d94a750450dff7721fdf4495a9da0f258de6d33fc9c60405160405180910390a15050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600083111515612b4e57fe5b8284811515612b5957fe5b0490508284811515612b6757fe5b068184020184141515612b7657fe5b80915050929150505600a165627a7a72305820ea7fabc73d4a498003b8a9fd4804b25aa6247fd0129984b343dc0640a6314cd200296060604052600080556040805190810160405280600f81526020017f4461746172697573204372656469740000000000000000000000000000000000815250600390805190602001906200005592919062000135565b506040805190810160405280600481526020017f445452430000000000000000000000000000000000000000000000000000000081525060049080519060200190620000a392919062000135565b5060126005556001600660146101000a81548160ff0219169083151502179055503415620000d057600080fd5b604051602080620013858339810160405280805190602001909190505080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017857805160ff1916838001178555620001a9565b82800160010185558215620001a9579182015b82811115620001a85782518255916020019190600101906200018b565b5b509050620001b89190620001bc565b5090565b620001e191905b80821115620001dd576000816000905550600101620001c3565b5090565b90565b61119180620001f46000396000f3006060604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100d5578063095ea7b3146101635780630d1118ce146101bd57806318160ddd146101ff57806323b872dd14610228578063313ce567146102a15780635d452201146102ca57806370a082311461031f57806395d89b411461036c578063a9059cbb146103fa578063ca67065f14610454578063dd62ed3e14610481578063f0dda65c146104ed578063f21cdf6f1461052f575b600080fd5b34156100e057600080fd5b6100e8610544565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012857808201518184015260208101905061010d565b50505050905090810190601f1680156101555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016e57600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506105e2565b604051808215151515815260200191505060405180910390f35b34156101c857600080fd5b6101fd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610769565b005b341561020a57600080fd5b610212610915565b6040518082815260200191505060405180910390f35b341561023357600080fd5b610287600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061091b565b604051808215151515815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610be2565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b6102dd610be8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032a57600080fd5b610356600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c0e565b6040518082815260200191505060405180910390f35b341561037757600080fd5b61037f610c57565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103bf5780820151818401526020810190506103a4565b50505050905090810190601f1680156103ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561040557600080fd5b61043a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cf5565b604051808215151515815260200191505060405180910390f35b341561045f57600080fd5b610467610eac565b604051808215151515815260200191505060405180910390f35b341561048c57600080fd5b6104d7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ebf565b6040518082815260200191505060405180910390f35b34156104f857600080fd5b61052d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f46565b005b341561053a57600080fd5b6105426110b5565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105da5780601f106105af576101008083540402835291602001916105da565b820191906000526020600020905b8154815290600101906020018083116105bd57829003601f168201915b505050505081565b60008082148061066e57506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561067957600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c557600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561081357600080fd5b6108288160005461112e90919063ffffffff16565b60008190555061088081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b60005481565b6000600660149054906101000a900460ff1615151561093957600080fd5b61098b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a5d82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b2f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60055481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ced5780601f10610cc257610100808354040283529160200191610ced565b820191906000526020600020905b815481529060010190602001808311610cd057829003601f168201915b505050505081565b6000600660149054906101000a900460ff16151515610d1357600080fd5b610d6582600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461112e90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dfa82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600660149054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fa257600080fd5b600081111515610fb157600080fd5b61100381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061105b8160005461114790919063ffffffff16565b6000819055508173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111157600080fd5b6000600660146101000a81548160ff021916908315150217905550565b600082821115151561113c57fe5b818303905092915050565b600080828401905083811015151561115b57fe5b80915050929150505600a165627a7a72305820857008d5c5c6ea1e8c4245ce7e5e64baf2e2ab3197c0bfa76f20d6663794ad920029000000000000000000000000fddebe09dfa664a372d8d33a8402abc8c36a7022000000000000000000000000aba90731e25458947513ae9ca877d714be87b0eb0000000000000000000000007afee661277cb711d6018034332121e3f56fd4640000000000000000000000004617b7e80cd6f60a78f5614923e407f4aed33dc2000000000000000000000000efa6fc288a7607aa5169de4ee5f3ef9403701f8c0000000000000000000000008979e5e36bd46f00a5d6817cb31fc697a9a37bbf0000000000000000000000005712f80eb5e3c46804afcf67558990f2f70a2fa8000000000000000000000000f1a3624757d410d2dddf2eb0a8dcdd810d2f1a3b00000000000000000000000038dc197a6670db8be0e5f3df56386ad526d224d200000000000000000000000045429507995a8a8c5e7660c2e216c900959f100800000000000000000000000045429507995a8a8c5e7660c2e216c900959f1008000000000000000000000000a521ccebe70a51c318bc713fc18dbebc38ccaba8000000000000000000000000aa6edddff7359f6407b577ca5a0ea23e6245093e
Deployed Bytecode
0x6060604052600436106101ab576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806252992e1461026057806302677e7c146102b65780630e5caf7e146103075780630fcf41ae146103545780631bfe87bd1461038d5780631ed5da2f1461040957806334fcf4371461045e578063353559cb146104815780633d9e23ca146104d65780633e7993351461052b57806342f0b07e1461058057806349e67544146105d55780634aa66b281461062a5780635092f97e1461066157806352608d85146106b6578063560ed6a1146106df578063650c2b28146106f45780636d3e45021461071d5780637362377b146107465780637776466c1461075b57806378357e53146107b05780637ff9b59614610805578063842a64151461082e57806386d7f2f01461088357806389311e6f146108d0578063bdf4bb73146108e5578063c33818fd1461090e578063c4fdc6b814610963578063c80bbb1714610978578063dd49f2fd146109cd578063ec42f82f14610a1a578063f24a534e14610a2f578063fa1a5f5914610a84578063fcb806ac14610aad575b6101c9336101c460045434610b0290919063ffffffff16565b610b3d565b61021b34601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b341561026b57600080fd5b6102b4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190820180359060200191909192905050610d63565b005b34156102c157600080fd5b6102ed600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611106565b604051808215151515815260200191505060405180910390f35b341561031257600080fd5b61033e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611126565b6040518082815260200191505060405180910390f35b341561035f57600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061113e565b005b341561039857600080fd5b610407600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061152a565b005b341561041457600080fd5b61041c61180b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046957600080fd5b61047f6004808035906020019091905050611831565b005b341561048c57600080fd5b6104946118b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104e157600080fd5b6104e96118da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053657600080fd5b61053e611900565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058b57600080fd5b610593611926565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105e057600080fd5b6105e861194c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063557600080fd5b61064b6004808035906020019091905050611972565b6040518082815260200191505060405180910390f35b341561066c57600080fd5b610674611ac6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c157600080fd5b6106c9611aec565b6040518082815260200191505060405180910390f35b34156106ea57600080fd5b6106f2611af2565b005b34156106ff57600080fd5b610707611e24565b6040518082815260200191505060405180910390f35b341561072857600080fd5b610730611e2a565b6040518082815260200191505060405180910390f35b341561075157600080fd5b610759611e30565b005b341561076657600080fd5b61076e611fb0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bb57600080fd5b6107c3611fd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561081057600080fd5b610818611ffc565b6040518082815260200191505060405180910390f35b341561083957600080fd5b610841612002565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561088e57600080fd5b6108ba600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612027565b6040518082815260200191505060405180910390f35b34156108db57600080fd5b6108e361203f565b005b34156108f057600080fd5b6108f86121db565b6040518082815260200191505060405180910390f35b341561091957600080fd5b6109216121e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561096e57600080fd5b610976612207565b005b341561098357600080fd5b61098b61233f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109d857600080fd5b610a04600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612365565b6040518082815260200191505060405180910390f35b3415610a2557600080fd5b610a2d61237d565b005b3415610a3a57600080fd5b610a42612aed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a8f57600080fd5b610a97612b13565b6040518082815260200191505060405180910390f35b3415610ab857600080fd5b610ac0612b19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000841415610b175760009150610b36565b8284029050828482811515610b2857fe5b04141515610b3257fe5b8091505b5092915050565b60008060016003811115610b4d57fe5b6014809054906101000a900460ff166003811115610b6757fe5b141515610b7357600080fd5b670de0b6b3a764000060025463030a32c00202836007540111151515610b9857600080fd5b610ba183611972565b9150610bb68284610d4590919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c85836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610c7b57600080fd5b6102c65a03f11515610c8c57600080fd5b505050610ca483600754610d4590919063ffffffff16565b600781905550610cfc81601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000808284019050838110151515610d5957fe5b8091505092915050565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e0f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610e675750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610e7257600080fd5b60016003811115610e7f57fe5b6014809054906101000a900460ff166003811115610e9957fe5b141515610ea557600080fd5b670de0b6b3a764000060025463030a32c00202856007540111151515610eca57600080fd5b610ed385611972565b9150610ee88286610d4590919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c87836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610fad57600080fd5b6102c65a03f11515610fbe57600080fd5b505050610fd685600754610d4590919063ffffffff16565b60078190555061102e81601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4590919063ffffffff16565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa8f899a090efad1c1d17d3e3c18b0fc5b732d226b7ce367ab7f00fd824029acc86828686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a1505050505050565b60186020528060005260406000206000915054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111ea5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156111f557600080fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611273575060038081111561125657fe5b6014809054906101000a900460ff16600381111561127057fe5b14155b151561127e57600080fd5b6001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561139b57600080fd5b6102c65a03f115156113ac57600080fd5b5050506040518051905091506113e16006546113d360055485610b0290919063ffffffff16565b612b3f90919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156114a657600080fd5b6102c65a03f115156114b757600080fd5b5050507f693cd4f9c45176a5802b8edafb6ccd9e6c89a3ca492ca0ce666c0340fc44f00b8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158857600080fd5b60038081111561159457fe5b6014809054906101000a900460ff1660038111156115ae57fe5b1480156115cd5750670de0b6b3a7640000600254620f42400202600754105b15156115d857600080fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561172257600080fd5b6102c65a03f1151561173357600080fd5b5050507f6eecc2693ab244d8ce55c70481606888e6fe7bf754e76b08779f08a144909fab8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117cb5780820151818401526020810190506117b0565b50505050905090810190601f1680156117f85780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561188d57600080fd5b806003819055506118ab600354600254610b0290919063ffffffff16565b60048190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000905061546060085401421115156119b9576119af60646119a1601e86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b61a8c060085401421115156119f9576119ef60646119e1601986610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b620151806008540142111515611a3a57611a306064611a22601486610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b6202a3006008540142111515611a7b57611a716064611a63600f86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b6213c6806008540142111515611abc57611ab26064611aa4600a86610b0290919063ffffffff16565b612b3f90919063ffffffff16565b9050809150611ac0565b8091505b50919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600080600380811115611b0157fe5b6014809054906101000a900460ff166003811115611b1b57fe5b148015611b3a5750670de0b6b3a7640000600254620f42400202600754105b8015611b8557506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1515611b9057600080fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d1118ce33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611d6157600080fd5b6102c65a03f11515611d7257600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611db557600080fd5b7fc3ec6e7296862136ee23a04b1409ab64b96bd1aa8d6b2c0bd7e17af61e13c3eb3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60025481565b60065481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ed95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611ee457600080fd5b600380811115611ef057fe5b6014809054906101000a900460ff166003811115611f0a57fe5b148015611f2a5750670de0b6b3a7640000600254620f4240020260075410155b1515611f3557600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611fae57600080fd5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915090505481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120e85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156120f357600080fd5b6000600381111561210057fe5b6014809054906101000a900460ff16600381111561211a57fe5b148061214a57506002600381111561212e57fe5b6014809054906101000a900460ff16600381111561214857fe5b145b151561215557600080fd5b6000600381111561216257fe5b6014809054906101000a900460ff16600381111561217c57fe5b141561218a57426008819055505b60016014806101000a81548160ff021916908360038111156121a857fe5b02179055507f0ed6b1715382ee8c647ec35e086f9713aa5d53bf7fd91d1e3a474d2f903d6d7e60405160405180910390a1565b60055481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806122b05750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156122bb57600080fd5b600160038111156122c857fe5b6014809054906101000a900460ff1660038111156122e257fe5b1415156122ee57600080fd5b60026014806101000a81548160ff0219169083600381111561230c57fe5b02179055507f4b314b34e912fda7f95e7d23e9c8c95f82f0aff1984e4ce592a0b005f905562460405160405180910390a1565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915090505481565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124295750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243457600080fd5b6001600381111561244157fe5b6014809054906101000a900460ff16600381111561245b57fe5b148061248b57506002600381111561246f57fe5b6014809054906101000a900460ff16600381111561248957fe5b145b151561249657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561252357600080fd5b6102c65a03f1151561253457600080fd5b5050506040518051905091506125676049612559606485610b0290919063ffffffff16565b612b3f90919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166125f060646125e2866002610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561267457600080fd5b6102c65a03f1151561268557600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661270f6064612701866005610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561279357600080fd5b6102c65a03f115156127a457600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661282e6064612820866005610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156128b257600080fd5b6102c65a03f115156128c357600080fd5b5050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0dda65c600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661294d606461293f86600f610b0290919063ffffffff16565b612b3f90919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15156129d157600080fd5b6102c65a03f115156129e257600080fd5b505050670de0b6b3a7640000600254620f42400202600754101515612a9a576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f21cdf6f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515612a8557600080fd5b6102c65a03f11515612a9657600080fd5b5050505b60036014806101000a81548160ff02191690836003811115612ab857fe5b02179055507f94b829fc94722aadef185d94a750450dff7721fdf4495a9da0f258de6d33fc9c60405160405180910390a15050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600083111515612b4e57fe5b8284811515612b5957fe5b0490508284811515612b6757fe5b068184020184141515612b7657fe5b80915050929150505600a165627a7a72305820ea7fabc73d4a498003b8a9fd4804b25aa6247fd0129984b343dc0640a6314cd20029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fddebe09dfa664a372d8d33a8402abc8c36a7022000000000000000000000000aba90731e25458947513ae9ca877d714be87b0eb0000000000000000000000007afee661277cb711d6018034332121e3f56fd4640000000000000000000000004617b7e80cd6f60a78f5614923e407f4aed33dc2000000000000000000000000efa6fc288a7607aa5169de4ee5f3ef9403701f8c0000000000000000000000008979e5e36bd46f00a5d6817cb31fc697a9a37bbf0000000000000000000000005712f80eb5e3c46804afcf67558990f2f70a2fa8000000000000000000000000f1a3624757d410d2dddf2eb0a8dcdd810d2f1a3b00000000000000000000000038dc197a6670db8be0e5f3df56386ad526d224d200000000000000000000000045429507995a8a8c5e7660c2e216c900959f100800000000000000000000000045429507995a8a8c5e7660c2e216c900959f1008000000000000000000000000a521ccebe70a51c318bc713fc18dbebc38ccaba8000000000000000000000000aa6edddff7359f6407b577ca5a0ea23e6245093e
-----Decoded View---------------
Arg [0] : _preSaleToken (address): 0xfddebe09dFa664a372D8D33a8402Abc8C36A7022
Arg [1] : _Company (address): 0xAbA90731E25458947513Ae9cA877D714Be87b0eb
Arg [2] : _BountyFund (address): 0x7AfeE661277cB711d6018034332121e3F56Fd464
Arg [3] : _PartnersFund (address): 0x4617b7E80Cd6F60a78f5614923E407F4aeD33DC2
Arg [4] : _ReserveFund (address): 0xEfa6fC288a7607aA5169de4EE5F3Ef9403701F8c
Arg [5] : _TeamFund (address): 0x8979e5e36bD46F00a5d6817CB31FC697A9A37bBF
Arg [6] : _Manager (address): 0x5712F80eb5e3c46804afcF67558990f2F70a2Fa8
Arg [7] : _ReserveManager (address): 0xF1A3624757D410D2DDDf2Eb0a8dCdd810d2F1A3B
Arg [8] : _Controller_Address1 (address): 0x38DC197A6670Db8be0E5f3Df56386ad526D224D2
Arg [9] : _Controller_Address2 (address): 0x45429507995a8a8c5E7660c2E216C900959F1008
Arg [10] : _Controller_Address3 (address): 0x45429507995a8a8c5E7660c2E216C900959F1008
Arg [11] : _RefundManager (address): 0xA521Ccebe70a51c318bc713fC18dbEbc38CcAba8
Arg [12] : _Oracle (address): 0xaa6eddDFF7359F6407b577cA5A0eA23e6245093E
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 000000000000000000000000fddebe09dfa664a372d8d33a8402abc8c36a7022
Arg [1] : 000000000000000000000000aba90731e25458947513ae9ca877d714be87b0eb
Arg [2] : 0000000000000000000000007afee661277cb711d6018034332121e3f56fd464
Arg [3] : 0000000000000000000000004617b7e80cd6f60a78f5614923e407f4aed33dc2
Arg [4] : 000000000000000000000000efa6fc288a7607aa5169de4ee5f3ef9403701f8c
Arg [5] : 0000000000000000000000008979e5e36bd46f00a5d6817cb31fc697a9a37bbf
Arg [6] : 0000000000000000000000005712f80eb5e3c46804afcf67558990f2f70a2fa8
Arg [7] : 000000000000000000000000f1a3624757d410d2dddf2eb0a8dcdd810d2f1a3b
Arg [8] : 00000000000000000000000038dc197a6670db8be0e5f3df56386ad526d224d2
Arg [9] : 00000000000000000000000045429507995a8a8c5e7660c2e216c900959f1008
Arg [10] : 00000000000000000000000045429507995a8a8c5e7660c2e216c900959f1008
Arg [11] : 000000000000000000000000a521ccebe70a51c318bc713fc18dbebc38ccaba8
Arg [12] : 000000000000000000000000aa6edddff7359f6407b577ca5a0ea23e6245093e
Swarm Source
bzzr://857008d5c5c6ea1e8c4245ce7e5e64baf2e2ab3197c0bfa76f20d6663794ad92
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.