Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
13,548,041.15179384537922263 TBX
Holders
650
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
599.99179502471997479 TBXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TokenboxToken
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-11-14 */ pragma solidity ^0.4.13; /// @title Abstract ERC20 token interface contract AbstractToken { function totalSupply() constant returns (uint256) {} function balanceOf(address owner) constant returns (uint256 balance); function transfer(address to, uint256 value) returns (bool success); function transferFrom(address from, address to, uint256 value) returns (bool success); function approve(address spender, uint256 value) returns (bool success); function allowance(address owner, address spender) constant returns (uint256 remaining); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Issuance(address indexed to, uint256 value); } contract Owned { address public owner = msg.sender; address public potentialOwner; modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyPotentialOwner { require(msg.sender == potentialOwner); _; } event NewOwner(address old, address current); event NewPotentialOwner(address old, address potential); function setOwner(address _new) public onlyOwner { NewPotentialOwner(owner, _new); potentialOwner = _new; } function confirmOwnership() public onlyPotentialOwner { NewOwner(owner, potentialOwner); owner = potentialOwner; potentialOwner = 0; } } /// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20 contract StandardToken is AbstractToken, Owned { /* * Data structures */ mapping (address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; uint256 public totalSupply; /* * Read and write storage functions */ /// @dev Transfers sender's tokens to a given address. Returns success. /// @param _to Address of token receiver. /// @param _value Number of tokens to transfer. function transfer(address _to, uint256 _value) returns (bool success) { if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } else { return false; } } /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success. /// @param _from Address from where tokens are withdrawn. /// @param _to Address to where tokens are sent. /// @param _value Number of tokens to transfer. function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) { balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } else { return false; } } /// @dev Returns number of tokens owned by given address. /// @param _owner Address of token owner. function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } /// @dev Sets approved amount of tokens for spender. Returns success. /// @param _spender Address of allowed account. /// @param _value Number of approved tokens. function approve(address _spender, uint256 _value) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /* * Read storage functions */ /// @dev Returns number of allowed tokens for given address. /// @param _owner Address of token owner. /// @param _spender Address of token spender. function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /// @title SafeMath contract - Math operations with safety checks. /// @author OpenZeppelin: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol contract SafeMath { function mul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function sub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function add(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c >= a); return c; } function pow(uint a, uint b) internal returns (uint) { uint c = a ** b; assert(c >= a); return c; } } /// @title Token contract - Implements Standard ERC20 with additional features. /// @author Zerion - <[email protected]> contract Token is StandardToken, SafeMath { // Time of the contract creation uint public creationTime; function Token() { creationTime = now; } /// @dev Owner can transfer out any accidentally sent ERC20 tokens function transferERC20Token(address tokenAddress) public onlyOwner returns (bool) { uint balance = AbstractToken(tokenAddress).balanceOf(this); return AbstractToken(tokenAddress).transfer(owner, balance); } /// @dev Multiplies the given number by 10^(decimals) function withDecimals(uint number, uint decimals) internal returns (uint) { return mul(number, pow(10, decimals)); } } /// @title Token contract - Implements Standard ERC20 Token for Tokenbox project. /// @author Zerion - <[email protected]> contract TokenboxToken is Token { /* * Token meta data */ string constant public name = "Tokenbox"; //TODO: Fix before production string constant public symbol = "TBX"; uint8 constant public decimals = 18; // Address where Foundation tokens are allocated address constant public foundationReserve = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; // Address where all tokens for the ICO stage are initially allocated address constant public icoAllocation = 0x1111111111111111111111111111111111111111; // Address where all tokens for the PreICO are initially allocated address constant public preIcoAllocation = 0x2222222222222222222222222222222222222222; // TGE start date. 11/14/2017 @ 12:00pm (UTC) uint256 constant public startDate = 1510660800; // TGE duration is 14 days uint256 constant public duration = 14 days; // Vesting date to withdraw 15% of total sold tokens, 11/28/2018 @ 12:00pm (UTC) uint256 constant public vestingDateEnd = 1543406400; // Total USD collected (10^-12) uint256 public totalPicoUSD = 0; uint8 constant public usdDecimals = 12; // Public key of the signer address public signer; // Foundation multisignature wallet, all Ether is collected there address public multisig; bool public finalised = false; // Events event InvestmentInETH(address investor, uint256 tokenPriceInWei, uint256 investedInWei, uint256 investedInPicoUsd, uint256 tokensNumber, bytes32 hash); event InvestmentInBTC(address investor, uint256 tokenPriceInSatoshi, uint256 investedInSatoshi, uint256 investedInPicoUsd, uint256 tokensNumber, string btcAddress); event InvestmentInUSD(address investor, uint256 tokenPriceInPicoUsd, uint256 investedInPicoUsd, uint256 tokensNumber); event PresaleInvestment(address investor, uint256 investedInPicoUsd, uint256 tokensNumber); /// @dev Contract constructor, sets totalSupply function TokenboxToken(address _signer, address _multisig, uint256 _preIcoTokens ) { // Overall, 31,000,000 TBX tokens are distributed totalSupply = withDecimals(31000000, decimals); uint preIcoTokens = withDecimals(_preIcoTokens, decimals); // PreICO tokens are allocated to the special address and will be distributed manually balances[preIcoAllocation] = preIcoTokens; // foundationReserve balance will be allocated after the end of the crowdsale balances[foundationReserve] = 0; // The rest of the tokens is available for sale (75% of totalSupply) balances[icoAllocation] = div(mul(totalSupply, 75), 100) - preIcoTokens; signer = _signer; multisig = _multisig; } modifier icoIsActive { require(now >= startDate && now < startDate + duration); _; } modifier icoIsCompleted { require(now >= startDate + duration); _; } modifier onlyOwnerOrSigner { require((msg.sender == owner) || (msg.sender == signer)); _; } /// @dev Settle an investment made in ETH and distribute tokens function invest(address investor, uint256 tokenPriceInPicoUsd, uint256 investedInWei, bytes32 hash, uint8 v, bytes32 r, bytes32 s, uint256 WeiToUSD) public icoIsActive payable { // Check the hash require(sha256(uint(investor) << 96 | tokenPriceInPicoUsd) == hash); // Check the signature require(ecrecover(hash, v, r, s) == signer); // Difference between the value argument and actual value should not be // more than 0.005 ETH (gas commission) require(sub(investedInWei, msg.value) <= withDecimals(5, 15)); uint tokenPriceInWei = div(mul(tokenPriceInPicoUsd, WeiToUSD), pow(10, usdDecimals)); // Number of tokens to distribute uint256 tokensNumber = div(withDecimals(investedInWei, decimals), tokenPriceInWei); // Check if there is enough tokens left require(balances[icoAllocation] >= tokensNumber); // Send Ether to the multisig require(multisig.send(msg.value)); uint256 investedInPicoUsd = div(withDecimals(investedInWei, usdDecimals), WeiToUSD); investInUSD(investor, investedInPicoUsd, tokensNumber); InvestmentInETH(investor, tokenPriceInWei, investedInWei, investedInPicoUsd, tokensNumber, hash); } /// @dev Settle an investment in BTC and distribute tokens. function investInBTC(address investor, uint256 tokenPriceInPicoUsd, uint256 investedInSatoshi, string btcAddress, uint256 satoshiToUSD) public icoIsActive onlyOwnerOrSigner { uint tokenPriceInSatoshi = div(mul(tokenPriceInPicoUsd, satoshiToUSD), pow(10, usdDecimals)); // Number of tokens to distribute uint256 tokensNumber = div(withDecimals(investedInSatoshi, decimals), tokenPriceInSatoshi); // Check if there is enough tokens left require(balances[icoAllocation] >= tokensNumber); uint256 investedInPicoUsd = div(withDecimals(investedInSatoshi, usdDecimals), satoshiToUSD); investInUSD(investor, investedInPicoUsd, tokensNumber); InvestmentInBTC(investor, tokenPriceInSatoshi, investedInSatoshi, investedInPicoUsd, tokensNumber, btcAddress); } // @dev Invest in USD function investInUSD(address investor, uint256 investedInPicoUsd, uint256 tokensNumber) private { totalPicoUSD = add(totalPicoUSD, investedInPicoUsd); // Allocate tokens to an investor balances[icoAllocation] -= tokensNumber; balances[investor] += tokensNumber; Transfer(icoAllocation, investor, tokensNumber); } // @dev Wire investment function wireInvestInUSD(address investor, uint256 tokenPriceInUsdCents, uint256 investedInUsdCents) public icoIsActive onlyOwnerOrSigner { uint256 tokensNumber = div(withDecimals(investedInUsdCents, decimals), tokenPriceInUsdCents); // Check if there is enough tokens left require(balances[icoAllocation] >= tokensNumber); // We subtract 2 because the value is in cents. uint256 investedInPicoUsd = withDecimals(investedInUsdCents, usdDecimals - 2); uint256 tokenPriceInPicoUsd = withDecimals(tokenPriceInUsdCents, usdDecimals - 2); investInUSD(investor, investedInPicoUsd, tokensNumber); InvestmentInUSD(investor, tokenPriceInPicoUsd, investedInPicoUsd, tokensNumber); } // @dev Presale tokens distribution function preIcoDistribution(address investor, uint256 investedInUsdCents, uint256 tokensNumber) public onlyOwner { uint256 tokensNumberWithDecimals = withDecimals(tokensNumber, decimals); // Check if there is enough tokens left require(balances[preIcoAllocation] >= tokensNumberWithDecimals); // Allocate tokens to an investor balances[preIcoAllocation] -= tokensNumberWithDecimals; balances[investor] += tokensNumberWithDecimals; Transfer(preIcoAllocation, investor, tokensNumberWithDecimals); uint256 investedInPicoUsd = withDecimals(investedInUsdCents, usdDecimals - 2); // Add investment to totalPicoUSD collected totalPicoUSD = add(totalPicoUSD, investedInPicoUsd); PresaleInvestment(investor, investedInPicoUsd, tokensNumberWithDecimals); } /// @dev Allow token withdrawals from Foundation reserve function allowToWithdrawFromReserve() public onlyOwner { require(now >= vestingDateEnd); // Allow the owner to withdraw tokens from the Foundation reserve allowed[foundationReserve][msg.sender] = balanceOf(foundationReserve); } // @dev Withdraws tokens from Foundation reserve function withdrawFromReserve(uint amount) public onlyOwner { require(now >= vestingDateEnd); // Withdraw tokens from Foundation reserve to multisig address require(transferFrom(foundationReserve, multisig, amount)); } /// @dev Changes multisig address function changeMultisig(address _multisig) public onlyOwner { multisig = _multisig; } /// @dev Changes signer address function changeSigner(address _signer) public onlyOwner { signer = _signer; } /// @dev Burns the rest of the tokens after the crowdsale end and /// send 10% tokens of totalSupply to team address function finaliseICO() public onlyOwner icoIsCompleted { require(!finalised); //total sold during ICO totalSupply = sub(totalSupply, balanceOf(icoAllocation)); totalSupply = sub(totalSupply, withDecimals(7750000, decimals)); //send 5% bounty + 7.5% of total sold tokens to team address balances[multisig] = div(mul(totalSupply, 125), 1000); //lock 12.5% of sold tokens to team address for one year balances[foundationReserve] = div(mul(totalSupply, 125), 1000); totalSupply = add(totalSupply, mul(balanceOf(foundationReserve), 2)); //burn the rest of tokens balances[icoAllocation] = 0; finalised = true; } function totalUSD() public constant returns (uint) { return div(totalPicoUSD, pow(10, usdDecimals)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"totalPicoUSD","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":"amount","type":"uint256"}],"name":"withdrawFromReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finalised","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_multisig","type":"address"}],"name":"changeMultisig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"signer","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[],"name":"finaliseICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"multisig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"transferERC20Token","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundationReserve","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdDecimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"tokenPriceInPicoUsd","type":"uint256"},{"name":"investedInSatoshi","type":"uint256"},{"name":"btcAddress","type":"string"},{"name":"satoshiToUSD","type":"uint256"}],"name":"investInBTC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"tokenPriceInPicoUsd","type":"uint256"},{"name":"investedInWei","type":"uint256"},{"name":"hash","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"WeiToUSD","type":"uint256"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"potentialOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allowToWithdrawFromReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"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":"totalUSD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_signer","type":"address"}],"name":"changeSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"tokenPriceInUsdCents","type":"uint256"},{"name":"investedInUsdCents","type":"uint256"}],"name":"wireInvestInUSD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"investedInUsdCents","type":"uint256"},{"name":"tokensNumber","type":"uint256"}],"name":"preIcoDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestingDateEnd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preIcoAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_signer","type":"address"},{"name":"_multisig","type":"address"},{"name":"_preIcoTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokenPriceInWei","type":"uint256"},{"indexed":false,"name":"investedInWei","type":"uint256"},{"indexed":false,"name":"investedInPicoUsd","type":"uint256"},{"indexed":false,"name":"tokensNumber","type":"uint256"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"InvestmentInETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokenPriceInSatoshi","type":"uint256"},{"indexed":false,"name":"investedInSatoshi","type":"uint256"},{"indexed":false,"name":"investedInPicoUsd","type":"uint256"},{"indexed":false,"name":"tokensNumber","type":"uint256"},{"indexed":false,"name":"btcAddress","type":"string"}],"name":"InvestmentInBTC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"tokenPriceInPicoUsd","type":"uint256"},{"indexed":false,"name":"investedInPicoUsd","type":"uint256"},{"indexed":false,"name":"tokensNumber","type":"uint256"}],"name":"InvestmentInUSD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"investedInPicoUsd","type":"uint256"},{"indexed":false,"name":"tokensNumber","type":"uint256"}],"name":"PresaleInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old","type":"address"},{"indexed":false,"name":"current","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old","type":"address"},{"indexed":false,"name":"potential","type":"address"}],"name":"NewPotentialOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Issuance","type":"event"}]
Contract Creation Code
6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006006556000600860146101000a81548160ff02191690831515021790555034156200007057600080fd5b60405160608062002f8483398101604052808051906020019091908051906020019091908051906020019091905050600042600581905550620000d06301d905c0601260ff16620002c16401000000000262002997176401000000009004565b600481905550620000fa82601260ff16620002c16401000000000262002997176401000000009004565b9050806002600073222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006002600073ffffffffffffffffffffffffffffffffffffffff801673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080620001dd620001c1600454604b6200030b64010000000002620029b5176401000000009004565b60646200034164010000000002620029e8176401000000009004565b036002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620003a5565b60006200030383620002e9600a85620003866401000000000262002a47176401000000009004565b6200030b64010000000002620029b5176401000000009004565b905092915050565b600080828402905060008414806200032e57508284828115156200032b57fe5b04145b15156200033757fe5b8091505092915050565b6000806000831115156200035157fe5b82848115156200035d57fe5b04905082848115156200036c57fe5b0681840201841415156200037c57fe5b8091505092915050565b60008082840a90508381101515156200039b57fe5b8091505092915050565b612bcf80620003b56000396000f3006060604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302bfeeb8146101c757806306fdde03146101f0578063095ea7b31461027e5780630a8bcdb9146102d85780630b97bc86146102fb5780630fb5a6b41461032457806313af40351461034d57806318160ddd14610386578063214bb60f146103af5780632268a358146103dc578063238ac9331461041557806323b872dd1461046a578063313ce567146104e357806339f95e63146105125780634783c35b146105275780634dc591961461057c57806356d7c2c8146105d1578063603066a41461062257806366a4b6c0146106775780636a93413d146106a65780636e3ac99f1461073d57806370a08231146107b95780637762df25146108065780638a6b9be41461085b5780638da5cb5b1461087057806395d89b41146108c5578063a3ae88a014610953578063a9059cbb1461097c578063aad2b723146109d6578063c7ccb1ea14610a0f578063c99c558014610a5a578063d5d1e77014610aa5578063d8270dce14610aba578063d8353b7514610ae3578063dd62ed3e14610b0c578063f11eb09914610b78575b600080fd5b34156101d257600080fd5b6101da610bcd565b6040518082815260200191505060405180910390f35b34156101fb57600080fd5b610203610bd3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610243578082015181840152602081019050610228565b50505050905090810190601f1680156102705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028957600080fd5b6102be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c0c565b604051808215151515815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610cfe565b005b341561030657600080fd5b61030e610dbb565b6040518082815260200191505060405180910390f35b341561032f57600080fd5b610337610dc3565b6040518082815260200191505060405180910390f35b341561035857600080fd5b610384600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dca565b005b341561039157600080fd5b610399610f21565b6040518082815260200191505060405180910390f35b34156103ba57600080fd5b6103c2610f27565b604051808215151515815260200191505060405180910390f35b34156103e757600080fd5b610413600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f3a565b005b341561042057600080fd5b610428610fd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047557600080fd5b6104c9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fff565b604051808215151515815260200191505060405180910390f35b34156104ee57600080fd5b6104f66112fa565b604051808260ff1660ff16815260200191505060405180910390f35b341561051d57600080fd5b6105256112ff565b005b341561053257600080fd5b61053a611564565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058757600080fd5b61058f61158a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105dc57600080fd5b610608600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115a2565b604051808215151515815260200191505060405180910390f35b341561062d57600080fd5b6106356117af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561068257600080fd5b61068a6117c7565b604051808260ff1660ff16815260200191505060405180910390f35b34156106b157600080fd5b61073b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506117cc565b005b6107b7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091908035906020019091905050611a67565b005b34156107c457600080fd5b6107f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dcf565b6040518082815260200191505060405180910390f35b341561081157600080fd5b610819611e18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086657600080fd5b61086e611e3e565b005b341561087b57600080fd5b610883611f4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108d057600080fd5b6108d8611f70565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109185780820151818401526020810190506108fd565b50505050905090810190601f1680156109455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561095e57600080fd5b610966611fa9565b6040518082815260200191505060405180910390f35b341561098757600080fd5b6109bc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611fca565b604051808215151515815260200191505060405180910390f35b34156109e157600080fd5b610a0d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121b2565b005b3415610a1a57600080fd5b610a58600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050612251565b005b3415610a6557600080fd5b610aa3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061245f565b005b3415610ab057600080fd5b610ab86126f5565b005b3415610ac557600080fd5b610acd6128d1565b6040518082815260200191505060405180910390f35b3415610aee57600080fd5b610af66128d7565b6040518082815260200191505060405180910390f35b3415610b1757600080fd5b610b62600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128df565b6040518082815260200191505060405180910390f35b3415610b8357600080fd5b610b8b612966565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60065481565b6040805190810160405280600881526020017f546f6b656e626f7800000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5957600080fd5b635bfe83404210151515610d6c57600080fd5b610dad73ffffffffffffffffffffffffffffffffffffffff600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fff565b1515610db857600080fd5b50565b635a0adac081565b6212750081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2557600080fd5b7f8a95addc59dddee94a894365b5c66c6c2473b7084d3fd1df9f503db4a2cd6dcc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045481565b600860149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9557600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156110cc575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156111575750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156112ee5781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506112f3565b600090505b9392505050565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135a57600080fd5b62127500635a0adac001421015151561137257600080fd5b600860149054906101000a900460ff1615151561138e57600080fd5b6113b66004546113b1731111111111111111111111111111111111111111611dcf565b61297e565b6004819055506113d86004546113d362764170601260ff16612997565b61297e565b6004819055506113f66113ee600454607d6129b5565b6103e86129e8565b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147361146b600454607d6129b5565b6103e86129e8565b6002600073ffffffffffffffffffffffffffffffffffffffff801673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114e86004546114e36114dc73ffffffffffffffffffffffffffffffffffffffff611dcf565b60026129b5565b612a29565b60048190555060006002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860146101000a81548160ff021916908315150217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73111111111111111111111111111111111111111181565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a357600080fd5b6102c65a03f115156116b457600080fd5b5050506040518051905090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561178c57600080fd5b6102c65a03f1151561179d57600080fd5b50505060405180519050915050919050565b73ffffffffffffffffffffffffffffffffffffffff81565b600c81565b6000806000635a0adac042101580156117ed575062127500635a0adac00142105b15156117f857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118a05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156118ab57600080fd5b6118cc6118b888866129b5565b6118c7600a600c60ff16612a47565b6129e8565b92506118e56118df87601260ff16612997565b846129e8565b9150816002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561194957600080fd5b61196061195a87600c60ff16612997565b856129e8565b905061196d888284612a65565b7fd73e30d68edcaf46f57313bec669121749b4e2928c2e98cd232bded2d6569fad88848884868a604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a1e578082015181840152602081019050611a03565b50505050905090810190601f168015611a4b5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050505050565b6000806000635a0adac04210158015611a88575062127500635a0adac00142105b1515611a9357600080fd5b876000191660028b60608e73ffffffffffffffffffffffffffffffffffffffff169060020a02176000604051602001526040518082815260200191505060206040518083038160008661646e5a03f11515611aed57600080fd5b50506040518051905060001916141515611b0657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600189898989604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f11515611bbd57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff16141515611be857600080fd5b611bf46005600f612997565b611bfe8a3461297e565b11151515611c0b57600080fd5b611c2c611c188b866129b5565b611c27600a600c60ff16612a47565b6129e8565b9250611c45611c3f8a601260ff16612997565b846129e8565b9150816002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611ca957600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611d0b57600080fd5b611d22611d1c8a600c60ff16612997565b856129e8565b9050611d2f8b8284612a65565b7fcb3c951de24132b3780674d63a0aefa2e2a83f07ce943397a2880f607b5fa3c38b848b84868d604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018381526020018260001916600019168152602001965050505050505060405180910390a15050505050505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9957600080fd5b635bfe83404210151515611eac57600080fd5b611ec973ffffffffffffffffffffffffffffffffffffffff611dcf565b6003600073ffffffffffffffffffffffffffffffffffffffff801673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f544258000000000000000000000000000000000000000000000000000000000081525081565b6000611fc5600654611fc0600a600c60ff16612a47565b6129e8565b905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561209a5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156121a75781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506121ac565b600090505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561220d57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000635a0adac04210158015612272575062127500635a0adac00142105b151561227d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123255750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561233057600080fd5b61234761234185601260ff16612997565b866129e8565b9250826002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156123ab57600080fd5b6123bc846002600c0360ff16612997565b91506123cf856002600c0360ff16612997565b90506123dc868385612a65565b7f938eae3834e37728fc8579189aaf02cb629d18822ea1bdbb21264d620e1e13ab86828486604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124bd57600080fd5b6124cb83601260ff16612997565b9150816002600073222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561252f57600080fd5b816002600073222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff1673222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612667846002600c0360ff16612997565b905061267560065482612a29565b6006819055507f43fca754f16e3c99f62c2e37af54a5ff17ff2b96dfbd3294dfa88bfaf85b817e858284604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275157600080fd5b7f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23646000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b635bfe834081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73222222222222222222222222222222222222222281565b600082821115151561298c57fe5b818303905092915050565b60006129ad836129a8600a85612a47565b6129b5565b905092915050565b600080828402905060008414806129d657508284828115156129d357fe5b04145b15156129de57fe5b8091505092915050565b6000806000831115156129f757fe5b8284811515612a0257fe5b0490508284811515612a1057fe5b068184020184141515612a1f57fe5b8091505092915050565b6000808284019050838110151515612a3d57fe5b8091505092915050565b60008082840a9050838110151515612a5b57fe5b8091505092915050565b612a7160065483612a29565b600681905550806002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff1673111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505600a165627a7a723058200b0698803aac3388c38734c3ea9cf2083d7f5fb90d2aade7bb8c85b64134835300290000000000000000000000009db07c8da33a2fcd6ef2e727a2ecc5198d9bc7c8000000000000000000000000ad8ea3b0215e6efd9d2f2aa22baf6d494dbf7662000000000000000000000000000000000000000000000000000000000016d32f
Deployed Bytecode
0x6060604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302bfeeb8146101c757806306fdde03146101f0578063095ea7b31461027e5780630a8bcdb9146102d85780630b97bc86146102fb5780630fb5a6b41461032457806313af40351461034d57806318160ddd14610386578063214bb60f146103af5780632268a358146103dc578063238ac9331461041557806323b872dd1461046a578063313ce567146104e357806339f95e63146105125780634783c35b146105275780634dc591961461057c57806356d7c2c8146105d1578063603066a41461062257806366a4b6c0146106775780636a93413d146106a65780636e3ac99f1461073d57806370a08231146107b95780637762df25146108065780638a6b9be41461085b5780638da5cb5b1461087057806395d89b41146108c5578063a3ae88a014610953578063a9059cbb1461097c578063aad2b723146109d6578063c7ccb1ea14610a0f578063c99c558014610a5a578063d5d1e77014610aa5578063d8270dce14610aba578063d8353b7514610ae3578063dd62ed3e14610b0c578063f11eb09914610b78575b600080fd5b34156101d257600080fd5b6101da610bcd565b6040518082815260200191505060405180910390f35b34156101fb57600080fd5b610203610bd3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610243578082015181840152602081019050610228565b50505050905090810190601f1680156102705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028957600080fd5b6102be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c0c565b604051808215151515815260200191505060405180910390f35b34156102e357600080fd5b6102f96004808035906020019091905050610cfe565b005b341561030657600080fd5b61030e610dbb565b6040518082815260200191505060405180910390f35b341561032f57600080fd5b610337610dc3565b6040518082815260200191505060405180910390f35b341561035857600080fd5b610384600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dca565b005b341561039157600080fd5b610399610f21565b6040518082815260200191505060405180910390f35b34156103ba57600080fd5b6103c2610f27565b604051808215151515815260200191505060405180910390f35b34156103e757600080fd5b610413600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f3a565b005b341561042057600080fd5b610428610fd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047557600080fd5b6104c9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fff565b604051808215151515815260200191505060405180910390f35b34156104ee57600080fd5b6104f66112fa565b604051808260ff1660ff16815260200191505060405180910390f35b341561051d57600080fd5b6105256112ff565b005b341561053257600080fd5b61053a611564565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058757600080fd5b61058f61158a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105dc57600080fd5b610608600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115a2565b604051808215151515815260200191505060405180910390f35b341561062d57600080fd5b6106356117af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561068257600080fd5b61068a6117c7565b604051808260ff1660ff16815260200191505060405180910390f35b34156106b157600080fd5b61073b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506117cc565b005b6107b7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091908035906020019091905050611a67565b005b34156107c457600080fd5b6107f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dcf565b6040518082815260200191505060405180910390f35b341561081157600080fd5b610819611e18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561086657600080fd5b61086e611e3e565b005b341561087b57600080fd5b610883611f4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108d057600080fd5b6108d8611f70565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109185780820151818401526020810190506108fd565b50505050905090810190601f1680156109455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561095e57600080fd5b610966611fa9565b6040518082815260200191505060405180910390f35b341561098757600080fd5b6109bc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611fca565b604051808215151515815260200191505060405180910390f35b34156109e157600080fd5b610a0d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121b2565b005b3415610a1a57600080fd5b610a58600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050612251565b005b3415610a6557600080fd5b610aa3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061245f565b005b3415610ab057600080fd5b610ab86126f5565b005b3415610ac557600080fd5b610acd6128d1565b6040518082815260200191505060405180910390f35b3415610aee57600080fd5b610af66128d7565b6040518082815260200191505060405180910390f35b3415610b1757600080fd5b610b62600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506128df565b6040518082815260200191505060405180910390f35b3415610b8357600080fd5b610b8b612966565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60065481565b6040805190810160405280600881526020017f546f6b656e626f7800000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5957600080fd5b635bfe83404210151515610d6c57600080fd5b610dad73ffffffffffffffffffffffffffffffffffffffff600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610fff565b1515610db857600080fd5b50565b635a0adac081565b6212750081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2557600080fd5b7f8a95addc59dddee94a894365b5c66c6c2473b7084d3fd1df9f503db4a2cd6dcc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045481565b600860149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9557600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156110cc575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156111575750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156112ee5781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506112f3565b600090505b9392505050565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135a57600080fd5b62127500635a0adac001421015151561137257600080fd5b600860149054906101000a900460ff1615151561138e57600080fd5b6113b66004546113b1731111111111111111111111111111111111111111611dcf565b61297e565b6004819055506113d86004546113d362764170601260ff16612997565b61297e565b6004819055506113f66113ee600454607d6129b5565b6103e86129e8565b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147361146b600454607d6129b5565b6103e86129e8565b6002600073ffffffffffffffffffffffffffffffffffffffff801673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114e86004546114e36114dc73ffffffffffffffffffffffffffffffffffffffff611dcf565b60026129b5565b612a29565b60048190555060006002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860146101000a81548160ff021916908315150217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73111111111111111111111111111111111111111181565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116a357600080fd5b6102c65a03f115156116b457600080fd5b5050506040518051905090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561178c57600080fd5b6102c65a03f1151561179d57600080fd5b50505060405180519050915050919050565b73ffffffffffffffffffffffffffffffffffffffff81565b600c81565b6000806000635a0adac042101580156117ed575062127500635a0adac00142105b15156117f857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118a05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156118ab57600080fd5b6118cc6118b888866129b5565b6118c7600a600c60ff16612a47565b6129e8565b92506118e56118df87601260ff16612997565b846129e8565b9150816002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561194957600080fd5b61196061195a87600c60ff16612997565b856129e8565b905061196d888284612a65565b7fd73e30d68edcaf46f57313bec669121749b4e2928c2e98cd232bded2d6569fad88848884868a604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a1e578082015181840152602081019050611a03565b50505050905090810190601f168015611a4b5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050505050565b6000806000635a0adac04210158015611a88575062127500635a0adac00142105b1515611a9357600080fd5b876000191660028b60608e73ffffffffffffffffffffffffffffffffffffffff169060020a02176000604051602001526040518082815260200191505060206040518083038160008661646e5a03f11515611aed57600080fd5b50506040518051905060001916141515611b0657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600189898989604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f11515611bbd57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff16141515611be857600080fd5b611bf46005600f612997565b611bfe8a3461297e565b11151515611c0b57600080fd5b611c2c611c188b866129b5565b611c27600a600c60ff16612a47565b6129e8565b9250611c45611c3f8a601260ff16612997565b846129e8565b9150816002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611ca957600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611d0b57600080fd5b611d22611d1c8a600c60ff16612997565b856129e8565b9050611d2f8b8284612a65565b7fcb3c951de24132b3780674d63a0aefa2e2a83f07ce943397a2880f607b5fa3c38b848b84868d604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018381526020018260001916600019168152602001965050505050505060405180910390a15050505050505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9957600080fd5b635bfe83404210151515611eac57600080fd5b611ec973ffffffffffffffffffffffffffffffffffffffff611dcf565b6003600073ffffffffffffffffffffffffffffffffffffffff801673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f544258000000000000000000000000000000000000000000000000000000000081525081565b6000611fc5600654611fc0600a600c60ff16612a47565b6129e8565b905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561209a5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401115b156121a75781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190506121ac565b600090505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561220d57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000635a0adac04210158015612272575062127500635a0adac00142105b151561227d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123255750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561233057600080fd5b61234761234185601260ff16612997565b866129e8565b9250826002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156123ab57600080fd5b6123bc846002600c0360ff16612997565b91506123cf856002600c0360ff16612997565b90506123dc868385612a65565b7f938eae3834e37728fc8579189aaf02cb629d18822ea1bdbb21264d620e1e13ab86828486604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124bd57600080fd5b6124cb83601260ff16612997565b9150816002600073222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561252f57600080fd5b816002600073222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff1673222222222222222222222222222222222222222273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612667846002600c0360ff16612997565b905061267560065482612a29565b6006819055507f43fca754f16e3c99f62c2e37af54a5ff17ff2b96dfbd3294dfa88bfaf85b817e858284604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275157600080fd5b7f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23646000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b635bfe834081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73222222222222222222222222222222222222222281565b600082821115151561298c57fe5b818303905092915050565b60006129ad836129a8600a85612a47565b6129b5565b905092915050565b600080828402905060008414806129d657508284828115156129d357fe5b04145b15156129de57fe5b8091505092915050565b6000806000831115156129f757fe5b8284811515612a0257fe5b0490508284811515612a1057fe5b068184020184141515612a1f57fe5b8091505092915050565b6000808284019050838110151515612a3d57fe5b8091505092915050565b60008082840a9050838110151515612a5b57fe5b8091505092915050565b612a7160065483612a29565b600681905550806002600073111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff1673111111111111111111111111111111111111111173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505600a165627a7a723058200b0698803aac3388c38734c3ea9cf2083d7f5fb90d2aade7bb8c85b6413483530029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009db07c8da33a2fcd6ef2e727a2ecc5198d9bc7c8000000000000000000000000ad8ea3b0215e6efd9d2f2aa22baf6d494dbf7662000000000000000000000000000000000000000000000000000000000016d32f
-----Decoded View---------------
Arg [0] : _signer (address): 0x9db07C8da33A2FCd6Ef2E727a2EcC5198d9BC7c8
Arg [1] : _multisig (address): 0xAd8eA3B0215e6efd9d2F2AA22bAF6d494DbF7662
Arg [2] : _preIcoTokens (uint256): 1495855
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000009db07c8da33a2fcd6ef2e727a2ecc5198d9bc7c8
Arg [1] : 000000000000000000000000ad8ea3b0215e6efd9d2f2aa22baf6d494dbf7662
Arg [2] : 000000000000000000000000000000000000000000000000000000000016d32f
Swarm Source
bzzr://0b0698803aac3388c38734c3ea9cf2083d7f5fb90d2aade7bb8c85b641348353
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.