Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
500,000,000 QCX
Holders
4,991
Transfers
-
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
QuickxProtocol
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 2019-01-22
*/
pragma solidity 0.4.24;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
// source : https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
contract ERC20 {
function totalSupply() public view returns (uint);
function balanceOf(address tokenOwner) public view returns (uint balance);
function allowance(address tokenOwner, address spender) public view returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
contract QuickxToken is ERC20 {
using SafeMath for uint;
// ------------------------------------------------------------------------
// EVENTS
// ------------------------------------------------------------------------
event LogBurn(address indexed from, uint256 amount);
event LogFreezed(address targetAddress, bool frozen);
event LogEmerygencyFreezed(bool emergencyFreezeStatus);
// ------------------------------------------------------------------------
// STATE VARIABLES
// ------------------------------------------------------------------------
string public name = "QuickX Protocol";
string public symbol = "QCX";
uint8 public decimals = 8;
address public owner;
uint public totalSupply = 500000000 * (10 ** 8);
uint public currentSupply = 250000000 * (10 ** 8); // 50% of total supply
bool public emergencyFreeze = true;
// ------------------------------------------------------------------------
// MAPPINNGS
// ------------------------------------------------------------------------
mapping (address => uint) internal balances;
mapping (address => mapping (address => uint) ) private allowed;
mapping (address => bool) private frozen;
// ------------------------------------------------------------------------
// CONSTRUCTOR
// ------------------------------------------------------------------------
constructor () public {
owner = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64);
}
// ------------------------------------------------------------------------
// MODIFIERS
// ------------------------------------------------------------------------
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier unfreezed(address _account) {
require(!frozen[_account]);
_;
}
modifier noEmergencyFreeze() {
require(!emergencyFreeze);
_;
}
// ------------------------------------------------------------------------
// Transfer Token
// ------------------------------------------------------------------------
function transfer(address _to, uint _value)
public
unfreezed(_to)
unfreezed(msg.sender)
noEmergencyFreeze()
returns (bool success) {
require(_to != 0x0);
_transfer(msg.sender, _to, _value);
return true;
}
// ------------------------------------------------------------------------
// Approve others to spend on your behalf
// RACE CONDITION HANDLED
// ------------------------------------------------------------------------
function approve(address _spender, uint _value)
public
unfreezed(_spender)
unfreezed(msg.sender)
noEmergencyFreeze()
returns (bool success) {
// To change the approve amount you first have to reduce the addresses`
// allowance to zero by calling `approve(_spender, 0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
require((_value == 0) || (allowed[msg.sender][_spender] == 0));
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function increaseApproval(address _spender, uint _addedValue)
public
unfreezed(_spender)
unfreezed(msg.sender)
noEmergencyFreeze()
returns (bool success) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval(address _spender, uint _subtractedValue)
public
unfreezed(_spender)
unfreezed(msg.sender)
noEmergencyFreeze()
returns (bool success) {
uint oldAllowance = allowed[msg.sender][_spender];
if (_subtractedValue > oldAllowance) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldAllowance.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
// ------------------------------------------------------------------------
// Transferred approved amount from other's account
// ------------------------------------------------------------------------
function transferFrom(address _from, address _to, uint _value)
public
unfreezed(_to)
unfreezed(_from)
noEmergencyFreeze()
returns (bool success) {
require(_value <= allowed[_from][msg.sender]);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
_transfer(_from, _to, _value);
return true;
}
// ------------------------------------------------------------------------
// ONLYOWNER METHODS
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Freeze account - onlyOwner
// ------------------------------------------------------------------------
function freezeAccount (address _target, bool _freeze) public onlyOwner {
require(_target != 0x0);
frozen[_target] = _freeze;
emit LogFreezed(_target, _freeze);
}
// ------------------------------------------------------------------------
// Emerygency freeze - onlyOwner
// ------------------------------------------------------------------------
function emergencyFreezeAllAccounts (bool _freeze) public onlyOwner {
emergencyFreeze = _freeze;
emit LogEmerygencyFreezed(_freeze);
}
// ------------------------------------------------------------------------
// Burn (Destroy tokens)
// ------------------------------------------------------------------------
function burn(uint256 _value) public onlyOwner returns (bool success) {
require(balances[msg.sender] >= _value);
balances[msg.sender] = balances[msg.sender].sub(_value);
totalSupply = totalSupply.sub(_value);
currentSupply = currentSupply.sub(_value);
emit LogBurn(msg.sender, _value);
return true;
}
// ------------------------------------------------------------------------
// CONSTANT METHODS
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Check Balance : Constant
// ------------------------------------------------------------------------
function balanceOf(address _tokenOwner) public view returns (uint) {
return balances[_tokenOwner];
}
// ------------------------------------------------------------------------
// Total supply : Constant
// ------------------------------------------------------------------------
function totalSupply() public view returns (uint) {
return totalSupply;
}
// ------------------------------------------------------------------------
// Check Allowance : Constant
// ------------------------------------------------------------------------
function allowance(address _tokenOwner, address _spender) public view returns (uint) {
return allowed[_tokenOwner][_spender];
}
// ------------------------------------------------------------------------
// Get Freeze Status : Constant
// ------------------------------------------------------------------------
function isFreezed(address _targetAddress) public view returns (bool) {
return frozen[_targetAddress];
}
function _transfer(address from, address to, uint amount) internal {
require(balances[from] >= amount);
uint balBeforeTransfer = balances[from].add(balances[to]);
balances[from] = balances[from].sub(amount);
balances[to] = balances[to].add(amount);
uint balAfterTransfer = balances[from].add(balances[to]);
assert(balBeforeTransfer == balAfterTransfer);
emit Transfer(from, to, amount);
}
}
contract QuickxProtocol is QuickxToken {
using SafeMath for uint;
// ------------------------------------------------------------------------
// STATE VARIABLES 00000000
// ------------------------------------------------------------------------
// 50% of totail coins will be sold in ico
uint public tokenSaleAllocation = 250000000 * (10 ** 8);
// 2% of total supply goes for bounty
uint public bountyAllocation = 10000000 * (10 ** 8);
//13% of total tokens is reserved for founders and team
uint public founderAllocation = 65000000 * (10 ** 8);
//5% of total tokens is reserved for partners
uint public partnersAllocation = 25000000 * (10 ** 8);
// 15% of total tokens is for Liquidity reserve
uint public liquidityReserveAllocation = 75000000 * (10 ** 8);
//5% of total tokens is reserved for advisors
uint public advisoryAllocation = 25000000 * (10 ** 8);
//10% of total tokens in reserved for pre-seed Inverstors
uint public preSeedInvestersAllocation = 50000000 * (10 ** 8);
uint[] public founderFunds = [
1300000000000000,
2600000000000000,
3900000000000000,
5200000000000000,
6500000000000000
]; // 8 decimals included
uint[] public advisoryFunds = [
500000000000000,
1000000000000000,
1500000000000000,
2000000000000000,
2500000000000000
];
uint public founderFundsWithdrawn = 0;
uint public advisoryFundsWithdrawn = 0;
// check allcatios
bool public bountyAllocated;
//bool public founderAllocated;
bool public partnersAllocated;
bool public liquidityReserveAllocated;
bool public preSeedInvestersAllocated;
uint public icoSuccessfulTime;
bool public isIcoSuccessful;
address public beneficiary; // address of hard wallet of admin.
// ico state variables
uint private totalRaised = 0; // total wei raised by ICO
uint private totalCoinsSold = 0; // total coins sold in ICO
uint private softCap; // soft cap target in ether
uint private hardCap; // hard cap target in ether
// rate is number of tokens (including decimals) per wei
uint private rateNum; // rate numerator (to avoid fractions) (rate = rateNum/rateDeno)
uint private rateDeno; // rate denominator (to avoid fractions) (rate = rateNum/rateDeno)
uint public tokenSaleStart; // time when token sale starts
uint public tokenSaleEnds; // time when token sale ends
bool public icoPaused; // ICO can be paused anytime
// ------------------------------------------------------------------------
// EVENTS
// ------------------------------------------------------------------------
event LogBontyAllocated(
address recepient,
uint amount);
event LogPartnersAllocated(
address recepient,
uint amount);
event LogLiquidityreserveAllocated(
address recepient,
uint amount);
event LogPreSeedInverstorsAllocated(
address recepient,
uint amount);
event LogAdvisorsAllocated(
address recepient,
uint amount);
event LogFoundersAllocated(
address indexed recepient,
uint indexed amount);
// ico events
event LogFundingReceived(
address indexed addr,
uint indexed weiRecieved,
uint indexed tokenTransferred,
uint currentTotal);
event LogRateUpdated(
uint rateNum,
uint rateDeno);
event LogPaidToOwner(
address indexed beneficiary,
uint indexed amountPaid);
event LogWithdrawnRemaining(
address _owner,
uint amountWithdrawan);
event LogIcoEndDateUpdated(
uint _oldEndDate,
uint _newEndDate);
event LogIcoSuccessful();
/* mappings */
mapping (address => uint) public contributedAmount; // amount contributed by a user
// ------------------------------------------------------------------------
// CONSTRUCTOR
// ------------------------------------------------------------------------
constructor () public {
owner = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64);
rateNum = 75;
rateDeno = 100000000;
softCap = 4000 ether;
hardCap = 30005019135500000000000 wei;
tokenSaleStart = now;
tokenSaleEnds = now;
balances[this] = currentSupply;
isIcoSuccessful = true;
icoSuccessfulTime = now;
beneficiary = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64);
emit LogIcoSuccessful();
emit Transfer(0x0, address(this), currentSupply);
}
/* Fallback function */
function () public payable {
require(msg.data.length == 0);
contribute();
}
modifier isFundRaising() {
require(
totalRaised <= hardCap &&
now >= tokenSaleStart &&
now < tokenSaleEnds &&
!icoPaused
);
_;
}
// ------------------------------------------------------------------------
// ONLY OWNER METHODS
// ------------------------------------------------------------------------
function allocateBountyTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
require(!bountyAllocated);
balances[owner] = balances[owner].add(bountyAllocation);
currentSupply = currentSupply.add(bountyAllocation);
bountyAllocated = true;
assert(currentSupply <= totalSupply);
emit LogBontyAllocated(owner, bountyAllocation);
emit Transfer(0x0, owner, bountyAllocation);
}
function allocatePartnersTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
require(!partnersAllocated);
balances[owner] = balances[owner].add(partnersAllocation);
currentSupply = currentSupply.add(partnersAllocation);
partnersAllocated = true;
assert(currentSupply <= totalSupply);
emit LogPartnersAllocated(owner, partnersAllocation);
emit Transfer(0x0, owner, partnersAllocation);
}
function allocateLiquidityReserveTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
require(!liquidityReserveAllocated);
balances[owner] = balances[owner].add(liquidityReserveAllocation);
currentSupply = currentSupply.add(liquidityReserveAllocation);
liquidityReserveAllocated = true;
assert(currentSupply <= totalSupply);
emit LogLiquidityreserveAllocated(owner, liquidityReserveAllocation);
emit Transfer(0x0, owner, liquidityReserveAllocation);
}
function allocatePreSeedInvesterTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
require(!preSeedInvestersAllocated);
balances[owner] = balances[owner].add(preSeedInvestersAllocation);
currentSupply = currentSupply.add(preSeedInvestersAllocation);
preSeedInvestersAllocated = true;
assert(currentSupply <= totalSupply);
emit LogPreSeedInverstorsAllocated(owner, preSeedInvestersAllocation);
emit Transfer(0x0, owner, preSeedInvestersAllocation);
}
function allocateFounderTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
uint calculatedFunds = calculateFoundersTokens();
uint eligibleFunds = calculatedFunds.sub(founderFundsWithdrawn);
require(eligibleFunds > 0);
balances[owner] = balances[owner].add(eligibleFunds);
currentSupply = currentSupply.add(eligibleFunds);
founderFundsWithdrawn = founderFundsWithdrawn.add(eligibleFunds);
assert(currentSupply <= totalSupply);
emit LogFoundersAllocated(owner, eligibleFunds);
emit Transfer(0x0, owner, eligibleFunds);
}
function allocateAdvisoryTokens() public onlyOwner {
require(isIcoSuccessful && icoSuccessfulTime > 0);
uint calculatedFunds = calculateAdvisoryTokens();
uint eligibleFunds = calculatedFunds.sub(advisoryFundsWithdrawn);
require(eligibleFunds > 0);
balances[owner] = balances[owner].add(eligibleFunds);
currentSupply = currentSupply.add(eligibleFunds);
advisoryFundsWithdrawn = advisoryFundsWithdrawn.add(eligibleFunds);
assert(currentSupply <= totalSupply);
emit LogAdvisorsAllocated(owner, eligibleFunds);
emit Transfer(0x0, owner, eligibleFunds);
}
// there is no explicit need of this function as funds are directly transferred to owner's hardware wallet.
// but this is kept just to avoid any case when ETH is locked in contract
function withdrawEth () public onlyOwner {
owner.transfer(address(this).balance);
emit LogPaidToOwner(owner, address(this).balance);
}
function updateRate (uint _rateNum, uint _rateDeno) public onlyOwner {
rateNum = _rateNum;
rateDeno = _rateDeno;
emit LogRateUpdated(rateNum, rateDeno);
}
function updateIcoEndDate(uint _newDate) public onlyOwner {
uint oldEndDate = tokenSaleEnds;
tokenSaleEnds = _newDate;
emit LogIcoEndDateUpdated (oldEndDate, _newDate);
}
// admin can withdraw token not sold in ICO
function withdrawUnsold() public onlyOwner returns (bool) {
require(now > tokenSaleEnds);
uint unsold = (tokenSaleAllocation.sub(totalCoinsSold));
balances[owner] = balances[owner].add(unsold);
balances[address(this)] = balances[address(this)].sub(unsold);
emit LogWithdrawnRemaining(owner, unsold);
emit Transfer(address(this), owner, unsold);
return true;
}
// ------------------------------------------------------------------------
// Owner can transfer out any accidentally sent ERC20 tokens
// ------------------------------------------------------------------------
function transferAnyERC20Token(address _tokenAddress, uint _value) public onlyOwner returns (bool success) {
// this condition is to stop admin from withdrawing funds unless all funds of ICO are successfully settelled
if (_tokenAddress == address(this)) {
require(now > tokenSaleStart + 730 days); // expecting 2 years time, all vested funds will be released.
}
return ERC20(_tokenAddress).transfer(owner, _value);
}
function pauseICO(bool pauseStatus) public onlyOwner returns (bool status) {
require(icoPaused != pauseStatus);
icoPaused = pauseStatus;
return true;
}
// ------------------------------------------------------------------------
// PUBLIC METHODS
// ------------------------------------------------------------------------
function contribute () public payable isFundRaising returns(bool) {
uint calculatedTokens = calculateTokens(msg.value);
require(calculatedTokens > 0);
require(totalCoinsSold.add(calculatedTokens) <= tokenSaleAllocation);
contributedAmount[msg.sender] = contributedAmount[msg.sender].add(msg.value);
totalRaised = totalRaised.add(msg.value);
totalCoinsSold = totalCoinsSold.add(calculatedTokens);
_transfer(address(this), msg.sender, calculatedTokens);
beneficiary.transfer(msg.value);
checkIfSoftCapReached();
emit LogFundingReceived(msg.sender, msg.value, calculatedTokens, totalRaised);
emit LogPaidToOwner(beneficiary, msg.value);
return true;
}
// ------------------------------------------------------------------------
// CONSTANT METHODS
// ------------------------------------------------------------------------
function calculateTokens(uint weisToTransfer) public view returns(uint) {
uint discount = calculateDiscount();
uint coins = weisToTransfer.mul(rateNum).mul(discount).div(100 * rateDeno);
return coins;
}
function getTotalWeiRaised () public view returns(uint totalEthRaised) {
return totalRaised;
}
function getTotalCoinsSold() public view returns(uint _coinsSold) {
return totalCoinsSold;
}
function getSoftCap () public view returns(uint _softCap) {
return softCap;
}
function getHardCap () public view returns(uint _hardCap) {
return hardCap;
}
function getContractOwner () public view returns(address contractOwner) {
return owner;
}
function isContractAcceptingPayment() public view returns (bool) {
if (totalRaised < hardCap &&
now >= tokenSaleStart &&
now < tokenSaleEnds &&
totalCoinsSold < tokenSaleAllocation)
return true;
else
return false;
}
// ------------------------------------------------------------------------
// INTERNAL METHODS
// ------------------------------------------------------------------------
function calculateFoundersTokens() internal view returns(uint) {
uint timeAferIcoSuceess = now.sub(icoSuccessfulTime);
uint timeSpendInMonths = timeAferIcoSuceess.div(30 days);
if (timeSpendInMonths >= 3 && timeSpendInMonths < 6) {
return founderFunds[0];
} else if (timeSpendInMonths >= 6 && timeSpendInMonths < 9) {
return founderFunds[1];
} else if (timeSpendInMonths >= 9 && timeSpendInMonths < 12) {
return founderFunds[2];
} else if (timeSpendInMonths >= 12 && timeSpendInMonths < 18) {
return founderFunds[3];
} else if (timeSpendInMonths >= 18) {
return founderFunds[4];
} else {
revert();
}
}
function calculateAdvisoryTokens()internal view returns(uint) {
uint timeSpentAfterIcoEnd = now.sub(icoSuccessfulTime);
uint timeSpendInMonths = timeSpentAfterIcoEnd.div(30 days);
if (timeSpendInMonths >= 0 && timeSpendInMonths < 3)
return advisoryFunds[0];
if (timeSpendInMonths < 6)
return advisoryFunds[1];
if (timeSpendInMonths < 9)
return advisoryFunds[2];
if (timeSpendInMonths < 12)
return advisoryFunds[3];
if (timeSpendInMonths >= 12)
return advisoryFunds[4];
revert();
}
function checkIfSoftCapReached() internal returns (bool) {
if (totalRaised >= softCap && !isIcoSuccessful) {
isIcoSuccessful = true;
icoSuccessfulTime = now;
emit LogIcoSuccessful();
}
return;
}
function calculateDiscount() internal view returns(uint) {
if (totalCoinsSold < 12500000000000000) {
return 115; // 15 % discount
} else if (totalCoinsSold < 18750000000000000) {
return 110; // 10 % discount
} else if (totalCoinsSold < 25000000000000000) {
return 105; // 5 % discount
} else { // this case should never arise
return 100; // 0 % discount
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"tokenSaleAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDate","type":"uint256"}],"name":"updateIcoEndDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advisoryFundsWithdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"founderFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderFundsWithdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"advisoryFunds","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":"success","type":"bool"}],"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":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateNum","type":"uint256"},{"name":"_rateDeno","type":"uint256"}],"name":"updateRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractOwner","outputs":[{"name":"contractOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalCoinsSold","outputs":[{"name":"_coinsSold","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSoftCap","outputs":[{"name":"_softCap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pauseStatus","type":"bool"}],"name":"pauseICO","outputs":[{"name":"status","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocateLiquidityReserveTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawUnsold","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocatePreSeedInvesterTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"weisToTransfer","type":"uint256"}],"name":"calculateTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_freeze","type":"bool"}],"name":"emergencyFreezeAllAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocatePartnersTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isIcoSuccessful","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_targetAddress","type":"address"}],"name":"isFreezed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateBountyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preSeedInvestersAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityReserveAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isContractAcceptingPayment","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"partnersAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalWeiRaised","outputs":[{"name":"totalEthRaised","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleEnds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateAdvisoryTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"partnersAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateFounderTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getHardCap","outputs":[{"name":"_hardCap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisoryAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoSuccessfulTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"contribute","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenOwner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"emergencyFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityReserveAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preSeedInvestersAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBontyAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogPartnersAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogLiquidityreserveAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogPreSeedInverstorsAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogAdvisorsAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"recepient","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"LogFoundersAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"weiRecieved","type":"uint256"},{"indexed":true,"name":"tokenTransferred","type":"uint256"},{"indexed":false,"name":"currentTotal","type":"uint256"}],"name":"LogFundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rateNum","type":"uint256"},{"indexed":false,"name":"rateDeno","type":"uint256"}],"name":"LogRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":true,"name":"amountPaid","type":"uint256"}],"name":"LogPaidToOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"amountWithdrawan","type":"uint256"}],"name":"LogWithdrawnRemaining","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldEndDate","type":"uint256"},{"indexed":false,"name":"_newEndDate","type":"uint256"}],"name":"LogIcoEndDateUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"LogIcoSuccessful","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"targetAddress","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"LogFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"emergencyFreezeStatus","type":"bool"}],"name":"LogEmerygencyFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
60806040526040805190810160405280600f81526020017f517569636b582050726f746f636f6c000000000000000000000000000000000081525060009080519060200190620000519291906200049f565b506040805190810160405280600381526020017f5143580000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200049f565b506008600260006101000a81548160ff021916908360ff16021790555066b1a2bc2ec500006003556658d15e176280006004556001600560006101000a81548160ff0219169083151502179055506658d15e1762800060095566038d7ea4c68000600a55661717b72f0a4000600b556608e1bc9bf04000600c55661aa535d3d0c000600d556608e1bc9bf04000600e556611c37937e08000600f5560a06040519081016040528066049e57d635400066ffffffffffffff16815260200166093cafac6a800066ffffffffffffff168152602001660ddb07829fc00066ffffffffffffff1681526020016612795f58d5000066ffffffffffffff168152602001661717b72f0a400066ffffffffffffff168152506010906005620001c492919062000526565b5060a0604051908101604052806601c6bf5263400066ffffffffffffff16815260200166038d7ea4c6800066ffffffffffffff1681526020016605543df729c00066ffffffffffffff16815260200166071afd498d000066ffffffffffffff1681526020016608e1bc9bf0400066ffffffffffffff1681525060119060056200024f92919062000526565b5060006012556000601355600060175560006018553480156200027157600080fd5b50732cf93eed42d4d0c0121f99a4abbf0d838a004f64600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732cf93eed42d4d0c0121f99a4abbf0d838a004f64600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604b601b819055506305f5e100601c8190555068d8d726b7177a80000060198190555069065a9349ea5523cd7800601a8190555042601d8190555042601e81905550600454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601660006101000a81548160ff02191690831515021790555042601581905550732cf93eed42d4d0c0121f99a4abbf0d838a004f64601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a13073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3620005ab565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e257805160ff191683800117855562000513565b8280016001018555821562000513579182015b8281111562000512578251825591602001919060010190620004f5565b5b50905062000522919062000583565b5090565b82805482825590600052602060002090810192821562000570579160200282015b828111156200056f578251829066ffffffffffffff1690559160200191906001019062000547565b5b5090506200057f919062000583565b5090565b620005a891905b80821115620005a45760008160009055506001016200058a565b5090565b90565b61482880620005bb6000396000f3006080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630459bb1d146102e757806306fdde0314610312578063095ea7b3146103a25780630a1fdc1e14610407578063132714aa14610434578063150b56351461045f57806317811af5146104a057806318160ddd146104cb5780631bc59aa6146104f6578063239b1f541461052557806323b872dd14610566578063313ce567146105eb57806338af3eed1461061c5780633b278f2a14610673578063403911a6146106a2578063405abb41146106cd57806342966c6814610704578063442890d5146107495780634a1d0e6f146107a05780634d52a512146107cb5780634f2f1af9146107f657806359d96a7e1461083d57806361d6d3851461085457806366188463146108835780637080e99f146108e857806370a08231146108ff57806371aa60fd14610956578063771282f6146109975780637898278f146109c257806379116c5d146109f15780637f28c44f14610a085780638111f24e14610a3757806381fcfbcc14610a92578063824338bd14610aa957806388b1c1ce14610ad45780638da5cb5b14610aff57806391cc2cc514610b5657806395d89b4114610b8557806399ed0d1714610c155780639b677edc14610c445780639f0c83f914610c73578063a0ef91df14610c9e578063a9059cbb14610cb5578063a9d2495414610d1a578063b450710214610d45578063bae5e69314610d5c578063bcfcb03e14610d87578063bf0a07bd14610d9e578063c026f58d14610dc9578063ca135a6114610df4578063d73dd62314610e1f578063d7bb99ba14610e84578063dc39d06d14610ea6578063dd62ed3e14610f0b578063e0961f1714610f82578063e724529c14610fd9578063f3d4b94214611028578063f4fc3e6f14611057578063f6b9d05d14611082578063f846eb19146110ad575b6000803690501415156102dc57600080fd5b6102e46110dc565b50005b3480156102f357600080fd5b506102fc61136d565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327611373565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036757808201518184015260208101905061034c565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ae57600080fd5b506103ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611411565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b506104326004803603810190808035906020019092919050505061166b565b005b34801561044057600080fd5b50610449611718565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b5061048a6004803603810190808035906020019092919050505061171e565b6040518082815260200191505060405180910390f35b3480156104ac57600080fd5b506104b5611741565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611747565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b611751565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b5061055060048036038101908080359060200190929190505050611764565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b506105d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611787565b604051808215151515815260200191505060405180910390f35b3480156105f757600080fd5b50610600611a0b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561062857600080fd5b50610631611a1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067f57600080fd5b50610688611a44565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611a57565b6040518082815260200191505060405180910390f35b3480156106d957600080fd5b506107026004803603810190808035906020019092919080359060200190929190505050611a5d565b005b34801561071057600080fd5b5061072f60048036038101908080359060200190929190505050611b0e565b604051808215151515815260200191505060405180910390f35b34801561075557600080fd5b5061075e611cdc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611d06565b6040518082815260200191505060405180910390f35b3480156107d757600080fd5b506107e0611d10565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b50610823600480360381019080803515159060200190929190505050611d1a565b604051808215151515815260200191505060405180910390f35b34801561084957600080fd5b50610852611dbd565b005b34801561086057600080fd5b50610869612086565b604051808215151515815260200191505060405180910390f35b34801561088f57600080fd5b506108ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b3480156108f457600080fd5b506108fd6126fb565b005b34801561090b57600080fd5b50610940600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129c4565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061098160048036038101908080359060200190929190505050612a0d565b6040518082815260200191505060405180910390f35b3480156109a357600080fd5b506109ac612a66565b6040518082815260200191505060405180910390f35b3480156109ce57600080fd5b506109ef600480360381019080803515159060200190929190505050612a6c565b005b3480156109fd57600080fd5b50610a06612b20565b005b348015610a1457600080fd5b50610a1d612de9565b604051808215151515815260200191505060405180910390f35b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfc565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610aa7612e52565b005b348015610ab557600080fd5b50610abe61311b565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae9613121565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b14613127565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b61314d565b604051808215151515815260200191505060405180910390f35b348015610b9157600080fd5b50610b9a613160565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2157600080fd5b50610c2a6131fe565b604051808215151515815260200191505060405180910390f35b348015610c5057600080fd5b50610c59613247565b604051808215151515815260200191505060405180910390f35b348015610c7f57600080fd5b50610c8861325a565b6040518082815260200191505060405180910390f35b348015610caa57600080fd5b50610cb3613264565b005b348015610cc157600080fd5b50610d00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133bf565b604051808215151515815260200191505060405180910390f35b348015610d2657600080fd5b50610d2f6134ce565b6040518082815260200191505060405180910390f35b348015610d5157600080fd5b50610d5a6134d4565b005b348015610d6857600080fd5b50610d716137ae565b6040518082815260200191505060405180910390f35b348015610d9357600080fd5b50610d9c6137b4565b005b348015610daa57600080fd5b50610db3613a67565b6040518082815260200191505060405180910390f35b348015610dd557600080fd5b50610dde613a71565b6040518082815260200191505060405180910390f35b348015610e0057600080fd5b50610e09613a77565b6040518082815260200191505060405180910390f35b348015610e2b57600080fd5b50610e6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a7d565b604051808215151515815260200191505060405180910390f35b610e8c6110dc565b604051808215151515815260200191505060405180910390f35b348015610eb257600080fd5b50610ef1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613d4b565b604051808215151515815260200191505060405180910390f35b348015610f1757600080fd5b50610f6c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613efc565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610fc3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f83565b6040518082815260200191505060405180910390f35b348015610fe557600080fd5b50611026600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613f9a565b005b34801561103457600080fd5b5061103d6140e6565b604051808215151515815260200191505060405180910390f35b34801561106357600080fd5b5061106c6140f9565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b506110976140ff565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2614105565b604051808215151515815260200191505060405180910390f35b600080601a54601754111580156110f55750601d544210155b80156111025750601e5442105b801561111b5750601f60009054906101000a900460ff16155b151561112657600080fd5b61112f34612a0d565b905060008111151561114057600080fd5b6009546111588260185461411890919063ffffffff16565b1115151561116557600080fd5b6111b734602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120f3460175461411890919063ffffffff16565b60178190555061122a8160185461411890919063ffffffff16565b60188190555061123b303383614136565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156112a3573d6000803e3d6000fd5b506112ac61444e565b5080343373ffffffffffffffffffffffffffffffffffffffff167fa73186877f0b4ccd5219831b83db2813c7b9a2dd91e43b7f238cdd41bc8b6b316017546040518082815260200191505060405180910390a434601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3600191505090565b60095481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114095780601f106113de57610100808354040283529160200191611409565b820191906000526020600020905b8154815290600101906020018083116113ec57829003601f168201915b505050505081565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561146d57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156114c757600080fd5b600560009054906101000a900460ff161515156114e357600080fd5b600084148061156e57506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561157957600080fd5b83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c957600080fd5b601e54905081601e819055507f33dd1f01879e9bccfcb3ae9d640e0a4c46721aee0287c96e1ec887b8e16595258183604051808381526020018281526020019250505060405180910390a15050565b60135481565b60108181548110151561172d57fe5b906000526020600020016000915090505481565b60125481565b6000600354905090565b601460009054906101000a900460ff1681565b60118181548110151561177357fe5b906000526020600020016000915090505481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117e357600080fd5b84600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561183d57600080fd5b600560009054906101000a900460ff1615151561185957600080fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111515156118e457600080fd5b61197384600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119fe868686614136565b6001925050509392505050565b600260009054906101000a900460ff1681565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b601d5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab957600080fd5b81601b8190555080601c819055507f1d6b5a42045a5ee15c609786566814fdea6efac4f0c041d3577b5a9ce304a525601b54601c54604051808381526020018281526020019250505060405180910390a15050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6c57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bba57600080fd5b611c0c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c64826003546144c890919063ffffffff16565b600381905550611c7f826004546144c890919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581836040518082815260200191505060405180910390a260019050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601854905090565b6000601954905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7857600080fd5b811515601f60009054906101000a900460ff16151514151515611d9a57600080fd5b81601f60006101000a81548160ff02191690831515021790555060019050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1957600080fd5b601660009054906101000a900460ff168015611e3757506000601554115b1515611e4257600080fd5b601460029054906101000a900460ff16151515611e5e57600080fd5b611ed4600d5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f50600d5460045461411890919063ffffffff16565b6004819055506001601460026101000a81548160ff02191690831515021790555060035460045411151515611f8157fe5b7f79cfa97a78f0d65b153dd45ab4cd59441c54634d8771fd00e6aec8365bc5f09a600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040518082815260200191505060405180910390a3565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e557600080fd5b601e54421115156120f557600080fd5b61210c6018546009546144c890919063ffffffff16565b90506121828160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f19c53189df303bd288346a6d153f4f28d05e891dc832e73b72b3b0ef1642357e600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b60008083600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123f557600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561244f57600080fd5b600560009054906101000a900460ff1615151561246b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925082851115612579576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260d565b61258c85846144c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275757600080fd5b601660009054906101000a900460ff16801561277557506000601554115b151561278057600080fd5b601460039054906101000a900460ff1615151561279c57600080fd5b612812600f5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288e600f5460045461411890919063ffffffff16565b6004819055506001601460036101000a81548160ff021916908315150217905550600354600454111515156128bf57fe5b7f408e353c0b43da18517f296753c7bd84650649d71e05b4e9a54a0415d62488a0600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040518082815260200191505060405180910390a3565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000612a1a6144e1565b9150612a5a601c54606402612a4c84612a3e601b548961453990919063ffffffff16565b61453990919063ffffffff16565b61457490919063ffffffff16565b90508092505050919050565b60045481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac857600080fd5b80600560006101000a81548160ff0219169083151502179055507f607a2eb5bc51cd7ff68792f9e7c49352b7be26fd0068783e323e36f9f635980681604051808215151515815260200191505060405180910390a150565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7c57600080fd5b601660009054906101000a900460ff168015612b9a57506000601554115b1515612ba557600080fd5b601460019054906101000a900460ff16151515612bc157600080fd5b612c37600c5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb3600c5460045461411890919063ffffffff16565b6004819055506001601460016101000a81548160ff02191690831515021790555060035460045411151515612ce457fe5b7fb02502445088457e4c9e503bccdcfe4e5dd8c1d41fbb2d0b1a1d94ff6261a073600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a3565b601660009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612eae57600080fd5b601660009054906101000a900460ff168015612ecc57506000601554115b1515612ed757600080fd5b601460009054906101000a900460ff16151515612ef357600080fd5b612f69600a5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fe5600a5460045461411890919063ffffffff16565b6004819055506001601460006101000a81548160ff0219169083151502179055506003546004541115151561301657fe5b7f9595a4f845fc9697f1974afc41d46cdfdb3a787f057c1d080db9044152ddca65600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a3565b600b5481565b600f5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460029054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131f65780601f106131cb576101008083540402835291602001916131f6565b820191906000526020600020905b8154815290600101906020018083116131d957829003601f168201915b505050505081565b6000601a546017541080156132155750601d544210155b80156132225750601e5442105b80156132315750600954601854105b1561323f5760019050613244565b600090505b90565b601460019054906101000a900460ff1681565b6000601754905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132c057600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561333f573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff1631600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561341b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561347557600080fd5b600560009054906101000a900460ff1615151561349157600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff16141515156134b757600080fd5b6134c2338686614136565b60019250505092915050565b601e5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561353357600080fd5b601660009054906101000a900460ff16801561355157506000601554115b151561355c57600080fd5b61356461458f565b915061357b601354836144c890919063ffffffff16565b905060008111151561358c57600080fd5b6136008160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061367a8160045461411890919063ffffffff16565b6004819055506136958160135461411890919063ffffffff16565b601381905550600354600454111515156136ab57fe5b7fbbf4e0ab9f7955cde2442d5d6dc3a80c7a35b38d90820c9b89e4748520a0a6eb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600c5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381357600080fd5b601660009054906101000a900460ff16801561383157506000601554115b151561383c57600080fd5b6138446146b2565b915061385b601254836144c890919063ffffffff16565b905060008111151561386c57600080fd5b6138e08160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061395a8160045461411890919063ffffffff16565b6004819055506139758160125461411890919063ffffffff16565b6012819055506003546004541115151561398b57fe5b80600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddfe4a1c5b60069989d419e1800e71a9806afe484ceedd1c34221379f918211e60405160405180910390a3600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601a54905090565b600e5481565b60155481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613ad957600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613b3357600080fd5b600560009054906101000a900460ff16151515613b4f57600080fd5b613bde84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613da957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613df4576303c26700601d540142111515613df357600080fd5b5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613eb957600080fd5b505af1158015613ecd573d6000803e3d6000fd5b505050506040513d6020811015613ee357600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602080528060005260406000206000915090505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ff657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415151561401c57600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600560009054906101000a900460ff1681565b600d5481565b600a5481565b601460039054906101000a900460ff1681565b600080828401905083811015151561412c57fe5b8091505092915050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561418757600080fd5b614218600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b915061426c83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061430183600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143d5600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b905080821415156143e257fe5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000601954601754101580156144715750601660009054906101000a900460ff16155b156144c5576001601660006101000a81548160ff021916908315150217905550426015819055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a15b90565b60008282111515156144d657fe5b818303905092915050565b6000662c68af0bb1400060185410156144fd5760739050614536565b66429d069189e000601854101561451757606e9050614536565b6658d15e1762800060185410156145315760699050614536565b606490505b90565b600080600084141561454e576000915061456d565b828402905082848281151561455f57fe5b0414151561456957fe5b8091505b5092915050565b600080828481151561458257fe5b0490508091505092915050565b60008060006145a9601554426144c890919063ffffffff16565b91506145c162278d008361457490919063ffffffff16565b9050600081101580156145d45750600381105b156145fb57601160008154811015156145e957fe5b906000526020600020015492506146ad565b6006811015614626576011600181548110151561461457fe5b906000526020600020015492506146ad565b6009811015614651576011600281548110151561463f57fe5b906000526020600020015492506146ad565b600c81101561467c576011600381548110151561466a57fe5b906000526020600020015492506146ad565b600c811015156146a8576011600481548110151561469657fe5b906000526020600020015492506146ad565b600080fd5b505090565b60008060006146cc601554426144c890919063ffffffff16565b91506146e462278d008361457490919063ffffffff16565b9050600381101580156146f75750600681105b1561471e576010600081548110151561470c57fe5b906000526020600020015492506147f7565b6006811015801561472f5750600981105b15614756576010600181548110151561474457fe5b906000526020600020015492506147f7565b600981101580156147675750600c81105b1561478e576010600281548110151561477c57fe5b906000526020600020015492506147f7565b600c811015801561479f5750601281105b156147c657601060038154811015156147b457fe5b906000526020600020015492506147f7565b6012811015156147f257601060048154811015156147e057fe5b906000526020600020015492506147f7565b600080fd5b5050905600a165627a7a7230582095b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac440029
Deployed Bytecode
0x6080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630459bb1d146102e757806306fdde0314610312578063095ea7b3146103a25780630a1fdc1e14610407578063132714aa14610434578063150b56351461045f57806317811af5146104a057806318160ddd146104cb5780631bc59aa6146104f6578063239b1f541461052557806323b872dd14610566578063313ce567146105eb57806338af3eed1461061c5780633b278f2a14610673578063403911a6146106a2578063405abb41146106cd57806342966c6814610704578063442890d5146107495780634a1d0e6f146107a05780634d52a512146107cb5780634f2f1af9146107f657806359d96a7e1461083d57806361d6d3851461085457806366188463146108835780637080e99f146108e857806370a08231146108ff57806371aa60fd14610956578063771282f6146109975780637898278f146109c257806379116c5d146109f15780637f28c44f14610a085780638111f24e14610a3757806381fcfbcc14610a92578063824338bd14610aa957806388b1c1ce14610ad45780638da5cb5b14610aff57806391cc2cc514610b5657806395d89b4114610b8557806399ed0d1714610c155780639b677edc14610c445780639f0c83f914610c73578063a0ef91df14610c9e578063a9059cbb14610cb5578063a9d2495414610d1a578063b450710214610d45578063bae5e69314610d5c578063bcfcb03e14610d87578063bf0a07bd14610d9e578063c026f58d14610dc9578063ca135a6114610df4578063d73dd62314610e1f578063d7bb99ba14610e84578063dc39d06d14610ea6578063dd62ed3e14610f0b578063e0961f1714610f82578063e724529c14610fd9578063f3d4b94214611028578063f4fc3e6f14611057578063f6b9d05d14611082578063f846eb19146110ad575b6000803690501415156102dc57600080fd5b6102e46110dc565b50005b3480156102f357600080fd5b506102fc61136d565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327611373565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036757808201518184015260208101905061034c565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ae57600080fd5b506103ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611411565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b506104326004803603810190808035906020019092919050505061166b565b005b34801561044057600080fd5b50610449611718565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b5061048a6004803603810190808035906020019092919050505061171e565b6040518082815260200191505060405180910390f35b3480156104ac57600080fd5b506104b5611741565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611747565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b611751565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b5061055060048036038101908080359060200190929190505050611764565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b506105d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611787565b604051808215151515815260200191505060405180910390f35b3480156105f757600080fd5b50610600611a0b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561062857600080fd5b50610631611a1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067f57600080fd5b50610688611a44565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611a57565b6040518082815260200191505060405180910390f35b3480156106d957600080fd5b506107026004803603810190808035906020019092919080359060200190929190505050611a5d565b005b34801561071057600080fd5b5061072f60048036038101908080359060200190929190505050611b0e565b604051808215151515815260200191505060405180910390f35b34801561075557600080fd5b5061075e611cdc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611d06565b6040518082815260200191505060405180910390f35b3480156107d757600080fd5b506107e0611d10565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b50610823600480360381019080803515159060200190929190505050611d1a565b604051808215151515815260200191505060405180910390f35b34801561084957600080fd5b50610852611dbd565b005b34801561086057600080fd5b50610869612086565b604051808215151515815260200191505060405180910390f35b34801561088f57600080fd5b506108ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b3480156108f457600080fd5b506108fd6126fb565b005b34801561090b57600080fd5b50610940600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129c4565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061098160048036038101908080359060200190929190505050612a0d565b6040518082815260200191505060405180910390f35b3480156109a357600080fd5b506109ac612a66565b6040518082815260200191505060405180910390f35b3480156109ce57600080fd5b506109ef600480360381019080803515159060200190929190505050612a6c565b005b3480156109fd57600080fd5b50610a06612b20565b005b348015610a1457600080fd5b50610a1d612de9565b604051808215151515815260200191505060405180910390f35b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfc565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610aa7612e52565b005b348015610ab557600080fd5b50610abe61311b565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae9613121565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b14613127565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b61314d565b604051808215151515815260200191505060405180910390f35b348015610b9157600080fd5b50610b9a613160565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2157600080fd5b50610c2a6131fe565b604051808215151515815260200191505060405180910390f35b348015610c5057600080fd5b50610c59613247565b604051808215151515815260200191505060405180910390f35b348015610c7f57600080fd5b50610c8861325a565b6040518082815260200191505060405180910390f35b348015610caa57600080fd5b50610cb3613264565b005b348015610cc157600080fd5b50610d00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133bf565b604051808215151515815260200191505060405180910390f35b348015610d2657600080fd5b50610d2f6134ce565b6040518082815260200191505060405180910390f35b348015610d5157600080fd5b50610d5a6134d4565b005b348015610d6857600080fd5b50610d716137ae565b6040518082815260200191505060405180910390f35b348015610d9357600080fd5b50610d9c6137b4565b005b348015610daa57600080fd5b50610db3613a67565b6040518082815260200191505060405180910390f35b348015610dd557600080fd5b50610dde613a71565b6040518082815260200191505060405180910390f35b348015610e0057600080fd5b50610e09613a77565b6040518082815260200191505060405180910390f35b348015610e2b57600080fd5b50610e6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a7d565b604051808215151515815260200191505060405180910390f35b610e8c6110dc565b604051808215151515815260200191505060405180910390f35b348015610eb257600080fd5b50610ef1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613d4b565b604051808215151515815260200191505060405180910390f35b348015610f1757600080fd5b50610f6c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613efc565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610fc3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f83565b6040518082815260200191505060405180910390f35b348015610fe557600080fd5b50611026600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613f9a565b005b34801561103457600080fd5b5061103d6140e6565b604051808215151515815260200191505060405180910390f35b34801561106357600080fd5b5061106c6140f9565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b506110976140ff565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2614105565b604051808215151515815260200191505060405180910390f35b600080601a54601754111580156110f55750601d544210155b80156111025750601e5442105b801561111b5750601f60009054906101000a900460ff16155b151561112657600080fd5b61112f34612a0d565b905060008111151561114057600080fd5b6009546111588260185461411890919063ffffffff16565b1115151561116557600080fd5b6111b734602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120f3460175461411890919063ffffffff16565b60178190555061122a8160185461411890919063ffffffff16565b60188190555061123b303383614136565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156112a3573d6000803e3d6000fd5b506112ac61444e565b5080343373ffffffffffffffffffffffffffffffffffffffff167fa73186877f0b4ccd5219831b83db2813c7b9a2dd91e43b7f238cdd41bc8b6b316017546040518082815260200191505060405180910390a434601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3600191505090565b60095481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114095780601f106113de57610100808354040283529160200191611409565b820191906000526020600020905b8154815290600101906020018083116113ec57829003601f168201915b505050505081565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561146d57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156114c757600080fd5b600560009054906101000a900460ff161515156114e357600080fd5b600084148061156e57506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561157957600080fd5b83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c957600080fd5b601e54905081601e819055507f33dd1f01879e9bccfcb3ae9d640e0a4c46721aee0287c96e1ec887b8e16595258183604051808381526020018281526020019250505060405180910390a15050565b60135481565b60108181548110151561172d57fe5b906000526020600020016000915090505481565b60125481565b6000600354905090565b601460009054906101000a900460ff1681565b60118181548110151561177357fe5b906000526020600020016000915090505481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117e357600080fd5b84600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561183d57600080fd5b600560009054906101000a900460ff1615151561185957600080fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111515156118e457600080fd5b61197384600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119fe868686614136565b6001925050509392505050565b600260009054906101000a900460ff1681565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b601d5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab957600080fd5b81601b8190555080601c819055507f1d6b5a42045a5ee15c609786566814fdea6efac4f0c041d3577b5a9ce304a525601b54601c54604051808381526020018281526020019250505060405180910390a15050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6c57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bba57600080fd5b611c0c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c64826003546144c890919063ffffffff16565b600381905550611c7f826004546144c890919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581836040518082815260200191505060405180910390a260019050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601854905090565b6000601954905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7857600080fd5b811515601f60009054906101000a900460ff16151514151515611d9a57600080fd5b81601f60006101000a81548160ff02191690831515021790555060019050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1957600080fd5b601660009054906101000a900460ff168015611e3757506000601554115b1515611e4257600080fd5b601460029054906101000a900460ff16151515611e5e57600080fd5b611ed4600d5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f50600d5460045461411890919063ffffffff16565b6004819055506001601460026101000a81548160ff02191690831515021790555060035460045411151515611f8157fe5b7f79cfa97a78f0d65b153dd45ab4cd59441c54634d8771fd00e6aec8365bc5f09a600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040518082815260200191505060405180910390a3565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e557600080fd5b601e54421115156120f557600080fd5b61210c6018546009546144c890919063ffffffff16565b90506121828160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f19c53189df303bd288346a6d153f4f28d05e891dc832e73b72b3b0ef1642357e600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b60008083600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123f557600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561244f57600080fd5b600560009054906101000a900460ff1615151561246b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925082851115612579576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260d565b61258c85846144c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275757600080fd5b601660009054906101000a900460ff16801561277557506000601554115b151561278057600080fd5b601460039054906101000a900460ff1615151561279c57600080fd5b612812600f5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288e600f5460045461411890919063ffffffff16565b6004819055506001601460036101000a81548160ff021916908315150217905550600354600454111515156128bf57fe5b7f408e353c0b43da18517f296753c7bd84650649d71e05b4e9a54a0415d62488a0600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040518082815260200191505060405180910390a3565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000612a1a6144e1565b9150612a5a601c54606402612a4c84612a3e601b548961453990919063ffffffff16565b61453990919063ffffffff16565b61457490919063ffffffff16565b90508092505050919050565b60045481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac857600080fd5b80600560006101000a81548160ff0219169083151502179055507f607a2eb5bc51cd7ff68792f9e7c49352b7be26fd0068783e323e36f9f635980681604051808215151515815260200191505060405180910390a150565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7c57600080fd5b601660009054906101000a900460ff168015612b9a57506000601554115b1515612ba557600080fd5b601460019054906101000a900460ff16151515612bc157600080fd5b612c37600c5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb3600c5460045461411890919063ffffffff16565b6004819055506001601460016101000a81548160ff02191690831515021790555060035460045411151515612ce457fe5b7fb02502445088457e4c9e503bccdcfe4e5dd8c1d41fbb2d0b1a1d94ff6261a073600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a3565b601660009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612eae57600080fd5b601660009054906101000a900460ff168015612ecc57506000601554115b1515612ed757600080fd5b601460009054906101000a900460ff16151515612ef357600080fd5b612f69600a5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fe5600a5460045461411890919063ffffffff16565b6004819055506001601460006101000a81548160ff0219169083151502179055506003546004541115151561301657fe5b7f9595a4f845fc9697f1974afc41d46cdfdb3a787f057c1d080db9044152ddca65600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a3565b600b5481565b600f5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460029054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131f65780601f106131cb576101008083540402835291602001916131f6565b820191906000526020600020905b8154815290600101906020018083116131d957829003601f168201915b505050505081565b6000601a546017541080156132155750601d544210155b80156132225750601e5442105b80156132315750600954601854105b1561323f5760019050613244565b600090505b90565b601460019054906101000a900460ff1681565b6000601754905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132c057600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561333f573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff1631600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561341b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561347557600080fd5b600560009054906101000a900460ff1615151561349157600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff16141515156134b757600080fd5b6134c2338686614136565b60019250505092915050565b601e5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561353357600080fd5b601660009054906101000a900460ff16801561355157506000601554115b151561355c57600080fd5b61356461458f565b915061357b601354836144c890919063ffffffff16565b905060008111151561358c57600080fd5b6136008160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061367a8160045461411890919063ffffffff16565b6004819055506136958160135461411890919063ffffffff16565b601381905550600354600454111515156136ab57fe5b7fbbf4e0ab9f7955cde2442d5d6dc3a80c7a35b38d90820c9b89e4748520a0a6eb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600c5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381357600080fd5b601660009054906101000a900460ff16801561383157506000601554115b151561383c57600080fd5b6138446146b2565b915061385b601254836144c890919063ffffffff16565b905060008111151561386c57600080fd5b6138e08160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061395a8160045461411890919063ffffffff16565b6004819055506139758160125461411890919063ffffffff16565b6012819055506003546004541115151561398b57fe5b80600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddfe4a1c5b60069989d419e1800e71a9806afe484ceedd1c34221379f918211e60405160405180910390a3600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601a54905090565b600e5481565b60155481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613ad957600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613b3357600080fd5b600560009054906101000a900460ff16151515613b4f57600080fd5b613bde84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613da957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613df4576303c26700601d540142111515613df357600080fd5b5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613eb957600080fd5b505af1158015613ecd573d6000803e3d6000fd5b505050506040513d6020811015613ee357600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602080528060005260406000206000915090505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ff657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415151561401c57600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600560009054906101000a900460ff1681565b600d5481565b600a5481565b601460039054906101000a900460ff1681565b600080828401905083811015151561412c57fe5b8091505092915050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561418757600080fd5b614218600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b915061426c83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061430183600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143d5600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b905080821415156143e257fe5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000601954601754101580156144715750601660009054906101000a900460ff16155b156144c5576001601660006101000a81548160ff021916908315150217905550426015819055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a15b90565b60008282111515156144d657fe5b818303905092915050565b6000662c68af0bb1400060185410156144fd5760739050614536565b66429d069189e000601854101561451757606e9050614536565b6658d15e1762800060185410156145315760699050614536565b606490505b90565b600080600084141561454e576000915061456d565b828402905082848281151561455f57fe5b0414151561456957fe5b8091505b5092915050565b600080828481151561458257fe5b0490508091505092915050565b60008060006145a9601554426144c890919063ffffffff16565b91506145c162278d008361457490919063ffffffff16565b9050600081101580156145d45750600381105b156145fb57601160008154811015156145e957fe5b906000526020600020015492506146ad565b6006811015614626576011600181548110151561461457fe5b906000526020600020015492506146ad565b6009811015614651576011600281548110151561463f57fe5b906000526020600020015492506146ad565b600c81101561467c576011600381548110151561466a57fe5b906000526020600020015492506146ad565b600c811015156146a8576011600481548110151561469657fe5b906000526020600020015492506146ad565b600080fd5b505090565b60008060006146cc601554426144c890919063ffffffff16565b91506146e462278d008361457490919063ffffffff16565b9050600381101580156146f75750600681105b1561471e576010600081548110151561470c57fe5b906000526020600020015492506147f7565b6006811015801561472f5750600981105b15614756576010600181548110151561474457fe5b906000526020600020015492506147f7565b600981101580156147675750600c81105b1561478e576010600281548110151561477c57fe5b906000526020600020015492506147f7565b600c811015801561479f5750601281105b156147c657601060038154811015156147b457fe5b906000526020600020015492506147f7565b6012811015156147f257601060048154811015156147e057fe5b906000526020600020015492506147f7565b600080fd5b5050905600a165627a7a7230582095b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac440029
Swarm Source
bzzr://95b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac44
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)