Source Code
Latest 15 from a total of 15 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Release | 9839861 | 2183 days ago | IN | 0 ETH | 0.00016335 | ||||
| Register | 9839814 | 2183 days ago | IN | 0.001 ETH | 0.0007881 | ||||
| Dispute | 9833395 | 2184 days ago | IN | 0 ETH | 0.00004933 | ||||
| Withdraw | 9833363 | 2184 days ago | IN | 0 ETH | 0.00008989 | ||||
| Register | 9833342 | 2184 days ago | IN | 0.001 ETH | 0.00213092 | ||||
| Register | 9833317 | 2184 days ago | IN | 0.001 ETH | 0.00081844 | ||||
| Renounce Lex DAO | 9833300 | 2184 days ago | IN | 0 ETH | 0.00004431 | ||||
| Transfer Manager | 9833286 | 2184 days ago | IN | 0 ETH | 0.00019543 | ||||
| New Escrow Fee | 9833275 | 2184 days ago | IN | 0 ETH | 0.00025028 | ||||
| Release | 9833228 | 2184 days ago | IN | 0 ETH | 0.00005684 | ||||
| Register | 9833203 | 2184 days ago | IN | 0 ETH | 0.00044051 | ||||
| Resolve | 9833144 | 2184 days ago | IN | 0 ETH | 0.00027495 | ||||
| Add Lex DAO | 9833107 | 2184 days ago | IN | 0 ETH | 0.00025342 | ||||
| Dispute | 9833101 | 2184 days ago | IN | 0 ETH | 0.00023889 | ||||
| Register | 9833089 | 2184 days ago | IN | 0 ETH | 0.00218954 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
LexGrow
Compiler Version
v0.5.14+commit.1f1aaa4
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-04-08
*/
/*
|| <$> LexGrow (LXG) <$> || version 1
DEAR MSG.SENDER(S):
/ LXG is a project in beta.
// Please audit and use at your own risk.
/// Entry into LXG shall not create an attorney/client relationship.
//// Likewise, LXG should not be construed as legal advice or replacement for professional counsel.
///// STEAL THIS C0D3SL4W
~presented by Open, ESQ || lexDAO LLC
*/
pragma solidity 0.5.14;
/***************
OPENZEPPELIN REFERENCE CONTRACTS - Context, Role, SafeMath, IERC20
***************/
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @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];
}
}
contract LexDAORole is Context {
using Roles for Roles.Role;
event LexDAOAdded(address indexed account);
event LexDAORemoved(address indexed account);
Roles.Role private _lexDAOs;
constructor () internal {
_addLexDAO(_msgSender());
}
modifier onlyLexDAO() {
require(isLexDAO(_msgSender()), "LexDAORole: caller does not have the LexDAO role");
_;
}
function isLexDAO(address account) public view returns (bool) {
return _lexDAOs.has(account);
}
function addLexDAO(address account) public onlyLexDAO {
_addLexDAO(account);
}
function renounceLexDAO() public {
_removeLexDAO(_msgSender());
}
function _addLexDAO(address account) internal {
_lexDAOs.add(account);
emit LexDAOAdded(account);
}
function _removeLexDAO(address account) internal {
_lexDAOs.remove(account);
emit LexDAORemoved(account);
}
}
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot 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).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
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).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
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.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
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.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be 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.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be 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);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be 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.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Chai.money interface
* @dev see https://github.com/dapphub/chai
*/
contract IChai {
function transfer(address dst, uint wad) external returns (bool);
// like transferFrom but dai-denominated
function move(address src, address dst, uint wad) external returns (bool);
function transferFrom(address src, address dst, uint wad) public returns (bool);
function approve(address usr, uint wad) external returns (bool);
function balanceOf(address usr) external returns (uint);
// Approve by signature
function permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s) external;
function dai(address usr) external returns (uint wad);
function dai(uint chai) external returns (uint wad);
// wad is denominated in dai
function join(address dst, uint wad) external;
// wad is denominated in (1/chi) * dai
function exit(address src, uint wad) public;
// wad is denominated in dai
function draw(address src, uint wad) external returns (uint chai);
}
/***************
LXG CONTRACT
***************/
contract LexGrow is LexDAORole {
using SafeMath for uint256;
// $DAI details:
address private daiAddress = 0x6B175474E89094C44Da98b954EedeAC495271d0F;
IERC20 public dai = IERC20(daiAddress);
// $CHAI details:
address private chaiAddress = 0x06AF07097C9Eeb7fD685c692751D5C66dB49c215;
IChai public chai = IChai(chaiAddress);
// <$> LXG <$> details:
address private vault = address(this);
address payable public manager;
uint8 public version = 1;
uint256 public escrowFee;
uint256 public lxg; // index for registered LexGrow
string public emoji = "⚖️🌱⚔️";
mapping (uint256 => Escrow) public escrow;
struct Escrow {
address client;
address provider;
uint256 deposit;
uint256 wrap;
uint256 termination;
uint256 index;
string details;
bool disputed;
bool released;
}
// LXG Contract Events:
event Registered(address indexed client, address indexed provider, uint256 indexed index);
event Released(uint256 indexed index);
event Disputed(uint256 indexed index, string indexed details);
event Resolved(address indexed resolver, uint256 indexed index, string indexed details);
event ManagerTransferred(address indexed manager, string indexed details);
constructor () public {
dai.approve(chaiAddress, uint(-1));
manager = msg.sender;
escrowFee = 0;
}
/***************
ESCROW FUNCTIONS
***************/
function register( // register $DAI locker with DSR via $CHAI; arbitration via lexDAO
address provider,
uint256 deposit,
uint256 termination,
string memory details) public payable {
require(msg.value == escrowFee);
uint256 index = lxg.add(1);
lxg = lxg.add(1);
dai.transferFrom(msg.sender, vault, deposit); // deposit $DAI
uint256 balance = chai.balanceOf(vault);
chai.join(vault, deposit); // wrap into $CHAI and store in vault
escrow[index] = Escrow(
msg.sender,
provider,
deposit,
chai.balanceOf(vault).sub(balance),
termination,
index,
details,
false,
false);
address(manager).transfer(msg.value);
emit Registered(msg.sender, provider, index);
}
function release(uint256 index) public {
Escrow storage escr = escrow[index];
require(escr.disputed == false); // program safety check / status
require(escr.released == false); // program safety check / status
require(now <= escr.termination); // program safety check / time
require(msg.sender == escr.client); // program safety check / authorization
chai.transfer(escr.provider, escr.wrap);
escr.released = true;
emit Released(index);
}
function withdraw(uint256 index) public { // client can withdraw $CHAI if termination time passes
Escrow storage escr = escrow[index];
require(escr.disputed == false); // program safety check / status
require(escr.released == false); // program safety check / status
require(now >= escr.termination); // program safety check / time
require(msg.sender == escr.client); // program safety check / authorization
chai.transfer(escr.client, escr.wrap);
escr.released = true;
emit Released(index);
}
/***************
ARBITRATION FUNCTIONS
***************/
function dispute(uint256 index, string memory details) public {
Escrow storage escr = escrow[index];
require(escr.released == false); // program safety check / status
require(now <= escr.termination); // program safety check / time
require(msg.sender == escr.client || msg.sender == escr.provider); // program safety check / authorization
escr.disputed = true;
emit Disputed(index, details);
}
function resolve(uint256 index, uint256 clientAward, uint256 providerAward, string memory details) public onlyLexDAO {
Escrow storage escr = escrow[index];
require(escr.disputed == true); // program safety check / status
require(escr.released == false); // program safety check / status
require(clientAward.add(providerAward) == escr.wrap); // program safety check / economics
require(msg.sender != escr.client); // program safety check / authorization
require(msg.sender != escr.provider); // program safety check / authorization
chai.transfer(escr.client, clientAward);
chai.transfer(escr.provider, providerAward);
escr.released = true;
emit Resolved(msg.sender, index, details);
}
/***************
MGMT FUNCTIONS
***************/
function newEscrowFee(uint256 weiAmount) public {
require(msg.sender == manager);
escrowFee = weiAmount;
}
function transferManager(address payable newManager, string memory details) public {
require(msg.sender == manager);
manager = newManager;
emit ManagerTransferred(manager, details);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"string","name":"details","type":"string"}],"name":"Disputed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"LexDAOAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"LexDAORemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"string","name":"details","type":"string"}],"name":"ManagerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"client","type":"address"},{"indexed":true,"internalType":"address","name":"provider","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"resolver","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"string","name":"details","type":"string"}],"name":"Resolved","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addLexDAO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"chai","outputs":[{"internalType":"contract IChai","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dai","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"string","name":"details","type":"string"}],"name":"dispute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"emoji","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"escrow","outputs":[{"internalType":"address","name":"client","type":"address"},{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"wrap","type":"uint256"},{"internalType":"uint256","name":"termination","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"string","name":"details","type":"string"},{"internalType":"bool","name":"disputed","type":"bool"},{"internalType":"bool","name":"released","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escrowFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isLexDAO","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lxg","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"newEscrowFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"termination","type":"uint256"},{"internalType":"string","name":"details","type":"string"}],"name":"register","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceLexDAO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"clientAward","type":"uint256"},{"internalType":"uint256","name":"providerAward","type":"uint256"},{"internalType":"string","name":"details","type":"string"}],"name":"resolve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newManager","type":"address"},{"internalType":"string","name":"details","type":"string"}],"name":"transferManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052736b175474e89094c44da98b954eedeac495271d0f600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507306af07097c9eeb7fd685c692751d5c66db49c215600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660146101000a81548160ff021916908360ff1602179055506040518060400160405280601081526020017fe29a96efb88ff09f8cb1e29a94efb88f00000000000000000000000000000000815250600990805190602001906200021e929190620005f3565b503480156200022c57600080fd5b506200024d62000241620003c660201b60201c565b620003ce60201b60201c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200033957600080fd5b505af11580156200034e573d6000803e3d6000fd5b505050506040513d60208110156200036557600080fd5b81019080805190602001909291905050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600781905550620006a2565b600033905090565b620003e98160006200042f60201b620022d31790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167fb537fbf973bf8146ca1abf8643286224ae97cb1c3dd29c9c95ee8682ff1c0ac360405160405180910390a250565b6200044182826200051360201b60201c565b15620004b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062002c6a6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200063657805160ff191683800117855562000667565b8280016001018555821562000667579182015b828111156200066657825182559160200191906001019062000649565b5b5090506200067691906200067a565b5090565b6200069f91905b808211156200069b57600081600090555060010162000681565b5090565b90565b6125b880620006b26000396000f3fe6080604052600436106101095760003560e01c806366c85dee11610095578063b69d045611610064578063b69d04561461068e578063d68ff191146106e5578063d731f8f514610831578063e70163c414610848578063f4b9fa751461093057610109565b806366c85dee146104d65780636a5b428b146105a85780636e7e3c18146105d3578063aba11c46146105fe57610109565b806337bdc99b116100dc57806337bdc99b146102dc57806338d4013514610317578063481c6a751461036857806354fd4d50146103bf57806359466d9a146103f057610109565b80631135c5811461010e578063207de3f4146101fd5780632e1a7d4d146102385780632ed1f6cc14610273575b600080fd5b6101fb6004803603608081101561012457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460018302840111640100000000831117156101a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610987565b005b34801561020957600080fd5b506102366004803603602081101561022057600080fd5b8101908080359060200190929190505050611062565b005b34801561024457600080fd5b506102716004803603602081101561025b57600080fd5b81019080803590602001909291905050506110c6565b005b34801561027f57600080fd5b506102c26004803603602081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e9565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b50610315600480360360208110156102ff57600080fd5b8101908080359060200190929190505050611306565b005b34801561032357600080fd5b506103666004803603602081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611529565b005b34801561037457600080fd5b5061037d61159a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103cb57600080fd5b506103d46115c0565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103fc57600080fd5b506104d46004803603608081101561041357600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184600183028401116401000000008311171561048257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115d3565b005b3480156104e257600080fd5b506105a6600480360360408110156104f957600080fd5b81019080803590602001909291908035906020019064010000000081111561052057600080fd5b82018360208201111561053257600080fd5b8035906020019184600183028401116401000000008311171561055457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611a4a565b005b3480156105b457600080fd5b506105bd611bfa565b6040518082815260200191505060405180910390f35b3480156105df57600080fd5b506105e8611c00565b6040518082815260200191505060405180910390f35b34801561060a57600080fd5b50610613611c06565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610653578082015181840152602081019050610638565b50505050905090810190601f1680156106805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561069a57600080fd5b506106a3611ca4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f157600080fd5b5061071e6004803603602081101561070857600080fd5b8101908080359060200190929190505050611cca565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001888152602001878152602001868152602001858152602001806020018415151515815260200183151515158152602001828103825285818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34801561083d57600080fd5b50610846611e0a565b005b34801561085457600080fd5b5061092e6004803603604081101561086b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156108a857600080fd5b8201836020820111156108ba57600080fd5b803590602001918460018302840111640100000000831117156108dc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e1c565b005b34801561093c57600080fd5b50610945611f81565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600754341461099557600080fd5b60006109ad6001600854611fa790919063ffffffff16565b90506109c56001600854611fa790919063ffffffff16565b600881905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050506040513d6020811015610af457600080fd5b8101908080519060200190929190505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610cd357600080fd5b505af1158015610ce7573d6000803e3d6000fd5b505050506040518061012001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001610e4583600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610dfc57600080fd5b505af1158015610e10573d6000803e3d6000fd5b505050506040513d6020811015610e2657600080fd5b810190808051906020019092919050505061202f90919063ffffffff16565b815260200185815260200183815260200184815260200160001515815260200160001515815250600a600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006019080519060200190610f5192919061246b565b5060e08201518160070160006101000a81548160ff0219169083151502179055506101008201518160070160016101000a81548160ff021916908315150217905550905050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610ffe573d6000803e3d6000fd5b50818673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f199098452639b249bef6f727bc09ce903cece47ca72a8518bef9367ad39b6de760405160405180910390a4505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110bc57600080fd5b8060078190555050565b6000600a60008381526020019081526020016000209050600015158160070160009054906101000a900460ff161515146110ff57600080fd5b600015158160070160019054906101000a900460ff1615151461112157600080fd5b806004015442101561113257600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461118e57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561125f57600080fd5b505af1158015611273573d6000803e3d6000fd5b505050506040513d602081101561128957600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550817ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c56560405160405180910390a25050565b60006112ff82600061207990919063ffffffff16565b9050919050565b6000600a60008381526020019081526020016000209050600015158160070160009054906101000a900460ff1615151461133f57600080fd5b600015158160070160019054906101000a900460ff1615151461136157600080fd5b806004015442111561137257600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ce57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b505050506040513d60208110156114c957600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550817ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c56560405160405180910390a25050565b611539611534612157565b6112e9565b61158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806125546030913960400191505060405180910390fd5b6115978161215f565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660149054906101000a900460ff1681565b6115e36115de612157565b6112e9565b611638576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806125546030913960400191505060405180910390fd5b6000600a60008681526020019081526020016000209050600115158160070160009054906101000a900460ff1615151461167157600080fd5b600015158160070160019054906101000a900460ff1615151461169357600080fd5b80600301546116ab8486611fa790919063ffffffff16565b146116b557600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561171257600080fd5b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561176f57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b505050506040513d602081101561186657600080fd5b810190808051906020019092919050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550816040518082805190602001908083835b602083106119d257805182526020820191506020810190506020830392506119af565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020853373ffffffffffffffffffffffffffffffffffffffff167f7f0e9dbada609c2020ec7a0f8ecc546c722460e33f8819cb401a81a20686729b60405160405180910390a45050505050565b6000600a60008481526020019081526020016000209050600015158160070160019054906101000a900460ff16151514611a8357600080fd5b8060040154421115611a9457600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b4157508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611b4a57600080fd5b60018160070160006101000a81548160ff021916908315150217905550816040518082805190602001908083835b60208310611b9b5780518252602082019150602081019050602083039250611b78565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020837fd204349004c12248e5f9be3960833f6fded8178a82a06dab9f9a5c660d70517360405160405180910390a3505050565b60075481565b60085481565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c9c5780601f10611c7157610100808354040283529160200191611c9c565b820191906000526020600020905b815481529060010190602001808311611c7f57829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004015490806005015490806006018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dda5780601f10611daf57610100808354040283529160200191611dda565b820191906000526020600020905b815481529060010190602001808311611dbd57829003601f168201915b5050505050908060070160009054906101000a900460ff16908060070160019054906101000a900460ff16905089565b611e1a611e15612157565b6121b9565b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e7657600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806040518082805190602001908083835b60208310611eeb5780518252602082019150602081019050602083039250611ec8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fee2f4bbe3e1d43fed9f453a814f4941b1e89497e9e01feb0c9a0131ac2e999e260405160405180910390a35050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080828401905083811015612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061207183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612213565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125326022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6121738160006122d390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fb537fbf973bf8146ca1abf8643286224ae97cb1c3dd29c9c95ee8682ff1c0ac360405160405180910390a250565b6121cd8160006123ae90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f3d1b0de3d4e88d51f64563b4babc2eff600d632b83f28fb8321dde9c7dd4e97d60405160405180910390a250565b60008383111582906122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561228557808201518184015260208101905061226a565b50505050905090810190601f1680156122b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6122dd8282612079565b15612350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123b88282612079565b61240d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125116021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106124ac57805160ff19168380011785556124da565b828001600101855582156124da579182015b828111156124d95782518255916020019190600101906124be565b5b5090506124e791906124eb565b5090565b61250d91905b808211156125095760008160009055506001016124f1565b5090565b9056fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734c657844414f526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204c657844414f20726f6c65a265627a7a723158207e7936e91326b2985ae2d5c518e838caafac3b1b8ec7032f59137743cea7ee0b64736f6c634300050e0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106101095760003560e01c806366c85dee11610095578063b69d045611610064578063b69d04561461068e578063d68ff191146106e5578063d731f8f514610831578063e70163c414610848578063f4b9fa751461093057610109565b806366c85dee146104d65780636a5b428b146105a85780636e7e3c18146105d3578063aba11c46146105fe57610109565b806337bdc99b116100dc57806337bdc99b146102dc57806338d4013514610317578063481c6a751461036857806354fd4d50146103bf57806359466d9a146103f057610109565b80631135c5811461010e578063207de3f4146101fd5780632e1a7d4d146102385780632ed1f6cc14610273575b600080fd5b6101fb6004803603608081101561012457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460018302840111640100000000831117156101a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610987565b005b34801561020957600080fd5b506102366004803603602081101561022057600080fd5b8101908080359060200190929190505050611062565b005b34801561024457600080fd5b506102716004803603602081101561025b57600080fd5b81019080803590602001909291905050506110c6565b005b34801561027f57600080fd5b506102c26004803603602081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e9565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b50610315600480360360208110156102ff57600080fd5b8101908080359060200190929190505050611306565b005b34801561032357600080fd5b506103666004803603602081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611529565b005b34801561037457600080fd5b5061037d61159a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103cb57600080fd5b506103d46115c0565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103fc57600080fd5b506104d46004803603608081101561041357600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184600183028401116401000000008311171561048257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115d3565b005b3480156104e257600080fd5b506105a6600480360360408110156104f957600080fd5b81019080803590602001909291908035906020019064010000000081111561052057600080fd5b82018360208201111561053257600080fd5b8035906020019184600183028401116401000000008311171561055457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611a4a565b005b3480156105b457600080fd5b506105bd611bfa565b6040518082815260200191505060405180910390f35b3480156105df57600080fd5b506105e8611c00565b6040518082815260200191505060405180910390f35b34801561060a57600080fd5b50610613611c06565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610653578082015181840152602081019050610638565b50505050905090810190601f1680156106805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561069a57600080fd5b506106a3611ca4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f157600080fd5b5061071e6004803603602081101561070857600080fd5b8101908080359060200190929190505050611cca565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001888152602001878152602001868152602001858152602001806020018415151515815260200183151515158152602001828103825285818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34801561083d57600080fd5b50610846611e0a565b005b34801561085457600080fd5b5061092e6004803603604081101561086b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156108a857600080fd5b8201836020820111156108ba57600080fd5b803590602001918460018302840111640100000000831117156108dc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e1c565b005b34801561093c57600080fd5b50610945611f81565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600754341461099557600080fd5b60006109ad6001600854611fa790919063ffffffff16565b90506109c56001600854611fa790919063ffffffff16565b600881905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050506040513d6020811015610af457600080fd5b8101908080519060200190929190505050506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b505050506040513d6020811015610bf557600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610cd357600080fd5b505af1158015610ce7573d6000803e3d6000fd5b505050506040518061012001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001868152602001610e4583600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610dfc57600080fd5b505af1158015610e10573d6000803e3d6000fd5b505050506040513d6020811015610e2657600080fd5b810190808051906020019092919050505061202f90919063ffffffff16565b815260200185815260200183815260200184815260200160001515815260200160001515815250600a600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006019080519060200190610f5192919061246b565b5060e08201518160070160006101000a81548160ff0219169083151502179055506101008201518160070160016101000a81548160ff021916908315150217905550905050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610ffe573d6000803e3d6000fd5b50818673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f199098452639b249bef6f727bc09ce903cece47ca72a8518bef9367ad39b6de760405160405180910390a4505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110bc57600080fd5b8060078190555050565b6000600a60008381526020019081526020016000209050600015158160070160009054906101000a900460ff161515146110ff57600080fd5b600015158160070160019054906101000a900460ff1615151461112157600080fd5b806004015442101561113257600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461118e57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561125f57600080fd5b505af1158015611273573d6000803e3d6000fd5b505050506040513d602081101561128957600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550817ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c56560405160405180910390a25050565b60006112ff82600061207990919063ffffffff16565b9050919050565b6000600a60008381526020019081526020016000209050600015158160070160009054906101000a900460ff1615151461133f57600080fd5b600015158160070160019054906101000a900460ff1615151461136157600080fd5b806004015442111561137257600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ce57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b505050506040513d60208110156114c957600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550817ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c56560405160405180910390a25050565b611539611534612157565b6112e9565b61158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806125546030913960400191505060405180910390fd5b6115978161215f565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660149054906101000a900460ff1681565b6115e36115de612157565b6112e9565b611638576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806125546030913960400191505060405180910390fd5b6000600a60008681526020019081526020016000209050600115158160070160009054906101000a900460ff1615151461167157600080fd5b600015158160070160019054906101000a900460ff1615151461169357600080fd5b80600301546116ab8486611fa790919063ffffffff16565b146116b557600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561171257600080fd5b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561176f57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b505050506040513d602081101561186657600080fd5b810190808051906020019092919050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b81019080805190602001909291905050505060018160070160016101000a81548160ff021916908315150217905550816040518082805190602001908083835b602083106119d257805182526020820191506020810190506020830392506119af565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020853373ffffffffffffffffffffffffffffffffffffffff167f7f0e9dbada609c2020ec7a0f8ecc546c722460e33f8819cb401a81a20686729b60405160405180910390a45050505050565b6000600a60008481526020019081526020016000209050600015158160070160019054906101000a900460ff16151514611a8357600080fd5b8060040154421115611a9457600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b4157508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611b4a57600080fd5b60018160070160006101000a81548160ff021916908315150217905550816040518082805190602001908083835b60208310611b9b5780518252602082019150602081019050602083039250611b78565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020837fd204349004c12248e5f9be3960833f6fded8178a82a06dab9f9a5c660d70517360405160405180910390a3505050565b60075481565b60085481565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c9c5780601f10611c7157610100808354040283529160200191611c9c565b820191906000526020600020905b815481529060010190602001808311611c7f57829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004015490806005015490806006018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dda5780601f10611daf57610100808354040283529160200191611dda565b820191906000526020600020905b815481529060010190602001808311611dbd57829003601f168201915b5050505050908060070160009054906101000a900460ff16908060070160019054906101000a900460ff16905089565b611e1a611e15612157565b6121b9565b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e7657600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806040518082805190602001908083835b60208310611eeb5780518252602082019150602081019050602083039250611ec8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fee2f4bbe3e1d43fed9f453a814f4941b1e89497e9e01feb0c9a0131ac2e999e260405160405180910390a35050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080828401905083811015612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061207183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612213565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125326022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6121738160006122d390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fb537fbf973bf8146ca1abf8643286224ae97cb1c3dd29c9c95ee8682ff1c0ac360405160405180910390a250565b6121cd8160006123ae90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f3d1b0de3d4e88d51f64563b4babc2eff600d632b83f28fb8321dde9c7dd4e97d60405160405180910390a250565b60008383111582906122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561228557808201518184015260208101905061226a565b50505050905090810190601f1680156122b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6122dd8282612079565b15612350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123b88282612079565b61240d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125116021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106124ac57805160ff19168380011785556124da565b828001600101855582156124da579182015b828111156124d95782518255916020019190600101906124be565b5b5090506124e791906124eb565b5090565b61250d91905b808211156125095760008160009055506001016124f1565b5090565b9056fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734c657844414f526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204c657844414f20726f6c65a265627a7a723158207e7936e91326b2985ae2d5c518e838caafac3b1b8ec7032f59137743cea7ee0b64736f6c634300050e0032
Deployed Bytecode Sourcemap
12757:5502:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14366:972;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14366:972:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14366:972:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14366:972:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14366:972:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14366:972:0;;;;;;;;;;;;;;;:::i;:::-;;17889:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17889:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17889:129:0;;;;;;;;;;;;;;;;;:::i;:::-;;15881:587;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15881:587:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15881:587:0;;;;;;;;;;;;;;;;;:::i;:::-;;3012:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3012:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3012:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15350:519;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15350:519:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15350:519:0;;;;;;;;;;;;;;;;;:::i;:::-;;3129:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3129:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3129:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13213:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13213:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13250:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13250:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17020:793;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17020:793:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17020:793:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17020:793:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17020:793:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17020:793:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17020:793:0;;;;;;;;;;;;;;;:::i;:::-;;16551:457;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16551:457:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16551:457:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16551:457:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16551:457:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;16551:457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16551:457:0;;;;;;;;;;;;;;;:::i;:::-;;13281:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13281:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13312:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13312:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13369:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13369:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13369:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13089:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13089:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13416:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13416:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13416:41:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13416:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3229:79:0;;;:::i;:::-;;18030:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18030:226:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18030:226:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18030:226:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18030:226:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18030:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18030:226:0;;;;;;;;;;;;;;;:::i;:::-;;12936:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12936:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14366:972;14615:9;;14602;:22;14594:31;;;;;;14633:13;14649:10;14657:1;14649:3;;:7;;:10;;;;:::i;:::-;14633:26;;14674:10;14682:1;14674:3;;:7;;:10;;;;:::i;:::-;14668:3;:16;;;;14699:3;;;;;;;;;;;:16;;;14716:10;14728:5;;;;;;;;;;;14735:7;14699:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14699:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14699:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14699:44:0;;;;;;;;;;;;;;;;;14770:15;14788:4;;;;;;;;;;;:14;;;14803:5;;;;;;;;;;;14788:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14788:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14788:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14788:21:0;;;;;;;;;;;;;;;;14770:39;;14820:4;;;;;;;;;;;:9;;;14830:5;;;;;;;;;;;14837:7;14820:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14820:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14820:25:0;;;;14932:275;;;;;;;;14958:10;14932:275;;;;;;14988:8;14932:275;;;;;;15015:7;14932:275;;;;15042:34;15068:7;15042:4;;;;;;;;;;;:14;;;15057:5;;;;;;;;;;;15042:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15042:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15042:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15042:21:0;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;14932:275;;;;15095:11;14932:275;;;;15125:5;14932:275;;;;15149:7;14932:275;;;;15176:5;14932:275;;;;;;15201:5;14932:275;;;;;14916:6;:13;14923:5;14916:13;;;;;;;;;;;:291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15236:7;;;;;;;;;;;15228:25;;:36;15254:9;15228:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15228:36:0;15323:5;15313:8;15290:39;;15301:10;15290:39;;;;;;;;;;;;14366:972;;;;;;:::o;17889:129::-;17970:7;;;;;;;;;;;17956:21;;:10;:21;;;17948:30;;;;;;18001:9;17989;:21;;;;17889:129;:::o;15881:587::-;15985:19;16007:6;:13;16014:5;16007:13;;;;;;;;;;;15985:35;;16056:5;16039:22;;:4;:13;;;;;;;;;;;;:22;;;16031:31;;;;;;16131:5;16114:22;;:4;:13;;;;;;;;;;;;:22;;;16106:31;;;;;;16193:4;:16;;;16186:3;:23;;16178:32;;;;;;16271:4;:11;;;;;;;;;;;;16257:25;;:10;:25;;;16249:34;;;;;;16341:4;;;;;;;;;;;:13;;;16355:4;:11;;;;;;;;;;;;16368:4;:9;;;16341:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16341:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16341:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16341:37:0;;;;;;;;;;;;;;;;;16416:4;16400;:13;;;:20;;;;;;;;;;;;;;;;;;16453:5;16444:15;;;;;;;;;;15881:587;;:::o;3012:109::-;3068:4;3092:21;3105:7;3092:8;:12;;:21;;;;:::i;:::-;3085:28;;3012:109;;;:::o;15350:519::-;15398:19;15420:6;:13;15427:5;15420:13;;;;;;;;;;;15398:35;;15466:5;15449:22;;:4;:13;;;;;;;;;;;;:22;;;15441:31;;;;;;15538:5;15521:22;;:4;:13;;;;;;;;;;;;:22;;;15513:31;;;;;;15600:4;:16;;;15593:3;:23;;15585:32;;;;;;15678:4;:11;;;;;;;;;;;;15664:25;;:10;:25;;;15656:34;;;;;;15740:4;;;;;;;;;;;:13;;;15754:4;:13;;;;;;;;;;;;15769:4;:9;;;15740:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15740:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15740:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15740:39:0;;;;;;;;;;;;;;;;;15817:4;15801;:13;;;:20;;;;;;;;;;;;;;;;;;15854:5;15845:15;;;;;;;;;;15350:519;;:::o;3129:92::-;2905:22;2914:12;:10;:12::i;:::-;2905:8;:22::i;:::-;2897:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:19;3205:7;3194:10;:19::i;:::-;3129:92;:::o;13213:30::-;;;;;;;;;;;;;:::o;13250:24::-;;;;;;;;;;;;;:::o;17020:793::-;2905:22;2914:12;:10;:12::i;:::-;2905:8;:22::i;:::-;2897:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17148:19;17170:6;:13;17177:5;17170:13;;;;;;;;;;;17148:35;;17216:4;17199:21;;:4;:13;;;;;;;;;;;;:21;;;17191:30;;;;;;17287:5;17270:22;;:4;:13;;;;;;;;;;;;:22;;;17262:31;;;;;;17376:4;:9;;;17342:30;17358:13;17342:11;:15;;:30;;;;:::i;:::-;:43;17334:52;;;;;;17455:4;:11;;;;;;;;;;;;17441:25;;:10;:25;;;;17433:34;;;;;;17542:4;:13;;;;;;;;;;;;17528:27;;:10;:27;;;;17520:36;;;;;;17618:4;;;;;;;;;;;:13;;;17632:4;:11;;;;;;;;;;;;17645;17618:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17618:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17618:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17618:39:0;;;;;;;;;;;;;;;;;17669:4;;;;;;;;;;;:13;;;17683:4;:13;;;;;;;;;;;;17698;17669:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17669:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17669:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17669:43:0;;;;;;;;;;;;;;;;;17744:4;17728;:13;;;:20;;;;;;;;;;;;;;;;;;17797:7;17769:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;17769:36:0;;;;;;;;;;;;;;;;17790:5;17778:10;17769:36;;;;;;;;;;;;2991:1;17020:793;;;;:::o;16551:457::-;16624:19;16646:6;:13;16653:5;16646:13;;;;;;;;;;;16624:35;;16696:5;16679:22;;:4;:13;;;;;;;;;;;;:22;;;16671:31;;;;;;16761:4;:16;;;16754:3;:23;;16746:32;;;;;;16842:4;:11;;;;;;;;;;;;16828:25;;:10;:25;;;:56;;;;16871:4;:13;;;;;;;;;;;;16857:27;;:10;:27;;;16828:56;16820:65;;;;;;16951:4;16935;:13;;;:20;;;;;;;;;;;;;;;;;;16992:7;16976:24;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16976:24:0;;;;;;;;;;;;;;;;16985:5;16976:24;;;;;;;;;;16551:457;;;:::o;13281:24::-;;;;:::o;13312:18::-;;;;:::o;13369:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13089:38::-;;;;;;;;;;;;;:::o;13416:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3229:79::-;3273:27;3287:12;:10;:12::i;:::-;3273:13;:27::i;:::-;3229:79::o;18030:226::-;18146:7;;;;;;;;;;;18132:21;;:10;:21;;;18124:30;;;;;;18175:10;18165:7;;:20;;;;;;;;;;;;;;;;;;18240:7;18212:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;18212:36:0;;;;;;;;;;;;;;;;18231:7;;;;;;;;;;;18212:36;;;;;;;;;;;;18030:226;;:::o;12936:38::-;;;;;;;;;;;;;:::o;4415:181::-;4473:7;4493:9;4509:1;4505;:5;4493:17;;4534:1;4529;:6;;4521:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:1;4580:8;;;4415:181;;;;:::o;4871:136::-;4929:7;4956:43;4960:1;4963;4956:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4949:50;;4871:136;;;;:::o;2364:203::-;2436:4;2480:1;2461:21;;:7;:21;;;;2453:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2539:4;:11;;:20;2551:7;2539:20;;;;;;;;;;;;;;;;;;;;;;;;;2532:27;;2364:203;;;;:::o;1243:98::-;1288:15;1323:10;1316:17;;1243:98;:::o;3316:122::-;3373:21;3386:7;3373:8;:12;;:21;;;;:::i;:::-;3422:7;3410:20;;;;;;;;;;;;3316:122;:::o;3446:130::-;3506:24;3522:7;3506:8;:15;;:24;;;;:::i;:::-;3560:7;3546:22;;;;;;;;;;;;3446:130;:::o;5302:192::-;5388:7;5421:1;5416;:6;;5424:12;5408:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5408:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5448:9;5464:1;5460;:5;5448:17;;5485:1;5478:8;;;5302:192;;;;;:::o;1828:178::-;1906:18;1910:4;1916:7;1906:3;:18::i;:::-;1905:19;1897:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1994:4;1971;:11;;:20;1983:7;1971:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1828:178;;:::o;2086:183::-;2166:18;2170:4;2176:7;2166:3;:18::i;:::-;2158:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2256:5;2233:4;:11;;:20;2245:7;2233:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;2086:183;;:::o;12757:5502::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://7e7936e91326b2985ae2d5c518e838caafac3b1b8ec7032f59137743cea7ee0b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.