Polygon Sponsored slots available. Book your slot here!
Overview
POL Balance
0 POL
POL Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 343 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 65404737 | 33 hrs ago | IN | 0 POL | 0.00188496 | ||||
Transfer | 65338164 | 3 days ago | IN | 0 POL | 0.0016458 | ||||
Transfer | 65321590 | 3 days ago | IN | 0 POL | 0.00248297 | ||||
Transfer | 64880352 | 14 days ago | IN | 0 POL | 0.00346466 | ||||
Transfer | 64837142 | 15 days ago | IN | 0 POL | 0.0055138 | ||||
Transfer | 64485746 | 24 days ago | IN | 0 POL | 0.00218046 | ||||
Transfer | 64453617 | 25 days ago | IN | 0 POL | 0.00184699 | ||||
Transfer | 64257835 | 30 days ago | IN | 0 POL | 0.00281451 | ||||
Transfer | 64257731 | 30 days ago | IN | 0 POL | 0.00245693 | ||||
Transfer | 64256466 | 30 days ago | IN | 0 POL | 0.00462925 | ||||
Transfer | 64256161 | 30 days ago | IN | 0 POL | 0.00213498 | ||||
Transfer | 64246522 | 30 days ago | IN | 0 POL | 0.00982467 | ||||
Transfer | 64241268 | 30 days ago | IN | 0 POL | 0.00894183 | ||||
Transfer | 64174365 | 32 days ago | IN | 0 POL | 0.01819346 | ||||
Transfer | 64140040 | 33 days ago | IN | 0 POL | 0.0014388 | ||||
Transfer | 64140022 | 33 days ago | IN | 0 POL | 0.00172887 | ||||
Transfer | 64139575 | 33 days ago | IN | 0 POL | 0.00191147 | ||||
Transfer | 64137197 | 33 days ago | IN | 0 POL | 0.00537245 | ||||
Transfer | 64136400 | 33 days ago | IN | 0 POL | 0.00188635 | ||||
Transfer | 64129433 | 33 days ago | IN | 0 POL | 0.00390858 | ||||
Transfer | 64129411 | 33 days ago | IN | 0 POL | 0.00350688 | ||||
Transfer | 64129391 | 33 days ago | IN | 0 POL | 0.00359818 | ||||
Transfer | 64129375 | 33 days ago | IN | 0 POL | 0.00289937 | ||||
Transfer | 64129349 | 33 days ago | IN | 0 POL | 0.0031554 | ||||
Transfer | 64129305 | 33 days ago | IN | 0 POL | 0.00334767 |
Loading...
Loading
Contract Name:
UtoposToken
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-11-08 */ //SPDX-License-Identifier: Unlicensed pragma solidity 0.8.6; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ 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); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function add( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a + b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() external virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) external virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract UtoposToken is Context, IERC20, Ownable, ReentrancyGuard { using SafeMath for uint256; string public constant symbol = "UTOP"; string public constant name = "Utopos"; uint256 public constant decimals = 18; mapping(address => uint) public balances; mapping(address => mapping(address => uint)) public allowed; address public constant deadWallet = address(0x000000000000000000000000000000000000dEaD); mapping(address => bool) public isBlackListed; uint256 public _totalSupply = 2 * (10**12) * (10 ** decimals); event SeizeBlackFunds(address indexed _blackListedUser, uint256 _balance); event AddedBlackList(address indexed _user); event RemovedBlackList(address indexed _user); event BurnSupply(address indexed _user, uint256 _amount); event MintSupply(address indexed _user, uint256 _amount); constructor() { balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address tokenOwner) public view override returns (uint256 balance) { return balances[tokenOwner]; } function transfer(address to, uint256 tokens) external override returns (bool success) { require(!isBlackListed[msg.sender], "ADDRESS IS BLACKLISTED"); require(to != address(0), "RECEIVE ADDRESS IS A ZERO ADDRESS"); balances[msg.sender] = balances[msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(msg.sender, to, tokens); return true; } function batchTransfer(address[] memory _receivers, uint256[] memory _amounts) external nonReentrant { require(!isBlackListed[msg.sender], "ADDRESS IS BLACKLISTED"); uint256 cnt = _receivers.length; require(cnt > 0 && cnt <= 100); require(cnt == _amounts.length); cnt = (uint8)(cnt); uint256 totalAmount = 0; for (uint8 i = 0; i < cnt; i++) { require(_receivers[i] != address(0), "RECEIVE ADDRESS IS A ZERO ADDRESS"); totalAmount = totalAmount.add(_amounts[i]); } require(totalAmount <= balances[msg.sender], "BALANCE IS NOT ENOUGH"); balances[msg.sender] = balances[msg.sender].sub(totalAmount); for (uint256 i = 0; i < cnt; i++) { balances[_receivers[i]] = balances[_receivers[i]].add(_amounts[i]); emit Transfer(msg.sender, _receivers[i], _amounts[i]); } } function approve(address spender, uint256 tokens) external override returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } function transferFrom(address from, address to, uint256 tokens) external override returns (bool success) { require(!isBlackListed[from], "ADDRESS IS BLACKLISTED"); require(to != address(0), "RECEIVE ADDRESS IS A ZERO ADDRESS"); balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } function allowance(address tokenOwner, address spender) external override view returns (uint256 remaining) { return allowed[tokenOwner][spender]; } function transferAnyERC20Token(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { return IERC20(tokenAddress).transfer(owner(), tokens); } function burnDead(uint256 _value) external nonReentrant { require(balances[msg.sender] >= _value, "BALANCE IS NOT ENOUGH"); balances[msg.sender] = balances[msg.sender].sub(_value); balances[deadWallet] = balances[deadWallet].add(_value); emit Transfer(msg.sender, deadWallet, _value); } function burnSupply(uint256 _value) external nonReentrant { require(balances[msg.sender] >= _value, "BALANCE IS NOT ENOUGH"); balances[msg.sender] = balances[msg.sender].sub(_value); _totalSupply -= _value; emit BurnSupply(msg.sender, _value); } function mintSupply(uint256 _value) external nonReentrant { require(balances[msg.sender] >= _value, "BALANCE IS NOT ENOUGH"); balances[msg.sender] = balances[msg.sender].add(_value); _totalSupply += _value; emit MintSupply(msg.sender, _value); } /////// Getters to allow the same blacklist to be used also by other contracts /////// function getBlackListStatus(address _maker) external view returns (bool) { return isBlackListed[_maker]; } function addBlackList(address _evilUser) external onlyOwner { isBlackListed[_evilUser] = true; emit AddedBlackList(_evilUser); } function removeBlackList(address _clearedUser) external onlyOwner { isBlackListed[_clearedUser] = false; emit RemovedBlackList(_clearedUser); } function seizeBlackFunds(address _blackListedUser) external onlyOwner { require(isBlackListed[_blackListedUser], "ADDRESS IS NOT BLACKLISTED"); uint256 dirtyFunds = balanceOf(_blackListedUser); balances[_blackListedUser] = 0; balances[address(this)] = balances[address(this)].add(dirtyFunds); emit Transfer(_blackListedUser, address(this), dirtyFunds); emit SeizeBlackFunds(_blackListedUser, dirtyFunds); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"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":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnSupply","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"MintSupply","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":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_blackListedUser","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"SeizeBlackFunds","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":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"batchTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burnDead","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burnSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mintSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_blackListedUser","type":"address"}],"name":"seizeBlackFunds","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":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526012600a6200001491906200026a565b6501d1a94a2000620000279190620003a7565b6005553480156200003757600080fd5b50620000586200004c6200011560201b60201c565b6200011d60201b60201c565b60018081905550600554600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620001079190620001f2565b60405180910390a36200044e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001ec8162000408565b82525050565b6000602082019050620002096000830184620001e1565b92915050565b6000808291508390505b6001851115620002615780860481111562000239576200023862000412565b5b6001851615620002495780820291505b8081029050620002598562000441565b945062000219565b94509492505050565b6000620002778262000408565b9150620002848362000408565b9250620002b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002bb565b905092915050565b600082620002cd5760019050620003a0565b81620002dd5760009050620003a0565b8160018114620002f65760028114620003015762000337565b6001915050620003a0565b60ff84111562000316576200031562000412565b5b8360020a91508482111562000330576200032f62000412565b5b50620003a0565b5060208310610133831016604e8410600b8410161715620003715782820a9050838111156200036b576200036a62000412565b5b620003a0565b6200038084848460016200020f565b925090508184048111156200039a576200039962000412565b5b81810290505b9392505050565b6000620003b48262000408565b9150620003c18362000408565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620003fd57620003fc62000412565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b612cdb806200045e6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063c77d4f7111610097578063dd62ed3e11610071578063dd62ed3e14610497578063e47d6060146104c7578063e4997dc5146104f7578063f2fde38b146105135761018e565b8063c77d4f711461042f578063d595c3311461044b578063dc39d06d146104675761018e565b8063715018a61461037f57806385141a771461038957806388d695b2146103a75780638da5cb5b146103c357806395d89b41146103e1578063a9059cbb146103ff5761018e565b806327e235e31161014b57806353f52e9f1161012557806353f52e9f146102d357806359bf1abe146102ef5780635c6581651461031f57806370a082311461034f5761018e565b806327e235e314610267578063313ce567146102975780633eaaf86b146102b55761018e565b806306fdde0314610193578063095ea7b3146101b15780630ecb93c0146101e157806318160ddd146101fd57806323b872dd1461021b57806326364aec1461024b575b600080fd5b61019b61052f565b6040516101a891906126d7565b60405180910390f35b6101cb60048036038101906101c6919061240b565b610568565b6040516101d891906126bc565b60405180910390f35b6101fb60048036038101906101f6919061234b565b61065a565b005b610205610774565b60405161021291906127d9565b60405180910390f35b610235600480360381019061023091906123b8565b61077e565b60405161024291906126bc565b60405180910390f35b610265600480360381019061026091906124f0565b610b26565b005b610281600480360381019061027c919061234b565b610cfc565b60405161028e91906127d9565b60405180910390f35b61029f610d14565b6040516102ac91906127d9565b60405180910390f35b6102bd610d19565b6040516102ca91906127d9565b60405180910390f35b6102ed60048036038101906102e8919061234b565b610d1f565b005b6103096004803603810190610304919061234b565b610fc5565b60405161031691906126bc565b60405180910390f35b61033960048036038101906103349190612378565b61101b565b60405161034691906127d9565b60405180910390f35b6103696004803603810190610364919061234b565b611040565b60405161037691906127d9565b60405180910390f35b610387611089565b005b610391611111565b60405161039e9190612678565b60405180910390f35b6103c160048036038101906103bc919061244b565b611117565b005b6103cb6115c6565b6040516103d89190612678565b60405180910390f35b6103e96115ef565b6040516103f691906126d7565b60405180910390f35b6104196004803603810190610414919061240b565b611628565b60405161042691906126bc565b60405180910390f35b610449600480360381019061044491906124f0565b6118c0565b005b610465600480360381019061046091906124f0565b611b2f565b005b610481600480360381019061047c919061240b565b611d05565b60405161048e91906126bc565b60405180910390f35b6104b160048036038101906104ac9190612378565b611e1f565b6040516104be91906127d9565b60405180910390f35b6104e160048036038101906104dc919061234b565b611ea6565b6040516104ee91906126bc565b60405180910390f35b610511600480360381019061050c919061234b565b611ec6565b005b61052d6004803603810190610528919061234b565b611fe0565b005b6040518060400160405280600681526020017f55746f706f73000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064891906127d9565b60405180910390a36001905092915050565b6106626120d8565b73ffffffffffffffffffffffffffffffffffffffff166106806115c6565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd90612779565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc60405160405180910390a250565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561080d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080490612739565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087490612759565b60405180910390fd5b6108cf82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7382600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b1391906127d9565b60405180910390a3600190509392505050565b60026001541415610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed90612799565b60405180910390fd5b610c4881600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060056000828254610c9d919061288d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f62f93f1b31714b9d7ec79040d8257e63e03448ab8853d4fa6109b7ce22171a8b82604051610cea91906127d9565b60405180910390a26001808190555050565b60026020528060005260406000206000915090505481565b601281565b60055481565b610d276120d8565b73ffffffffffffffffffffffffffffffffffffffff16610d456115c6565b73ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9290612779565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e906126f9565b60405180910390fd5b6000610e3282611040565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ecb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f6b91906127d9565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fdfe86ca8e9fe82a2329188a315223d7ec14a12bd009afde276022a4a01154b0982604051610fb991906127d9565b60405180910390a25050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6003602052816000526040600020602052806000526040600020600091509150505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110916120d8565b73ffffffffffffffffffffffffffffffffffffffff166110af6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612779565b60405180910390fd5b61110f600061210c565b565b61dead81565b6002600154141561115d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611154906127b9565b60405180910390fd5b6002600181905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612739565b60405180910390fd5b600082519050600081118015611209575060648111155b61121257600080fd5b8151811461121f57600080fd5b8060ff1690506000805b828160ff16101561130657600073ffffffffffffffffffffffffffffffffffffffff16858260ff168151811061126257611261612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612759565b60405180910390fd5b6112f1848260ff16815181106112da576112d9612a72565b5b6020026020010151836120f690919063ffffffff16565b915080806112fe90612a19565b915050611229565b50600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138090612799565b60405180910390fd5b6113db81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b828110156115b8576114af84828151811061143f5761143e612a72565b5b60200260200101516002600088858151811061145e5761145d612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008784815181106114c6576114c5612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811061151f5761151e612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86848151811061158857611587612a72565b5b602002602001015160405161159d91906127d9565b60405180910390a380806115b0906129d0565b915050611421565b505050600180819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600481526020017f55544f500000000000000000000000000000000000000000000000000000000081525081565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90612739565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612759565b60405180910390fd5b61177982600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061180e82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118ae91906127d9565b60405180910390a36001905092915050565b60026001541415611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612799565b60405180910390fd5b6119e281600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a79816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1d91906127d9565b60405180910390a36001808190555050565b60026001541415611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf690612799565b60405180910390fd5b611c5181600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060056000828254611ca691906128e3565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167ff034c8ef36a776c16481660ebabfc5fefb012d0216bdca1e319e505139ddd8c282604051611cf391906127d9565b60405180910390a26001808190555050565b6000611d0f6120d8565b73ffffffffffffffffffffffffffffffffffffffff16611d2d6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90612779565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611da76115c6565b846040518363ffffffff1660e01b8152600401611dc5929190612693565b602060405180830381600087803b158015611ddf57600080fd5b505af1158015611df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1791906124c3565b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b611ece6120d8565b73ffffffffffffffffffffffffffffffffffffffff16611eec6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3990612779565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c60405160405180910390a250565b611fe86120d8565b73ffffffffffffffffffffffffffffffffffffffff166120066115c6565b73ffffffffffffffffffffffffffffffffffffffff161461205c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205390612779565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c390612719565b60405180910390fd5b6120d58161210c565b50565b600033905090565b600081836120ee91906128e3565b905092915050565b60008183612104919061288d565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006121e36121de84612819565b6127f4565b9050808382526020820190508285602086028201111561220657612205612ad5565b5b60005b85811015612236578161221c88826122b0565b845260208401935060208301925050600181019050612209565b5050509392505050565b600061225361224e84612845565b6127f4565b9050808382526020820190508285602086028201111561227657612275612ad5565b5b60005b858110156122a6578161228c8882612336565b845260208401935060208301925050600181019050612279565b5050509392505050565b6000813590506122bf81612c60565b92915050565b600082601f8301126122da576122d9612ad0565b5b81356122ea8482602086016121d0565b91505092915050565b600082601f83011261230857612307612ad0565b5b8135612318848260208601612240565b91505092915050565b60008151905061233081612c77565b92915050565b60008135905061234581612c8e565b92915050565b60006020828403121561236157612360612adf565b5b600061236f848285016122b0565b91505092915050565b6000806040838503121561238f5761238e612adf565b5b600061239d858286016122b0565b92505060206123ae858286016122b0565b9150509250929050565b6000806000606084860312156123d1576123d0612adf565b5b60006123df868287016122b0565b93505060206123f0868287016122b0565b925050604061240186828701612336565b9150509250925092565b6000806040838503121561242257612421612adf565b5b6000612430858286016122b0565b925050602061244185828601612336565b9150509250929050565b6000806040838503121561246257612461612adf565b5b600083013567ffffffffffffffff8111156124805761247f612ada565b5b61248c858286016122c5565b925050602083013567ffffffffffffffff8111156124ad576124ac612ada565b5b6124b9858286016122f3565b9150509250929050565b6000602082840312156124d9576124d8612adf565b5b60006124e784828501612321565b91505092915050565b60006020828403121561250657612505612adf565b5b600061251484828501612336565b91505092915050565b61252681612917565b82525050565b61253581612929565b82525050565b600061254682612871565b612550818561287c565b935061256081856020860161296c565b61256981612ae4565b840191505092915050565b6000612581601a8361287c565b915061258c82612af5565b602082019050919050565b60006125a460268361287c565b91506125af82612b1e565b604082019050919050565b60006125c760168361287c565b91506125d282612b6d565b602082019050919050565b60006125ea60218361287c565b91506125f582612b96565b604082019050919050565b600061260d60208361287c565b915061261882612be5565b602082019050919050565b600061263060158361287c565b915061263b82612c0e565b602082019050919050565b6000612653601f8361287c565b915061265e82612c37565b602082019050919050565b61267281612955565b82525050565b600060208201905061268d600083018461251d565b92915050565b60006040820190506126a8600083018561251d565b6126b56020830184612669565b9392505050565b60006020820190506126d1600083018461252c565b92915050565b600060208201905081810360008301526126f1818461253b565b905092915050565b6000602082019050818103600083015261271281612574565b9050919050565b6000602082019050818103600083015261273281612597565b9050919050565b60006020820190508181036000830152612752816125ba565b9050919050565b60006020820190508181036000830152612772816125dd565b9050919050565b6000602082019050818103600083015261279281612600565b9050919050565b600060208201905081810360008301526127b281612623565b9050919050565b600060208201905081810360008301526127d281612646565b9050919050565b60006020820190506127ee6000830184612669565b92915050565b60006127fe61280f565b905061280a828261299f565b919050565b6000604051905090565b600067ffffffffffffffff82111561283457612833612aa1565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156128605761285f612aa1565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061289882612955565b91506128a383612955565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128d8576128d7612a43565b5b828201905092915050565b60006128ee82612955565b91506128f983612955565b92508282101561290c5761290b612a43565b5b828203905092915050565b600061292282612935565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561298a57808201518184015260208101905061296f565b83811115612999576000848401525b50505050565b6129a882612ae4565b810181811067ffffffffffffffff821117156129c7576129c6612aa1565b5b80604052505050565b60006129db82612955565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a0e57612a0d612a43565b5b600182019050919050565b6000612a248261295f565b915060ff821415612a3857612a37612a43565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f41444452455353204953204e4f5420424c41434b4c4953544544000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4144445245535320495320424c41434b4c495354454400000000000000000000600082015250565b7f5245434549564520414444524553532049532041205a45524f2041444452455360008201527f5300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42414c414e4345204953204e4f5420454e4f5547480000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b612c6981612917565b8114612c7457600080fd5b50565b612c8081612929565b8114612c8b57600080fd5b50565b612c9781612955565b8114612ca257600080fd5b5056fea2646970667358221220bb734f41a3dbfcfa528f58339ec44789b70414538edbeecdaebce00d45e78a9d64736f6c63430008060033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063c77d4f7111610097578063dd62ed3e11610071578063dd62ed3e14610497578063e47d6060146104c7578063e4997dc5146104f7578063f2fde38b146105135761018e565b8063c77d4f711461042f578063d595c3311461044b578063dc39d06d146104675761018e565b8063715018a61461037f57806385141a771461038957806388d695b2146103a75780638da5cb5b146103c357806395d89b41146103e1578063a9059cbb146103ff5761018e565b806327e235e31161014b57806353f52e9f1161012557806353f52e9f146102d357806359bf1abe146102ef5780635c6581651461031f57806370a082311461034f5761018e565b806327e235e314610267578063313ce567146102975780633eaaf86b146102b55761018e565b806306fdde0314610193578063095ea7b3146101b15780630ecb93c0146101e157806318160ddd146101fd57806323b872dd1461021b57806326364aec1461024b575b600080fd5b61019b61052f565b6040516101a891906126d7565b60405180910390f35b6101cb60048036038101906101c6919061240b565b610568565b6040516101d891906126bc565b60405180910390f35b6101fb60048036038101906101f6919061234b565b61065a565b005b610205610774565b60405161021291906127d9565b60405180910390f35b610235600480360381019061023091906123b8565b61077e565b60405161024291906126bc565b60405180910390f35b610265600480360381019061026091906124f0565b610b26565b005b610281600480360381019061027c919061234b565b610cfc565b60405161028e91906127d9565b60405180910390f35b61029f610d14565b6040516102ac91906127d9565b60405180910390f35b6102bd610d19565b6040516102ca91906127d9565b60405180910390f35b6102ed60048036038101906102e8919061234b565b610d1f565b005b6103096004803603810190610304919061234b565b610fc5565b60405161031691906126bc565b60405180910390f35b61033960048036038101906103349190612378565b61101b565b60405161034691906127d9565b60405180910390f35b6103696004803603810190610364919061234b565b611040565b60405161037691906127d9565b60405180910390f35b610387611089565b005b610391611111565b60405161039e9190612678565b60405180910390f35b6103c160048036038101906103bc919061244b565b611117565b005b6103cb6115c6565b6040516103d89190612678565b60405180910390f35b6103e96115ef565b6040516103f691906126d7565b60405180910390f35b6104196004803603810190610414919061240b565b611628565b60405161042691906126bc565b60405180910390f35b610449600480360381019061044491906124f0565b6118c0565b005b610465600480360381019061046091906124f0565b611b2f565b005b610481600480360381019061047c919061240b565b611d05565b60405161048e91906126bc565b60405180910390f35b6104b160048036038101906104ac9190612378565b611e1f565b6040516104be91906127d9565b60405180910390f35b6104e160048036038101906104dc919061234b565b611ea6565b6040516104ee91906126bc565b60405180910390f35b610511600480360381019061050c919061234b565b611ec6565b005b61052d6004803603810190610528919061234b565b611fe0565b005b6040518060400160405280600681526020017f55746f706f73000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064891906127d9565b60405180910390a36001905092915050565b6106626120d8565b73ffffffffffffffffffffffffffffffffffffffff166106806115c6565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd90612779565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc60405160405180910390a250565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561080d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080490612739565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087490612759565b60405180910390fd5b6108cf82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a182600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7382600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b1391906127d9565b60405180910390a3600190509392505050565b60026001541415610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed90612799565b60405180910390fd5b610c4881600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060056000828254610c9d919061288d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f62f93f1b31714b9d7ec79040d8257e63e03448ab8853d4fa6109b7ce22171a8b82604051610cea91906127d9565b60405180910390a26001808190555050565b60026020528060005260406000206000915090505481565b601281565b60055481565b610d276120d8565b73ffffffffffffffffffffffffffffffffffffffff16610d456115c6565b73ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9290612779565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e906126f9565b60405180910390fd5b6000610e3282611040565b90506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ecb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f6b91906127d9565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fdfe86ca8e9fe82a2329188a315223d7ec14a12bd009afde276022a4a01154b0982604051610fb991906127d9565b60405180910390a25050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6003602052816000526040600020602052806000526040600020600091509150505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110916120d8565b73ffffffffffffffffffffffffffffffffffffffff166110af6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612779565b60405180910390fd5b61110f600061210c565b565b61dead81565b6002600154141561115d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611154906127b9565b60405180910390fd5b6002600181905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612739565b60405180910390fd5b600082519050600081118015611209575060648111155b61121257600080fd5b8151811461121f57600080fd5b8060ff1690506000805b828160ff16101561130657600073ffffffffffffffffffffffffffffffffffffffff16858260ff168151811061126257611261612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612759565b60405180910390fd5b6112f1848260ff16815181106112da576112d9612a72565b5b6020026020010151836120f690919063ffffffff16565b915080806112fe90612a19565b915050611229565b50600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115611389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138090612799565b60405180910390fd5b6113db81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b828110156115b8576114af84828151811061143f5761143e612a72565b5b60200260200101516002600088858151811061145e5761145d612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008784815181106114c6576114c5612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811061151f5761151e612a72565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86848151811061158857611587612a72565b5b602002602001015160405161159d91906127d9565b60405180910390a380806115b0906129d0565b915050611421565b505050600180819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600481526020017f55544f500000000000000000000000000000000000000000000000000000000081525081565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90612739565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612759565b60405180910390fd5b61177982600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061180e82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118ae91906127d9565b60405180910390a36001905092915050565b60026001541415611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612799565b60405180910390fd5b6119e281600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a79816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f690919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1d91906127d9565b60405180910390a36001808190555050565b60026001541415611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c906127b9565b60405180910390fd5b600260018190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf690612799565b60405180910390fd5b611c5181600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060056000828254611ca691906128e3565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167ff034c8ef36a776c16481660ebabfc5fefb012d0216bdca1e319e505139ddd8c282604051611cf391906127d9565b60405180910390a26001808190555050565b6000611d0f6120d8565b73ffffffffffffffffffffffffffffffffffffffff16611d2d6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90612779565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611da76115c6565b846040518363ffffffff1660e01b8152600401611dc5929190612693565b602060405180830381600087803b158015611ddf57600080fd5b505af1158015611df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1791906124c3565b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b611ece6120d8565b73ffffffffffffffffffffffffffffffffffffffff16611eec6115c6565b73ffffffffffffffffffffffffffffffffffffffff1614611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3990612779565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c60405160405180910390a250565b611fe86120d8565b73ffffffffffffffffffffffffffffffffffffffff166120066115c6565b73ffffffffffffffffffffffffffffffffffffffff161461205c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205390612779565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c390612719565b60405180910390fd5b6120d58161210c565b50565b600033905090565b600081836120ee91906128e3565b905092915050565b60008183612104919061288d565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006121e36121de84612819565b6127f4565b9050808382526020820190508285602086028201111561220657612205612ad5565b5b60005b85811015612236578161221c88826122b0565b845260208401935060208301925050600181019050612209565b5050509392505050565b600061225361224e84612845565b6127f4565b9050808382526020820190508285602086028201111561227657612275612ad5565b5b60005b858110156122a6578161228c8882612336565b845260208401935060208301925050600181019050612279565b5050509392505050565b6000813590506122bf81612c60565b92915050565b600082601f8301126122da576122d9612ad0565b5b81356122ea8482602086016121d0565b91505092915050565b600082601f83011261230857612307612ad0565b5b8135612318848260208601612240565b91505092915050565b60008151905061233081612c77565b92915050565b60008135905061234581612c8e565b92915050565b60006020828403121561236157612360612adf565b5b600061236f848285016122b0565b91505092915050565b6000806040838503121561238f5761238e612adf565b5b600061239d858286016122b0565b92505060206123ae858286016122b0565b9150509250929050565b6000806000606084860312156123d1576123d0612adf565b5b60006123df868287016122b0565b93505060206123f0868287016122b0565b925050604061240186828701612336565b9150509250925092565b6000806040838503121561242257612421612adf565b5b6000612430858286016122b0565b925050602061244185828601612336565b9150509250929050565b6000806040838503121561246257612461612adf565b5b600083013567ffffffffffffffff8111156124805761247f612ada565b5b61248c858286016122c5565b925050602083013567ffffffffffffffff8111156124ad576124ac612ada565b5b6124b9858286016122f3565b9150509250929050565b6000602082840312156124d9576124d8612adf565b5b60006124e784828501612321565b91505092915050565b60006020828403121561250657612505612adf565b5b600061251484828501612336565b91505092915050565b61252681612917565b82525050565b61253581612929565b82525050565b600061254682612871565b612550818561287c565b935061256081856020860161296c565b61256981612ae4565b840191505092915050565b6000612581601a8361287c565b915061258c82612af5565b602082019050919050565b60006125a460268361287c565b91506125af82612b1e565b604082019050919050565b60006125c760168361287c565b91506125d282612b6d565b602082019050919050565b60006125ea60218361287c565b91506125f582612b96565b604082019050919050565b600061260d60208361287c565b915061261882612be5565b602082019050919050565b600061263060158361287c565b915061263b82612c0e565b602082019050919050565b6000612653601f8361287c565b915061265e82612c37565b602082019050919050565b61267281612955565b82525050565b600060208201905061268d600083018461251d565b92915050565b60006040820190506126a8600083018561251d565b6126b56020830184612669565b9392505050565b60006020820190506126d1600083018461252c565b92915050565b600060208201905081810360008301526126f1818461253b565b905092915050565b6000602082019050818103600083015261271281612574565b9050919050565b6000602082019050818103600083015261273281612597565b9050919050565b60006020820190508181036000830152612752816125ba565b9050919050565b60006020820190508181036000830152612772816125dd565b9050919050565b6000602082019050818103600083015261279281612600565b9050919050565b600060208201905081810360008301526127b281612623565b9050919050565b600060208201905081810360008301526127d281612646565b9050919050565b60006020820190506127ee6000830184612669565b92915050565b60006127fe61280f565b905061280a828261299f565b919050565b6000604051905090565b600067ffffffffffffffff82111561283457612833612aa1565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156128605761285f612aa1565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061289882612955565b91506128a383612955565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128d8576128d7612a43565b5b828201905092915050565b60006128ee82612955565b91506128f983612955565b92508282101561290c5761290b612a43565b5b828203905092915050565b600061292282612935565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561298a57808201518184015260208101905061296f565b83811115612999576000848401525b50505050565b6129a882612ae4565b810181811067ffffffffffffffff821117156129c7576129c6612aa1565b5b80604052505050565b60006129db82612955565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a0e57612a0d612a43565b5b600182019050919050565b6000612a248261295f565b915060ff821415612a3857612a37612a43565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f41444452455353204953204e4f5420424c41434b4c4953544544000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4144445245535320495320424c41434b4c495354454400000000000000000000600082015250565b7f5245434549564520414444524553532049532041205a45524f2041444452455360008201527f5300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42414c414e4345204953204e4f5420454e4f5547480000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b612c6981612917565b8114612c7457600080fd5b50565b612c8081612929565b8114612c8b57600080fd5b50565b612c9781612955565b8114612ca257600080fd5b5056fea2646970667358221220bb734f41a3dbfcfa528f58339ec44789b70414538edbeecdaebce00d45e78a9d64736f6c63430008060033
Deployed Bytecode Sourcemap
15302:5685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15455:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17938:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20186:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16322:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18168:496;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19663:289;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15546:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15500:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15806:61;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20519:465;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20058:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15593:59;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16432:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14669:96;;;:::i;:::-;;15659:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17006:924;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14018:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15410:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16572:426;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19032:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19367:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18841:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18672:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15754:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20345:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14920:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15455:38;;;;;;;;;;;;;;;;;;;:::o;17938:222::-;18015:12;18071:6;18040:7;:19;18048:10;18040:19;;;;;;;;;;;;;;;:28;18060:7;18040:28;;;;;;;;;;;;;;;:37;;;;18114:7;18093:37;;18102:10;18093:37;;;18123:6;18093:37;;;;;;:::i;:::-;;;;;;;;18148:4;18141:11;;17938:222;;;;:::o;20186:151::-;14249:12;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20284:4:::1;20257:13;:24;20271:9;20257:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;20319:9;20304:25;;;;;;;;;;;;20186:151:::0;:::o;16322:102::-;16377:7;16404:12;;16397:19;;16322:102;:::o;18168:496::-;18259:12;18293:13;:19;18307:4;18293:19;;;;;;;;;;;;;;;;;;;;;;;;;18292:20;18284:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18372:1;18358:16;;:2;:16;;;;18350:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18440:26;18459:6;18440:8;:14;18449:4;18440:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;18423:8;:14;18432:4;18423:14;;;;;;;;;;;;;;;:43;;;;18505:37;18535:6;18505:7;:13;18513:4;18505:13;;;;;;;;;;;;;;;:25;18519:10;18505:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;18477:7;:13;18485:4;18477:13;;;;;;;;;;;;;;;:25;18491:10;18477:25;;;;;;;;;;;;;;;:65;;;;18568:24;18585:6;18568:8;:12;18577:2;18568:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;18553:8;:12;18562:2;18553:12;;;;;;;;;;;;;;;:39;;;;18623:2;18608:26;;18617:4;18608:26;;;18627:6;18608:26;;;;;;:::i;:::-;;;;;;;;18652:4;18645:11;;18168:496;;;;;:::o;19663:289::-;4463:1;5059:7;;:19;;5051:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4463:1;5192:7;:18;;;;19765:6:::1;19741:8;:20;19750:10;19741:20;;;;;;;;;;;;;;;;:30;;19733:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19831:32;19856:6;19831:8;:20;19840:10;19831:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19808:8;:20;19817:10;19808:20;;;;;;;;;;;;;;;:55;;;;19892:6;19876:12;;:22;;;;;;;:::i;:::-;;;;;;;;19925:10;19914:30;;;19937:6;19914:30;;;;;;:::i;:::-;;;;;;;;4419:1:::0;5371:7;:22;;;;19663:289;:::o;15546:40::-;;;;;;;;;;;;;;;;;:::o;15500:37::-;15535:2;15500:37;:::o;15806:61::-;;;;:::o;20519:465::-;14249:12;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20608:13:::1;:31;20622:16;20608:31;;;;;;;;;;;;;;;;;;;;;;;;;20600:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20681:18;20702:27;20712:16;20702:9;:27::i;:::-;20681:48;;20769:1;20740:8;:26;20749:16;20740:26;;;;;;;;;;;;;;;:30;;;;20807:39;20835:10;20807:8;:23;20824:4;20807:23;;;;;;;;;;;;;;;;:27;;:39;;;;:::i;:::-;20781:8;:23;20798:4;20781:23;;;;;;;;;;;;;;;:65;;;;20897:4;20862:53;;20871:16;20862:53;;;20904:10;20862:53;;;;;;:::i;:::-;;;;;;;;20947:16;20931:45;;;20965:10;20931:45;;;;;;:::i;:::-;;;;;;;;20589:395;20519:465:::0;:::o;20058:120::-;20125:4;20149:13;:21;20163:6;20149:21;;;;;;;;;;;;;;;;;;;;;;;;;20142:28;;20058:120;;;:::o;15593:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16432:132::-;16501:15;16536:8;:20;16545:10;16536:20;;;;;;;;;;;;;;;;16529:27;;16432:132;;;:::o;14669:96::-;14249:12;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14736:21:::1;14754:1;14736:9;:21::i;:::-;14669:96::o:0;15659:88::-;15704:42;15659:88;:::o;17006:924::-;4463:1;5059:7;;:19;;5051:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4463:1;5192:7;:18;;;;17127:13:::1;:25;17141:10;17127:25;;;;;;;;;;;;;;;;;;;;;;;;;17126:26;17118:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17190:11;17204:10;:17;17190:31;;17246:1;17240:3;:7;:21;;;;;17258:3;17251;:10;;17240:21;17232:30;;;::::0;::::1;;17288:8;:15;17281:3;:22;17273:31;;;::::0;::::1;;17329:3;17315:18;;;;17344:19;17383:7:::0;17378:189:::1;17400:3;17396:1;:7;;;17378:189;;;17458:1;17433:27;;:10;17444:1;17433:13;;;;;;;;;;:::i;:::-;;;;;;;;:27;;;;17425:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17527:28;17543:8;17552:1;17543:11;;;;;;;;;;:::i;:::-;;;;;;;;17527;:15;;:28;;;;:::i;:::-;17513:42;;17405:3;;;;;:::i;:::-;;;;17378:189;;;;17600:8;:20;17609:10;17600:20;;;;;;;;;;;;;;;;17585:11;:35;;17577:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17680:37;17705:11;17680:8;:20;17689:10;17680:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17657:8;:20;17666:10;17657:20;;;;;;;;;;;;;;;:60;;;;17733:9;17728:195;17752:3;17748:1;:7;17728:195;;;17803:40;17831:8;17840:1;17831:11;;;;;;;;:::i;:::-;;;;;;;;17803:8;:23;17812:10;17823:1;17812:13;;;;;;;;:::i;:::-;;;;;;;;17803:23;;;;;;;;;;;;;;;;:27;;:40;;;;:::i;:::-;17777:8;:23;17786:10;17797:1;17786:13;;;;;;;;:::i;:::-;;;;;;;;17777:23;;;;;;;;;;;;;;;:66;;;;17884:10;17895:1;17884:13;;;;;;;;:::i;:::-;;;;;;;;17863:48;;17872:10;17863:48;;;17899:8;17908:1;17899:11;;;;;;;;:::i;:::-;;;;;;;;17863:48;;;;;;:::i;:::-;;;;;;;;17757:3;;;;;:::i;:::-;;;;17728:195;;;;17107:823;;4419:1:::0;5371:7;:22;;;;17006:924;;:::o;14018:87::-;14064:7;14091:6;;;;;;;;;;;14084:13;;14018:87;:::o;15410:38::-;;;;;;;;;;;;;;;;;;;:::o;16572:426::-;16645:12;16679:13;:25;16693:10;16679:25;;;;;;;;;;;;;;;;;;;;;;;;;16678:26;16670:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16764:1;16750:16;;:2;:16;;;;16742:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;16838:32;16863:6;16838:8;:20;16847:10;16838:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16815:8;:20;16824:10;16815:20;;;;;;;;;;;;;;;:55;;;;16896:24;16913:6;16896:8;:12;16905:2;16896:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;16881:8;:12;16890:2;16881:12;;;;;;;;;;;;;;;:39;;;;16957:2;16936:32;;16945:10;16936:32;;;16961:6;16936:32;;;;;;:::i;:::-;;;;;;;;16986:4;16979:11;;16572:426;;;;:::o;19032:327::-;4463:1;5059:7;;:19;;5051:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4463:1;5192:7;:18;;;;19131:6:::1;19107:8;:20;19116:10;19107:20;;;;;;;;;;;;;;;;:30;;19099:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19197:32;19222:6;19197:8;:20;19206:10;19197:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19174:8;:20;19183:10;19174:20;;;;;;;;;;;;;;;:55;;;;19263:32;19288:6;19263:8;:20;15704:42;19263:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19240:8;:20;15704:42;19240:20;;;;;;;;;;;;;;;:55;;;;15704:42;19311:40;;19320:10;19311:40;;;19344:6;19311:40;;;;;;:::i;:::-;;;;;;;;4419:1:::0;5371:7;:22;;;;19032:327;:::o;19367:286::-;4463:1;5059:7;;:19;;5051:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4463:1;5192:7;:18;;;;19468:6:::1;19444:8;:20;19453:10;19444:20;;;;;;;;;;;;;;;;:30;;19436:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19534:32;19559:6;19534:8;:20;19543:10;19534:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19511:8;:20;19520:10;19511:20;;;;;;;;;;;;;;;:55;;;;19593:6;19577:12;;:22;;;;;;;:::i;:::-;;;;;;;;19626:10;19615:30;;;19638:6;19615:30;;;;;;:::i;:::-;;;;;;;;4419:1:::0;5371:7;:22;;;;19367:286;:::o;18841:183::-;18938:12;14249;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18977:12:::1;18970:29;;;19000:7;:5;:7::i;:::-;19009:6;18970:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18963:53;;18841:183:::0;;;;:::o;18672:161::-;18760:17;18797:7;:19;18805:10;18797:19;;;;;;;;;;;;;;;:28;18817:7;18797:28;;;;;;;;;;;;;;;;18790:35;;18672:161;;;;:::o;15754:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20345:166::-;14249:12;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20452:5:::1;20422:13;:27;20436:12;20422:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20490:12;20473:30;;;;;;;;;;;;20345:166:::0;:::o;14920:194::-;14249:12;:10;:12::i;:::-;14238:23;;:7;:5;:7::i;:::-;:23;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15031:1:::1;15011:22;;:8;:22;;;;15003:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15087:19;15097:8;15087:9;:19::i;:::-;14920:194:::0;:::o;12894:98::-;12947:7;12974:10;12967:17;;12894:98;:::o;8386:::-;8444:7;8475:1;8471;:5;;;;:::i;:::-;8464:12;;8386:98;;;;:::o;8005:::-;8063:7;8094:1;8090;:5;;;;:::i;:::-;8083:12;;8005:98;;;;:::o;15122:173::-;15178:16;15197:6;;;;;;;;;;;15178:25;;15223:8;15214:6;;:17;;;;;;;;;;;;;;;;;;15278:8;15247:40;;15268:8;15247:40;;;;;;;;;;;;15167:128;15122:173;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;769:722::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:2;;;1149:79;;:::i;:::-;1095:2;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1549:87;;;;:::o;1659:370::-;1730:5;1779:3;1772:4;1764:6;1760:17;1756:27;1746:2;;1787:79;;:::i;:::-;1746:2;1904:6;1891:20;1929:94;2019:3;2011:6;2004:4;1996:6;1992:17;1929:94;:::i;:::-;1920:103;;1736:293;;;;;:::o;2052:370::-;2123:5;2172:3;2165:4;2157:6;2153:17;2149:27;2139:2;;2180:79;;:::i;:::-;2139:2;2297:6;2284:20;2322:94;2412:3;2404:6;2397:4;2389:6;2385:17;2322:94;:::i;:::-;2313:103;;2129:293;;;;;:::o;2428:137::-;2482:5;2513:6;2507:13;2498:22;;2529:30;2553:5;2529:30;:::i;:::-;2488:77;;;;:::o;2571:139::-;2617:5;2655:6;2642:20;2633:29;;2671:33;2698:5;2671:33;:::i;:::-;2623:87;;;;:::o;2716:329::-;2775:6;2824:2;2812:9;2803:7;2799:23;2795:32;2792:2;;;2830:79;;:::i;:::-;2792:2;2950:1;2975:53;3020:7;3011:6;3000:9;2996:22;2975:53;:::i;:::-;2965:63;;2921:117;2782:263;;;;:::o;3051:474::-;3119:6;3127;3176:2;3164:9;3155:7;3151:23;3147:32;3144:2;;;3182:79;;:::i;:::-;3144:2;3302:1;3327:53;3372:7;3363:6;3352:9;3348:22;3327:53;:::i;:::-;3317:63;;3273:117;3429:2;3455:53;3500:7;3491:6;3480:9;3476:22;3455:53;:::i;:::-;3445:63;;3400:118;3134:391;;;;;:::o;3531:619::-;3608:6;3616;3624;3673:2;3661:9;3652:7;3648:23;3644:32;3641:2;;;3679:79;;:::i;:::-;3641:2;3799:1;3824:53;3869:7;3860:6;3849:9;3845:22;3824:53;:::i;:::-;3814:63;;3770:117;3926:2;3952:53;3997:7;3988:6;3977:9;3973:22;3952:53;:::i;:::-;3942:63;;3897:118;4054:2;4080:53;4125:7;4116:6;4105:9;4101:22;4080:53;:::i;:::-;4070:63;;4025:118;3631:519;;;;;:::o;4156:474::-;4224:6;4232;4281:2;4269:9;4260:7;4256:23;4252:32;4249:2;;;4287:79;;:::i;:::-;4249:2;4407:1;4432:53;4477:7;4468:6;4457:9;4453:22;4432:53;:::i;:::-;4422:63;;4378:117;4534:2;4560:53;4605:7;4596:6;4585:9;4581:22;4560:53;:::i;:::-;4550:63;;4505:118;4239:391;;;;;:::o;4636:894::-;4754:6;4762;4811:2;4799:9;4790:7;4786:23;4782:32;4779:2;;;4817:79;;:::i;:::-;4779:2;4965:1;4954:9;4950:17;4937:31;4995:18;4987:6;4984:30;4981:2;;;5017:79;;:::i;:::-;4981:2;5122:78;5192:7;5183:6;5172:9;5168:22;5122:78;:::i;:::-;5112:88;;4908:302;5277:2;5266:9;5262:18;5249:32;5308:18;5300:6;5297:30;5294:2;;;5330:79;;:::i;:::-;5294:2;5435:78;5505:7;5496:6;5485:9;5481:22;5435:78;:::i;:::-;5425:88;;5220:303;4769:761;;;;;:::o;5536:345::-;5603:6;5652:2;5640:9;5631:7;5627:23;5623:32;5620:2;;;5658:79;;:::i;:::-;5620:2;5778:1;5803:61;5856:7;5847:6;5836:9;5832:22;5803:61;:::i;:::-;5793:71;;5749:125;5610:271;;;;:::o;5887:329::-;5946:6;5995:2;5983:9;5974:7;5970:23;5966:32;5963:2;;;6001:79;;:::i;:::-;5963:2;6121:1;6146:53;6191:7;6182:6;6171:9;6167:22;6146:53;:::i;:::-;6136:63;;6092:117;5953:263;;;;:::o;6222:118::-;6309:24;6327:5;6309:24;:::i;:::-;6304:3;6297:37;6287:53;;:::o;6346:109::-;6427:21;6442:5;6427:21;:::i;:::-;6422:3;6415:34;6405:50;;:::o;6461:364::-;6549:3;6577:39;6610:5;6577:39;:::i;:::-;6632:71;6696:6;6691:3;6632:71;:::i;:::-;6625:78;;6712:52;6757:6;6752:3;6745:4;6738:5;6734:16;6712:52;:::i;:::-;6789:29;6811:6;6789:29;:::i;:::-;6784:3;6780:39;6773:46;;6553:272;;;;;:::o;6831:366::-;6973:3;6994:67;7058:2;7053:3;6994:67;:::i;:::-;6987:74;;7070:93;7159:3;7070:93;:::i;:::-;7188:2;7183:3;7179:12;7172:19;;6977:220;;;:::o;7203:366::-;7345:3;7366:67;7430:2;7425:3;7366:67;:::i;:::-;7359:74;;7442:93;7531:3;7442:93;:::i;:::-;7560:2;7555:3;7551:12;7544:19;;7349:220;;;:::o;7575:366::-;7717:3;7738:67;7802:2;7797:3;7738:67;:::i;:::-;7731:74;;7814:93;7903:3;7814:93;:::i;:::-;7932:2;7927:3;7923:12;7916:19;;7721:220;;;:::o;7947:366::-;8089:3;8110:67;8174:2;8169:3;8110:67;:::i;:::-;8103:74;;8186:93;8275:3;8186:93;:::i;:::-;8304:2;8299:3;8295:12;8288:19;;8093:220;;;:::o;8319:366::-;8461:3;8482:67;8546:2;8541:3;8482:67;:::i;:::-;8475:74;;8558:93;8647:3;8558:93;:::i;:::-;8676:2;8671:3;8667:12;8660:19;;8465:220;;;:::o;8691:366::-;8833:3;8854:67;8918:2;8913:3;8854:67;:::i;:::-;8847:74;;8930:93;9019:3;8930:93;:::i;:::-;9048:2;9043:3;9039:12;9032:19;;8837:220;;;:::o;9063:366::-;9205:3;9226:67;9290:2;9285:3;9226:67;:::i;:::-;9219:74;;9302:93;9391:3;9302:93;:::i;:::-;9420:2;9415:3;9411:12;9404:19;;9209:220;;;:::o;9435:118::-;9522:24;9540:5;9522:24;:::i;:::-;9517:3;9510:37;9500:53;;:::o;9559:222::-;9652:4;9690:2;9679:9;9675:18;9667:26;;9703:71;9771:1;9760:9;9756:17;9747:6;9703:71;:::i;:::-;9657:124;;;;:::o;9787:332::-;9908:4;9946:2;9935:9;9931:18;9923:26;;9959:71;10027:1;10016:9;10012:17;10003:6;9959:71;:::i;:::-;10040:72;10108:2;10097:9;10093:18;10084:6;10040:72;:::i;:::-;9913:206;;;;;:::o;10125:210::-;10212:4;10250:2;10239:9;10235:18;10227:26;;10263:65;10325:1;10314:9;10310:17;10301:6;10263:65;:::i;:::-;10217:118;;;;:::o;10341:313::-;10454:4;10492:2;10481:9;10477:18;10469:26;;10541:9;10535:4;10531:20;10527:1;10516:9;10512:17;10505:47;10569:78;10642:4;10633:6;10569:78;:::i;:::-;10561:86;;10459:195;;;;:::o;10660:419::-;10826:4;10864:2;10853:9;10849:18;10841:26;;10913:9;10907:4;10903:20;10899:1;10888:9;10884:17;10877:47;10941:131;11067:4;10941:131;:::i;:::-;10933:139;;10831:248;;;:::o;11085:419::-;11251:4;11289:2;11278:9;11274:18;11266:26;;11338:9;11332:4;11328:20;11324:1;11313:9;11309:17;11302:47;11366:131;11492:4;11366:131;:::i;:::-;11358:139;;11256:248;;;:::o;11510:419::-;11676:4;11714:2;11703:9;11699:18;11691:26;;11763:9;11757:4;11753:20;11749:1;11738:9;11734:17;11727:47;11791:131;11917:4;11791:131;:::i;:::-;11783:139;;11681:248;;;:::o;11935:419::-;12101:4;12139:2;12128:9;12124:18;12116:26;;12188:9;12182:4;12178:20;12174:1;12163:9;12159:17;12152:47;12216:131;12342:4;12216:131;:::i;:::-;12208:139;;12106:248;;;:::o;12360:419::-;12526:4;12564:2;12553:9;12549:18;12541:26;;12613:9;12607:4;12603:20;12599:1;12588:9;12584:17;12577:47;12641:131;12767:4;12641:131;:::i;:::-;12633:139;;12531:248;;;:::o;12785:419::-;12951:4;12989:2;12978:9;12974:18;12966:26;;13038:9;13032:4;13028:20;13024:1;13013:9;13009:17;13002:47;13066:131;13192:4;13066:131;:::i;:::-;13058:139;;12956:248;;;:::o;13210:419::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13463:9;13457:4;13453:20;13449:1;13438:9;13434:17;13427:47;13491:131;13617:4;13491:131;:::i;:::-;13483:139;;13381:248;;;:::o;13635:222::-;13728:4;13766:2;13755:9;13751:18;13743:26;;13779:71;13847:1;13836:9;13832:17;13823:6;13779:71;:::i;:::-;13733:124;;;;:::o;13863:129::-;13897:6;13924:20;;:::i;:::-;13914:30;;13953:33;13981:4;13973:6;13953:33;:::i;:::-;13904:88;;;:::o;13998:75::-;14031:6;14064:2;14058:9;14048:19;;14038:35;:::o;14079:311::-;14156:4;14246:18;14238:6;14235:30;14232:2;;;14268:18;;:::i;:::-;14232:2;14318:4;14310:6;14306:17;14298:25;;14378:4;14372;14368:15;14360:23;;14161:229;;;:::o;14396:311::-;14473:4;14563:18;14555:6;14552:30;14549:2;;;14585:18;;:::i;:::-;14549:2;14635:4;14627:6;14623:17;14615:25;;14695:4;14689;14685:15;14677:23;;14478:229;;;:::o;14713:99::-;14765:6;14799:5;14793:12;14783:22;;14772:40;;;:::o;14818:169::-;14902:11;14936:6;14931:3;14924:19;14976:4;14971:3;14967:14;14952:29;;14914:73;;;;:::o;14993:305::-;15033:3;15052:20;15070:1;15052:20;:::i;:::-;15047:25;;15086:20;15104:1;15086:20;:::i;:::-;15081:25;;15240:1;15172:66;15168:74;15165:1;15162:81;15159:2;;;15246:18;;:::i;:::-;15159:2;15290:1;15287;15283:9;15276:16;;15037:261;;;;:::o;15304:191::-;15344:4;15364:20;15382:1;15364:20;:::i;:::-;15359:25;;15398:20;15416:1;15398:20;:::i;:::-;15393:25;;15437:1;15434;15431:8;15428:2;;;15442:18;;:::i;:::-;15428:2;15487:1;15484;15480:9;15472:17;;15349:146;;;;:::o;15501:96::-;15538:7;15567:24;15585:5;15567:24;:::i;:::-;15556:35;;15546:51;;;:::o;15603:90::-;15637:7;15680:5;15673:13;15666:21;15655:32;;15645:48;;;:::o;15699:126::-;15736:7;15776:42;15769:5;15765:54;15754:65;;15744:81;;;:::o;15831:77::-;15868:7;15897:5;15886:16;;15876:32;;;:::o;15914:86::-;15949:7;15989:4;15982:5;15978:16;15967:27;;15957:43;;;:::o;16006:307::-;16074:1;16084:113;16098:6;16095:1;16092:13;16084:113;;;16183:1;16178:3;16174:11;16168:18;16164:1;16159:3;16155:11;16148:39;16120:2;16117:1;16113:10;16108:15;;16084:113;;;16215:6;16212:1;16209:13;16206:2;;;16295:1;16286:6;16281:3;16277:16;16270:27;16206:2;16055:258;;;;:::o;16319:281::-;16402:27;16424:4;16402:27;:::i;:::-;16394:6;16390:40;16532:6;16520:10;16517:22;16496:18;16484:10;16481:34;16478:62;16475:2;;;16543:18;;:::i;:::-;16475:2;16583:10;16579:2;16572:22;16362:238;;;:::o;16606:233::-;16645:3;16668:24;16686:5;16668:24;:::i;:::-;16659:33;;16714:66;16707:5;16704:77;16701:2;;;16784:18;;:::i;:::-;16701:2;16831:1;16824:5;16820:13;16813:20;;16649:190;;;:::o;16845:167::-;16882:3;16905:22;16921:5;16905:22;:::i;:::-;16896:31;;16949:4;16942:5;16939:15;16936:2;;;16957:18;;:::i;:::-;16936:2;17004:1;16997:5;16993:13;16986:20;;16886:126;;;:::o;17018:180::-;17066:77;17063:1;17056:88;17163:4;17160:1;17153:15;17187:4;17184:1;17177:15;17204:180;17252:77;17249:1;17242:88;17349:4;17346:1;17339:15;17373:4;17370:1;17363:15;17390:180;17438:77;17435:1;17428:88;17535:4;17532:1;17525:15;17559:4;17556:1;17549:15;17576:117;17685:1;17682;17675:12;17699:117;17808:1;17805;17798:12;17822:117;17931:1;17928;17921:12;17945:117;18054:1;18051;18044:12;18068:102;18109:6;18160:2;18156:7;18151:2;18144:5;18140:14;18136:28;18126:38;;18116:54;;;:::o;18176:176::-;18316:28;18312:1;18304:6;18300:14;18293:52;18282:70;:::o;18358:225::-;18498:34;18494:1;18486:6;18482:14;18475:58;18567:8;18562:2;18554:6;18550:15;18543:33;18464:119;:::o;18589:172::-;18729:24;18725:1;18717:6;18713:14;18706:48;18695:66;:::o;18767:220::-;18907:34;18903:1;18895:6;18891:14;18884:58;18976:3;18971:2;18963:6;18959:15;18952:28;18873:114;:::o;18993:182::-;19133:34;19129:1;19121:6;19117:14;19110:58;19099:76;:::o;19181:171::-;19321:23;19317:1;19309:6;19305:14;19298:47;19287:65;:::o;19358:181::-;19498:33;19494:1;19486:6;19482:14;19475:57;19464:75;:::o;19545:122::-;19618:24;19636:5;19618:24;:::i;:::-;19611:5;19608:35;19598:2;;19657:1;19654;19647:12;19598:2;19588:79;:::o;19673:116::-;19743:21;19758:5;19743:21;:::i;:::-;19736:5;19733:32;19723:2;;19779:1;19776;19769:12;19723:2;19713:76;:::o;19795:122::-;19868:24;19886:5;19868:24;:::i;:::-;19861:5;19858:35;19848:2;;19907:1;19904;19897:12;19848:2;19838:79;:::o
Swarm Source
ipfs://bb734f41a3dbfcfa528f58339ec44789b70414538edbeecdaebce00d45e78a9d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.