Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
HELIX
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-03-06 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, 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); } interface IERC20Permit { function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; function nonces(address owner) external view returns (uint256); function DOMAIN_SEPARATOR() external view returns (bytes32); } interface IOracle { function update() external; function consult(address _token, uint256 _amountIn) external view returns (uint144 amountOut); function twap(address _token, uint256 _amountIn) external view returns (uint144 _amountOut); } library Counters { struct Counter { uint256 _value; } function current(Counter storage counter) internal view returns (uint256) { return counter._value; } function increment(Counter storage counter) internal { unchecked { counter._value += 1; } } function decrement(Counter storage counter) internal { uint256 value = counter._value; require(value > 0, "Counter: decrement overflow"); unchecked { counter._value = value - 1; } } } library ECDSA { function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { if (signature.length != 65) { revert("ECDSA: invalid signature length"); } bytes32 r; bytes32 s; uint8 v; assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return recover(hash, v, r, s); } function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value"); require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value"); address signer = ecrecover(hash, v, r, s); require(signer != address(0), "ECDSA: invalid signature"); return signer; } function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } } library Math { error MathOverflowedMulDiv(); enum Rounding { Floor, Ceil, Trunc, Expand } function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function max(uint256 a, uint256 b) internal pure returns (uint256) { return a > b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { return (a & b) + (a ^ b) / 2; } function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { if (b == 0) { return a / b; } return a == 0 ? 0 : (a - 1) / b + 1; } function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) { unchecked { uint256 prod0 = x * y; uint256 prod1; assembly { let mm := mulmod(x, y, not(0)) prod1 := sub(sub(mm, prod0), lt(mm, prod0)) } if (prod1 == 0) { return prod0 / denominator; } if (denominator <= prod1) { revert MathOverflowedMulDiv(); } /////////////////////////////////////////////// // 512 by 256 division. /////////////////////////////////////////////// uint256 remainder; assembly { remainder := mulmod(x, y, denominator) prod1 := sub(prod1, gt(remainder, prod0)) prod0 := sub(prod0, remainder) } uint256 twos = denominator & (0 - denominator); assembly { denominator := div(denominator, twos) prod0 := div(prod0, twos) twos := add(div(sub(0, twos), twos), 1) } prod0 |= prod1 * twos; uint256 inverse = (3 * denominator) ^ 2; inverse *= 2 - denominator * inverse; inverse *= 2 - denominator * inverse; inverse *= 2 - denominator * inverse; inverse *= 2 - denominator * inverse; inverse *= 2 - denominator * inverse; inverse *= 2 - denominator * inverse; result = prod0 * inverse; return result; } } function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) { uint256 result = mulDiv(x, y, denominator); if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) { result += 1; } return result; } function sqrt(uint256 a) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 result = 1 << (log2(a) >> 1); unchecked { result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; return min(result, a / result); } } function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = sqrt(a); return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0); } } function log2(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 128; } if (value >> 64 > 0) { value >>= 64; result += 64; } if (value >> 32 > 0) { value >>= 32; result += 32; } if (value >> 16 > 0) { value >>= 16; result += 16; } if (value >> 8 > 0) { value >>= 8; result += 8; } if (value >> 4 > 0) { value >>= 4; result += 4; } if (value >> 2 > 0) { value >>= 2; result += 2; } if (value >> 1 > 0) { result += 1; } } return result; } function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log2(value); return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0); } } function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10 ** 64) { value /= 10 ** 64; result += 64; } if (value >= 10 ** 32) { value /= 10 ** 32; result += 32; } if (value >= 10 ** 16) { value /= 10 ** 16; result += 16; } if (value >= 10 ** 8) { value /= 10 ** 8; result += 8; } if (value >= 10 ** 4) { value /= 10 ** 4; result += 4; } if (value >= 10 ** 2) { value /= 10 ** 2; result += 2; } if (value >= 10 ** 1) { result += 1; } } return result; } function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log10(value); return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0); } } function log256(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 16; } if (value >> 64 > 0) { value >>= 64; result += 8; } if (value >> 32 > 0) { value >>= 32; result += 4; } if (value >> 16 > 0) { value >>= 16; result += 2; } if (value >> 8 > 0) { result += 1; } } return result; } function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log256(value); return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0); } } function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) { return uint8(rounding) % 2 == 1; } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Operator is Context, Ownable { address private _operator; event OperatorTransferred(address indexed previousOperator, address indexed newOperator); constructor() { _operator = _msgSender(); emit OperatorTransferred(address(0), _operator); } function operator() public view returns (address) { return _operator; } modifier onlyOperator() { require(_operator == msg.sender, "operator: caller is not the operator"); _; } function isOperator() public view returns (bool) { return _msgSender() == _operator; } function transferOperator(address newOperator_) public onlyOwner { _transferOperator(newOperator_); } function _transferOperator(address newOperator_) internal { require(newOperator_ != address(0), "operator: zero address given for new operator"); emit OperatorTransferred(address(0), newOperator_); _operator = newOperator_; } } abstract contract EIP712 { bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; uint256 private immutable _CACHED_CHAIN_ID; bytes32 private immutable _HASHED_NAME; bytes32 private immutable _HASHED_VERSION; bytes32 private immutable _TYPE_HASH; constructor(string memory name, string memory version) { bytes32 hashedName = keccak256(bytes(name)); bytes32 hashedVersion = keccak256(bytes(version)); bytes32 typeHash = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"); _HASHED_NAME = hashedName; _HASHED_VERSION = hashedVersion; _CACHED_CHAIN_ID = block.chainid; _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion); _TYPE_HASH = typeHash; } function _domainSeparatorV4() internal view returns (bytes32) { if (block.chainid == _CACHED_CHAIN_ID) { return _CACHED_DOMAIN_SEPARATOR; } else { return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION); } } function _buildDomainSeparator(bytes32 typeHash, bytes32 name, bytes32 version) private view returns (bytes32) { return keccak256( abi.encode( typeHash, name, version, block.chainid, address(this) ) ); } function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) { return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash); } } contract ERC20 is Context, IERC20 { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 { using Counters for Counters.Counter; mapping (address => Counters.Counter) private _nonces; bytes32 private immutable _PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); constructor(string memory name) EIP712(name, "1") { } function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public virtual override { require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); bytes32 structHash = keccak256( abi.encode( _PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline ) ); bytes32 hash = _hashTypedDataV4(structHash); address signer = ECDSA.recover(hash, v, r, s); require(signer == owner, "ERC20Permit: invalid signature"); _approve(owner, spender, value); } function nonces(address owner) public view virtual override returns (uint256) { return _nonces[owner].current(); } function DOMAIN_SEPARATOR() external view override returns (bytes32) { return _domainSeparatorV4(); } function _useNonce(address owner) internal virtual returns (uint256 current) { Counters.Counter storage nonce = _nonces[owner]; current = nonce.current(); nonce.increment(); } } contract HELIX is ERC20, Operator { using SafeMath for uint256; // Have the rewards been distributed to the pools bool public rewardPoolDistributed = false; /* ================= Taxation =============== */ address public oracle; constructor() ERC20("Helix", "HELIX") { _mint(msg.sender, 1 ether); } //////////////////// // VIEW FUNCTIONS // //////////////////// function getCashPrice() public view returns (uint256) { try IOracle(oracle).consult(address(this), 1e18) returns (uint144 _price) { return uint256(_price); } catch { revert("Failed to fetch price from Oracle"); } } ///////////////////// // WRITE FUNCTIONS // ///////////////////// function burn(uint256 amount) public { _burn(msg.sender, amount); } ////////////////////////// // RESTRICTED FUNCTIONS // ////////////////////////// function setOracle(address _oracle) public onlyOperator { require(_oracle != address(0), "oracle address cannot be 0 address"); oracle = _oracle; } function mint(address recipient_, uint256 amount_) public onlyOperator returns (bool) { uint256 balanceBefore = balanceOf(recipient_); _mint(recipient_, amount_); uint256 balanceAfter = balanceOf(recipient_); return balanceAfter > balanceBefore; } function burnFrom(address account, uint256 amount) public onlyOperator { _burn(account, amount); } function distributeReward(address _genesisPool, address _helixPool) external onlyOperator { require(!rewardPoolDistributed, "only can distribute once"); require(_genesisPool != address(0), "!_genesisPool"); require(_helixPool != address(0), "!_helixPool"); rewardPoolDistributed = true; _mint(_genesisPool, 11000 ether); // 11k HELIX for Genesis Pools (24hrs from launch) _mint(_helixPool, 100000 ether); // Day 2 - 5 rewards (HELIX-wS LP Staking Pool) _mint(0x8eb5920b5fB06b7D1ED77a62CDCd63bec0b7C236, 4000 ether); // DevFund } function governanceRecoverUnsupported(IERC20 _token, uint256 _amount, address _to) external onlyOperator { _token.transfer(_to, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_genesisPool","type":"address"},{"internalType":"address","name":"_helixPool","type":"address"}],"name":"distributeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCashPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPoolDistributed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oracle","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040525f600660146101000a81548160ff0219169083151502179055503480156200002a575f80fd5b506040518060400160405280600581526020017f48656c69780000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f48454c49580000000000000000000000000000000000000000000000000000008152508160039081620000a8919062000622565b508060049081620000ba919062000622565b5050505f620000ce6200025560201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200017b6200025560201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a36200024f33670de0b6b3a76400006200025c60201b60201c565b62000817565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c49062000764565b60405180910390fd5b620002e05f8383620003b960201b60201c565b8060025f828254620002f39190620007b1565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620003479190620007b1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003ad9190620007fc565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200043a57607f821691505b60208210810362000450576200044f620003f5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000477565b620004c0868362000477565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200050a62000504620004fe84620004d8565b620004e1565b620004d8565b9050919050565b5f819050919050565b6200052583620004ea565b6200053d620005348262000511565b84845462000483565b825550505050565b5f90565b6200055362000545565b620005608184846200051a565b505050565b5b8181101562000587576200057b5f8262000549565b60018101905062000566565b5050565b601f821115620005d657620005a08162000456565b620005ab8462000468565b81016020851015620005bb578190505b620005d3620005ca8562000468565b83018262000565565b50505b505050565b5f82821c905092915050565b5f620005f85f1984600802620005db565b1980831691505092915050565b5f620006128383620005e7565b9150826002028217905092915050565b6200062d82620003be565b67ffffffffffffffff811115620006495762000648620003c8565b5b62000655825462000422565b620006628282856200058b565b5f60209050601f83116001811462000698575f841562000683578287015190505b6200068f858262000605565b865550620006fe565b601f198416620006a88662000456565b5f5b82811015620006d157848901518255600182019150602085019450602081019050620006aa565b86831015620006f15784890151620006ed601f891682620005e7565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6200074c601f8362000706565b9150620007598262000716565b602082019050919050565b5f6020820190508181035f8301526200077d816200073e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007bd82620004d8565b9150620007ca83620004d8565b9250828201905080821115620007e557620007e462000784565b5b92915050565b620007f681620004d8565b82525050565b5f602082019050620008115f830184620007eb565b92915050565b612d4180620008255f395ff3fe608060405234801561000f575f80fd5b506004361061018c575f3560e01c806370a08231116100dc57806395d89b4111610095578063a9059cbb1161006f578063a9059cbb14610472578063dd62ed3e146104a2578063f2fde38b146104d2578063f4fd47cf146104ee5761018c565b806395d89b41146104065780639662676c14610424578063a457c2d7146104425761018c565b806370a0823114610358578063715018a61461038857806379cc6790146103925780637adbf973146103ae5780637dc0d1d0146103ca5780638da5cb5b146103e85761018c565b8063313ce5671161014957806342966c681161012357806342966c68146102e45780634456eda21461030057806354575af41461031e578063570ca7351461033a5761018c565b8063313ce56714610266578063395093511461028457806340c10f19146102b45761018c565b806306fdde0314610190578063095ea7b3146101ae57806316ec0894146101de57806318160ddd146101fc57806323b872dd1461021a57806329605e771461024a575b5f80fd5b61019861050a565b6040516101a59190611de3565b60405180910390f35b6101c860048036038101906101c39190611e94565b61059a565b6040516101d59190611eec565b60405180910390f35b6101e66105b7565b6040516101f39190611f14565b60405180910390f35b6102046106b0565b6040516102119190611f14565b60405180910390f35b610234600480360381019061022f9190611f2d565b6106b9565b6040516102419190611eec565b60405180910390f35b610264600480360381019061025f9190611f7d565b6107b4565b005b61026e61083c565b60405161027b9190611fc3565b60405180910390f35b61029e60048036038101906102999190611e94565b610844565b6040516102ab9190611eec565b60405180910390f35b6102ce60048036038101906102c99190611e94565b6108eb565b6040516102db9190611eec565b60405180910390f35b6102fe60048036038101906102f99190611fdc565b6109aa565b005b6103086109b7565b6040516103159190611eec565b60405180910390f35b61033860048036038101906103339190612042565b610a14565b005b610342610b24565b60405161034f91906120a1565b60405180910390f35b610372600480360381019061036d9190611f7d565b610b4c565b60405161037f9190611f14565b60405180910390f35b610390610b91565b005b6103ac60048036038101906103a79190611e94565b610cca565b005b6103c860048036038101906103c39190611f7d565b610d67565b005b6103d2610ea7565b6040516103df91906120a1565b60405180910390f35b6103f0610ecc565b6040516103fd91906120a1565b60405180910390f35b61040e610ef4565b60405161041b9190611de3565b60405180910390f35b61042c610f84565b6040516104399190611eec565b60405180910390f35b61045c60048036038101906104579190611e94565b610f97565b6040516104699190611eec565b60405180910390f35b61048c60048036038101906104879190611e94565b611086565b6040516104999190611eec565b60405180910390f35b6104bc60048036038101906104b791906120ba565b6110a3565b6040516104c99190611f14565b60405180910390f35b6104ec60048036038101906104e79190611f7d565b611125565b005b610508600480360381019061050391906120ba565b6112cd565b005b60606003805461051990612125565b80601f016020809104026020016040519081016040528092919081815260200182805461054590612125565b80156105905780601f1061056757610100808354040283529160200191610590565b820191905f5260205f20905b81548152906001019060200180831161057357829003601f168201915b5050505050905090565b5f6105ad6105a66114f6565b84846114fd565b6001905092915050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ddac95330670de0b6b3a76400006040518363ffffffff1660e01b815260040161061c929190612197565b602060405180830381865afa92505050801561065657506040513d601f19601f820116820180604052508101906106539190612205565b60015b610695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068c906122a0565b60405180910390fd5b8071ffffffffffffffffffffffffffffffffffff1691505090565b5f600254905090565b5f6106c58484846116c0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61070c6114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561078b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107829061232e565b60405180910390fd5b6107a8856107976114f6565b85846107a39190612379565b6114fd565b60019150509392505050565b6107bc6114f6565b73ffffffffffffffffffffffffffffffffffffffff166107da610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610830576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610827906123f6565b60405180910390fd5b61083981611933565b50565b5f6012905090565b5f6108e16108506114f6565b848460015f61085d6114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108dc9190612414565b6114fd565b6001905092915050565b5f3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610972906124b7565b60405180910390fd5b5f61098584610b4c565b90506109918484611a3e565b5f61099b85610b4c565b90508181119250505092915050565b6109b43382611b8a565b50565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f86114f6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a906124b7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401610ade9291906124d5565b6020604051808303815f875af1158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190612526565b50505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b996114f6565b73ffffffffffffffffffffffffffffffffffffffff16610bb7610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c04906123f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d50906124b7565b60405180910390fd5b610d638282611b8a565b5050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906124b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b906125c1565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f0390612125565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2f90612125565b8015610f7a5780601f10610f5157610100808354040283529160200191610f7a565b820191905f5260205f20905b815481529060010190602001808311610f5d57829003601f168201915b5050505050905090565b600660149054906101000a900460ff1681565b5f8060015f610fa46114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110559061264f565b60405180910390fd5b61107b6110696114f6565b8585846110769190612379565b6114fd565b600191505092915050565b5f6110996110926114f6565b84846116c0565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61112d6114f6565b73ffffffffffffffffffffffffffffffffffffffff1661114b610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906123f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611206906126dd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611353906124b7565b60405180910390fd5b600660149054906101000a900460ff16156113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390612745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906127ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90612815565b60405180910390fd5b6001600660146101000a81548160ff0219169083151502179055506114b7826902544faa778090e00000611a3e565b6114cb8169152d02c7e14af6800000611a3e565b6114f2738eb5920b5fb06b7d1ed77a62cdcd63bec0b7c23668d8d726b7177a800000611a3e565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611562906128a3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612931565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b39190611f14565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906129bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390612a4d565b60405180910390fd5b6117a7838383611d54565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561182a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182190612adb565b60405180910390fd5b81816118369190612379565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118c19190612414565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119259190611f14565b60405180910390a350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890612b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390612bd1565b60405180910390fd5b611ab75f8383611d54565b8060025f828254611ac89190612414565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b1a9190612414565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7e9190611f14565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90612c5f565b60405180910390fd5b611c03825f83611d54565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d90612ced565b60405180910390fd5b8181611c929190612379565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611ce39190612379565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d479190611f14565b60405180910390a3505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d90578082015181840152602081019050611d75565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611db582611d59565b611dbf8185611d63565b9350611dcf818560208601611d73565b611dd881611d9b565b840191505092915050565b5f6020820190508181035f830152611dfb8184611dab565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3082611e07565b9050919050565b611e4081611e26565b8114611e4a575f80fd5b50565b5f81359050611e5b81611e37565b92915050565b5f819050919050565b611e7381611e61565b8114611e7d575f80fd5b50565b5f81359050611e8e81611e6a565b92915050565b5f8060408385031215611eaa57611ea9611e03565b5b5f611eb785828601611e4d565b9250506020611ec885828601611e80565b9150509250929050565b5f8115159050919050565b611ee681611ed2565b82525050565b5f602082019050611eff5f830184611edd565b92915050565b611f0e81611e61565b82525050565b5f602082019050611f275f830184611f05565b92915050565b5f805f60608486031215611f4457611f43611e03565b5b5f611f5186828701611e4d565b9350506020611f6286828701611e4d565b9250506040611f7386828701611e80565b9150509250925092565b5f60208284031215611f9257611f91611e03565b5b5f611f9f84828501611e4d565b91505092915050565b5f60ff82169050919050565b611fbd81611fa8565b82525050565b5f602082019050611fd65f830184611fb4565b92915050565b5f60208284031215611ff157611ff0611e03565b5b5f611ffe84828501611e80565b91505092915050565b5f61201182611e26565b9050919050565b61202181612007565b811461202b575f80fd5b50565b5f8135905061203c81612018565b92915050565b5f805f6060848603121561205957612058611e03565b5b5f6120668682870161202e565b935050602061207786828701611e80565b925050604061208886828701611e4d565b9150509250925092565b61209b81611e26565b82525050565b5f6020820190506120b45f830184612092565b92915050565b5f80604083850312156120d0576120cf611e03565b5b5f6120dd85828601611e4d565b92505060206120ee85828601611e4d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061213c57607f821691505b60208210810361214f5761214e6120f8565b5b50919050565b5f819050919050565b5f819050919050565b5f61218161217c61217784612155565b61215e565b611e61565b9050919050565b61219181612167565b82525050565b5f6040820190506121aa5f830185612092565b6121b76020830184612188565b9392505050565b5f71ffffffffffffffffffffffffffffffffffff82169050919050565b6121e4816121be565b81146121ee575f80fd5b50565b5f815190506121ff816121db565b92915050565b5f6020828403121561221a57612219611e03565b5b5f612227848285016121f1565b91505092915050565b7f4661696c656420746f2066657463682070726963652066726f6d204f7261636c5f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228a602183611d63565b915061229582612230565b604082019050919050565b5f6020820190508181035f8301526122b78161227e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612318602883611d63565b9150612323826122be565b604082019050919050565b5f6020820190508181035f8301526123458161230c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61238382611e61565b915061238e83611e61565b92508282039050818111156123a6576123a561234c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123e0602083611d63565b91506123eb826123ac565b602082019050919050565b5f6020820190508181035f83015261240d816123d4565b9050919050565b5f61241e82611e61565b915061242983611e61565b92508282019050808211156124415761244061234c565b5b92915050565b7f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f7065725f8201527f61746f7200000000000000000000000000000000000000000000000000000000602082015250565b5f6124a1602483611d63565b91506124ac82612447565b604082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b5f6040820190506124e85f830185612092565b6124f56020830184611f05565b9392505050565b61250581611ed2565b811461250f575f80fd5b50565b5f81519050612520816124fc565b92915050565b5f6020828403121561253b5761253a611e03565b5b5f61254884828501612512565b91505092915050565b7f6f7261636c6520616464726573732063616e6e6f7420626520302061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125ab602283611d63565b91506125b682612551565b604082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612639602583611d63565b9150612644826125df565b604082019050919050565b5f6020820190508181035f8301526126668161262d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6126c7602683611d63565b91506126d28261266d565b604082019050919050565b5f6020820190508181035f8301526126f4816126bb565b9050919050565b7f6f6e6c792063616e2064697374726962757465206f6e636500000000000000005f82015250565b5f61272f601883611d63565b915061273a826126fb565b602082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b7f215f67656e65736973506f6f6c000000000000000000000000000000000000005f82015250565b5f612797600d83611d63565b91506127a282612763565b602082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f215f68656c6978506f6f6c0000000000000000000000000000000000000000005f82015250565b5f6127ff600b83611d63565b915061280a826127cb565b602082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602483611d63565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602283611d63565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602583611d63565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602383611d63565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612ac5602683611d63565b9150612ad082612a6b565b604082019050919050565b5f6020820190508181035f830152612af281612ab9565b9050919050565b7f6f70657261746f723a207a65726f206164647265737320676976656e20666f725f8201527f206e6577206f70657261746f7200000000000000000000000000000000000000602082015250565b5f612b53602d83611d63565b9150612b5e82612af9565b604082019050919050565b5f6020820190508181035f830152612b8081612b47565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f612bbb601f83611d63565b9150612bc682612b87565b602082019050919050565b5f6020820190508181035f830152612be881612baf565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c49602183611d63565b9150612c5482612bef565b604082019050919050565b5f6020820190508181035f830152612c7681612c3d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cd7602283611d63565b9150612ce282612c7d565b604082019050919050565b5f6020820190508181035f830152612d0481612ccb565b905091905056fea264697066735822122081630ca2dbf405565195c4724fdb31ac348e71ec050f2471060ca9724c00d1a064736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061018c575f3560e01c806370a08231116100dc57806395d89b4111610095578063a9059cbb1161006f578063a9059cbb14610472578063dd62ed3e146104a2578063f2fde38b146104d2578063f4fd47cf146104ee5761018c565b806395d89b41146104065780639662676c14610424578063a457c2d7146104425761018c565b806370a0823114610358578063715018a61461038857806379cc6790146103925780637adbf973146103ae5780637dc0d1d0146103ca5780638da5cb5b146103e85761018c565b8063313ce5671161014957806342966c681161012357806342966c68146102e45780634456eda21461030057806354575af41461031e578063570ca7351461033a5761018c565b8063313ce56714610266578063395093511461028457806340c10f19146102b45761018c565b806306fdde0314610190578063095ea7b3146101ae57806316ec0894146101de57806318160ddd146101fc57806323b872dd1461021a57806329605e771461024a575b5f80fd5b61019861050a565b6040516101a59190611de3565b60405180910390f35b6101c860048036038101906101c39190611e94565b61059a565b6040516101d59190611eec565b60405180910390f35b6101e66105b7565b6040516101f39190611f14565b60405180910390f35b6102046106b0565b6040516102119190611f14565b60405180910390f35b610234600480360381019061022f9190611f2d565b6106b9565b6040516102419190611eec565b60405180910390f35b610264600480360381019061025f9190611f7d565b6107b4565b005b61026e61083c565b60405161027b9190611fc3565b60405180910390f35b61029e60048036038101906102999190611e94565b610844565b6040516102ab9190611eec565b60405180910390f35b6102ce60048036038101906102c99190611e94565b6108eb565b6040516102db9190611eec565b60405180910390f35b6102fe60048036038101906102f99190611fdc565b6109aa565b005b6103086109b7565b6040516103159190611eec565b60405180910390f35b61033860048036038101906103339190612042565b610a14565b005b610342610b24565b60405161034f91906120a1565b60405180910390f35b610372600480360381019061036d9190611f7d565b610b4c565b60405161037f9190611f14565b60405180910390f35b610390610b91565b005b6103ac60048036038101906103a79190611e94565b610cca565b005b6103c860048036038101906103c39190611f7d565b610d67565b005b6103d2610ea7565b6040516103df91906120a1565b60405180910390f35b6103f0610ecc565b6040516103fd91906120a1565b60405180910390f35b61040e610ef4565b60405161041b9190611de3565b60405180910390f35b61042c610f84565b6040516104399190611eec565b60405180910390f35b61045c60048036038101906104579190611e94565b610f97565b6040516104699190611eec565b60405180910390f35b61048c60048036038101906104879190611e94565b611086565b6040516104999190611eec565b60405180910390f35b6104bc60048036038101906104b791906120ba565b6110a3565b6040516104c99190611f14565b60405180910390f35b6104ec60048036038101906104e79190611f7d565b611125565b005b610508600480360381019061050391906120ba565b6112cd565b005b60606003805461051990612125565b80601f016020809104026020016040519081016040528092919081815260200182805461054590612125565b80156105905780601f1061056757610100808354040283529160200191610590565b820191905f5260205f20905b81548152906001019060200180831161057357829003601f168201915b5050505050905090565b5f6105ad6105a66114f6565b84846114fd565b6001905092915050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ddac95330670de0b6b3a76400006040518363ffffffff1660e01b815260040161061c929190612197565b602060405180830381865afa92505050801561065657506040513d601f19601f820116820180604052508101906106539190612205565b60015b610695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068c906122a0565b60405180910390fd5b8071ffffffffffffffffffffffffffffffffffff1691505090565b5f600254905090565b5f6106c58484846116c0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61070c6114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561078b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107829061232e565b60405180910390fd5b6107a8856107976114f6565b85846107a39190612379565b6114fd565b60019150509392505050565b6107bc6114f6565b73ffffffffffffffffffffffffffffffffffffffff166107da610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610830576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610827906123f6565b60405180910390fd5b61083981611933565b50565b5f6012905090565b5f6108e16108506114f6565b848460015f61085d6114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108dc9190612414565b6114fd565b6001905092915050565b5f3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610972906124b7565b60405180910390fd5b5f61098584610b4c565b90506109918484611a3e565b5f61099b85610b4c565b90508181119250505092915050565b6109b43382611b8a565b50565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f86114f6565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a906124b7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401610ade9291906124d5565b6020604051808303815f875af1158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190612526565b50505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b996114f6565b73ffffffffffffffffffffffffffffffffffffffff16610bb7610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c04906123f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d50906124b7565b60405180910390fd5b610d638282611b8a565b5050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906124b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b906125c1565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f0390612125565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2f90612125565b8015610f7a5780601f10610f5157610100808354040283529160200191610f7a565b820191905f5260205f20905b815481529060010190602001808311610f5d57829003601f168201915b5050505050905090565b600660149054906101000a900460ff1681565b5f8060015f610fa46114f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110559061264f565b60405180910390fd5b61107b6110696114f6565b8585846110769190612379565b6114fd565b600191505092915050565b5f6110996110926114f6565b84846116c0565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61112d6114f6565b73ffffffffffffffffffffffffffffffffffffffff1661114b610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906123f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611206906126dd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611353906124b7565b60405180910390fd5b600660149054906101000a900460ff16156113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390612745565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906127ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90612815565b60405180910390fd5b6001600660146101000a81548160ff0219169083151502179055506114b7826902544faa778090e00000611a3e565b6114cb8169152d02c7e14af6800000611a3e565b6114f2738eb5920b5fb06b7d1ed77a62cdcd63bec0b7c23668d8d726b7177a800000611a3e565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611562906128a3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090612931565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b39190611f14565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906129bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390612a4d565b60405180910390fd5b6117a7838383611d54565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561182a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182190612adb565b60405180910390fd5b81816118369190612379565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118c19190612414565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119259190611f14565b60405180910390a350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890612b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390612bd1565b60405180910390fd5b611ab75f8383611d54565b8060025f828254611ac89190612414565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b1a9190612414565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b7e9190611f14565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90612c5f565b60405180910390fd5b611c03825f83611d54565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d90612ced565b60405180910390fd5b8181611c929190612379565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611ce39190612379565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d479190611f14565b60405180910390a3505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d90578082015181840152602081019050611d75565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611db582611d59565b611dbf8185611d63565b9350611dcf818560208601611d73565b611dd881611d9b565b840191505092915050565b5f6020820190508181035f830152611dfb8184611dab565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e3082611e07565b9050919050565b611e4081611e26565b8114611e4a575f80fd5b50565b5f81359050611e5b81611e37565b92915050565b5f819050919050565b611e7381611e61565b8114611e7d575f80fd5b50565b5f81359050611e8e81611e6a565b92915050565b5f8060408385031215611eaa57611ea9611e03565b5b5f611eb785828601611e4d565b9250506020611ec885828601611e80565b9150509250929050565b5f8115159050919050565b611ee681611ed2565b82525050565b5f602082019050611eff5f830184611edd565b92915050565b611f0e81611e61565b82525050565b5f602082019050611f275f830184611f05565b92915050565b5f805f60608486031215611f4457611f43611e03565b5b5f611f5186828701611e4d565b9350506020611f6286828701611e4d565b9250506040611f7386828701611e80565b9150509250925092565b5f60208284031215611f9257611f91611e03565b5b5f611f9f84828501611e4d565b91505092915050565b5f60ff82169050919050565b611fbd81611fa8565b82525050565b5f602082019050611fd65f830184611fb4565b92915050565b5f60208284031215611ff157611ff0611e03565b5b5f611ffe84828501611e80565b91505092915050565b5f61201182611e26565b9050919050565b61202181612007565b811461202b575f80fd5b50565b5f8135905061203c81612018565b92915050565b5f805f6060848603121561205957612058611e03565b5b5f6120668682870161202e565b935050602061207786828701611e80565b925050604061208886828701611e4d565b9150509250925092565b61209b81611e26565b82525050565b5f6020820190506120b45f830184612092565b92915050565b5f80604083850312156120d0576120cf611e03565b5b5f6120dd85828601611e4d565b92505060206120ee85828601611e4d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061213c57607f821691505b60208210810361214f5761214e6120f8565b5b50919050565b5f819050919050565b5f819050919050565b5f61218161217c61217784612155565b61215e565b611e61565b9050919050565b61219181612167565b82525050565b5f6040820190506121aa5f830185612092565b6121b76020830184612188565b9392505050565b5f71ffffffffffffffffffffffffffffffffffff82169050919050565b6121e4816121be565b81146121ee575f80fd5b50565b5f815190506121ff816121db565b92915050565b5f6020828403121561221a57612219611e03565b5b5f612227848285016121f1565b91505092915050565b7f4661696c656420746f2066657463682070726963652066726f6d204f7261636c5f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228a602183611d63565b915061229582612230565b604082019050919050565b5f6020820190508181035f8301526122b78161227e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612318602883611d63565b9150612323826122be565b604082019050919050565b5f6020820190508181035f8301526123458161230c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61238382611e61565b915061238e83611e61565b92508282039050818111156123a6576123a561234c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123e0602083611d63565b91506123eb826123ac565b602082019050919050565b5f6020820190508181035f83015261240d816123d4565b9050919050565b5f61241e82611e61565b915061242983611e61565b92508282019050808211156124415761244061234c565b5b92915050565b7f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f7065725f8201527f61746f7200000000000000000000000000000000000000000000000000000000602082015250565b5f6124a1602483611d63565b91506124ac82612447565b604082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b5f6040820190506124e85f830185612092565b6124f56020830184611f05565b9392505050565b61250581611ed2565b811461250f575f80fd5b50565b5f81519050612520816124fc565b92915050565b5f6020828403121561253b5761253a611e03565b5b5f61254884828501612512565b91505092915050565b7f6f7261636c6520616464726573732063616e6e6f7420626520302061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125ab602283611d63565b91506125b682612551565b604082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612639602583611d63565b9150612644826125df565b604082019050919050565b5f6020820190508181035f8301526126668161262d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6126c7602683611d63565b91506126d28261266d565b604082019050919050565b5f6020820190508181035f8301526126f4816126bb565b9050919050565b7f6f6e6c792063616e2064697374726962757465206f6e636500000000000000005f82015250565b5f61272f601883611d63565b915061273a826126fb565b602082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b7f215f67656e65736973506f6f6c000000000000000000000000000000000000005f82015250565b5f612797600d83611d63565b91506127a282612763565b602082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f215f68656c6978506f6f6c0000000000000000000000000000000000000000005f82015250565b5f6127ff600b83611d63565b915061280a826127cb565b602082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602483611d63565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602283611d63565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602583611d63565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602383611d63565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612ac5602683611d63565b9150612ad082612a6b565b604082019050919050565b5f6020820190508181035f830152612af281612ab9565b9050919050565b7f6f70657261746f723a207a65726f206164647265737320676976656e20666f725f8201527f206e6577206f70657261746f7200000000000000000000000000000000000000602082015250565b5f612b53602d83611d63565b9150612b5e82612af9565b604082019050919050565b5f6020820190508181035f830152612b8081612b47565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f612bbb601f83611d63565b9150612bc682612b87565b602082019050919050565b5f6020820190508181035f830152612be881612baf565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c49602183611d63565b9150612c5482612bef565b604082019050919050565b5f6020820190508181035f830152612c7681612c3d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cd7602283611d63565b9150612ce282612c7d565b604082019050919050565b5f6020820190508181035f830152612d0481612ccb565b905091905056fea264697066735822122081630ca2dbf405565195c4724fdb31ac348e71ec050f2471060ca9724c00d1a064736f6c63430008140033
Deployed Bytecode Sourcemap
23725:2360:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18118:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19005:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24163:272;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18412:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19182:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15692:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18320:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19612:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24891:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24526:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15584:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25929:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15356:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18528:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14650:148;;;:::i;:::-;;25189:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24713:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23962:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14427:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18217:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23856:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19835:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18663:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18846:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14806:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25309:612;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18118:91;18163:13;18196:5;18189:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18118:91;:::o;19005:169::-;19088:4;19105:39;19114:12;:10;:12::i;:::-;19128:7;19137:6;19105:8;:39::i;:::-;19162:4;19155:11;;19005:169;;;;:::o;24163:272::-;24208:7;24240:6;;;;;;;;;;;24232:23;;;24264:4;24271;24232:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;24228:200;;24373:43;;;;;;;;;;:::i;:::-;;;;;;;;24228:200;24332:6;24324:15;;24317:22;;;24163:272;:::o;18412:108::-;18473:7;18500:12;;18493:19;;18412:108;:::o;19182:422::-;19288:4;19305:36;19315:6;19323:9;19334:6;19305:9;:36::i;:::-;19354:24;19381:11;:19;19393:6;19381:19;;;;;;;;;;;;;;;:33;19401:12;:10;:12::i;:::-;19381:33;;;;;;;;;;;;;;;;19354:60;;19453:6;19433:16;:26;;19425:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19515:57;19524:6;19532:12;:10;:12::i;:::-;19565:6;19546:16;:25;;;;:::i;:::-;19515:8;:57::i;:::-;19592:4;19585:11;;;19182:422;;;;;:::o;15692:115::-;14573:12;:10;:12::i;:::-;14562:23;;:7;:5;:7::i;:::-;:23;;;14554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15768:31:::1;15786:12;15768:17;:31::i;:::-;15692:115:::0;:::o;18320:84::-;18369:5;18394:2;18387:9;;18320:84;:::o;19612:215::-;19700:4;19717:80;19726:12;:10;:12::i;:::-;19740:7;19786:10;19749:11;:25;19761:12;:10;:12::i;:::-;19749:25;;;;;;;;;;;;;;;:34;19775:7;19749:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19717:8;:80::i;:::-;19815:4;19808:11;;19612:215;;;;:::o;24891:290::-;24971:4;15505:10;15492:23;;:9;;;;;;;;;;;:23;;;15484:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24988:21:::1;25012;25022:10;25012:9;:21::i;:::-;24988:45;;25044:26;25050:10;25062:7;25044:5;:26::i;:::-;25081:20;25104:21;25114:10;25104:9;:21::i;:::-;25081:44;;25160:13;25145:12;:28;25138:35;;;;24891:290:::0;;;;:::o;24526:81::-;24574:25;24580:10;24592:6;24574:5;:25::i;:::-;24526:81;:::o;15584:100::-;15627:4;15667:9;;;;;;;;;;;15651:25;;:12;:10;:12::i;:::-;:25;;;15644:32;;15584:100;:::o;25929:153::-;15505:10;15492:23;;:9;;;;;;;;;;;:23;;;15484:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;26045:6:::1;:15;;;26061:3;26066:7;26045:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25929:153:::0;;;:::o;15356:85::-;15397:7;15424:9;;;;;;;;;;;15417:16;;15356:85;:::o;18528:127::-;18602:7;18629:9;:18;18639:7;18629:18;;;;;;;;;;;;;;;;18622:25;;18528:127;;;:::o;14650:148::-;14573:12;:10;:12::i;:::-;14562:23;;:7;:5;:7::i;:::-;:23;;;14554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14757:1:::1;14720:40;;14741:6;;;;;;;;;;;14720:40;;;;;;;;;;;;14788:1;14771:6;;:19;;;;;;;;;;;;;;;;;;14650:148::o:0;25189:112::-;15505:10;15492:23;;:9;;;;;;;;;;;:23;;;15484:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;25271:22:::1;25277:7;25286:6;25271:5;:22::i;:::-;25189:112:::0;;:::o;24713:170::-;15505:10;15492:23;;:9;;;;;;;;;;;:23;;;15484:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24807:1:::1;24788:21;;:7;:21;;::::0;24780:68:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24868:7;24859:6;;:16;;;;;;;;;;;;;;;;;;24713:170:::0;:::o;23962:21::-;;;;;;;;;;;;;:::o;14427:87::-;14473:7;14500:6;;;;;;;;;;;14493:13;;14427:87;:::o;18217:95::-;18264:13;18297:7;18290:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18217:95;:::o;23856:41::-;;;;;;;;;;;;;:::o;19835:377::-;19928:4;19945:24;19972:11;:25;19984:12;:10;:12::i;:::-;19972:25;;;;;;;;;;;;;;;:34;19998:7;19972:34;;;;;;;;;;;;;;;;19945:61;;20045:15;20025:16;:35;;20017:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20113:67;20122:12;:10;:12::i;:::-;20136:7;20164:15;20145:16;:34;;;;:::i;:::-;20113:8;:67::i;:::-;20200:4;20193:11;;;19835:377;;;;:::o;18663:175::-;18749:4;18766:42;18776:12;:10;:12::i;:::-;18790:9;18801:6;18766:9;:42::i;:::-;18826:4;18819:11;;18663:175;;;;:::o;18846:151::-;18935:7;18962:11;:18;18974:5;18962:18;;;;;;;;;;;;;;;:27;18981:7;18962:27;;;;;;;;;;;;;;;;18955:34;;18846:151;;;;:::o;14806:244::-;14573:12;:10;:12::i;:::-;14562:23;;:7;:5;:7::i;:::-;:23;;;14554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14915:1:::1;14895:22;;:8;:22;;::::0;14887:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15005:8;14976:38;;14997:6;;;;;;;;;;;14976:38;;;;;;;;;;;;15034:8;15025:6;;:17;;;;;;;;;;;;;;;;;;14806:244:::0;:::o;25309:612::-;15505:10;15492:23;;:9;;;;;;;;;;;:23;;;15484:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;25419:21:::1;;;;;;;;;;;25418:22;25410:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;25514:1;25490:26;;:12;:26;;::::0;25482:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25575:1;25553:24;;:10;:24;;::::0;25545:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25630:4;25606:21;;:28;;;;;;;;;;;;;;;;;;25655:32;25661:12;25675:11;25655:5;:32::i;:::-;25749:31;25755:10;25767:12;25749:5;:31::i;:::-;25841:61;25847:42;25891:10;25841:5;:61::i;:::-;25309:612:::0;;:::o;13869:98::-;13922:7;13949:10;13942:17;;13869:98;:::o;21680:346::-;21799:1;21782:19;;:5;:19;;;21774:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21880:1;21861:21;;:7;:21;;;21853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21964:6;21934:11;:18;21946:5;21934:18;;;;;;;;;;;;;;;:27;21953:7;21934:27;;;;;;;;;;;;;;;:36;;;;22002:7;21986:32;;21995:5;21986:32;;;22011:6;21986:32;;;;;;:::i;:::-;;;;;;;;21680:346;;;:::o;20220:604::-;20344:1;20326:20;;:6;:20;;;20318:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20428:1;20407:23;;:9;:23;;;20399:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20483:47;20504:6;20512:9;20523:6;20483:20;:47::i;:::-;20543:21;20567:9;:17;20577:6;20567:17;;;;;;;;;;;;;;;;20543:41;;20620:6;20603:13;:23;;20595:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;20716:6;20700:13;:22;;;;:::i;:::-;20680:9;:17;20690:6;20680:17;;;;;;;;;;;;;;;:42;;;;20757:6;20733:9;:20;20743:9;20733:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;20798:9;20781:35;;20790:6;20781:35;;;20809:6;20781:35;;;;;;:::i;:::-;;;;;;;;20307:517;20220:604;;;:::o;15815:257::-;15916:1;15892:26;;:12;:26;;;15884:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16016:12;15984:45;;16012:1;15984:45;;;;;;;;;;;;16052:12;16040:9;;:24;;;;;;;;;;;;;;;;;;15815:257;:::o;20832:338::-;20935:1;20916:21;;:7;:21;;;20908:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20986:49;21015:1;21019:7;21028:6;20986:20;:49::i;:::-;21064:6;21048:12;;:22;;;;;;;:::i;:::-;;;;;;;;21103:6;21081:9;:18;21091:7;21081:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;21146:7;21125:37;;21142:1;21125:37;;;21155:6;21125:37;;;;;;:::i;:::-;;;;;;;;20832:338;;:::o;21178:494::-;21281:1;21262:21;;:7;:21;;;21254:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21334:49;21355:7;21372:1;21376:6;21334:20;:49::i;:::-;21396:22;21421:9;:18;21431:7;21421:18;;;;;;;;;;;;;;;;21396:43;;21476:6;21458:14;:24;;21450:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21570:6;21553:14;:23;;;;:::i;:::-;21532:9;:18;21542:7;21532:18;;;;;;;;;;;;;;;:44;;;;21603:6;21587:12;;:22;;;;;;;:::i;:::-;;;;;;;;21653:1;21627:37;;21636:7;21627:37;;;21657:6;21627:37;;;;;;:::i;:::-;;;;;;;;21243:429;21178:494;;:::o;22034:92::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:109::-;5573:7;5602:24;5620:5;5602:24;:::i;:::-;5591:35;;5523:109;;;:::o;5638:148::-;5724:37;5755:5;5724:37;:::i;:::-;5717:5;5714:48;5704:76;;5776:1;5773;5766:12;5704:76;5638:148;:::o;5792:165::-;5851:5;5889:6;5876:20;5867:29;;5905:46;5945:5;5905:46;:::i;:::-;5792:165;;;;:::o;5963:645::-;6053:6;6061;6069;6118:2;6106:9;6097:7;6093:23;6089:32;6086:119;;;6124:79;;:::i;:::-;6086:119;6244:1;6269:66;6327:7;6318:6;6307:9;6303:22;6269:66;:::i;:::-;6259:76;;6215:130;6384:2;6410:53;6455:7;6446:6;6435:9;6431:22;6410:53;:::i;:::-;6400:63;;6355:118;6512:2;6538:53;6583:7;6574:6;6563:9;6559:22;6538:53;:::i;:::-;6528:63;;6483:118;5963:645;;;;;:::o;6614:118::-;6701:24;6719:5;6701:24;:::i;:::-;6696:3;6689:37;6614:118;;:::o;6738:222::-;6831:4;6869:2;6858:9;6854:18;6846:26;;6882:71;6950:1;6939:9;6935:17;6926:6;6882:71;:::i;:::-;6738:222;;;;:::o;6966:474::-;7034:6;7042;7091:2;7079:9;7070:7;7066:23;7062:32;7059:119;;;7097:79;;:::i;:::-;7059:119;7217:1;7242:53;7287:7;7278:6;7267:9;7263:22;7242:53;:::i;:::-;7232:63;;7188:117;7344:2;7370:53;7415:7;7406:6;7395:9;7391:22;7370:53;:::i;:::-;7360:63;;7315:118;6966:474;;;;;:::o;7446:180::-;7494:77;7491:1;7484:88;7591:4;7588:1;7581:15;7615:4;7612:1;7605:15;7632:320;7676:6;7713:1;7707:4;7703:12;7693:22;;7760:1;7754:4;7750:12;7781:18;7771:81;;7837:4;7829:6;7825:17;7815:27;;7771:81;7899:2;7891:6;7888:14;7868:18;7865:38;7862:84;;7918:18;;:::i;:::-;7862:84;7683:269;7632:320;;;:::o;7958:103::-;8021:7;8050:5;8039:16;;7958:103;;;:::o;8067:60::-;8095:3;8116:5;8109:12;;8067:60;;;:::o;8133:194::-;8209:9;8242:79;8260:60;8269:50;8313:5;8269:50;:::i;:::-;8260:60;:::i;:::-;8242:79;:::i;:::-;8229:92;;8133:194;;;:::o;8333:183::-;8446:63;8503:5;8446:63;:::i;:::-;8441:3;8434:76;8333:183;;:::o;8522:384::-;8669:4;8707:2;8696:9;8692:18;8684:26;;8720:71;8788:1;8777:9;8773:17;8764:6;8720:71;:::i;:::-;8801:98;8895:2;8884:9;8880:18;8871:6;8801:98;:::i;:::-;8522:384;;;;;:::o;8912:122::-;8949:7;8989:38;8982:5;8978:50;8967:61;;8912:122;;;:::o;9040:::-;9113:24;9131:5;9113:24;:::i;:::-;9106:5;9103:35;9093:63;;9152:1;9149;9142:12;9093:63;9040:122;:::o;9168:143::-;9225:5;9256:6;9250:13;9241:22;;9272:33;9299:5;9272:33;:::i;:::-;9168:143;;;;:::o;9317:351::-;9387:6;9436:2;9424:9;9415:7;9411:23;9407:32;9404:119;;;9442:79;;:::i;:::-;9404:119;9562:1;9587:64;9643:7;9634:6;9623:9;9619:22;9587:64;:::i;:::-;9577:74;;9533:128;9317:351;;;;:::o;9674:220::-;9814:34;9810:1;9802:6;9798:14;9791:58;9883:3;9878:2;9870:6;9866:15;9859:28;9674:220;:::o;9900:366::-;10042:3;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;9900:366;;;:::o;10272:419::-;10438:4;10476:2;10465:9;10461:18;10453:26;;10525:9;10519:4;10515:20;10511:1;10500:9;10496:17;10489:47;10553:131;10679:4;10553:131;:::i;:::-;10545:139;;10272:419;;;:::o;10697:227::-;10837:34;10833:1;10825:6;10821:14;10814:58;10906:10;10901:2;10893:6;10889:15;10882:35;10697:227;:::o;10930:366::-;11072:3;11093:67;11157:2;11152:3;11093:67;:::i;:::-;11086:74;;11169:93;11258:3;11169:93;:::i;:::-;11287:2;11282:3;11278:12;11271:19;;10930:366;;;:::o;11302:419::-;11468:4;11506:2;11495:9;11491:18;11483:26;;11555:9;11549:4;11545:20;11541:1;11530:9;11526:17;11519:47;11583:131;11709:4;11583:131;:::i;:::-;11575:139;;11302:419;;;:::o;11727:180::-;11775:77;11772:1;11765:88;11872:4;11869:1;11862:15;11896:4;11893:1;11886:15;11913:194;11953:4;11973:20;11991:1;11973:20;:::i;:::-;11968:25;;12007:20;12025:1;12007:20;:::i;:::-;12002:25;;12051:1;12048;12044:9;12036:17;;12075:1;12069:4;12066:11;12063:37;;;12080:18;;:::i;:::-;12063:37;11913:194;;;;:::o;12113:182::-;12253:34;12249:1;12241:6;12237:14;12230:58;12113:182;:::o;12301:366::-;12443:3;12464:67;12528:2;12523:3;12464:67;:::i;:::-;12457:74;;12540:93;12629:3;12540:93;:::i;:::-;12658:2;12653:3;12649:12;12642:19;;12301:366;;;:::o;12673:419::-;12839:4;12877:2;12866:9;12862:18;12854:26;;12926:9;12920:4;12916:20;12912:1;12901:9;12897:17;12890:47;12954:131;13080:4;12954:131;:::i;:::-;12946:139;;12673:419;;;:::o;13098:191::-;13138:3;13157:20;13175:1;13157:20;:::i;:::-;13152:25;;13191:20;13209:1;13191:20;:::i;:::-;13186:25;;13234:1;13231;13227:9;13220:16;;13255:3;13252:1;13249:10;13246:36;;;13262:18;;:::i;:::-;13246:36;13098:191;;;;:::o;13295:223::-;13435:34;13431:1;13423:6;13419:14;13412:58;13504:6;13499:2;13491:6;13487:15;13480:31;13295:223;:::o;13524:366::-;13666:3;13687:67;13751:2;13746:3;13687:67;:::i;:::-;13680:74;;13763:93;13852:3;13763:93;:::i;:::-;13881:2;13876:3;13872:12;13865:19;;13524:366;;;:::o;13896:419::-;14062:4;14100:2;14089:9;14085:18;14077:26;;14149:9;14143:4;14139:20;14135:1;14124:9;14120:17;14113:47;14177:131;14303:4;14177:131;:::i;:::-;14169:139;;13896:419;;;:::o;14321:332::-;14442:4;14480:2;14469:9;14465:18;14457:26;;14493:71;14561:1;14550:9;14546:17;14537:6;14493:71;:::i;:::-;14574:72;14642:2;14631:9;14627:18;14618:6;14574:72;:::i;:::-;14321:332;;;;;:::o;14659:116::-;14729:21;14744:5;14729:21;:::i;:::-;14722:5;14719:32;14709:60;;14765:1;14762;14755:12;14709:60;14659:116;:::o;14781:137::-;14835:5;14866:6;14860:13;14851:22;;14882:30;14906:5;14882:30;:::i;:::-;14781:137;;;;:::o;14924:345::-;14991:6;15040:2;15028:9;15019:7;15015:23;15011:32;15008:119;;;15046:79;;:::i;:::-;15008:119;15166:1;15191:61;15244:7;15235:6;15224:9;15220:22;15191:61;:::i;:::-;15181:71;;15137:125;14924:345;;;;:::o;15275:221::-;15415:34;15411:1;15403:6;15399:14;15392:58;15484:4;15479:2;15471:6;15467:15;15460:29;15275:221;:::o;15502:366::-;15644:3;15665:67;15729:2;15724:3;15665:67;:::i;:::-;15658:74;;15741:93;15830:3;15741:93;:::i;:::-;15859:2;15854:3;15850:12;15843:19;;15502:366;;;:::o;15874:419::-;16040:4;16078:2;16067:9;16063:18;16055:26;;16127:9;16121:4;16117:20;16113:1;16102:9;16098:17;16091:47;16155:131;16281:4;16155:131;:::i;:::-;16147:139;;15874:419;;;:::o;16299:224::-;16439:34;16435:1;16427:6;16423:14;16416:58;16508:7;16503:2;16495:6;16491:15;16484:32;16299:224;:::o;16529:366::-;16671:3;16692:67;16756:2;16751:3;16692:67;:::i;:::-;16685:74;;16768:93;16857:3;16768:93;:::i;:::-;16886:2;16881:3;16877:12;16870:19;;16529:366;;;:::o;16901:419::-;17067:4;17105:2;17094:9;17090:18;17082:26;;17154:9;17148:4;17144:20;17140:1;17129:9;17125:17;17118:47;17182:131;17308:4;17182:131;:::i;:::-;17174:139;;16901:419;;;:::o;17326:225::-;17466:34;17462:1;17454:6;17450:14;17443:58;17535:8;17530:2;17522:6;17518:15;17511:33;17326:225;:::o;17557:366::-;17699:3;17720:67;17784:2;17779:3;17720:67;:::i;:::-;17713:74;;17796:93;17885:3;17796:93;:::i;:::-;17914:2;17909:3;17905:12;17898:19;;17557:366;;;:::o;17929:419::-;18095:4;18133:2;18122:9;18118:18;18110:26;;18182:9;18176:4;18172:20;18168:1;18157:9;18153:17;18146:47;18210:131;18336:4;18210:131;:::i;:::-;18202:139;;17929:419;;;:::o;18354:174::-;18494:26;18490:1;18482:6;18478:14;18471:50;18354:174;:::o;18534:366::-;18676:3;18697:67;18761:2;18756:3;18697:67;:::i;:::-;18690:74;;18773:93;18862:3;18773:93;:::i;:::-;18891:2;18886:3;18882:12;18875:19;;18534:366;;;:::o;18906:419::-;19072:4;19110:2;19099:9;19095:18;19087:26;;19159:9;19153:4;19149:20;19145:1;19134:9;19130:17;19123:47;19187:131;19313:4;19187:131;:::i;:::-;19179:139;;18906:419;;;:::o;19331:163::-;19471:15;19467:1;19459:6;19455:14;19448:39;19331:163;:::o;19500:366::-;19642:3;19663:67;19727:2;19722:3;19663:67;:::i;:::-;19656:74;;19739:93;19828:3;19739:93;:::i;:::-;19857:2;19852:3;19848:12;19841:19;;19500:366;;;:::o;19872:419::-;20038:4;20076:2;20065:9;20061:18;20053:26;;20125:9;20119:4;20115:20;20111:1;20100:9;20096:17;20089:47;20153:131;20279:4;20153:131;:::i;:::-;20145:139;;19872:419;;;:::o;20297:161::-;20437:13;20433:1;20425:6;20421:14;20414:37;20297:161;:::o;20464:366::-;20606:3;20627:67;20691:2;20686:3;20627:67;:::i;:::-;20620:74;;20703:93;20792:3;20703:93;:::i;:::-;20821:2;20816:3;20812:12;20805:19;;20464:366;;;:::o;20836:419::-;21002:4;21040:2;21029:9;21025:18;21017:26;;21089:9;21083:4;21079:20;21075:1;21064:9;21060:17;21053:47;21117:131;21243:4;21117:131;:::i;:::-;21109:139;;20836:419;;;:::o;21261:223::-;21401:34;21397:1;21389:6;21385:14;21378:58;21470:6;21465:2;21457:6;21453:15;21446:31;21261:223;:::o;21490:366::-;21632:3;21653:67;21717:2;21712:3;21653:67;:::i;:::-;21646:74;;21729:93;21818:3;21729:93;:::i;:::-;21847:2;21842:3;21838:12;21831:19;;21490:366;;;:::o;21862:419::-;22028:4;22066:2;22055:9;22051:18;22043:26;;22115:9;22109:4;22105:20;22101:1;22090:9;22086:17;22079:47;22143:131;22269:4;22143:131;:::i;:::-;22135:139;;21862:419;;;:::o;22287:221::-;22427:34;22423:1;22415:6;22411:14;22404:58;22496:4;22491:2;22483:6;22479:15;22472:29;22287:221;:::o;22514:366::-;22656:3;22677:67;22741:2;22736:3;22677:67;:::i;:::-;22670:74;;22753:93;22842:3;22753:93;:::i;:::-;22871:2;22866:3;22862:12;22855:19;;22514:366;;;:::o;22886:419::-;23052:4;23090:2;23079:9;23075:18;23067:26;;23139:9;23133:4;23129:20;23125:1;23114:9;23110:17;23103:47;23167:131;23293:4;23167:131;:::i;:::-;23159:139;;22886:419;;;:::o;23311:224::-;23451:34;23447:1;23439:6;23435:14;23428:58;23520:7;23515:2;23507:6;23503:15;23496:32;23311:224;:::o;23541:366::-;23683:3;23704:67;23768:2;23763:3;23704:67;:::i;:::-;23697:74;;23780:93;23869:3;23780:93;:::i;:::-;23898:2;23893:3;23889:12;23882:19;;23541:366;;;:::o;23913:419::-;24079:4;24117:2;24106:9;24102:18;24094:26;;24166:9;24160:4;24156:20;24152:1;24141:9;24137:17;24130:47;24194:131;24320:4;24194:131;:::i;:::-;24186:139;;23913:419;;;:::o;24338:222::-;24478:34;24474:1;24466:6;24462:14;24455:58;24547:5;24542:2;24534:6;24530:15;24523:30;24338:222;:::o;24566:366::-;24708:3;24729:67;24793:2;24788:3;24729:67;:::i;:::-;24722:74;;24805:93;24894:3;24805:93;:::i;:::-;24923:2;24918:3;24914:12;24907:19;;24566:366;;;:::o;24938:419::-;25104:4;25142:2;25131:9;25127:18;25119:26;;25191:9;25185:4;25181:20;25177:1;25166:9;25162:17;25155:47;25219:131;25345:4;25219:131;:::i;:::-;25211:139;;24938:419;;;:::o;25363:225::-;25503:34;25499:1;25491:6;25487:14;25480:58;25572:8;25567:2;25559:6;25555:15;25548:33;25363:225;:::o;25594:366::-;25736:3;25757:67;25821:2;25816:3;25757:67;:::i;:::-;25750:74;;25833:93;25922:3;25833:93;:::i;:::-;25951:2;25946:3;25942:12;25935:19;;25594:366;;;:::o;25966:419::-;26132:4;26170:2;26159:9;26155:18;26147:26;;26219:9;26213:4;26209:20;26205:1;26194:9;26190:17;26183:47;26247:131;26373:4;26247:131;:::i;:::-;26239:139;;25966:419;;;:::o;26391:232::-;26531:34;26527:1;26519:6;26515:14;26508:58;26600:15;26595:2;26587:6;26583:15;26576:40;26391:232;:::o;26629:366::-;26771:3;26792:67;26856:2;26851:3;26792:67;:::i;:::-;26785:74;;26868:93;26957:3;26868:93;:::i;:::-;26986:2;26981:3;26977:12;26970:19;;26629:366;;;:::o;27001:419::-;27167:4;27205:2;27194:9;27190:18;27182:26;;27254:9;27248:4;27244:20;27240:1;27229:9;27225:17;27218:47;27282:131;27408:4;27282:131;:::i;:::-;27274:139;;27001:419;;;:::o;27426:181::-;27566:33;27562:1;27554:6;27550:14;27543:57;27426:181;:::o;27613:366::-;27755:3;27776:67;27840:2;27835:3;27776:67;:::i;:::-;27769:74;;27852:93;27941:3;27852:93;:::i;:::-;27970:2;27965:3;27961:12;27954:19;;27613:366;;;:::o;27985:419::-;28151:4;28189:2;28178:9;28174:18;28166:26;;28238:9;28232:4;28228:20;28224:1;28213:9;28209:17;28202:47;28266:131;28392:4;28266:131;:::i;:::-;28258:139;;27985:419;;;:::o;28410:220::-;28550:34;28546:1;28538:6;28534:14;28527:58;28619:3;28614:2;28606:6;28602:15;28595:28;28410:220;:::o;28636:366::-;28778:3;28799:67;28863:2;28858:3;28799:67;:::i;:::-;28792:74;;28875:93;28964:3;28875:93;:::i;:::-;28993:2;28988:3;28984:12;28977:19;;28636:366;;;:::o;29008:419::-;29174:4;29212:2;29201:9;29197:18;29189:26;;29261:9;29255:4;29251:20;29247:1;29236:9;29232:17;29225:47;29289:131;29415:4;29289:131;:::i;:::-;29281:139;;29008:419;;;:::o;29433:221::-;29573:34;29569:1;29561:6;29557:14;29550:58;29642:4;29637:2;29629:6;29625:15;29618:29;29433:221;:::o;29660:366::-;29802:3;29823:67;29887:2;29882:3;29823:67;:::i;:::-;29816:74;;29899:93;29988:3;29899:93;:::i;:::-;30017:2;30012:3;30008:12;30001:19;;29660:366;;;:::o;30032:419::-;30198:4;30236:2;30225:9;30221:18;30213:26;;30285:9;30279:4;30275:20;30271:1;30260:9;30256:17;30249:47;30313:131;30439:4;30313:131;:::i;:::-;30305:139;;30032:419;;;:::o
Swarm Source
ipfs://81630ca2dbf405565195c4724fdb31ac348e71ec050f2471060ca9724c00d1a0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.