Source Code
Latest 25 from a total of 1,605 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Rescue Tokens | 18422155 | 862 days ago | IN | 0 ETH | 0.00144793 | ||||
| Transfer | 11601534 | 1884 days ago | IN | 0 ETH | 0.00446138 | ||||
| Transfer | 11477236 | 1903 days ago | IN | 0 ETH | 0.00133841 | ||||
| Withdraw Ether | 11349540 | 1922 days ago | IN | 0 ETH | 0.00040459 | ||||
| Withdraw Ether | 11141036 | 1954 days ago | IN | 0 ETH | 0.00117883 | ||||
| Withdraw Ether | 11141021 | 1954 days ago | IN | 0 ETH | 0.00048285 | ||||
| Transfer | 11052699 | 1968 days ago | IN | 0 ETH | 0.00509764 | ||||
| Transfer | 10792257 | 2008 days ago | IN | 0 ETH | 0.00546 | ||||
| Transfer | 10345625 | 2077 days ago | IN | 0 ETH | 0.0008604 | ||||
| Transfer | 10171098 | 2104 days ago | IN | 0 ETH | 0.00095601 | ||||
| Transfer | 10064633 | 2121 days ago | IN | 0 ETH | 0.001155 | ||||
| Transfer | 9984295 | 2133 days ago | IN | 0 ETH | 0.00017526 | ||||
| Transfer | 9922909 | 2143 days ago | IN | 0 ETH | 0.00102558 | ||||
| Transfer | 9738343 | 2171 days ago | IN | 0 ETH | 0.00031867 | ||||
| Transfer | 9645432 | 2185 days ago | IN | 0 ETH | 0.00015933 | ||||
| Transfer | 9624904 | 2189 days ago | IN | 0 ETH | 0.00130654 | ||||
| Transfer | 9602217 | 2192 days ago | IN | 0 ETH | 0.00025493 | ||||
| Transfer | 9526350 | 2204 days ago | IN | 0 ETH | 0.00030592 | ||||
| Transfer | 9511026 | 2206 days ago | IN | 0 ETH | 0.00012746 | ||||
| Transfer | 9500640 | 2208 days ago | IN | 0 ETH | 0.00027404 | ||||
| Transfer | 9456188 | 2214 days ago | IN | 0 ETH | 0.00054697 | ||||
| Transfer | 9270271 | 2243 days ago | IN | 0 ETH | 0.00022306 | ||||
| Transfer | 9219141 | 2251 days ago | IN | 0 ETH | 0.00015933 | ||||
| Transfer | 9133568 | 2267 days ago | IN | 0 ETH | 0.0031867 | ||||
| Transfer | 9131178 | 2268 days ago | IN | 0 ETH | 0.0002868 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11349540 | 1922 days ago | 0.17730832 ETH | ||||
| - | 11145684 | 1954 days ago | 0.14184666 ETH | ||||
| - | 11145673 | 1954 days ago | 0.03546166 ETH | ||||
| - | 11141036 | 1954 days ago | 75.67056147 ETH | ||||
| - | 11052699 | 1968 days ago | 0.00406739 ETH | ||||
| - | 10636986 | 2032 days ago | 0.17730832 ETH | ||||
| - | 10636562 | 2032 days ago | 0.24823165 ETH | ||||
| - | 10566223 | 2043 days ago | 0.53192498 ETH | ||||
| - | 9922909 | 2143 days ago | 0.01177002 ETH | ||||
| - | 9456188 | 2214 days ago | 0.00198075 ETH | ||||
| - | 9098649 | 2274 days ago | 0.00094852 ETH | ||||
| - | 9098649 | 2274 days ago | 0.00134811 ETH | ||||
| - | 9094630 | 2275 days ago | 0.01035612 ETH | ||||
| - | 9094630 | 2275 days ago | 0.01471882 ETH | ||||
| - | 9094586 | 2275 days ago | 0.00181989 ETH | ||||
| - | 9094586 | 2275 days ago | 0.00258655 ETH | ||||
| - | 9094518 | 2275 days ago | 0.02593529 ETH | ||||
| - | 8978491 | 2295 days ago | 0.20117403 ETH | ||||
| - | 8978491 | 2295 days ago | 0.28592214 ETH | ||||
| - | 8978491 | 2295 days ago | 0.35557012 ETH | ||||
| - | 8784158 | 2327 days ago | 0.17730832 ETH | ||||
| - | 8757955 | 2331 days ago | 0.01616046 ETH | ||||
| - | 8757955 | 2331 days ago | 0.02296834 ETH | ||||
| - | 8721176 | 2337 days ago | 0.17730832 ETH | ||||
| - | 8713763 | 2338 days ago | 0.01883128 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VokenShareholders
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-08-22
*/
pragma solidity ^0.5.11;
// Voken Shareholders Contract for Voken2.0
//
// More info:
// https://vision.network
// https://voken.io
//
// Contact us:
// support@vision.network
// support@voken.io
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow checks.
*/
library SafeMath256 {
/**
* @dev Returns the addition of two unsigned integers, reverting on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
/**
* @title Roles
* @dev Library for managing addresses assigned to a Role.
*/
library Roles {
struct Role {
mapping (address => bool) bearer;
}
/**
* @dev Give an account access to this role.
*/
function add(Role storage role, address account) internal {
require(!has(role, account), "Roles: account already has role");
role.bearer[account] = true;
}
/**
* @dev Remove an account's access to this role.
*/
function remove(Role storage role, address account) internal {
require(has(role, account), "Roles: account does not have role");
role.bearer[account] = false;
}
/**
* @dev Check if an account has this role.
* @return bool
*/
function has(Role storage role, address account) internal view returns (bool) {
require(account != address(0), "Roles: account is the zero address");
return role.bearer[account];
}
}
/**
* @dev Interface of the ERC20 standard
*/
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @dev Interface of an allocation contract
*/
interface IAllocation {
function reservedOf(address account) external view returns (uint256);
}
/**
* @dev Interface of Voken2.0
*/
interface IVoken2 {
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function mintWithAllocation(address account, uint256 amount, address allocationContract) external returns (bool);
}
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*/
contract Ownable {
address internal _owner;
address internal _newOwner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event OwnershipAccepted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @dev Returns the addresses of the current and new owner.
*/
function owner() public view returns (address currentOwner, address newOwner) {
currentOwner = _owner;
newOwner = _newOwner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(msg.sender), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner(address account) public view returns (bool) {
return account == _owner;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*
* IMPORTANT: Need to run {acceptOwnership} by the new owner.
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_newOwner = newOwner;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Accept ownership of the contract.
*
* Can only be called by the new owner.
*/
function acceptOwnership() public {
require(msg.sender == _newOwner, "Ownable: caller is not the new owner address");
require(msg.sender != address(0), "Ownable: caller is the zero address");
emit OwnershipAccepted(_owner, msg.sender);
_owner = msg.sender;
_newOwner = address(0);
}
/**
* @dev Rescue compatible ERC20 Token
*
* Can only be called by the current owner.
*/
function rescueTokens(address tokenAddr, address recipient, uint256 amount) external onlyOwner {
IERC20 _token = IERC20(tokenAddr);
require(recipient != address(0), "Rescue: recipient is the zero address");
uint256 balance = _token.balanceOf(address(this));
require(balance >= amount, "Rescue: amount exceeds balance");
_token.transfer(recipient, amount);
}
/**
* @dev Withdraw Ether
*
* Can only be called by the current owner.
*/
function withdrawEther(address payable recipient, uint256 amount) external onlyOwner {
require(recipient != address(0), "Withdraw: recipient is the zero address");
uint256 balance = address(this).balance;
require(balance >= amount, "Withdraw: amount exceeds balance");
recipient.transfer(amount);
}
}
/**
* @title Voken Shareholders
*/
contract VokenShareholders is Ownable, IAllocation {
using SafeMath256 for uint256;
using Roles for Roles.Role;
IVoken2 private _VOKEN = IVoken2(0xFfFAb974088Bd5bF3d7E6F522e93Dd7861264cDB);
Roles.Role private _proxies;
uint256 private _ALLOCATION_TIMESTAMP = 1598918399; // Sun, 30 Aug 2020 23:59:59 +0000
uint256 private _ALLOCATION_INTERVAL = 1 days;
uint256 private _ALLOCATION_STEPS = 60;
uint256 private _page;
uint256 private _weis;
uint256 private _vokens;
address[] private _shareholders;
mapping (address => bool) private _isShareholder;
mapping (address => uint256) private _withdrawPos;
mapping (uint256 => address[]) private _pageShareholders;
mapping (uint256 => mapping (address => bool)) private _isPageShareholder;
mapping (uint256 => uint256) private _pageEndingBlock;
mapping (uint256 => uint256) private _pageEthers;
mapping (uint256 => uint256) private _pageVokens;
mapping (uint256 => uint256) private _pageVokenSum;
mapping (uint256 => mapping (address => uint256)) private _pageVokenHoldings;
mapping (uint256 => mapping (address => uint256)) private _pageEtherDividends;
mapping (address => uint256) private _allocations;
event ProxyAdded(address indexed account);
event ProxyRemoved(address indexed account);
event Dividend(address indexed account, uint256 amount, uint256 page);
/**
* @dev Throws if called by account which is not a proxy.
*/
modifier onlyProxy() {
require(isProxy(msg.sender), "ProxyRole: caller does not have the Proxy role");
_;
}
/**
* @dev Returns true if the `account` has the Proxy role.
*/
function isProxy(address account) public view returns (bool) {
return _proxies.has(account);
}
/**
* @dev Give an `account` access to the Proxy role.
*
* Can only be called by the current owner.
*/
function addProxy(address account) public onlyOwner {
_proxies.add(account);
emit ProxyAdded(account);
}
/**
* @dev Remove an `account` access from the Proxy role.
*
* Can only be called by the current owner.
*/
function removeProxy(address account) public onlyOwner {
_proxies.remove(account);
emit ProxyRemoved(account);
}
/**
* @dev Returns the VOKEN main contract address.
*/
function VOKEN() public view returns (IVoken2) {
return _VOKEN;
}
/**
* @dev Returns the max page number.
*/
function page() public view returns (uint256) {
return _page;
}
/**
* @dev Returns the amount of deposited Ether.
*/
function weis() public view returns (uint256) {
return _weis;
}
/**
* @dev Returns the amount of VOKEN holding by all shareholders.
*/
function vokens() public view returns (uint256) {
return _vokens;
}
/**
* @dev Returns the shareholders list on `pageNumber`.
*/
function shareholders(uint256 pageNumber) public view returns (address[] memory) {
if (pageNumber > 0) {
return _pageShareholders[pageNumber];
}
return _shareholders;
}
/**
* @dev Returns the shareholders counter on `pageNumber`.
*/
function shareholdersCounter(uint256 pageNumber) public view returns (uint256) {
if (pageNumber > 0) {
return _pageShareholders[pageNumber].length;
}
return _shareholders.length;
}
/**
* @dev Returns the amount of deposited Ether at `pageNumber`.
*/
function pageEther(uint256 pageNumber) public view returns (uint256) {
return _pageEthers[pageNumber];
}
/**
* @dev Returns the amount of deposited Ether till `pageNumber`.
*/
function pageEtherSum(uint256 pageNumber) public view returns (uint256) {
uint256 __page = _pageNumber(pageNumber);
uint256 __amount;
for (uint256 i = 1; i <= __page; i++) {
__amount = __amount.add(_pageEthers[i]);
}
return __amount;
}
/**
* @dev Returns the amount of VOKEN holding by all shareholders at `pageNumber`.
*/
function pageVoken(uint256 pageNumber) public view returns (uint256) {
return _pageVokens[pageNumber];
}
/**
* @dev Returns the amount of VOKEN holding by all shareholders till `pageNumber`.
*/
function pageVokenSum(uint256 pageNumber) public view returns (uint256) {
return _pageVokenSum[_pageNumber(pageNumber)];
}
/**
* Returns the ending block number of `pageNumber`.
*/
function pageEndingBlock(uint256 pageNumber) public view returns (uint256) {
return _pageEndingBlock[pageNumber];
}
/**
* Returns the page number greater than 0 by `pageNmber`.
*/
function _pageNumber(uint256 pageNumber) internal view returns (uint256) {
if (pageNumber > 0) {
return pageNumber;
}
else {
return _page;
}
}
/**
* @dev Returns the amount of VOKEN holding by `account` and `pageNumber`.
*/
function vokenHolding(address account, uint256 pageNumber) public view returns (uint256) {
uint256 __page;
uint256 __amount;
if (pageNumber > 0) {
__page = pageNumber;
}
else {
__page = _page;
}
for (uint256 i = 1; i <= __page; i++) {
__amount = __amount.add(_pageVokenHoldings[i][account]);
}
return __amount;
}
/**
* @dev Returns the ether dividend of `account` on `pageNumber`.
*/
function etherDividend(address account, uint256 pageNumber) public view returns (uint256 amount,
uint256 dividend,
uint256 remain) {
if (pageNumber > 0) {
amount = pageEther(pageNumber).mul(vokenHolding(account, pageNumber)).div(pageVokenSum(pageNumber));
dividend = _pageEtherDividends[pageNumber][account];
}
else {
for (uint256 i = 1; i <= _page; i++) {
uint256 __pageEtherDividend = pageEther(i).mul(vokenHolding(account, i)).div(pageVokenSum(i));
amount = amount.add(__pageEtherDividend);
dividend = dividend.add(_pageEtherDividends[i][account]);
}
}
remain = amount.sub(dividend);
}
/**
* @dev Returns the allocation of `account`.
*/
function allocation(address account) public view returns (uint256) {
return _allocations[account];
}
/**
* @dev Returns the reserved amount of VOKENs by `account`.
*/
function reservedOf(address account) public view returns (uint256 reserved) {
reserved = _allocations[account];
if (now > _ALLOCATION_TIMESTAMP && reserved > 0) {
uint256 __passed = now.sub(_ALLOCATION_TIMESTAMP).div(_ALLOCATION_INTERVAL).add(1);
if (__passed > _ALLOCATION_STEPS) {
reserved = 0;
}
else {
reserved = reserved.sub(reserved.mul(__passed).div(_ALLOCATION_STEPS));
}
}
}
/**
* @dev Constructor
*/
constructor () public {
_page = 1;
addProxy(msg.sender);
}
/**
* @dev {Deposit} or {Withdraw}
*/
function () external payable {
// deposit
if (msg.value > 0) {
_weis = _weis.add(msg.value);
_pageEthers[_page] = _pageEthers[_page].add(msg.value);
}
// withdraw
else if (_isShareholder[msg.sender]) {
uint256 __vokenHolding;
for (uint256 i = 1; i <= _page.sub(1); i++) {
__vokenHolding = __vokenHolding.add(_pageVokenHoldings[i][msg.sender]);
if (_withdrawPos[msg.sender] < i) {
uint256 __etherAmount = _pageEthers[i].mul(__vokenHolding).div(_pageVokenSum[i]);
_withdrawPos[msg.sender] = i;
_pageEtherDividends[i][msg.sender] = __etherAmount;
msg.sender.transfer(__etherAmount);
emit Dividend(msg.sender, __etherAmount, i);
}
}
}
assert(true);
}
/**
* @dev End the current page.
*/
function endPage() public onlyProxy {
require(_pageEthers[_page] > 0, "Ethers on current page is zero.");
_pageEndingBlock[_page] = block.number;
_page = _page.add(1);
_pageVokenSum[_page] = _vokens;
assert(true);
}
/**
* @dev Push shareholders.
*
* Can only be called by a proxy.
*/
function pushShareholders(address[] memory accounts, uint256[] memory values) public onlyProxy {
require(accounts.length == values.length, "Shareholders: batch length is not match");
for (uint256 i = 0; i < accounts.length; i++) {
address __account = accounts[i];
uint256 __value = values[i];
if (!_isShareholder[__account]) {
_shareholders.push(__account);
_isShareholder[__account] = true;
}
if (!_isPageShareholder[_page][__account]) {
_pageShareholders[_page].push(__account);
_isPageShareholder[_page][__account] = true;
}
_vokens = _vokens.add(__value);
_pageVokens[_page] = _pageVokens[_page].add(__value);
_pageVokenSum[_page] = _vokens;
_pageVokenHoldings[_page][__account] = _pageVokenHoldings[_page][__account].add(__value);
_allocations[__account] = _allocations[__account].add(__value);
assert(_VOKEN.mintWithAllocation(__account, __value, address(this)));
}
assert(true);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageVokenSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"page","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageVoken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"etherDividend","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"dividend","type":"uint256"},{"internalType":"uint256","name":"remain","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isProxy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEther","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"vokenHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"currentOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VOKEN","outputs":[{"internalType":"contract IVoken2","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"shareholders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEndingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEtherSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"reservedOf","outputs":[{"internalType":"uint256","name":"reserved","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"shareholdersCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endPage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"pushShareholders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ProxyAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ProxyRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"page","type":"uint256"}],"name":"Dividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipAccepted","type":"event"}]Contract Creation Code
6080604052600280546001600160a01b03191673fffab974088bd5bf3d7e6f522e93dd7861264cdb179055635f4d8eff60045562015180600555603c6006553480156200004b57600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600755620000ae336001600160e01b03620000b416565b620002c4565b620000c8336001600160e01b036200018616565b6200013457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6200014f8160036200019a60201b6200195c1790919060201c565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b6000546001600160a01b0390811691161490565b620001af82826001600160e01b036200024116565b156200021c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001fee6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611d1a80620002d46000396000f3fe6080604052600436106101815760003560e01c80638da5cb5b116100d1578063c01af79f1161008a578063cea9d26f11610064578063cea9d26f14610786578063db748775146107c9578063f2086e90146107de578063f2fde38b1461091257610181565b8063c01af79f146106ff578063c9322adb14610729578063c975fab41461075c57610181565b80638da5cb5b146105895780639b28fa7b146105c4578063ab377daa146105f5578063b81b86301461066f578063b8ff5e78146106a2578063be116c3b146106cc57610181565b80632f54bf6e1161013e5780636e41494b116101185780636e41494b1461051157806375c032621461052657806379ba50971461053b5780637b773c9d1461055057610181565b80632f54bf6e1461047b57806335f13bc7146104ae578063522f6815146104d857610181565b806303bf492e1461032f5780630df813b91461036b5780631f194fe7146103805780632092a55c146103aa57806323b11d8d146104015780632971038814610434575b34156101d65760085461019a903463ffffffff61094516565b6008556007546000908152601060205260409020546101bf903463ffffffff61094516565b60075460009081526010602052604090205561032d565b336000908152600b602052604090205460ff161561032d57600060015b60075461020790600163ffffffff6109a816565b811161032a57600081815260136020908152604080832033845290915290205461023890839063ffffffff61094516565b336000908152600c602052604090205490925081111561032257600081815260126020908152604080832054601090925282205461028d9190610281908663ffffffff6109ea16565b9063ffffffff610a4316565b336000818152600c602090815260408083208790558683526014825280832084845290915280822084905551929350909183156108fc0291849190818181858888f193505050501580156102e5573d6000803e3d6000fd5b506040805182815260208101849052815133927f282046e7e19a40725faef3fde5fd1e87d1479fa568373b67d549532ef53faf6a928290030190a2505b6001016101f3565b50505b005b34801561033b57600080fd5b506103596004803603602081101561035257600080fd5b5035610a85565b60408051918252519081900360200190f35b34801561037757600080fd5b50610359610aab565b34801561038c57600080fd5b50610359600480360360208110156103a357600080fd5b5035610ab1565b3480156103b657600080fd5b506103e3600480360360408110156103cd57600080fd5b506001600160a01b038135169060200135610ac3565b60408051938452602084019290925282820152519081900360600190f35b34801561040d57600080fd5b5061032d6004803603602081101561042457600080fd5b50356001600160a01b0316610bc7565b34801561044057600080fd5b506104676004803603602081101561045757600080fd5b50356001600160a01b0316610c57565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603602081101561049e57600080fd5b50356001600160a01b0316610c6a565b3480156104ba57600080fd5b50610359600480360360208110156104d157600080fd5b5035610c7e565b3480156104e457600080fd5b5061032d600480360360408110156104fb57600080fd5b506001600160a01b038135169060200135610c90565b34801561051d57600080fd5b50610359610db0565b34801561053257600080fd5b50610359610db6565b34801561054757600080fd5b5061032d610dbc565b34801561055c57600080fd5b506103596004803603604081101561057357600080fd5b506001600160a01b038135169060200135610e99565b34801561059557600080fd5b5061059e610f02565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b3480156105d057600080fd5b506105d9610f19565b604080516001600160a01b039092168252519081900360200190f35b34801561060157600080fd5b5061061f6004803603602081101561061857600080fd5b5035610f28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065b578181015183820152602001610643565b505050509050019250505060405180910390f35b34801561067b57600080fd5b506103596004803603602081101561069257600080fd5b50356001600160a01b0316610ffc565b3480156106ae57600080fd5b50610359600480360360208110156106c557600080fd5b5035611017565b3480156106d857600080fd5b5061032d600480360360208110156106ef57600080fd5b50356001600160a01b0316611029565b34801561070b57600080fd5b506103596004803603602081101561072257600080fd5b50356110b9565b34801561073557600080fd5b506103596004803603602081101561074c57600080fd5b50356001600160a01b0316611105565b34801561076857600080fd5b506103596004803603602081101561077f57600080fd5b50356111a8565b34801561079257600080fd5b5061032d600480360360608110156107a957600080fd5b506001600160a01b038135811691602081013590911690604001356111cd565b3480156107d557600080fd5b5061032d6113bb565b3480156107ea57600080fd5b5061032d6004803603604081101561080157600080fd5b81019060208101813564010000000081111561081c57600080fd5b82018360208201111561082e57600080fd5b8035906020019184602083028401116401000000008311171561085057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108a057600080fd5b8201836020820111156108b257600080fd5b803590602001918460208302840111640100000000831117156108d457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114a3945050505050565b34801561091e57600080fd5b5061032d6004803603602081101561093557600080fd5b50356001600160a01b03166117f7565b60008282018381101561099f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061099f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061184b565b6000826109f9575060006109a2565b82820282848281610a0657fe5b041461099f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611bdd6021913960400191505060405180910390fd5b600061099f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e2565b600060126000610a9484611944565b81526020019081526020016000205490505b919050565b60075490565b60009081526011602052604090205490565b600080808315610b2857610afb610ad985610a85565b610281610ae68888610e99565b610aef88610c7e565b9063ffffffff6109ea16565b60008581526014602090815260408083206001600160a01b038a1684529091529020549093509150610bae565b60015b6007548111610bac576000610b58610b4283610a85565b610281610b4f8a86610e99565b610aef86610c7e565b9050610b6a858263ffffffff61094516565b60008381526014602090815260408083206001600160a01b038c168452909152902054909550610ba190859063ffffffff61094516565b935050600101610b2b565b505b610bbe838363ffffffff6109a816565b90509250925092565b610bd033610c6a565b610c0f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b610c2060038263ffffffff61195c16565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b60006109a260038363ffffffff6119dd16565b6000546001600160a01b0390811691161490565b60009081526010602052604090205490565b610c9933610c6a565b610cd8576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b6001600160a01b038216610d1d5760405162461bcd60e51b8152600401808060200182810382526027815260200180611bb66027913960400191505060405180910390fd5b303181811015610d74576040805162461bcd60e51b815260206004820181905260248201527f57697468647261773a20616d6f756e7420657863656564732062616c616e6365604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610daa573d6000803e3d6000fd5b50505050565b60085490565b60095490565b6001546001600160a01b03163314610e055760405162461bcd60e51b815260040180806020018281038252602c815260200180611cba602c913960400191505060405180910390fd5b33610e415760405162461bcd60e51b8152600401808060200182810382526023815260200180611b726023913960400191505060405180910390fd5b6000805460405133926001600160a01b03909216917f357bdeb5828fa83945f38a88510ce5cd7d628dafb346d767efbc693149fdd97c91a3600080546001600160a01b03199081163317909155600180549091169055565b600080808315610eab57839150610eb1565b60075491505b60015b828111610ef95760008181526013602090815260408083206001600160a01b038a168452909152902054610eef90839063ffffffff61094516565b9150600101610eb4565b50949350505050565b6000546001546001600160a01b0391821692911690565b6002546001600160a01b031690565b60608115610f9a576000828152600d602090815260409182902080548351818402810184019094528084529091830182828015610f8e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f70575b50505050509050610aa6565b600a805480602002602001604051908101604052809291908181526020018280548015610ff057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fd2575b50505050509050919050565b6001600160a01b031660009081526015602052604090205490565b6000908152600f602052604090205490565b61103233610c6a565b611071576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61108260038263ffffffff611a4416565b6040516001600160a01b038216907fc19ec636c33767d631869f17e127e7bc2d0237fbd3720cac3cbd73c1360c72f590600090a250565b6000806110c583611944565b9050600060015b8281116110fd576000818152601060205260409020546110f390839063ffffffff61094516565b91506001016110cc565b509392505050565b6001600160a01b0381166000908152601560205260409020546004544211801561112f5750600081115b15610aa65760006111626001611156600554610281600454426109a890919063ffffffff16565b9063ffffffff61094516565b905060065481111561117757600091506111a2565b60065461119f9061119290610281858563ffffffff6109ea16565b839063ffffffff6109a816565b91505b50919050565b600081156111c557506000818152600d6020526040902054610aa6565b5050600a5490565b6111d633610c6a565b611215576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b826001600160a01b03831661125b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c956025913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156112a557600080fd5b505afa1580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b5051905082811015611328576040805162461bcd60e51b815260206004820152601e60248201527f5265736375653a20616d6f756e7420657863656564732062616c616e63650000604482015290519081900360640190fd5b816001600160a01b031663a9059cbb85856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b505050506040513d60208110156113b257600080fd5b50505050505050565b6113c433610c57565b6113ff5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b600754600090815260106020526040902054611462576040805162461bcd60e51b815260206004820152601f60248201527f457468657273206f6e2063757272656e742070616765206973207a65726f2e00604482015290519081900360640190fd5b600780546000908152600f602052604090204390555461148990600163ffffffff61094516565b600781905560095460009182526012602052604090912055565b6114ac33610c57565b6114e75760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b80518251146115275760405162461bcd60e51b8152600401808060200182810382526027815260200180611c6e6027913960400191505060405180910390fd5b60005b82518110156117f257600083828151811061154157fe5b60200260200101519050600083838151811061155957fe5b6020908102919091018101516001600160a01b0384166000908152600b90925260409091205490915060ff166115ed57600a805460018082019092557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191690911790555b6007546000908152600e602090815260408083206001600160a01b038616845290915290205460ff1661167b57600780546000908152600d602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03891690811790915594548452600e8352818420948452939091529020805460ff191690911790555b60095461168e908263ffffffff61094516565b6009556007546000908152601160205260409020546116b3908263ffffffff61094516565b6007805460009081526011602090815260408083209490945560095483548352601282528483205591548152601382528281206001600160a01b03861682529091522054611707908263ffffffff61094516565b60075460009081526013602090815260408083206001600160a01b0387168452825280832093909355601590522054611746908263ffffffff61094516565b6001600160a01b03808416600081815260156020908152604080832095909555600254855163f19158ef60e01b81526004810194909452602484018790523060448501529451949093169363f19158ef936064808501949193918390030190829087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b505050506040513d60208110156117e057600080fd5b50516117e857fe5b505060010161152a565b505050565b61180033610c6a565b61183f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61184881611aab565b50565b600081848411156118da5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578181015183820152602001611887565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561189f578181015183820152602001611887565b5082848161193b57fe5b04949350505050565b60008115611953575080610aa6565b50600754610aa6565b61196682826119dd565b156119b8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216611a245760405162461bcd60e51b8152600401808060200182810382526022815260200180611c4c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a4e82826119dd565b611a895760405162461bcd60e51b8152600401808060200182810382526021815260200180611b956021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116611af05760405162461bcd60e51b8152600401808060200182810382526026815260200180611b4c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c657220697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6557697468647261773a20726563697069656e7420697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750726f7879526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050726f787920726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573735368617265686f6c646572733a206261746368206c656e677468206973206e6f74206d617463685265736375653a20726563697069656e7420697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206e6577206f776e65722061646472657373a265627a7a72315820df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c39264736f6c634300050b0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106101815760003560e01c80638da5cb5b116100d1578063c01af79f1161008a578063cea9d26f11610064578063cea9d26f14610786578063db748775146107c9578063f2086e90146107de578063f2fde38b1461091257610181565b8063c01af79f146106ff578063c9322adb14610729578063c975fab41461075c57610181565b80638da5cb5b146105895780639b28fa7b146105c4578063ab377daa146105f5578063b81b86301461066f578063b8ff5e78146106a2578063be116c3b146106cc57610181565b80632f54bf6e1161013e5780636e41494b116101185780636e41494b1461051157806375c032621461052657806379ba50971461053b5780637b773c9d1461055057610181565b80632f54bf6e1461047b57806335f13bc7146104ae578063522f6815146104d857610181565b806303bf492e1461032f5780630df813b91461036b5780631f194fe7146103805780632092a55c146103aa57806323b11d8d146104015780632971038814610434575b34156101d65760085461019a903463ffffffff61094516565b6008556007546000908152601060205260409020546101bf903463ffffffff61094516565b60075460009081526010602052604090205561032d565b336000908152600b602052604090205460ff161561032d57600060015b60075461020790600163ffffffff6109a816565b811161032a57600081815260136020908152604080832033845290915290205461023890839063ffffffff61094516565b336000908152600c602052604090205490925081111561032257600081815260126020908152604080832054601090925282205461028d9190610281908663ffffffff6109ea16565b9063ffffffff610a4316565b336000818152600c602090815260408083208790558683526014825280832084845290915280822084905551929350909183156108fc0291849190818181858888f193505050501580156102e5573d6000803e3d6000fd5b506040805182815260208101849052815133927f282046e7e19a40725faef3fde5fd1e87d1479fa568373b67d549532ef53faf6a928290030190a2505b6001016101f3565b50505b005b34801561033b57600080fd5b506103596004803603602081101561035257600080fd5b5035610a85565b60408051918252519081900360200190f35b34801561037757600080fd5b50610359610aab565b34801561038c57600080fd5b50610359600480360360208110156103a357600080fd5b5035610ab1565b3480156103b657600080fd5b506103e3600480360360408110156103cd57600080fd5b506001600160a01b038135169060200135610ac3565b60408051938452602084019290925282820152519081900360600190f35b34801561040d57600080fd5b5061032d6004803603602081101561042457600080fd5b50356001600160a01b0316610bc7565b34801561044057600080fd5b506104676004803603602081101561045757600080fd5b50356001600160a01b0316610c57565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603602081101561049e57600080fd5b50356001600160a01b0316610c6a565b3480156104ba57600080fd5b50610359600480360360208110156104d157600080fd5b5035610c7e565b3480156104e457600080fd5b5061032d600480360360408110156104fb57600080fd5b506001600160a01b038135169060200135610c90565b34801561051d57600080fd5b50610359610db0565b34801561053257600080fd5b50610359610db6565b34801561054757600080fd5b5061032d610dbc565b34801561055c57600080fd5b506103596004803603604081101561057357600080fd5b506001600160a01b038135169060200135610e99565b34801561059557600080fd5b5061059e610f02565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b3480156105d057600080fd5b506105d9610f19565b604080516001600160a01b039092168252519081900360200190f35b34801561060157600080fd5b5061061f6004803603602081101561061857600080fd5b5035610f28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065b578181015183820152602001610643565b505050509050019250505060405180910390f35b34801561067b57600080fd5b506103596004803603602081101561069257600080fd5b50356001600160a01b0316610ffc565b3480156106ae57600080fd5b50610359600480360360208110156106c557600080fd5b5035611017565b3480156106d857600080fd5b5061032d600480360360208110156106ef57600080fd5b50356001600160a01b0316611029565b34801561070b57600080fd5b506103596004803603602081101561072257600080fd5b50356110b9565b34801561073557600080fd5b506103596004803603602081101561074c57600080fd5b50356001600160a01b0316611105565b34801561076857600080fd5b506103596004803603602081101561077f57600080fd5b50356111a8565b34801561079257600080fd5b5061032d600480360360608110156107a957600080fd5b506001600160a01b038135811691602081013590911690604001356111cd565b3480156107d557600080fd5b5061032d6113bb565b3480156107ea57600080fd5b5061032d6004803603604081101561080157600080fd5b81019060208101813564010000000081111561081c57600080fd5b82018360208201111561082e57600080fd5b8035906020019184602083028401116401000000008311171561085057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108a057600080fd5b8201836020820111156108b257600080fd5b803590602001918460208302840111640100000000831117156108d457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114a3945050505050565b34801561091e57600080fd5b5061032d6004803603602081101561093557600080fd5b50356001600160a01b03166117f7565b60008282018381101561099f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061099f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061184b565b6000826109f9575060006109a2565b82820282848281610a0657fe5b041461099f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611bdd6021913960400191505060405180910390fd5b600061099f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e2565b600060126000610a9484611944565b81526020019081526020016000205490505b919050565b60075490565b60009081526011602052604090205490565b600080808315610b2857610afb610ad985610a85565b610281610ae68888610e99565b610aef88610c7e565b9063ffffffff6109ea16565b60008581526014602090815260408083206001600160a01b038a1684529091529020549093509150610bae565b60015b6007548111610bac576000610b58610b4283610a85565b610281610b4f8a86610e99565b610aef86610c7e565b9050610b6a858263ffffffff61094516565b60008381526014602090815260408083206001600160a01b038c168452909152902054909550610ba190859063ffffffff61094516565b935050600101610b2b565b505b610bbe838363ffffffff6109a816565b90509250925092565b610bd033610c6a565b610c0f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b610c2060038263ffffffff61195c16565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b60006109a260038363ffffffff6119dd16565b6000546001600160a01b0390811691161490565b60009081526010602052604090205490565b610c9933610c6a565b610cd8576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b6001600160a01b038216610d1d5760405162461bcd60e51b8152600401808060200182810382526027815260200180611bb66027913960400191505060405180910390fd5b303181811015610d74576040805162461bcd60e51b815260206004820181905260248201527f57697468647261773a20616d6f756e7420657863656564732062616c616e6365604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610daa573d6000803e3d6000fd5b50505050565b60085490565b60095490565b6001546001600160a01b03163314610e055760405162461bcd60e51b815260040180806020018281038252602c815260200180611cba602c913960400191505060405180910390fd5b33610e415760405162461bcd60e51b8152600401808060200182810382526023815260200180611b726023913960400191505060405180910390fd5b6000805460405133926001600160a01b03909216917f357bdeb5828fa83945f38a88510ce5cd7d628dafb346d767efbc693149fdd97c91a3600080546001600160a01b03199081163317909155600180549091169055565b600080808315610eab57839150610eb1565b60075491505b60015b828111610ef95760008181526013602090815260408083206001600160a01b038a168452909152902054610eef90839063ffffffff61094516565b9150600101610eb4565b50949350505050565b6000546001546001600160a01b0391821692911690565b6002546001600160a01b031690565b60608115610f9a576000828152600d602090815260409182902080548351818402810184019094528084529091830182828015610f8e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f70575b50505050509050610aa6565b600a805480602002602001604051908101604052809291908181526020018280548015610ff057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fd2575b50505050509050919050565b6001600160a01b031660009081526015602052604090205490565b6000908152600f602052604090205490565b61103233610c6a565b611071576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61108260038263ffffffff611a4416565b6040516001600160a01b038216907fc19ec636c33767d631869f17e127e7bc2d0237fbd3720cac3cbd73c1360c72f590600090a250565b6000806110c583611944565b9050600060015b8281116110fd576000818152601060205260409020546110f390839063ffffffff61094516565b91506001016110cc565b509392505050565b6001600160a01b0381166000908152601560205260409020546004544211801561112f5750600081115b15610aa65760006111626001611156600554610281600454426109a890919063ffffffff16565b9063ffffffff61094516565b905060065481111561117757600091506111a2565b60065461119f9061119290610281858563ffffffff6109ea16565b839063ffffffff6109a816565b91505b50919050565b600081156111c557506000818152600d6020526040902054610aa6565b5050600a5490565b6111d633610c6a565b611215576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b826001600160a01b03831661125b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c956025913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156112a557600080fd5b505afa1580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b5051905082811015611328576040805162461bcd60e51b815260206004820152601e60248201527f5265736375653a20616d6f756e7420657863656564732062616c616e63650000604482015290519081900360640190fd5b816001600160a01b031663a9059cbb85856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b505050506040513d60208110156113b257600080fd5b50505050505050565b6113c433610c57565b6113ff5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b600754600090815260106020526040902054611462576040805162461bcd60e51b815260206004820152601f60248201527f457468657273206f6e2063757272656e742070616765206973207a65726f2e00604482015290519081900360640190fd5b600780546000908152600f602052604090204390555461148990600163ffffffff61094516565b600781905560095460009182526012602052604090912055565b6114ac33610c57565b6114e75760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b80518251146115275760405162461bcd60e51b8152600401808060200182810382526027815260200180611c6e6027913960400191505060405180910390fd5b60005b82518110156117f257600083828151811061154157fe5b60200260200101519050600083838151811061155957fe5b6020908102919091018101516001600160a01b0384166000908152600b90925260409091205490915060ff166115ed57600a805460018082019092557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191690911790555b6007546000908152600e602090815260408083206001600160a01b038616845290915290205460ff1661167b57600780546000908152600d602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03891690811790915594548452600e8352818420948452939091529020805460ff191690911790555b60095461168e908263ffffffff61094516565b6009556007546000908152601160205260409020546116b3908263ffffffff61094516565b6007805460009081526011602090815260408083209490945560095483548352601282528483205591548152601382528281206001600160a01b03861682529091522054611707908263ffffffff61094516565b60075460009081526013602090815260408083206001600160a01b0387168452825280832093909355601590522054611746908263ffffffff61094516565b6001600160a01b03808416600081815260156020908152604080832095909555600254855163f19158ef60e01b81526004810194909452602484018790523060448501529451949093169363f19158ef936064808501949193918390030190829087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b505050506040513d60208110156117e057600080fd5b50516117e857fe5b505060010161152a565b505050565b61180033610c6a565b61183f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61184881611aab565b50565b600081848411156118da5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578181015183820152602001611887565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561189f578181015183820152602001611887565b5082848161193b57fe5b04949350505050565b60008115611953575080610aa6565b50600754610aa6565b61196682826119dd565b156119b8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216611a245760405162461bcd60e51b8152600401808060200182810382526022815260200180611c4c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a4e82826119dd565b611a895760405162461bcd60e51b8152600401808060200182810382526021815260200180611b956021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116611af05760405162461bcd60e51b8152600401808060200182810382526026815260200180611b4c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c657220697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6557697468647261773a20726563697069656e7420697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750726f7879526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050726f787920726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573735368617265686f6c646572733a206261746368206c656e677468206973206e6f74206d617463685265736375653a20726563697069656e7420697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206e6577206f776e65722061646472657373a265627a7a72315820df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c39264736f6c634300050b0032
Deployed Bytecode Sourcemap
8919:10377:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16809:9;:13;16805:855;;16847:5;;:20;;16857:9;16847:20;:9;:20;:::i;:::-;16839:5;:28;16915:5;;16903:18;;;;:11;:18;;;;;;:33;;16926:9;16903:33;:22;:33;:::i;:::-;16894:5;;16882:18;;;;:11;:18;;;;;:54;16805:855;;;17005:10;16990:26;;;;:14;:26;;;;;;;;16986:674;;;17033:22;17089:1;17072:577;17097:5;;:12;;17107:1;17097:12;:9;:12;:::i;:::-;17092:1;:17;17072:577;;17171:21;;;;:18;:21;;;;;;;;17193:10;17171:33;;;;;;;;17152:53;;:14;;:53;:18;:53;:::i;:::-;17243:10;17230:24;;;;:12;:24;;;;;;17135:70;;-1:-1:-1;17230:28:0;-1:-1:-1;17226:408:0;;;17283:21;17346:16;;;:13;:16;;;;;;;;;17307:11;:14;;;;;;:56;;17346:16;17307:34;;17326:14;17307:34;:18;:34;:::i;:::-;:38;:56;:38;:56;:::i;:::-;17401:10;17388:24;;;;:12;:24;;;;;;;;:28;;;17439:22;;;:19;:22;;;;;:34;;;;;;;;;:50;;;17514:34;17283:80;;-1:-1:-1;17401:10:0;;17514:34;;;;;17283:80;;17514:34;;17388:24;17514:34;17283:80;17401:10;17514:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17576:38:0;;;;;;;;;;;;;;17585:10;;17576:38;;;;;;;;17226:408;;17111:3;;17072:577;;;;16986:674;;8919:10377;13535:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13535:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13535:136:0;;:::i;:::-;;;;;;;;;;;;;;;;11555:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11555:77:0;;;:::i;13303:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13303:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13303:118:0;;:::i;14830:917::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14830:917:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14830:917:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;10922:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10922:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10922:127:0;-1:-1:-1;;;;;10922:127:0;;:::i;10674:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10674:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10674:108:0;-1:-1:-1;;;;;10674:108:0;;:::i;:::-;;;;;;;;;;;;;;;;;;6630:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6630:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6630:104:0;-1:-1:-1;;;;;6630:104:0;;:::i;12675:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12675:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12675:118:0;;:::i;8527:343::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8527:343:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8527:343:0;;;;;;;;:::i;11710:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11710:77:0;;;:::i;11883:81::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11883:81:0;;;:::i;7547:334::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7547:334:0;;;:::i;14289:445::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14289:445:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14289:445:0;;;;;;;;:::i;6184:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6184:149:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6184:149:0;;;;;;;;;;;;;;;;;;;;;;;;11408:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11408:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;11408:79:0;;;;;;;;;;;;;;12050:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12050:215:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12050:215:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12050:215:0;;;;;;;;;;;;;;;;;15823:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15823:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15823:114:0;-1:-1:-1;;;;;15823:114:0;;:::i;13754:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13754:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13754:129:0;;:::i;11193:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11193:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11193:135:0;-1:-1:-1;;;;;11193:135:0;;:::i;12889:302::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12889:302:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12889:302:0;;:::i;16028:518::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16028:518:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16028:518:0;-1:-1:-1;;;;;16028:518:0;;:::i;12354:227::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12354:227:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12354:227:0;;:::i;8007:409::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8007:409:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8007:409:0;;;;;;;;;;;;;;;;;:::i;17753:271::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17753:271:0;;;:::i;18129:1164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18129:1164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18129:1164:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;18129:1164:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18129:1164:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18129:1164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18129:1164:0;;;;;;;;-1:-1:-1;18129:1164:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;18129:1164:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18129:1164:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18129:1164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18129:1164:0;;-1:-1:-1;18129:1164:0;;-1:-1:-1;;;;;18129:1164:0:i;7312:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7312:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7312:109:0;-1:-1:-1;;;;;7312:109:0;;:::i;442:181::-;500:7;532:5;;;556:6;;;;548:46;;;;;-1:-1:-1;;;548:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;614:1;-1:-1:-1;442:181:0;;;;;:::o;773:136::-;831:7;858:43;862:1;865;858:43;;;;;;;;;;;;;;;;;:3;:43::i;1386:250::-;1444:7;1468:6;1464:47;;-1:-1:-1;1498:1:0;1491:8;;1464:47;1535:5;;;1539:1;1535;:5;:1;1559:5;;;;;:10;1551:56;;;;-1:-1:-1;;;1551:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:132;1861:7;1888:39;1892:1;1895;1888:39;;;;;;;;;;;;;;;;;:3;:39::i;13535:136::-;13598:7;13625:13;:38;13639:23;13651:10;13639:11;:23::i;:::-;13625:38;;;;;;;;;;;;13618:45;;13535:136;;;;:::o;11555:77::-;11619:5;;11555:77;:::o;13303:118::-;13363:7;13390:23;;;:11;:23;;;;;;;13303:118::o;14830:917::-;14911:14;;;15148;;15144:554;;15188:90;15253:24;15266:10;15253:12;:24::i;:::-;15188:60;15214:33;15227:7;15236:10;15214:12;:33::i;:::-;15188:21;15198:10;15188:9;:21::i;:::-;:25;:60;:25;:60;:::i;:90::-;15304:31;;;;:19;:31;;;;;;;;-1:-1:-1;;;;;15304:40:0;;;;;;;;;;15179:99;;-1:-1:-1;15304:40:0;-1:-1:-1;15144:554:0;;;15405:1;15388:299;15413:5;;15408:1;:10;15388:299;;15444:27;15474:63;15521:15;15534:1;15521:12;:15::i;:::-;15474:42;15491:24;15504:7;15513:1;15491:12;:24::i;:::-;15474:12;15484:1;15474:9;:12::i;:63::-;15444:93;-1:-1:-1;15565:31:0;:6;15444:93;15565:31;:10;:31;:::i;:::-;15639:22;;;;:19;:22;;;;;;;;-1:-1:-1;;;;;15639:31:0;;;;;;;;;;15556:40;;-1:-1:-1;15626:45:0;;:8;;:45;:12;:45;:::i;:::-;15615:56;-1:-1:-1;;15420:3:0;;15388:299;;;;15144:554;15719:20;:6;15730:8;15719:20;:10;:20;:::i;:::-;15710:29;;14830:917;;;;;:::o;10922:127::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;10985:21;:8;10998:7;10985:21;:12;:21;:::i;:::-;11022:19;;-1:-1:-1;;;;;11022:19:0;;;;;;;;10922:127;:::o;10674:108::-;10729:4;10753:21;:8;10766:7;10753:21;:12;:21;:::i;6630:104::-;6685:4;6720:6;-1:-1:-1;;;;;6720:6:0;;;6709:17;;;;6630:104::o;12675:118::-;12735:7;12762:23;;;:11;:23;;;;;;;12675:118::o;8527:343::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8631:23:0;;8623:75;;;;-1:-1:-1;;;8623:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8737:4;8729:21;8771:17;;;;8763:62;;;;;-1:-1:-1;;;8763:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8836:26;;-1:-1:-1;;;;;8836:18:0;;;:26;;;;;8855:6;;8836:26;;;;8855:6;8836:18;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8836:26:0;6533:1;8527:343;;:::o;11710:77::-;11774:5;;11710:77;:::o;11883:81::-;11949:7;;11883:81;:::o;7547:334::-;7614:9;;-1:-1:-1;;;;;7614:9:0;7600:10;:23;7592:80;;;;-1:-1:-1;;;7592:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7691:10;7683:72;;;;-1:-1:-1;;;7683:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:6;;;7773:37;;7799:10;;-1:-1:-1;;;;;7791:6:0;;;;7773:37;;;7821:6;:19;;-1:-1:-1;;;;;;7821:19:0;;;7830:10;7821:19;;;;;7851:22;;;;;;;7547:334::o;14289:445::-;14369:7;;;14447:14;;14443:124;;14487:10;14478:19;;14443:124;;;14550:5;;14541:14;;14443:124;14596:1;14579:120;14604:6;14599:1;:11;14579:120;;14656:21;;;;:18;:21;;;;;;;;-1:-1:-1;;;;;14656:30:0;;;;;;;;;;14643:44;;:8;;:44;:12;:44;:::i;:::-;14632:55;-1:-1:-1;14612:3:0;;14579:120;;;-1:-1:-1;14718:8:0;14289:445;-1:-1:-1;;;;14289:445:0:o;6184:149::-;6222:20;6288:6;;6316:9;-1:-1:-1;;;;;6288:6:0;;;;6316:9;;;6184:149::o;11408:79::-;11473:6;;-1:-1:-1;;;;;11473:6:0;11408:79;:::o;12050:215::-;12113:16;12146:14;;12142:83;;12184:29;;;;:17;:29;;;;;;;;;12177:36;;;;;;;;;;;;;;;;;12184:29;;12177:36;;12184:29;12177:36;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12177:36:0;;;;;;;;;;;;;;;;;;;;;;;;;12142:83;12244:13;12237:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12237:20:0;;;;;;;;;;;;;;;;;;;;;;;12050:215;;;:::o;15823:114::-;-1:-1:-1;;;;;15908:21:0;15881:7;15908:21;;;:12;:21;;;;;;;15823:114::o;13754:129::-;13820:7;13847:28;;;:16;:28;;;;;;;13754:129::o;11193:135::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;11259:24;:8;11275:7;11259:24;:15;:24;:::i;:::-;11299:21;;-1:-1:-1;;;;;11299:21:0;;;;;;;;11193:135;:::o;12889:302::-;12952:7;12972:14;12989:23;13001:10;12989:11;:23::i;:::-;12972:40;-1:-1:-1;13023:16:0;13069:1;13052:104;13077:6;13072:1;:11;13052:104;;13129:14;;;;:11;:14;;;;;;13116:28;;:8;;:28;:12;:28;:::i;:::-;13105:39;-1:-1:-1;13085:3:0;;13052:104;;;-1:-1:-1;13175:8:0;12889:302;-1:-1:-1;;;12889:302:0:o;16028:518::-;-1:-1:-1;;;;;16126:21:0;;16086:16;16126:21;;;:12;:21;;;;;;16170;;16164:3;:27;:43;;;;;16206:1;16195:8;:12;16164:43;16160:379;;;16224:16;16243:63;16304:1;16243:56;16278:20;;16243:30;16251:21;;16243:3;:7;;:30;;;;:::i;:56::-;:60;:63;:60;:63;:::i;:::-;16224:82;;16338:17;;16327:8;:28;16323:205;;;16387:1;16376:12;;16323:205;;;16493:17;;16453:59;;16466:45;;:22;:8;16479;16466:22;:12;:22;:::i;:45::-;16453:8;;:59;:12;:59;:::i;:::-;16442:70;;16323:205;16160:379;16028:518;;;:::o;12354:227::-;12424:7;12448:14;;12444:90;;-1:-1:-1;12486:29:0;;;;:17;:29;;;;;:36;12479:43;;12444:90;-1:-1:-1;;12553:13:0;:20;;12354:227::o;8007:409::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;8136:9;-1:-1:-1;;;;;8165:23:0;;8157:73;;;;-1:-1:-1;;;8157:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8259:31;;;-1:-1:-1;;;8259:31:0;;8284:4;8259:31;;;;;;8241:15;;-1:-1:-1;;;;;8259:16:0;;;;;:31;;;;;;;;;;;;;;;:16;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;8259:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8259:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8259:31:0;;-1:-1:-1;8311:17:0;;;;8303:60;;;;;-1:-1:-1;;;8303:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8374:6;-1:-1:-1;;;;;8374:15:0;;8390:9;8401:6;8374:34;;;;;;;;;;;;;-1:-1:-1;;;;;8374:34:0;-1:-1:-1;;;;;8374:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8374:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8374:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;8007:409:0:o;17753:271::-;10495:19;10503:10;10495:7;:19::i;:::-;10487:78;;;;-1:-1:-1;;;10487:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17820:5;;17829:1;17808:18;;;:11;:18;;;;;;17800:66;;;;;-1:-1:-1;;;17800:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17896:5;;;17879:23;;;;:16;:23;;;;;17905:12;17879:38;;17938:5;:12;;17948:1;17938:12;:9;:12;:::i;:::-;17930:5;:20;;;17984:7;;17961:20;;;;:13;:20;;;;;;:30;17753:271::o;18129:1164::-;10495:19;10503:10;10495:7;:19::i;:::-;10487:78;;;;-1:-1:-1;;;10487:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18262:6;:13;18243:8;:15;:32;18235:84;;;;-1:-1:-1;;;18235:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18337:9;18332:929;18356:8;:15;18352:1;:19;18332:929;;;18393:17;18413:8;18422:1;18413:11;;;;;;;;;;;;;;18393:31;;18439:15;18457:6;18464:1;18457:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18488:25:0;;;;;;:14;:25;;;;;;;;18457:9;;-1:-1:-1;18488:25:0;;18483:147;;18534:13;27:10:-1;;39:1;23:18;;;45:23;;;18534:29:0;;;;-1:-1:-1;;;;;;18534:29:0;-1:-1:-1;;;;;18534:29:0;;;;;;;;-1:-1:-1;18582:25:0;;;:14;18534:29;18582:25;;;;:32;;-1:-1:-1;;18582:32:0;;;;;;18483:147;18670:5;;18651:25;;;;:18;:25;;;;;;;;-1:-1:-1;;;;;18651:36:0;;;;;;;;;;;;18646:180;;18726:5;;;18708:24;;;;:17;:24;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;18708:40:0;;;;;;;;;-1:-1:-1;;;;;;18708:40:0;-1:-1:-1;;;;;18708:40:0;;;;;;;;18786:5;;18767:25;;:18;:25;;;;;:36;;;;;;;;;:43;;-1:-1:-1;;18767:43:0;;;;;;18646:180;18852:7;;:20;;18864:7;18852:20;:11;:20;:::i;:::-;18842:7;:30;18920:5;;18908:18;;;;:11;:18;;;;;;:31;;18931:7;18908:31;:22;:31;:::i;:::-;18899:5;;;18887:18;;;;:11;:18;;;;;;;;:52;;;;18977:7;;18968:5;;18954:20;;:13;:20;;;;;:30;19057:5;;19038:25;;:18;:25;;;;;-1:-1:-1;;;;;19038:36:0;;;;;;;;;:49;;19079:7;19038:49;:40;:49;:::i;:::-;19018:5;;18999:25;;;;:18;:25;;;;;;;;-1:-1:-1;;;;;18999:36:0;;;;;;;;;:88;;;;19130:12;:23;;;;:36;;19158:7;19130:36;:27;:36;:::i;:::-;-1:-1:-1;;;;;19104:23:0;;;;;;;:12;:23;;;;;;;;:62;;;;19188:6;;:60;;-1:-1:-1;;;19188:60:0;;;;;;;;;;;;;;;19242:4;19188:60;;;;;;:6;;;;;:25;;:60;;;;;19104:23;;19188:60;;;;;;;;:6;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;19188:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19188:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19188:60:0;19181:68;;;;-1:-1:-1;;18373:3:0;;18332:929;;;-1:-1:-1;18129:1164:0;;:::o;7312:109::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;7385:28;7404:8;7385:18;:28::i;:::-;7312:109;:::o;1079:192::-;1165:7;1201:12;1193:6;;;;1185:29;;;;-1:-1:-1;;;1185:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1185:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1237:5:0;;;1079:192::o;2122:232::-;2208:7;2310:12;2303:5;2295:28;;;;-1:-1:-1;;;2295:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2295:28:0;;2345:1;2341;:5;;;;;;;2122:232;-1:-1:-1;;;;2122:232:0:o;13972:211::-;14036:7;14060:14;;14056:120;;-1:-1:-1;14098:10:0;14091:17;;14056:120;-1:-1:-1;14159:5:0;;14152:12;;3250:178;3328:18;3332:4;3338:7;3328:3;:18::i;:::-;3327:19;3319:63;;;;;-1:-1:-1;;;3319:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3393:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;3393:27:0;3416:4;3393:27;;;3250:178::o;3786:203::-;3858:4;-1:-1:-1;;;;;3883:21:0;;3875:68;;;;-1:-1:-1;;;3875:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3961:20:0;:11;:20;;;;;;;;;;;;;;;3786:203::o;3508:183::-;3588:18;3592:4;3598:7;3588:3;:18::i;:::-;3580:64;;;;-1:-1:-1;;;3580:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3655:20:0;3678:5;3655:20;;;;;;;;;;;:28;;-1:-1:-1;;3655:28:0;;;3508:183::o;6915:234::-;-1:-1:-1;;;;;6989:22:0;;6981:73;;;;-1:-1:-1;;;6981:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:6;;;7072:38;;-1:-1:-1;;;;;7072:38:0;;;;7093:6;;;7072:38;;;7121:9;:20;;-1:-1:-1;;;;;;7121:20:0;-1:-1:-1;;;;;7121:20:0;;;;;;;;;;6915:234::o
Swarm Source
bzzr://df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c392
Loading...
Loading
Loading...
Loading
Net Worth in USD
$197.54
Net Worth in ETH
0.094707
Token Allocations
USDT
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1 | 197.54 | $197.54 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.