Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 18 from a total of 18 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 5708931 | 2833 days ago | IN | 0 ETH | 0.00243937 | ||||
| Confirm | 5708858 | 2833 days ago | IN | 0 ETH | 0.0015471 | ||||
| Transfer | 5708807 | 2833 days ago | IN | 0 ETH | 0.00243675 | ||||
| Presale | 5708775 | 2833 days ago | IN | 0 ETH | 0.00150454 | ||||
| Confirm | 5708772 | 2833 days ago | IN | 0 ETH | 0.00146586 | ||||
| Confirm | 5708767 | 2833 days ago | IN | 0 ETH | 0.00146586 | ||||
| Confirm | 5708766 | 2833 days ago | IN | 0 ETH | 0.00097724 | ||||
| Presale Vesting | 5708747 | 2833 days ago | IN | 0 ETH | 0.00597692 | ||||
| Confirm | 5708730 | 2833 days ago | IN | 0 ETH | 0.0010314 | ||||
| Confirm | 5708730 | 2833 days ago | IN | 0 ETH | 0.0010314 | ||||
| Confirm | 5708718 | 2833 days ago | IN | 0 ETH | 0.00128925 | ||||
| Confirm | 5708669 | 2833 days ago | IN | 0 ETH | 0.00128925 | ||||
| Confirm | 5708666 | 2833 days ago | IN | 0 ETH | 0.0010314 | ||||
| Confirm | 5708654 | 2833 days ago | IN | 0 ETH | 0.0010314 | ||||
| Presale Vesting | 5708611 | 2833 days ago | IN | 0 ETH | 0.00373717 | ||||
| Confirm | 5708603 | 2833 days ago | IN | 0 ETH | 0.00103268 | ||||
| Confirm | 5708580 | 2833 days ago | IN | 0 ETH | 0.00103268 | ||||
| Confirm | 5708573 | 2833 days ago | IN | 0 ETH | 0.00103268 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TimeBankToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-05-30
*/
pragma solidity ^0.4.21;
contract EIP20Interface {
function name() public view returns (string);
function symbol() public view returns (string);
function decimals() public view returns (uint8);
function totalSupply() public view returns (uint256);
/// @param _owner The address from which the balance will be retrieved
/// @return The balance
function balanceOf(address _owner) public view returns (uint256 balance);
/// @notice send `_value` token to `_to` from `msg.sender`
/// @param _to The address of the recipient
/// @param _value The amount of token to be transferred
/// @return Whether the transfer was successful or not
function transfer(address _to, uint256 _value) public returns (bool success);
/// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
/// @param _from The address of the sender
/// @param _to The address of the recipient
/// @param _value The amount of token to be transferred
/// @return Whether the transfer was successful or not
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
/// @notice `msg.sender` approves `_spender` to spend `_value` tokens
/// @param _spender The address of the account able to transfer the tokens
/// @param _value The amount of tokens to be approved for transfer
/// @return Whether the approval was successful or not
function approve(address _spender, uint256 _value) public returns (bool success);
/// @param _owner The address of the account owning tokens
/// @param _spender The address of the account able to transfer the tokens
/// @return Amount of remaining tokens allowed to spent
function allowance(address _owner, address _spender) public view returns (uint256 remaining);
// solhint-disable-next-line no-simple-event-func-name
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
contract EIP20 is EIP20Interface {
uint256 constant private MAX_UINT256 = 2**256 - 1;
mapping (address => uint256) public balances;
mapping (address => mapping (address => uint256)) public allowed;
/*
NOTE:
The following variables are OPTIONAL vanities. One does not have to include them.
They allow one to customise the token contract & in no way influences the core functionality.
Some wallets/interfaces might not even bother to look at this information.
*/
string public tokenName; //fancy name: eg Simon Bucks
uint8 public tokenDecimals; //How many decimals to show.
string public tokenSymbol; //An identifier: eg SBX
uint256 public tokenTotalSupply;
constructor(
uint256 _initialAmount,
string _tokenName,
uint8 _decimalUnits,
string _tokenSymbol
) public {
balances[msg.sender] = _initialAmount; // Give the creator all initial tokens
tokenTotalSupply = _initialAmount; // Update total supply
tokenName = _tokenName; // Set the name for display purposes
tokenDecimals = _decimalUnits; // Amount of decimals for display purposes
tokenSymbol = _tokenSymbol; // Set the symbol for display purposes
}
function name() public view returns (string) {
return tokenName;
}
function symbol() public view returns (string) {
return tokenSymbol;
}
function decimals() public view returns (uint8) {
return tokenDecimals;
}
function totalSupply() public view returns (uint256) {
return tokenTotalSupply;
}
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balances[msg.sender] >= _value);
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
uint256 allowance = allowed[_from][msg.sender];
require(balances[_from] >= _value && allowance >= _value);
balances[_to] += _value;
balances[_from] -= _value;
if (allowance < MAX_UINT256) {
allowed[_from][msg.sender] -= _value;
}
emit Transfer(_from, _to, _value); //solhint-disable-line indent, no-unused-vars
return true;
}
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) public returns (bool success) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value); //solhint-disable-line indent, no-unused-vars
return true;
}
function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
return allowed[_owner][_spender];
}
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
// uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return a / b;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
contract TimeBankToken is EIP20 {
using SafeMath for uint;
struct Vesting {
uint256 startTime; // vesting start time
uint256 initReleaseAmount;
uint256 amount;
uint256 interval; // release N% of amount each interval.
uint256 periods; // count of periods
uint256 withdrawed; // already used amount of released part
}
mapping (address => Vesting[]) vestings;
address[] managerList;
mapping (address => bool) managers;
mapping (bytes32 => mapping (address => bool)) confirms;
/*
at least <threshold> confirmations
*/
uint majorityThreshold;
uint managementThreshold;
address coinbase;
address master;
bool public paused;
function checkAddress(address _addr) internal pure returns (bool) {
return _addr != address(0);
}
// 1 with 28 zeros
constructor(address _master, address[] _managers, uint _majorityThreshold, uint _managementThreshold) EIP20(10000000000000000000000000000, "Time Bank Token", 18, "TB") public {
require(checkAddress(_master));
require(_managers.length >= _majorityThreshold);
require(_managers.length >= _managementThreshold);
paused = false;
master = _master;
coinbase = msg.sender;
majorityThreshold = _majorityThreshold;
managementThreshold = _managementThreshold;
for (uint i=0; i<_managers.length; i++) {
require(checkAddress(_managers[i]));
managers[_managers[i]] = true;
}
managerList = _managers;
// initial batch operations
// internalPresaleVesting(0x0095F9DffeE386B650230eD3eC28891c1053aBE0, 10000, 60, 120, 240);
// internalPresaleVesting(0x00D4fC2CC18B96c44D9755afB6D4e6804cF827ee, 20000, 60, 120, 240);
// internalPresale(0x0092E41D42E834705fd07c9136Fd0b1028226bE3, 30000);
}
function pause() public isMaster isNotPaused {
require(isEnoughConfirmed(msg.data, 1));
paused = true;
}
function resume() public isMaster isPaused {
require(isEnoughConfirmed(msg.data, 1));
paused = false;
}
modifier isPaused {
require(paused == true);
_;
}
modifier isNotPaused {
require(paused == false);
_;
}
modifier isManager {
require(managers[msg.sender]);
_;
}
modifier isMaster {
require(msg.sender == master);
_;
}
modifier isNotCoinbase {
require(msg.sender != coinbase);
_;
}
function managersCount() public view returns (uint) {
return managerList.length;
}
function isAddressManager(address _to) public view returns (bool) {
return managers[_to];
}
function getMajorityThreshold() public view returns (uint) {
return majorityThreshold;
}
event MajorityThresholdChanged(uint oldThreshold, uint newThreshold);
event ReplaceManager(address oldAddr, address newAddr);
event RemoveManager(address manager);
event AddManager(address manager);
function setMajorityThreshold(uint _threshold) public isMaster isNotPaused {
require(_threshold > 0);
require(isEnoughConfirmed(msg.data, managementThreshold));
uint oldThreshold = majorityThreshold;
majorityThreshold = _threshold;
removeConfirm(msg.data);
emit MajorityThresholdChanged(oldThreshold, majorityThreshold);
}
function replaceManager(address _old, address _new) public isMaster isNotPaused {
require(checkAddress(_old));
require(checkAddress(_new));
require(isEnoughConfirmed(msg.data, managementThreshold));
internalRemoveManager(_old);
internalAddManager(_new);
rebuildManagerList();
removeConfirm(msg.data);
emit ReplaceManager(_old, _new);
}
function removeManager(address _manager) public isMaster isNotPaused {
require(checkAddress(_manager));
require(isEnoughConfirmed(msg.data, managementThreshold));
require(managerList.length > managementThreshold);
internalRemoveManager(_manager);
rebuildManagerList();
removeConfirm(msg.data);
emit RemoveManager(_manager);
}
function internalRemoveManager(address _manager) internal {
require(checkAddress(_manager));
managers[_manager] = false;
}
function addManager(address _manager) public isMaster isNotPaused {
require(checkAddress(_manager));
require(isEnoughConfirmed(msg.data, managementThreshold));
internalAddManager(_manager);
rebuildManagerList();
removeConfirm(msg.data);
emit AddManager(_manager);
}
function internalAddManager(address _manager) internal {
require(checkAddress(_manager));
managers[_manager] = true;
managerList.push(_manager);
}
mapping (address => bool) checked;
function rebuildManagerList() internal {
address[] memory res = new address[](managerList.length);
for (uint k=0; k<managerList.length; k++) {
checked[managerList[k]] = false;
}
uint j=0;
for (uint i=0; i<managerList.length; i++) {
address manager = managerList[i];
if (managers[manager] && checked[manager] == false) {
res[j] = manager;
checked[manager] = true;
j++;
}
}
managerList = res;
managerList.length = j;
}
function checkData(bytes data) internal pure returns (bool) {
return data.length != 0;
}
event Confirm(address manager, bytes data);
event Revoke(address manager, bytes data);
/*
manager use this function to confirm a operation
confirm will not be call inside other functions, so it can be external to save some gas
@param {bytes} data is the transaction's raw input
*/
function confirm(bytes data) external isManager {
checkData(data);
bytes32 op = keccak256(data);
if (confirms[op][msg.sender] == false) {
confirms[op][msg.sender] = true;
}
emit Confirm(msg.sender, data);
}
/*
manager use this function to revoke a confirm of the operation
revoke will not be call inside other functions, so it can be external to save some gas
@param {bytes} data is the transaction's raw input
*/
function revoke(bytes data) external isManager {
checkData(data);
bytes32 op = keccak256(data);
if (confirms[op][msg.sender] == true) {
confirms[op][msg.sender] = false;
}
emit Revoke(msg.sender, data);
}
/*
check a operation is confirmed or not
*/
function isConfirmed(bytes data) public view isManager returns (bool) {
bytes32 op = keccak256(data);
return confirms[op][msg.sender];
}
function isConfirmedBy(bytes data, address manager) public view returns (bool) {
bytes32 op = keccak256(data);
return confirms[op][manager];
}
function isMajorityConfirmed(bytes data) public view returns (bool) {
return isEnoughConfirmed(data, majorityThreshold);
}
function isEnoughConfirmed(bytes data, uint count) internal view returns (bool) {
bytes32 op = keccak256(data);
uint confirmsCount = 0;
for (uint i=0; i<managerList.length; i++) {
if (confirms[op][managerList[i]] == true) {
confirmsCount = confirmsCount.add(1);
}
}
return confirmsCount >= count;
}
/*
once the operation is executed, the confirm of the operation should be removed
*/
function removeConfirm(bytes data) internal {
bytes32 op = keccak256(data);
for (uint i=0; i<managerList.length; i++) {
confirms[op][managerList[i]] = false;
}
}
/*
sale coin with time locking
only the manager can call this function
and this operation should be confirmed
*/
function presaleVesting(address _to, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) public isManager isNotPaused {
checkAddress(_to);
require(isMajorityConfirmed(msg.data));
internalPresaleVesting(_to, _startTime, _initReleaseAmount, _amount, _interval, _periods);
removeConfirm(msg.data);
}
function batchPresaleVesting(address[] _to, uint256[] _startTime, uint256[] _initReleaseAmount, uint256[] _amount, uint256[] _interval, uint256[] _periods) public isManager isNotPaused {
require(isMajorityConfirmed(msg.data));
for (uint i=0; i<_to.length; i++) {
internalPresaleVesting(_to[i], _startTime[i], _initReleaseAmount[i], _amount[i], _interval[i], _periods[i]);
}
removeConfirm(msg.data);
}
function internalPresaleVesting(address _to, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) internal {
require(balances[coinbase] >= _amount);
require(_initReleaseAmount <= _amount);
require(checkAddress(_to));
vestings[_to].push(Vesting(
_startTime, _initReleaseAmount, _amount, _interval, _periods, 0
));
balances[coinbase] = balances[coinbase].sub(_amount);
emit PresaleVesting(_to, _startTime, _amount, _interval, _periods);
}
/*
sale coin without time locking
only the manager can call this function
and this operation should be confirmed
*/
function presale(address _to, uint256 _value) public isManager isNotPaused {
require(isMajorityConfirmed(msg.data));
internalPresale(_to, _value);
removeConfirm(msg.data);
}
function batchPresale(address[] _to, uint256[] _amount) public isManager isNotPaused {
require(isMajorityConfirmed(msg.data));
for (uint i=0; i<_to.length; i++) {
internalPresale(_to[i], _amount[i]);
}
removeConfirm(msg.data);
}
function internalPresale(address _to, uint256 _value) internal {
require(balances[coinbase] >= _value);
require(checkAddress(_to));
balances[_to] = balances[_to].add(_value);
balances[coinbase] = balances[coinbase].sub(_value);
emit Presale(_to, _value);
}
/*
events
*/
event Presale(address indexed to, uint256 value);
event PresaleVesting(address indexed to, uint256 startTime, uint256 amount, uint256 interval, uint256 periods);
/*
math function used to calculate vesting curve
*/
function vestingFunc(uint256 _currentTime, uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) public pure returns (uint256) {
if (_currentTime < _startTime) {
return 0;
}
uint256 t = _currentTime.sub(_startTime);
uint256 end = _periods.mul(_interval);
if (t >= end) {
return _amount;
}
uint256 i_amount = _amount.sub(_initReleaseAmount).div(_periods);
uint256 i = t.div(_interval);
return i_amount.mul(i).add(_initReleaseAmount);
}
function queryWithdrawed(uint _idx) public view returns (uint256) {
return vestings[msg.sender][_idx].withdrawed;
}
function queryVestingRemain(uint256 _currentTime, uint _idx) public view returns (uint256) {
uint256 released = vestingFunc(
_currentTime,
vestings[msg.sender][_idx].startTime, vestings[msg.sender][_idx].initReleaseAmount, vestings[msg.sender][_idx].amount,
vestings[msg.sender][_idx].interval, vestings[msg.sender][_idx].periods
);
return released.sub(vestings[msg.sender][_idx].withdrawed);
}
/*
calculate the released amount of vesting coin
it cannot be view, because this function relays on 'now'
*/
function vestingReleased(uint256 _startTime, uint256 _initReleaseAmount, uint256 _amount, uint256 _interval, uint256 _periods) internal view returns (uint256) {
return vestingFunc(now, _startTime, _initReleaseAmount, _amount, _interval, _periods);
}
/*
withdraw all released vesting coin to balance
*/
function withdrawVestings(address _to) internal {
uint256 sum = 0;
for (uint i=0; i<vestings[_to].length; i++) {
if (vestings[_to][i].amount == vestings[_to][i].withdrawed) {
continue;
}
uint256 released = vestingReleased(
vestings[_to][i].startTime, vestings[_to][i].initReleaseAmount, vestings[_to][i].amount,
vestings[_to][i].interval, vestings[_to][i].periods
);
uint256 remain = released.sub(vestings[_to][i].withdrawed);
if (remain >= 0) {
vestings[_to][i].withdrawed = released;
sum = sum.add(remain);
}
}
balances[_to] = balances[_to].add(sum);
}
/*
sum of all vestings balance (regardless of released or not)
each vesting is amount - withdrawed
*/
function vestingsBalance(address _to) public view returns (uint256) {
uint256 sum = 0;
for (uint i=0; i<vestings[_to].length; i++) {
sum = sum.add(vestings[_to][i].amount.sub(vestings[_to][i].withdrawed));
}
return sum;
}
/*
sum of all remaining vestings balance (only the released part)
released - withdrawed
*/
function vestingsReleasedRemain(address _to) internal view returns (uint256) {
uint256 sum = 0;
for (uint i=0; i<vestings[_to].length; i++) {
uint256 released = vestingReleased(
vestings[_to][i].startTime, vestings[_to][i].initReleaseAmount, vestings[_to][i].amount,
vestings[_to][i].interval, vestings[_to][i].periods
);
sum = sum.add(released.sub(vestings[_to][i].withdrawed));
}
return sum;
}
/*
total balance
sum of vestings balance (includes not released part) and unlocking coin balance
*/
function balanceOf(address _to) public view returns (uint256) {
uint256 vbalance = vestingsBalance(_to);
return vbalance.add(super.balanceOf(_to));
}
/*
sum of vestings balance and unlocking coin balance
*/
function vestingsRemainBalance(address _to) internal view returns (uint256) {
return vestingsReleasedRemain(_to).add(super.balanceOf(_to));
}
/*
transfer <_value> coin from <msg.sender> to <_to> address
1. check remain balance
2. withdraw all vesting coin to balance
3. call original ERC20 transafer function
*/
function transfer(address _to, uint256 _value) public isNotCoinbase isNotPaused returns (bool) {
checkAddress(_to);
uint256 remain = vestingsRemainBalance(msg.sender);
require(remain >= _value);
withdrawVestings(msg.sender);
return super.transfer(_to, _value);
}
/*
transferFrom <_value> coin from <_from> to <_to> address
1. check remain balance
2. withdraw all vesting coin to balance
3. call original ERC20 transafer function
*/
function transferFrom(address _from, address _to, uint256 _value) public isNotPaused returns (bool) {
checkAddress(_from);
checkAddress(_to);
uint256 remain = vestingsRemainBalance(_from);
require(remain >= _value);
withdrawVestings(_from);
return super.transferFrom(_from, _to, _value);
}
/*
approve <_value> coin from <_from> to <_to> address
1. check remain balance
2. withdraw all vesting coin to balance
3. call original ERC20 transafer function
*/
function approve(address _spender, uint256 _value) public isNotCoinbase isNotPaused returns (bool) {
checkAddress(_spender);
uint256 remain = vestingsRemainBalance(msg.sender);
require(remain >= _value);
withdrawVestings(msg.sender);
return super.approve(_spender, _value);
}
function allowance(address _owner, address _spender) public view returns (uint256) {
return super.allowance(_owner, _spender);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_old","type":"address"},{"name":"_new","type":"address"}],"name":"replaceManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_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":"_currentTime","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_initReleaseAmount","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_interval","type":"uint256"},{"name":"_periods","type":"uint256"}],"name":"vestingFunc","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenDecimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_threshold","type":"uint256"}],"name":"setMajorityThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_amount","type":"uint256[]"}],"name":"batchPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_idx","type":"uint256"}],"name":"queryWithdrawed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_startTime","type":"uint256[]"},{"name":"_initReleaseAmount","type":"uint256[]"},{"name":"_amount","type":"uint256[]"},{"name":"_interval","type":"uint256[]"},{"name":"_periods","type":"uint256[]"}],"name":"batchPresaleVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"isAddressManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_initReleaseAmount","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_interval","type":"uint256"},{"name":"_periods","type":"uint256"}],"name":"presaleVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"vestingsBalance","outputs":[{"name":"","type":"uint256"}],"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":"data","type":"bytes"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"removeManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMajorityThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"bytes"}],"name":"isMajorityConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_currentTime","type":"uint256"},{"name":"_idx","type":"uint256"}],"name":"queryVestingRemain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"confirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"presale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"bytes"},{"name":"manager","type":"address"}],"name":"isConfirmedBy","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_master","type":"address"},{"name":"_managers","type":"address[]"},{"name":"_majorityThreshold","type":"uint256"},{"name":"_managementThreshold","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldThreshold","type":"uint256"},{"indexed":false,"name":"newThreshold","type":"uint256"}],"name":"MajorityThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddr","type":"address"},{"indexed":false,"name":"newAddr","type":"address"}],"name":"ReplaceManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"}],"name":"RemoveManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"}],"name":"AddManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Confirm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"manager","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Presale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"startTime","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"interval","type":"uint256"},{"indexed":false,"name":"periods","type":"uint256"}],"name":"PresaleVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162004f0d38038062004f0d8339810180604052810190808051906020019092919080518201929190602001805190602001909291908051906020019092919050505060006b204fce5e3e250261100000006040805190810160405280600f81526020017f54696d652042616e6b20546f6b656e000000000000000000000000000000000081525060126040805190810160405280600281526020017f5442000000000000000000000000000000000000000000000000000000000000815250836000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836005819055508260029080519060200190620001369291906200038a565b5081600360006101000a81548160ff021916908360ff16021790555080600490805190602001906200016a9291906200038a565b5050505050620001898562000351640100000000026401000000009004565b15156200019557600080fd5b82845110151515620001a657600080fd5b81845110151515620001b757600080fd5b6000600d60146101000a81548160ff02191690831515021790555084600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555081600b81905550600090505b83518110156200032d57620002a384828151811015156200028457fe5b9060200190602002015162000351640100000000026401000000009004565b1515620002af57600080fd5b6001600860008684815181101515620002c457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000267565b83600790805190602001906200034592919062000411565b5050505050506200050e565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003cd57805160ff1916838001178555620003fe565b82800160010185558215620003fe579182015b82811115620003fd578251825591602001919060010190620003e0565b5b5090506200040d9190620004a0565b5090565b8280548282559060005260206000209081019282156200048d579160200282015b828111156200048c5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000432565b5b5090506200049c9190620004c8565b5090565b620004c591905b80821115620004c1576000816000905550600101620004a7565b5090565b90565b6200050b91905b808211156200050757600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620004cf565b5090565b90565b6149ef806200051e6000396000f3006080604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301d8715f146101dd578063046f7da21461024057806306fdde0314610257578063095ea7b3146102e75780630b467b9b1461034c57806318160ddd1461038757806323b872dd146103b2578063246275471461043757806327e235e3146104aa5780632d06177a14610501578063313ce567146105445780633b97e856146105755780633d4ba37a146105a65780635a778cf9146105d35780635bfdab261461067c5780635c658165146106bd5780635c975abb146107345780636308ae65146107635780636b5396dc1461078e5780636c02a9311461094357806370a08231146109d35780637b61c32014610a2a5780637c2b606a14610aba5780638456cb5914610b155780638d01229514610b2c57806395d89b4114610ba1578063a4bad0ae14610c31578063a9059cbb14610c88578063aa95484514610ced578063ac18de4314610d6e578063b43716a014610db1578063cb1e438914610ddc578063dd62ed3e14610e5d578063eb1fa69014610ed4578063f2ddc77214610f1f578063f7abab9e14610f5a578063f8a34b2614610f85578063fafd6bcb14610fd2575b600080fd5b3480156101e957600080fd5b5061023e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611073565b005b34801561024c57600080fd5b50610255611254565b005b34801561026357600080fd5b5061026c611338565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ac578082015181840152602081019050610291565b50505050905090810190601f1680156102d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113da565b604051808215151515815260200191505060405180910390f35b34801561035857600080fd5b5061038560048036038101908080359060200190820180359060200191909192939192939050505061149c565b005b34801561039357600080fd5b5061039c6116bf565b6040518082815260200191505060405180910390f35b3480156103be57600080fd5b5061041d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116c9565b604051808215151515815260200191505060405180910390f35b34801561044357600080fd5b5061049460048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061173a565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611800565b6040518082815260200191505060405180910390f35b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611818565b005b34801561055057600080fd5b506105596119a7565b604051808260ff1660ff16815260200191505060405180910390f35b34801561058157600080fd5b5061058a6119be565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105b257600080fd5b506105d1600480360381019080803590602001909291905050506119d1565b005b3480156105df57600080fd5b5061067a6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611b37565b005b34801561068857600080fd5b506106a760048036038101908080359060200190929190505050611c8e565b6040518082815260200191505060405180910390f35b3480156106c957600080fd5b5061071e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf5565b6040518082815260200191505060405180910390f35b34801561074057600080fd5b50610749611d1a565b604051808215151515815260200191505060405180910390f35b34801561076f57600080fd5b50610778611d2d565b6040518082815260200191505060405180910390f35b34801561079a57600080fd5b50610941600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611d3a565b005b34801561094f57600080fd5b50610958611ef5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561099857808201518184015260208101905061097d565b50505050905090810190601f1680156109c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109df57600080fd5b50610a14600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f93565b6040518082815260200191505060405180910390f35b348015610a3657600080fd5b50610a3f611fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a7f578082015181840152602081019050610a64565b50505050905090810190601f168015610aac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ac657600080fd5b50610afb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612062565b604051808215151515815260200191505060405180910390f35b348015610b2157600080fd5b50610b2a6120b8565b005b348015610b3857600080fd5b50610b9f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061219c565b005b348015610bad57600080fd5b50610bb66122b9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bf6578082015181840152602081019050610bdb565b50505050905090810190601f168015610c235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c3d57600080fd5b50610c72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061235b565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610cd3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124aa565b604051808215151515815260200191505060405180910390f35b348015610cf957600080fd5b50610d54600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061256c565b604051808215151515815260200191505060405180910390f35b348015610d7a57600080fd5b50610daf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061269a565b005b348015610dbd57600080fd5b50610dc661283e565b6040518082815260200191505060405180910390f35b348015610de857600080fd5b50610e43600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612848565b604051808215151515815260200191505060405180910390f35b348015610e6957600080fd5b50610ebe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061285d565b6040518082815260200191505060405180910390f35b348015610ee057600080fd5b50610f096004803603810190808035906020019092919080359060200190929190505050612871565b6040518082815260200191505060405180910390f35b348015610f2b57600080fd5b50610f58600480360381019080803590602001908201803590602001919091929391929390505050612ace565b005b348015610f6657600080fd5b50610f6f612cf1565b6040518082815260200191505060405180910390f35b348015610f9157600080fd5b50610fd0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cf7565b005b348015610fde57600080fd5b50611059600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e02565b604051808215151515815260200191505060405180910390f35b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cf57600080fd5b60001515600d60149054906101000a900460ff1615151415156110f157600080fd5b6110fa82612ed9565b151561110557600080fd5b61110e81612ed9565b151561111957600080fd5b6111586000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b151561116357600080fd5b61116c82613071565b611175816130e0565b61117d6131b5565b6111b96000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7fd220e07888d0f77e9de72a8091a24508f2e353caeb84535ef03a5d51369ee93e8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b60011515600d60149054906101000a900460ff1615151415156112d257600080fd5b6113106000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506001612f12565b151561131b57600080fd5b6000600d60146101000a81548160ff021916908315150217905550565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d05780601f106113a5576101008083540402835291602001916113d0565b820191906000526020600020905b8154815290600101906020018083116113b357829003601f168201915b5050505050905090565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561143a57600080fd5b60001515600d60149054906101000a900460ff16151514151561145c57600080fd5b61146584612ed9565b5061146f336135c0565b905082811015151561148057600080fd5b611489336135ec565b6114938484613a88565b91505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114f657600080fd5b61153183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050613b7a565b50828260405180838380828437820191505092505050604051809103902090506001151560096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561163557600060096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7f29bae56ce9ae5ab0e825fdf15a46c9741be5c31407c09950829f7d12f73564ad338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a1505050565b6000600554905090565b60008060001515600d60149054906101000a900460ff1615151415156116ee57600080fd5b6116f785612ed9565b5061170184612ed9565b5061170b856135c0565b905082811015151561171c57600080fd5b611725856135ec565b611730858585613b88565b9150509392505050565b6000806000806000898b101561175357600094506117f2565b6117668a8c613e1f90919063ffffffff16565b935061177b8787613e3890919063ffffffff16565b9250828410151561178e578794506117f2565b6117b3866117a58b8b613e1f90919063ffffffff16565b613e7090919063ffffffff16565b91506117c88785613e7090919063ffffffff16565b90506117ef896117e18385613e3890919063ffffffff16565b613e8690919063ffffffff16565b94505b505050509695505050505050565b60006020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561187457600080fd5b60001515600d60149054906101000a900460ff16151514151561189657600080fd5b61189f81612ed9565b15156118aa57600080fd5b6118e96000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b15156118f457600080fd5b6118fd816130e0565b6119056131b5565b6119416000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f3630096a7f9a158ab9fae41e86bfe31fd2202585a26a9668242672566dae028d81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2f57600080fd5b60001515600d60149054906101000a900460ff161515141515611a5157600080fd5b600082111515611a6057600080fd5b611a9f6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b1515611aaa57600080fd5b600a54905081600a81905550611af26000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f54f7348cdd7784993530bea78eaac4850e302c25150d79711738c4b926161dda81600a54604051808381526020018281526020019250505060405180910390a15050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611b9157600080fd5b60001515600d60149054906101000a900460ff161515141515611bb357600080fd5b611bef6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515611bfa57600080fd5b600090505b8251811015611c4d57611c408382815181101515611c1957fe5b906020019060200201518383815181101515611c3157fe5b90602001906020020151613ea2565b8080600101915050611bff565b611c896000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611cdc57fe5b9060005260206000209060060201600501549050919050565b6001602052816000526040600020602052806000526040600020600091509150505481565b600d60149054906101000a900460ff1681565b6000600780549050905090565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611d9457600080fd5b60001515600d60149054906101000a900460ff161515141515611db657600080fd5b611df26000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515611dfd57600080fd5b600090505b8651811015611eb057611ea38782815181101515611e1c57fe5b906020019060200201518783815181101515611e3457fe5b906020019060200201518784815181101515611e4c57fe5b906020019060200201518785815181101515611e6457fe5b906020019060200201518786815181101515611e7c57fe5b906020019060200201518787815181101515611e9457fe5b906020019060200201516140e1565b8080600101915050611e02565b611eec6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b50505050505050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f8b5780601f10611f6057610100808354040283529160200191611f8b565b820191906000526020600020905b815481529060010190602001808311611f6e57829003601f168201915b505050505081565b600080611f9f8361235b565b9050611fbc611fad84614390565b82613e8690919063ffffffff16565b915050919050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b505050505081565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211457600080fd5b60001515600d60149054906101000a900460ff16151514151561213657600080fd5b6121746000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506001612f12565b151561217f57600080fd5b6001600d60146101000a81548160ff021916908315150217905550565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121f457600080fd5b60001515600d60149054906101000a900460ff16151514151561221657600080fd5b61221f86612ed9565b5061225c6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b151561226757600080fd5b6122758686868686866140e1565b6122b16000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b505050505050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123515780601f1061232657610100808354040283529160200191612351565b820191906000526020600020905b81548152906001019060200180831161233457829003601f168201915b5050505050905090565b6000806000809150600090505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156124a057612491612482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561240457fe5b906000526020600020906006020160050154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561246257fe5b906000526020600020906006020160020154613e1f90919063ffffffff16565b83613e8690919063ffffffff16565b91508080600101915050612368565b8192505050919050565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561250a57600080fd5b60001515600d60149054906101000a900460ff16151514151561252c57600080fd5b61253584612ed9565b5061253f336135c0565b905082811015151561255057600080fd5b612559336135ec565b61256384846143d8565b91505092915050565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156125c757600080fd5b826040518082805190602001908083835b6020831015156125fd57805182526020820191506020810190506020830392506125d8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060096000826000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126f657600080fd5b60001515600d60149054906101000a900460ff16151514151561271857600080fd5b61272181612ed9565b151561272c57600080fd5b61276b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b151561277657600080fd5b600b5460078054905011151561278b57600080fd5b61279481613071565b61279c6131b5565b6127d86000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f1e25ed4cabec84d314dc176241019653f237da01f2bdd3a10cb0f38b33da676381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600a54905090565b600061285682600a54612f12565b9050919050565b6000612869838361452e565b905092915050565b600080612a5384600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156128c457fe5b906000526020600020906006020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561292257fe5b906000526020600020906006020160010154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561298057fe5b906000526020600020906006020160020154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156129de57fe5b906000526020600020906006020160030154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002089815481101515612a3c57fe5b90600052602060002090600602016004015461173a565b9050612ac5600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612aa457fe5b90600052602060002090600602016005015482613e1f90919063ffffffff16565b91505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612b2857600080fd5b612b6383838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050613b7a565b50828260405180838380828437820191505092505050604051809103902090506000151560096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612c6757600160096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7f38c05f29d828729711b9543dbd38ccdca2ad37ac7051ea119b9403c1dccb7fec338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a1505050565b60055481565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4f57600080fd5b60001515600d60149054906101000a900460ff161515141515612d7157600080fd5b612dad6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515612db857600080fd5b612dc28282613ea2565b612dfe6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b5050565b600080836040518082805190602001908083835b602083101515612e3b5780518252602082019150602081019050602083039250612e16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060096000826000191660001916815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600080856040518082805190602001908083835b602083101515612f4e5780518252602082019150602081019050602083039250612f29565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925060009150600090505b60078054905081101561306257600115156009600085600019166000191681526020019081526020016000206000600784815481101515612fc357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561305557613052600183613e8690919063ffffffff16565b91505b8080600101915050612f86565b84821015935050505092915050565b61307a81612ed9565b151561308557600080fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6130e981612ed9565b15156130f457600080fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606000806000806007805490506040519080825280602002602001820160405280156131f15781602001602082028038833980820191505090505b509450600093505b6007805490508410156132a4576000600e600060078781548110151561321b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083806001019450506131f9565b60009250600091505b60078054905082101561345d576007828154811015156132c957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561339f575060001515600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15613450578085848151811015156133b357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082806001019350505b81806001019250506132ad565b84600790805190602001906134739291906148a5565b5082600781613482919061492f565b505050505050565b600080826040518082805190602001908083835b6020831015156134c3578051825260208201915060208101905060208303925061349e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b6007805490508110156135bb576000600960008460001916600019168152602001908152602001600020600060078481548110151561353257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506134f7565b505050565b60006135e56135ce83614390565b6135d7846145b5565b613e8690919063ffffffff16565b9050919050565b60008060008060009350600092505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310156139ee57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561369157fe5b906000526020600020906006020160050154600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156136ef57fe5b906000526020600020906006020160020154141561370c576139e1565b6138ea600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561375b57fe5b906000526020600020906006020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156137b957fe5b906000526020600020906006020160010154600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561381757fe5b906000526020600020906006020160020154600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561387557fe5b906000526020600020906006020160030154600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156138d357fe5b90600052602060002090600602016004015461488a565b915061395c600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561393b57fe5b90600052602060002090600602016005015483613e1f90919063ffffffff16565b90506000811015156139e05781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156139b557fe5b9060005260206000209060060201600501819055506139dd8185613e8690919063ffffffff16565b93505b5b82806001019350506135fb565b613a3f846000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8690919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080825114159050919050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613c585750828110155b1515613c6357600080fd5b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015613dae5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b6000828211151515613e2d57fe5b818303905092915050565b600080831415613e4b5760009050613e6a565b8183029050818382811515613e5c57fe5b04141515613e6657fe5b8090505b92915050565b60008183811515613e7d57fe5b04905092915050565b60008183019050828110151515613e9957fe5b80905092915050565b80600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f1157600080fd5b613f1a82612ed9565b1515613f2557600080fd5b613f76816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061402b81600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1f90919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f10fcc92ce3ae296b6d2813de054ab2cf2d6dd59a1eed235681bc8bf6c36a5cb7826040518082815260200191505060405180910390a25050565b82600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561415057600080fd5b82841115151561415f57600080fd5b61416886612ed9565b151561417357600080fd5b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060c060405190810160405280878152602001868152602001858152602001848152602001838152602001600081525090806001815401808255809150509060018203906000526020600020906006020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501555050506142be83600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1f90919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f2d4afe38387afa0f5d58486162a04c4e854134e75bf89e68f2a4ad38894dedac868585856040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561442757600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060009250600091505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561487f576147ec600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561465d57fe5b906000526020600020906006020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156146bb57fe5b906000526020600020906006020160010154600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561471957fe5b906000526020600020906006020160020154600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561477757fe5b906000526020600020906006020160030154600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811015156147d557fe5b90600052602060002090600602016004015461488a565b9050614870614861600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561484057fe5b90600052602060002090600602016005015483613e1f90919063ffffffff16565b84613e8690919063ffffffff16565b925081806001019250506145c4565b829350505050919050565b600061489a42878787878761173a565b905095945050505050565b82805482825590600052602060002090810192821561491e579160200282015b8281111561491d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906148c5565b5b50905061492b919061495b565b5090565b81548183558181111561495657818360005260206000209182019101614955919061499e565b5b505050565b61499b91905b8082111561499757600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101614961565b5090565b90565b6149c091905b808211156149bc5760008160009055506001016149a4565b5090565b905600a165627a7a72305820c0dcfc92348d5a37eafd74a4811f533ec0fe460d035b32fd9848b55d124ae8f90029000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb20000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
Deployed Bytecode
0x6080604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301d8715f146101dd578063046f7da21461024057806306fdde0314610257578063095ea7b3146102e75780630b467b9b1461034c57806318160ddd1461038757806323b872dd146103b2578063246275471461043757806327e235e3146104aa5780632d06177a14610501578063313ce567146105445780633b97e856146105755780633d4ba37a146105a65780635a778cf9146105d35780635bfdab261461067c5780635c658165146106bd5780635c975abb146107345780636308ae65146107635780636b5396dc1461078e5780636c02a9311461094357806370a08231146109d35780637b61c32014610a2a5780637c2b606a14610aba5780638456cb5914610b155780638d01229514610b2c57806395d89b4114610ba1578063a4bad0ae14610c31578063a9059cbb14610c88578063aa95484514610ced578063ac18de4314610d6e578063b43716a014610db1578063cb1e438914610ddc578063dd62ed3e14610e5d578063eb1fa69014610ed4578063f2ddc77214610f1f578063f7abab9e14610f5a578063f8a34b2614610f85578063fafd6bcb14610fd2575b600080fd5b3480156101e957600080fd5b5061023e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611073565b005b34801561024c57600080fd5b50610255611254565b005b34801561026357600080fd5b5061026c611338565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ac578082015181840152602081019050610291565b50505050905090810190601f1680156102d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113da565b604051808215151515815260200191505060405180910390f35b34801561035857600080fd5b5061038560048036038101908080359060200190820180359060200191909192939192939050505061149c565b005b34801561039357600080fd5b5061039c6116bf565b6040518082815260200191505060405180910390f35b3480156103be57600080fd5b5061041d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116c9565b604051808215151515815260200191505060405180910390f35b34801561044357600080fd5b5061049460048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061173a565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611800565b6040518082815260200191505060405180910390f35b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611818565b005b34801561055057600080fd5b506105596119a7565b604051808260ff1660ff16815260200191505060405180910390f35b34801561058157600080fd5b5061058a6119be565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105b257600080fd5b506105d1600480360381019080803590602001909291905050506119d1565b005b3480156105df57600080fd5b5061067a6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611b37565b005b34801561068857600080fd5b506106a760048036038101908080359060200190929190505050611c8e565b6040518082815260200191505060405180910390f35b3480156106c957600080fd5b5061071e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf5565b6040518082815260200191505060405180910390f35b34801561074057600080fd5b50610749611d1a565b604051808215151515815260200191505060405180910390f35b34801561076f57600080fd5b50610778611d2d565b6040518082815260200191505060405180910390f35b34801561079a57600080fd5b50610941600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611d3a565b005b34801561094f57600080fd5b50610958611ef5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561099857808201518184015260208101905061097d565b50505050905090810190601f1680156109c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109df57600080fd5b50610a14600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f93565b6040518082815260200191505060405180910390f35b348015610a3657600080fd5b50610a3f611fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a7f578082015181840152602081019050610a64565b50505050905090810190601f168015610aac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ac657600080fd5b50610afb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612062565b604051808215151515815260200191505060405180910390f35b348015610b2157600080fd5b50610b2a6120b8565b005b348015610b3857600080fd5b50610b9f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061219c565b005b348015610bad57600080fd5b50610bb66122b9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bf6578082015181840152602081019050610bdb565b50505050905090810190601f168015610c235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c3d57600080fd5b50610c72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061235b565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610cd3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124aa565b604051808215151515815260200191505060405180910390f35b348015610cf957600080fd5b50610d54600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061256c565b604051808215151515815260200191505060405180910390f35b348015610d7a57600080fd5b50610daf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061269a565b005b348015610dbd57600080fd5b50610dc661283e565b6040518082815260200191505060405180910390f35b348015610de857600080fd5b50610e43600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612848565b604051808215151515815260200191505060405180910390f35b348015610e6957600080fd5b50610ebe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061285d565b6040518082815260200191505060405180910390f35b348015610ee057600080fd5b50610f096004803603810190808035906020019092919080359060200190929190505050612871565b6040518082815260200191505060405180910390f35b348015610f2b57600080fd5b50610f58600480360381019080803590602001908201803590602001919091929391929390505050612ace565b005b348015610f6657600080fd5b50610f6f612cf1565b6040518082815260200191505060405180910390f35b348015610f9157600080fd5b50610fd0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cf7565b005b348015610fde57600080fd5b50611059600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e02565b604051808215151515815260200191505060405180910390f35b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110cf57600080fd5b60001515600d60149054906101000a900460ff1615151415156110f157600080fd5b6110fa82612ed9565b151561110557600080fd5b61110e81612ed9565b151561111957600080fd5b6111586000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b151561116357600080fd5b61116c82613071565b611175816130e0565b61117d6131b5565b6111b96000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7fd220e07888d0f77e9de72a8091a24508f2e353caeb84535ef03a5d51369ee93e8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b60011515600d60149054906101000a900460ff1615151415156112d257600080fd5b6113106000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506001612f12565b151561131b57600080fd5b6000600d60146101000a81548160ff021916908315150217905550565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d05780601f106113a5576101008083540402835291602001916113d0565b820191906000526020600020905b8154815290600101906020018083116113b357829003601f168201915b5050505050905090565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561143a57600080fd5b60001515600d60149054906101000a900460ff16151514151561145c57600080fd5b61146584612ed9565b5061146f336135c0565b905082811015151561148057600080fd5b611489336135ec565b6114938484613a88565b91505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114f657600080fd5b61153183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050613b7a565b50828260405180838380828437820191505092505050604051809103902090506001151560096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561163557600060096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7f29bae56ce9ae5ab0e825fdf15a46c9741be5c31407c09950829f7d12f73564ad338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a1505050565b6000600554905090565b60008060001515600d60149054906101000a900460ff1615151415156116ee57600080fd5b6116f785612ed9565b5061170184612ed9565b5061170b856135c0565b905082811015151561171c57600080fd5b611725856135ec565b611730858585613b88565b9150509392505050565b6000806000806000898b101561175357600094506117f2565b6117668a8c613e1f90919063ffffffff16565b935061177b8787613e3890919063ffffffff16565b9250828410151561178e578794506117f2565b6117b3866117a58b8b613e1f90919063ffffffff16565b613e7090919063ffffffff16565b91506117c88785613e7090919063ffffffff16565b90506117ef896117e18385613e3890919063ffffffff16565b613e8690919063ffffffff16565b94505b505050509695505050505050565b60006020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561187457600080fd5b60001515600d60149054906101000a900460ff16151514151561189657600080fd5b61189f81612ed9565b15156118aa57600080fd5b6118e96000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b15156118f457600080fd5b6118fd816130e0565b6119056131b5565b6119416000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f3630096a7f9a158ab9fae41e86bfe31fd2202585a26a9668242672566dae028d81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2f57600080fd5b60001515600d60149054906101000a900460ff161515141515611a5157600080fd5b600082111515611a6057600080fd5b611a9f6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b1515611aaa57600080fd5b600a54905081600a81905550611af26000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f54f7348cdd7784993530bea78eaac4850e302c25150d79711738c4b926161dda81600a54604051808381526020018281526020019250505060405180910390a15050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611b9157600080fd5b60001515600d60149054906101000a900460ff161515141515611bb357600080fd5b611bef6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515611bfa57600080fd5b600090505b8251811015611c4d57611c408382815181101515611c1957fe5b906020019060200201518383815181101515611c3157fe5b90602001906020020151613ea2565b8080600101915050611bff565b611c896000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611cdc57fe5b9060005260206000209060060201600501549050919050565b6001602052816000526040600020602052806000526040600020600091509150505481565b600d60149054906101000a900460ff1681565b6000600780549050905090565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611d9457600080fd5b60001515600d60149054906101000a900460ff161515141515611db657600080fd5b611df26000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515611dfd57600080fd5b600090505b8651811015611eb057611ea38782815181101515611e1c57fe5b906020019060200201518783815181101515611e3457fe5b906020019060200201518784815181101515611e4c57fe5b906020019060200201518785815181101515611e6457fe5b906020019060200201518786815181101515611e7c57fe5b906020019060200201518787815181101515611e9457fe5b906020019060200201516140e1565b8080600101915050611e02565b611eec6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b50505050505050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f8b5780601f10611f6057610100808354040283529160200191611f8b565b820191906000526020600020905b815481529060010190602001808311611f6e57829003601f168201915b505050505081565b600080611f9f8361235b565b9050611fbc611fad84614390565b82613e8690919063ffffffff16565b915050919050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561205a5780601f1061202f5761010080835404028352916020019161205a565b820191906000526020600020905b81548152906001019060200180831161203d57829003601f168201915b505050505081565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211457600080fd5b60001515600d60149054906101000a900460ff16151514151561213657600080fd5b6121746000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506001612f12565b151561217f57600080fd5b6001600d60146101000a81548160ff021916908315150217905550565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121f457600080fd5b60001515600d60149054906101000a900460ff16151514151561221657600080fd5b61221f86612ed9565b5061225c6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b151561226757600080fd5b6122758686868686866140e1565b6122b16000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b505050505050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123515780601f1061232657610100808354040283529160200191612351565b820191906000526020600020905b81548152906001019060200180831161233457829003601f168201915b5050505050905090565b6000806000809150600090505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156124a057612491612482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561240457fe5b906000526020600020906006020160050154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561246257fe5b906000526020600020906006020160020154613e1f90919063ffffffff16565b83613e8690919063ffffffff16565b91508080600101915050612368565b8192505050919050565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561250a57600080fd5b60001515600d60149054906101000a900460ff16151514151561252c57600080fd5b61253584612ed9565b5061253f336135c0565b905082811015151561255057600080fd5b612559336135ec565b61256384846143d8565b91505092915050565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156125c757600080fd5b826040518082805190602001908083835b6020831015156125fd57805182526020820191506020810190506020830392506125d8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060096000826000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126f657600080fd5b60001515600d60149054906101000a900460ff16151514151561271857600080fd5b61272181612ed9565b151561272c57600080fd5b61276b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600b54612f12565b151561277657600080fd5b600b5460078054905011151561278b57600080fd5b61279481613071565b61279c6131b5565b6127d86000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b7f1e25ed4cabec84d314dc176241019653f237da01f2bdd3a10cb0f38b33da676381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600a54905090565b600061285682600a54612f12565b9050919050565b6000612869838361452e565b905092915050565b600080612a5384600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156128c457fe5b906000526020600020906006020160000154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561292257fe5b906000526020600020906006020160010154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561298057fe5b906000526020600020906006020160020154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156129de57fe5b906000526020600020906006020160030154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002089815481101515612a3c57fe5b90600052602060002090600602016004015461173a565b9050612ac5600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612aa457fe5b90600052602060002090600602016005015482613e1f90919063ffffffff16565b91505092915050565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612b2857600080fd5b612b6383838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050613b7a565b50828260405180838380828437820191505092505050604051809103902090506000151560096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612c6757600160096000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7f38c05f29d828729711b9543dbd38ccdca2ad37ac7051ea119b9403c1dccb7fec338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a1505050565b60055481565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4f57600080fd5b60001515600d60149054906101000a900460ff161515141515612d7157600080fd5b612dad6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612848565b1515612db857600080fd5b612dc28282613ea2565b612dfe6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061348a565b5050565b600080836040518082805190602001908083835b602083101515612e3b5780518252602082019150602081019050602083039250612e16565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060096000826000191660001916815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600080856040518082805190602001908083835b602083101515612f4e5780518252602082019150602081019050602083039250612f29565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925060009150600090505b60078054905081101561306257600115156009600085600019166000191681526020019081526020016000206000600784815481101515612fc357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561305557613052600183613e8690919063ffffffff16565b91505b8080600101915050612f86565b84821015935050505092915050565b61307a81612ed9565b151561308557600080fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6130e981612ed9565b15156130f457600080fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606000806000806007805490506040519080825280602002602001820160405280156131f15781602001602082028038833980820191505090505b509450600093505b6007805490508410156132a4576000600e600060078781548110151561321b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083806001019450506131f9565b60009250600091505b60078054905082101561345d576007828154811015156132c957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561339f575060001515600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15613450578085848151811015156133b357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082806001019350505b81806001019250506132ad565b84600790805190602001906134739291906148a5565b5082600781613482919061492f565b505050505050565b600080826040518082805190602001908083835b6020831015156134c3578051825260208201915060208101905060208303925061349e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b6007805490508110156135bb576000600960008460001916600019168152602001908152602001600020600060078481548110151561353257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506134f7565b505050565b60006135e56135ce83614390565b6135d7846145b5565b613e8690919063ffffffff16565b9050919050565b60008060008060009350600092505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310156139ee57600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561369157fe5b906000526020600020906006020160050154600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156136ef57fe5b906000526020600020906006020160020154141561370c576139e1565b6138ea600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561375b57fe5b906000526020600020906006020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156137b957fe5b906000526020600020906006020160010154600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561381757fe5b906000526020600020906006020160020154600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561387557fe5b906000526020600020906006020160030154600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156138d357fe5b90600052602060002090600602016004015461488a565b915061395c600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561393b57fe5b90600052602060002090600602016005015483613e1f90919063ffffffff16565b90506000811015156139e05781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156139b557fe5b9060005260206000209060060201600501819055506139dd8185613e8690919063ffffffff16565b93505b5b82806001019350506135fb565b613a3f846000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8690919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080825114159050919050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613c585750828110155b1515613c6357600080fd5b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015613dae5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b6000828211151515613e2d57fe5b818303905092915050565b600080831415613e4b5760009050613e6a565b8183029050818382811515613e5c57fe5b04141515613e6657fe5b8090505b92915050565b60008183811515613e7d57fe5b04905092915050565b60008183019050828110151515613e9957fe5b80905092915050565b80600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f1157600080fd5b613f1a82612ed9565b1515613f2557600080fd5b613f76816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e8690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061402b81600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1f90919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f10fcc92ce3ae296b6d2813de054ab2cf2d6dd59a1eed235681bc8bf6c36a5cb7826040518082815260200191505060405180910390a25050565b82600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561415057600080fd5b82841115151561415f57600080fd5b61416886612ed9565b151561417357600080fd5b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060c060405190810160405280878152602001868152602001858152602001848152602001838152602001600081525090806001815401808255809150509060018203906000526020600020906006020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501555050506142be83600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1f90919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167f2d4afe38387afa0f5d58486162a04c4e854134e75bf89e68f2a4ad38894dedac868585856040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561442757600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060009250600091505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101561487f576147ec600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561465d57fe5b906000526020600020906006020160000154600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156146bb57fe5b906000526020600020906006020160010154600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561471957fe5b906000526020600020906006020160020154600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208681548110151561477757fe5b906000526020600020906006020160030154600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811015156147d557fe5b90600052602060002090600602016004015461488a565b9050614870614861600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561484057fe5b90600052602060002090600602016005015483613e1f90919063ffffffff16565b84613e8690919063ffffffff16565b925081806001019250506145c4565b829350505050919050565b600061489a42878787878761173a565b905095945050505050565b82805482825590600052602060002090810192821561491e579160200282015b8281111561491d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906148c5565b5b50905061492b919061495b565b5090565b81548183558181111561495657818360005260206000209182019101614955919061499e565b5b505050565b61499b91905b8082111561499757600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101614961565b5090565b90565b6149c091905b808211156149bc5760008160009055506001016149a4565b5090565b905600a165627a7a72305820c0dcfc92348d5a37eafd74a4811f533ec0fe460d035b32fd9848b55d124ae8f90029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb20000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
-----Decoded View---------------
Arg [0] : _master (address): 0xa5aE2048Af02CDE6720b30B7aC17C9cb26092eB2
Arg [1] : _managers (address[]): 0xB6e44f6E5551718D1fd2AdAf8a210Fc4Fd8E74F0,0xB8DA7ec01033007ab396d27b45253882484F93fa,0xF28f8EB05252bc1E2A689CB8dB9eE7AFf5c8310c,0x9fEc6F021616e4FDDd65d03fAA6da1BBde9029C5
Arg [2] : _majorityThreshold (uint256): 3
Arg [3] : _managementThreshold (uint256): 1
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5ae2048af02cde6720b30b7ac17c9cb26092eb2
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 000000000000000000000000b6e44f6e5551718d1fd2adaf8a210fc4fd8e74f0
Arg [6] : 000000000000000000000000b8da7ec01033007ab396d27b45253882484f93fa
Arg [7] : 000000000000000000000000f28f8eb05252bc1e2a689cb8db9ee7aff5c8310c
Arg [8] : 0000000000000000000000009fec6f021616e4fddd65d03faa6da1bbde9029c5
Swarm Source
bzzr://c0dcfc92348d5a37eafd74a4811f533ec0fe460d035b32fd9848b55d124ae8f9
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.