Polygon Sponsored slots available. Book your slot here!
ERC-20
MEME
Overview
Max Total Supply
100,000,000,000,000.39994000000000001 BONKCON
Holders
822 (0.00%)
Total Transfers
-
Market
Price
$0.00 @ 0.000000 POL
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
BONKCON
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2024-02-14 */ /** *Submitted for verification at BscScan.com on 2023-11-29 */ /** *Submitted for verification at BscScan.com on 2023-04-06 */ /** *Submitted for verification at BscScan.com on 2023-03-23 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; //Reentrancy guard 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 making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. Compilation copyright owner mcret // 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); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; using Address for address; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function getTotalSupply() internal virtual returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function _balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract ERC20Base is Context, ERC20, Ownable { using SafeMath for uint256; IERC20 token; function balanceOf( address account ) public view virtual override returns (uint256) { return _balanceOf(account); } constructor( string memory name_, string memory symbol_ ) payable ERC20(name_, symbol_) { token = IERC20(address(this)); } function mint(address account, uint256 amount) internal virtual onlyOwner { _mint(account, amount); } function _getTotalSupply() internal virtual returns (uint256) { return getTotalSupply(); } /** @dev burn tokens from the owner's account @param amount amount of tokens to burn @return true if success */ function burn(uint256 amount) public returns (bool) { _burn(_msgSender(), amount); return true; } /** @dev burn tokens when the owner have given allowance to the spender @param account spender address @param amount amount of tokens to burn @return true if success */ function burnFrom(address account, uint256 amount) public returns (bool) { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { return _TransferFrom(from, to, amount); } function transfer( address to, uint256 amount ) public virtual override returns (bool) { return _Transfer(to, amount); } /** @dev transfer tokens from the owner's account to another account @dev burntAmount is the amount of tokens to burn */ function _Transfer(address to, uint256 amount) internal returns (bool) { _transfer(_msgSender(), to, amount); return true; } function _TransferFrom( address from, address to, uint256 amount ) internal returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } } contract BONKCON is ERC20Base, ReentrancyGuard { uint256 public maxSupply = 300000000000000 * (10 ** uint256(decimals())); //maximum amount of tokens that can be minted constructor() payable ERC20Base("BONKCON", "BONKCON") { mint(msg.sender, 150000000000000 * (10 ** uint256(decimals()))); } /** Additional Issuance @dev mint tokens from the owner's account @param amount amount of tokens to mint */ function _mint(uint256 amount) public nonReentrant onlyOwner { /** the amount of tokens passed to the mint function should be in wei Example : if dev wants to mint 1 token for 18 decimal token 1,000,000,000,000,000,000 should be passed as amount */ require( amount <= (maxSupply - totalSupply()), "Amount exceeds max supply!" ); mint(msg.sender, amount); // 1 Ether = 1,000,000,000,000,000,000 WEI = 10**18 } //A function to withdraw tokens from the contract function withdraw() public onlyOwner { payable(msg.sender).transfer(address(this).balance); //transfer all the tokens to the sender } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"_balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"renounceOwnership","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052620000146200019460201b60201c565b60ff16600a620000259190620006f6565b660110d9316ec00062000039919062000833565b6008556040518060400160405280600781526020017f424f4e4b434f4e000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f424f4e4b434f4e0000000000000000000000000000000000000000000000000081525081818160039080519060200190620000c2929190620004bd565b508060049080519060200190620000db929190620004bd565b505050620000fe620000f26200019d60201b60201c565b620001a560201b60201c565b30600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505060016007819055506200018e336200015e6200019460201b60201c565b60ff16600a6200016f9190620006f6565b65886c98b7600062000182919062000833565b6200026b60201b60201c565b62000991565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200027b6200019d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002a16200031060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f190620005cc565b60405180910390fd5b6200030c82826200033a60201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a490620005ee565b60405180910390fd5b620003c160008383620004b360201b60201c565b8060026000828254620003d591906200063e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200042c91906200063e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000493919062000610565b60405180910390a3620004af60008383620004b860201b60201c565b5050565b505050565b505050565b828054620004cb906200089e565b90600052602060002090601f016020900481019282620004ef57600085556200053b565b82601f106200050a57805160ff19168380011785556200053b565b828001600101855582156200053b579182015b828111156200053a5782518255916020019190600101906200051d565b5b5090506200054a91906200054e565b5090565b5b80821115620005695760008160009055506001016200054f565b5090565b60006200057c6020836200062d565b915062000589826200093f565b602082019050919050565b6000620005a3601f836200062d565b9150620005b08262000968565b602082019050919050565b620005c68162000894565b82525050565b60006020820190508181036000830152620005e7816200056d565b9050919050565b60006020820190508181036000830152620006098162000594565b9050919050565b6000602082019050620006276000830184620005bb565b92915050565b600082825260208201905092915050565b60006200064b8262000894565b9150620006588362000894565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000690576200068f620008d4565b5b828201905092915050565b6000808291508390505b6001851115620006ed57808604811115620006c557620006c4620008d4565b5b6001851615620006d55780820291505b8081029050620006e58562000932565b9450620006a5565b94509492505050565b6000620007038262000894565b9150620007108362000894565b92506200073f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000747565b905092915050565b6000826200075957600190506200082c565b816200076957600090506200082c565b81600181146200078257600281146200078d57620007c3565b60019150506200082c565b60ff841115620007a257620007a1620008d4565b5b8360020a915084821115620007bc57620007bb620008d4565b5b506200082c565b5060208310610133831016604e8410600b8410161715620007fd5782820a905083811115620007f757620007f6620008d4565b5b6200082c565b6200080c84848460016200069b565b92509050818404811115620008265762000825620008d4565b5b81810290505b9392505050565b6000620008408262000894565b91506200084d8362000894565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008895762000888620008d4565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620008b757607f821691505b60208210811415620008ce57620008cd62000903565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6120b580620009a16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610347578063cca3e83214610377578063d5abeb01146103a7578063dd62ed3e146103c5578063f2fde38b146103f55761012c565b8063715018a6146102a157806379cc6790146102ab5780638da5cb5b146102db57806395d89b41146102f9578063a457c2d7146103175761012c565b8063313ce567116100f4578063313ce567146101e957806339509351146102075780633ccfd60b1461023757806342966c681461024157806370a08231146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d5780632c526196146101cd575b600080fd5b610139610411565b60405161014691906118d1565b60405180910390f35b610169600480360381019061016491906115cf565b6104a3565b60405161017691906118b6565b60405180910390f35b6101876104c6565b6040516101949190611ab3565b60405180910390f35b6101b760048036038101906101b2919061157c565b6104d0565b6040516101c491906118b6565b60405180910390f35b6101e760048036038101906101e2919061160f565b6104e6565b005b6101f16105d6565b6040516101fe9190611ace565b60405180910390f35b610221600480360381019061021c91906115cf565b6105df565b60405161022e91906118b6565b60405180910390f35b61023f610616565b005b61025b6004803603810190610256919061160f565b6106db565b60405161026891906118b6565b60405180910390f35b61028b6004803603810190610286919061150f565b6106f7565b6040516102989190611ab3565b60405180910390f35b6102a9610709565b005b6102c560048036038101906102c091906115cf565b610791565b6040516102d291906118b6565b60405180910390f35b6102e36107b9565b6040516102f0919061189b565b60405180910390f35b6103016107e3565b60405161030e91906118d1565b60405180910390f35b610331600480360381019061032c91906115cf565b610875565b60405161033e91906118b6565b60405180910390f35b610361600480360381019061035c91906115cf565b6108ec565b60405161036e91906118b6565b60405180910390f35b610391600480360381019061038c919061150f565b610900565b60405161039e9190611ab3565b60405180910390f35b6103af610948565b6040516103bc9190611ab3565b60405180910390f35b6103df60048036038101906103da919061153c565b61094e565b6040516103ec9190611ab3565b60405180910390f35b61040f600480360381019061040a919061150f565b6109d5565b005b60606003805461042090611c17565b80601f016020809104026020016040519081016040528092919081815260200182805461044c90611c17565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b6000806104ae610acd565b90506104bb818585610ad5565b600191505092915050565b6000600254905090565b60006104dd848484610ca0565b90509392505050565b6104ee610ccf565b6104f6610acd565b73ffffffffffffffffffffffffffffffffffffffff166105146107b9565b73ffffffffffffffffffffffffffffffffffffffff161461056a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610561906119d3565b60405180910390fd5b6105726104c6565b60085461057f9190611b5b565b8111156105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b8906119b3565b60405180910390fd5b6105cb3382610d1f565b6105d3610da9565b50565b60006012905090565b6000806105ea610acd565b905061060b8185856105fc858961094e565b6106069190611b05565b610ad5565b600191505092915050565b61061e610acd565b73ffffffffffffffffffffffffffffffffffffffff1661063c6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610689906119d3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156106d8573d6000803e3d6000fd5b50565b60006106ee6106e8610acd565b83610db3565b60019050919050565b600061070282610900565b9050919050565b610711610acd565b73ffffffffffffffffffffffffffffffffffffffff1661072f6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906119d3565b60405180910390fd5b61078f6000610f8a565b565b60006107a58361079f610acd565b84611050565b6107af8383610db3565b6001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107f290611c17565b80601f016020809104026020016040519081016040528092919081815260200182805461081e90611c17565b801561086b5780601f106108405761010080835404028352916020019161086b565b820191906000526020600020905b81548152906001019060200180831161084e57829003601f168201915b5050505050905090565b600080610880610acd565b9050600061088e828661094e565b9050838110156108d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ca90611a73565b60405180910390fd5b6108e08286868403610ad5565b60019250505092915050565b60006108f883836110dc565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109dd610acd565b73ffffffffffffffffffffffffffffffffffffffff166109fb6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a48906119d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab890611933565b60405180910390fd5b610aca81610f8a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90611a33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90611953565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c939190611ab3565b60405180910390a3505050565b600080610cab610acd565b9050610cb8858285611050565b610cc38585856110fa565b60019150509392505050565b60026007541415610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90611a53565b60405180910390fd5b6002600781905550565b610d27610acd565b73ffffffffffffffffffffffffffffffffffffffff16610d456107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906119d3565b60405180910390fd5b610da5828261137b565b5050565b6001600781905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a906119f3565b60405180910390fd5b610e2f826000836114db565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90611913565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610f0c9190611b5b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f719190611ab3565b60405180910390a3610f85836000846114e0565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061105c848461094e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d657818110156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90611973565b60405180910390fd5b6110d58484848403610ad5565b5b50505050565b60006110f06110e9610acd565b84846110fa565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190611a13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d1906118f3565b60405180910390fd5b6111e58383836114db565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126290611993565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112fe9190611b05565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113629190611ab3565b60405180910390a36113758484846114e0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290611a93565b60405180910390fd5b6113f7600083836114db565b80600260008282546114099190611b05565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461145e9190611b05565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c39190611ab3565b60405180910390a36114d7600083836114e0565b5050565b505050565b505050565b6000813590506114f481612051565b92915050565b60008135905061150981612068565b92915050565b60006020828403121561152557611524611ca7565b5b6000611533848285016114e5565b91505092915050565b6000806040838503121561155357611552611ca7565b5b6000611561858286016114e5565b9250506020611572858286016114e5565b9150509250929050565b60008060006060848603121561159557611594611ca7565b5b60006115a3868287016114e5565b93505060206115b4868287016114e5565b92505060406115c5868287016114fa565b9150509250925092565b600080604083850312156115e6576115e5611ca7565b5b60006115f4858286016114e5565b9250506020611605858286016114fa565b9150509250929050565b60006020828403121561162557611624611ca7565b5b6000611633848285016114fa565b91505092915050565b61164581611b8f565b82525050565b61165481611ba1565b82525050565b600061166582611ae9565b61166f8185611af4565b935061167f818560208601611be4565b61168881611cac565b840191505092915050565b60006116a0602383611af4565b91506116ab82611cbd565b604082019050919050565b60006116c3602283611af4565b91506116ce82611d0c565b604082019050919050565b60006116e6602683611af4565b91506116f182611d5b565b604082019050919050565b6000611709602283611af4565b915061171482611daa565b604082019050919050565b600061172c601d83611af4565b915061173782611df9565b602082019050919050565b600061174f602683611af4565b915061175a82611e22565b604082019050919050565b6000611772601a83611af4565b915061177d82611e71565b602082019050919050565b6000611795602083611af4565b91506117a082611e9a565b602082019050919050565b60006117b8602183611af4565b91506117c382611ec3565b604082019050919050565b60006117db602583611af4565b91506117e682611f12565b604082019050919050565b60006117fe602483611af4565b915061180982611f61565b604082019050919050565b6000611821601f83611af4565b915061182c82611fb0565b602082019050919050565b6000611844602583611af4565b915061184f82611fd9565b604082019050919050565b6000611867601f83611af4565b915061187282612028565b602082019050919050565b61188681611bcd565b82525050565b61189581611bd7565b82525050565b60006020820190506118b0600083018461163c565b92915050565b60006020820190506118cb600083018461164b565b92915050565b600060208201905081810360008301526118eb818461165a565b905092915050565b6000602082019050818103600083015261190c81611693565b9050919050565b6000602082019050818103600083015261192c816116b6565b9050919050565b6000602082019050818103600083015261194c816116d9565b9050919050565b6000602082019050818103600083015261196c816116fc565b9050919050565b6000602082019050818103600083015261198c8161171f565b9050919050565b600060208201905081810360008301526119ac81611742565b9050919050565b600060208201905081810360008301526119cc81611765565b9050919050565b600060208201905081810360008301526119ec81611788565b9050919050565b60006020820190508181036000830152611a0c816117ab565b9050919050565b60006020820190508181036000830152611a2c816117ce565b9050919050565b60006020820190508181036000830152611a4c816117f1565b9050919050565b60006020820190508181036000830152611a6c81611814565b9050919050565b60006020820190508181036000830152611a8c81611837565b9050919050565b60006020820190508181036000830152611aac8161185a565b9050919050565b6000602082019050611ac8600083018461187d565b92915050565b6000602082019050611ae3600083018461188c565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1082611bcd565b9150611b1b83611bcd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5057611b4f611c49565b5b828201905092915050565b6000611b6682611bcd565b9150611b7183611bcd565b925082821015611b8457611b83611c49565b5b828203905092915050565b6000611b9a82611bad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c02578082015181840152602081019050611be7565b83811115611c11576000848401525b50505050565b60006002820490506001821680611c2f57607f821691505b60208210811415611c4357611c42611c78565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e742065786365656473206d617820737570706c7921000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61205a81611b8f565b811461206557600080fd5b50565b61207181611bcd565b811461207c57600080fd5b5056fea26469706673582212200049e211ace4b506bdd5dfd9e6ec17550267765a12a1d88393c07d3d5070ee0164736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610347578063cca3e83214610377578063d5abeb01146103a7578063dd62ed3e146103c5578063f2fde38b146103f55761012c565b8063715018a6146102a157806379cc6790146102ab5780638da5cb5b146102db57806395d89b41146102f9578063a457c2d7146103175761012c565b8063313ce567116100f4578063313ce567146101e957806339509351146102075780633ccfd60b1461023757806342966c681461024157806370a08231146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d5780632c526196146101cd575b600080fd5b610139610411565b60405161014691906118d1565b60405180910390f35b610169600480360381019061016491906115cf565b6104a3565b60405161017691906118b6565b60405180910390f35b6101876104c6565b6040516101949190611ab3565b60405180910390f35b6101b760048036038101906101b2919061157c565b6104d0565b6040516101c491906118b6565b60405180910390f35b6101e760048036038101906101e2919061160f565b6104e6565b005b6101f16105d6565b6040516101fe9190611ace565b60405180910390f35b610221600480360381019061021c91906115cf565b6105df565b60405161022e91906118b6565b60405180910390f35b61023f610616565b005b61025b6004803603810190610256919061160f565b6106db565b60405161026891906118b6565b60405180910390f35b61028b6004803603810190610286919061150f565b6106f7565b6040516102989190611ab3565b60405180910390f35b6102a9610709565b005b6102c560048036038101906102c091906115cf565b610791565b6040516102d291906118b6565b60405180910390f35b6102e36107b9565b6040516102f0919061189b565b60405180910390f35b6103016107e3565b60405161030e91906118d1565b60405180910390f35b610331600480360381019061032c91906115cf565b610875565b60405161033e91906118b6565b60405180910390f35b610361600480360381019061035c91906115cf565b6108ec565b60405161036e91906118b6565b60405180910390f35b610391600480360381019061038c919061150f565b610900565b60405161039e9190611ab3565b60405180910390f35b6103af610948565b6040516103bc9190611ab3565b60405180910390f35b6103df60048036038101906103da919061153c565b61094e565b6040516103ec9190611ab3565b60405180910390f35b61040f600480360381019061040a919061150f565b6109d5565b005b60606003805461042090611c17565b80601f016020809104026020016040519081016040528092919081815260200182805461044c90611c17565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b6000806104ae610acd565b90506104bb818585610ad5565b600191505092915050565b6000600254905090565b60006104dd848484610ca0565b90509392505050565b6104ee610ccf565b6104f6610acd565b73ffffffffffffffffffffffffffffffffffffffff166105146107b9565b73ffffffffffffffffffffffffffffffffffffffff161461056a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610561906119d3565b60405180910390fd5b6105726104c6565b60085461057f9190611b5b565b8111156105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b8906119b3565b60405180910390fd5b6105cb3382610d1f565b6105d3610da9565b50565b60006012905090565b6000806105ea610acd565b905061060b8185856105fc858961094e565b6106069190611b05565b610ad5565b600191505092915050565b61061e610acd565b73ffffffffffffffffffffffffffffffffffffffff1661063c6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610689906119d3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156106d8573d6000803e3d6000fd5b50565b60006106ee6106e8610acd565b83610db3565b60019050919050565b600061070282610900565b9050919050565b610711610acd565b73ffffffffffffffffffffffffffffffffffffffff1661072f6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906119d3565b60405180910390fd5b61078f6000610f8a565b565b60006107a58361079f610acd565b84611050565b6107af8383610db3565b6001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107f290611c17565b80601f016020809104026020016040519081016040528092919081815260200182805461081e90611c17565b801561086b5780601f106108405761010080835404028352916020019161086b565b820191906000526020600020905b81548152906001019060200180831161084e57829003601f168201915b5050505050905090565b600080610880610acd565b9050600061088e828661094e565b9050838110156108d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ca90611a73565b60405180910390fd5b6108e08286868403610ad5565b60019250505092915050565b60006108f883836110dc565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109dd610acd565b73ffffffffffffffffffffffffffffffffffffffff166109fb6107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a48906119d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab890611933565b60405180910390fd5b610aca81610f8a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c90611a33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90611953565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c939190611ab3565b60405180910390a3505050565b600080610cab610acd565b9050610cb8858285611050565b610cc38585856110fa565b60019150509392505050565b60026007541415610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c90611a53565b60405180910390fd5b6002600781905550565b610d27610acd565b73ffffffffffffffffffffffffffffffffffffffff16610d456107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906119d3565b60405180910390fd5b610da5828261137b565b5050565b6001600781905550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a906119f3565b60405180910390fd5b610e2f826000836114db565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90611913565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610f0c9190611b5b565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f719190611ab3565b60405180910390a3610f85836000846114e0565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061105c848461094e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d657818110156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90611973565b60405180910390fd5b6110d58484848403610ad5565b5b50505050565b60006110f06110e9610acd565b84846110fa565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190611a13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d1906118f3565b60405180910390fd5b6111e58383836114db565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126290611993565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112fe9190611b05565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113629190611ab3565b60405180910390a36113758484846114e0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290611a93565b60405180910390fd5b6113f7600083836114db565b80600260008282546114099190611b05565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461145e9190611b05565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c39190611ab3565b60405180910390a36114d7600083836114e0565b5050565b505050565b505050565b6000813590506114f481612051565b92915050565b60008135905061150981612068565b92915050565b60006020828403121561152557611524611ca7565b5b6000611533848285016114e5565b91505092915050565b6000806040838503121561155357611552611ca7565b5b6000611561858286016114e5565b9250506020611572858286016114e5565b9150509250929050565b60008060006060848603121561159557611594611ca7565b5b60006115a3868287016114e5565b93505060206115b4868287016114e5565b92505060406115c5868287016114fa565b9150509250925092565b600080604083850312156115e6576115e5611ca7565b5b60006115f4858286016114e5565b9250506020611605858286016114fa565b9150509250929050565b60006020828403121561162557611624611ca7565b5b6000611633848285016114fa565b91505092915050565b61164581611b8f565b82525050565b61165481611ba1565b82525050565b600061166582611ae9565b61166f8185611af4565b935061167f818560208601611be4565b61168881611cac565b840191505092915050565b60006116a0602383611af4565b91506116ab82611cbd565b604082019050919050565b60006116c3602283611af4565b91506116ce82611d0c565b604082019050919050565b60006116e6602683611af4565b91506116f182611d5b565b604082019050919050565b6000611709602283611af4565b915061171482611daa565b604082019050919050565b600061172c601d83611af4565b915061173782611df9565b602082019050919050565b600061174f602683611af4565b915061175a82611e22565b604082019050919050565b6000611772601a83611af4565b915061177d82611e71565b602082019050919050565b6000611795602083611af4565b91506117a082611e9a565b602082019050919050565b60006117b8602183611af4565b91506117c382611ec3565b604082019050919050565b60006117db602583611af4565b91506117e682611f12565b604082019050919050565b60006117fe602483611af4565b915061180982611f61565b604082019050919050565b6000611821601f83611af4565b915061182c82611fb0565b602082019050919050565b6000611844602583611af4565b915061184f82611fd9565b604082019050919050565b6000611867601f83611af4565b915061187282612028565b602082019050919050565b61188681611bcd565b82525050565b61189581611bd7565b82525050565b60006020820190506118b0600083018461163c565b92915050565b60006020820190506118cb600083018461164b565b92915050565b600060208201905081810360008301526118eb818461165a565b905092915050565b6000602082019050818103600083015261190c81611693565b9050919050565b6000602082019050818103600083015261192c816116b6565b9050919050565b6000602082019050818103600083015261194c816116d9565b9050919050565b6000602082019050818103600083015261196c816116fc565b9050919050565b6000602082019050818103600083015261198c8161171f565b9050919050565b600060208201905081810360008301526119ac81611742565b9050919050565b600060208201905081810360008301526119cc81611765565b9050919050565b600060208201905081810360008301526119ec81611788565b9050919050565b60006020820190508181036000830152611a0c816117ab565b9050919050565b60006020820190508181036000830152611a2c816117ce565b9050919050565b60006020820190508181036000830152611a4c816117f1565b9050919050565b60006020820190508181036000830152611a6c81611814565b9050919050565b60006020820190508181036000830152611a8c81611837565b9050919050565b60006020820190508181036000830152611aac8161185a565b9050919050565b6000602082019050611ac8600083018461187d565b92915050565b6000602082019050611ae3600083018461188c565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1082611bcd565b9150611b1b83611bcd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5057611b4f611c49565b5b828201905092915050565b6000611b6682611bcd565b9150611b7183611bcd565b925082821015611b8457611b83611c49565b5b828203905092915050565b6000611b9a82611bad565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c02578082015181840152602081019050611be7565b83811115611c11576000848401525b50505050565b60006002820490506001821680611c2f57607f821691505b60208210811415611c4357611c42611c78565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e742065786365656473206d617820737570706c7921000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61205a81611b8f565b811461206557600080fd5b50565b61207181611bcd565b811461207c57600080fd5b5056fea26469706673582212200049e211ace4b506bdd5dfd9e6ec17550267765a12a1d88393c07d3d5070ee0164736f6c63430008070033
Deployed Bytecode Sourcemap
20152:1169:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12426:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13658:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12747:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19188:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20607:501;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12646:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14195:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21171:147;;;:::i;:::-;;18657:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17965:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10208:103;;;:::i;:::-;;18985:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9985:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12534:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14466:498;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19400:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13121:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20206:72;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13474:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10319:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12426:100;12480:13;12513:5;12506:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12426:100;:::o;13658:226::-;13766:4;13783:13;13799:12;:10;:12::i;:::-;13783:28;;13822:32;13831:5;13838:7;13847:6;13822:8;:32::i;:::-;13872:4;13865:11;;;13658:226;;;;:::o;12747:108::-;12808:7;12835:12;;12828:19;;12747:108;:::o;19188:204::-;19319:4;19353:31;19367:4;19373:2;19377:6;19353:13;:31::i;:::-;19346:38;;19188:204;;;;;:::o;20607:501::-;1695:21;:19;:21::i;:::-;10131:12:::1;:10;:12::i;:::-;10120:23;;:7;:5;:7::i;:::-;:23;;;10112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20943:13:::2;:11;:13::i;:::-;20931:9;;:25;;;;:::i;:::-;20920:6;:37;;20898:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;21024:24;21029:10;21041:6;21024:4;:24::i;:::-;1739:20:::0;:18;:20::i;:::-;20607:501;:::o;12646:93::-;12704:5;12729:2;12722:9;;12646:93;:::o;14195:263::-;14308:4;14325:13;14341:12;:10;:12::i;:::-;14325:28;;14364:64;14373:5;14380:7;14417:10;14389:25;14399:5;14406:7;14389:9;:25::i;:::-;:38;;;;:::i;:::-;14364:8;:64::i;:::-;14446:4;14439:11;;;14195:263;;;;:::o;21171:147::-;10131:12;:10;:12::i;:::-;10120:23;;:7;:5;:7::i;:::-;:23;;;10112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21227:10:::1;21219:28;;:51;21248:21;21219:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21171:147::o:0;18657:120::-;18703:4;18720:27;18726:12;:10;:12::i;:::-;18740:6;18720:5;:27::i;:::-;18765:4;18758:11;;18657:120;;;:::o;17965:144::-;18055:7;18082:19;18093:7;18082:10;:19::i;:::-;18075:26;;17965:144;;;:::o;10208:103::-;10131:12;:10;:12::i;:::-;10120:23;;:7;:5;:7::i;:::-;:23;;;10112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10273:30:::1;10300:1;10273:18;:30::i;:::-;10208:103::o:0;18985:193::-;19052:4;19069:46;19085:7;19094:12;:10;:12::i;:::-;19108:6;19069:15;:46::i;:::-;19126:22;19132:7;19141:6;19126:5;:22::i;:::-;19166:4;19159:11;;18985:193;;;;:::o;9985:87::-;10031:7;10058:6;;;;;;;;;;;10051:13;;9985:87;:::o;12534:104::-;12590:13;12623:7;12616:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12534:104;:::o;14466:498::-;14584:4;14601:13;14617:12;:10;:12::i;:::-;14601:28;;14640:24;14667:25;14677:5;14684:7;14667:9;:25::i;:::-;14640:52;;14745:15;14725:16;:35;;14703:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;14861:60;14870:5;14877:7;14905:15;14886:16;:34;14861:8;:60::i;:::-;14952:4;14945:11;;;;14466:498;;;;:::o;19400:158::-;19505:4;19529:21;19539:2;19543:6;19529:9;:21::i;:::-;19522:28;;19400:158;;;;:::o;13121:119::-;13187:7;13214:9;:18;13224:7;13214:18;;;;;;;;;;;;;;;;13207:25;;13121:119;;;:::o;20206:72::-;;;;:::o;13474:176::-;13588:7;13615:11;:18;13627:5;13615:18;;;;;;;;;;;;;;;:27;13634:7;13615:27;;;;;;;;;;;;;;;;13608:34;;13474:176;;;;:::o;10319:238::-;10131:12;:10;:12::i;:::-;10120:23;;:7;:5;:7::i;:::-;:23;;;10112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:1:::1;10422:22;;:8;:22;;;;10400:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10521:28;10540:8;10521:18;:28::i;:::-;10319:238:::0;:::o;9506:98::-;9559:7;9586:10;9579:17;;9506:98;:::o;16694:380::-;16847:1;16830:19;;:5;:19;;;;16822:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16928:1;16909:21;;:7;:21;;;;16901:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17012:6;16982:11;:18;16994:5;16982:18;;;;;;;;;;;;;;;:27;17001:7;16982:27;;;;;;;;;;;;;;;:36;;;;17050:7;17034:32;;17043:5;17034:32;;;17059:6;17034:32;;;;;;:::i;:::-;;;;;;;;16694:380;;;:::o;19864:281::-;19981:4;19998:15;20016:12;:10;:12::i;:::-;19998:30;;20039:38;20055:4;20061:7;20070:6;20039:15;:38::i;:::-;20088:27;20098:4;20104:2;20108:6;20088:9;:27::i;:::-;20133:4;20126:11;;;19864:281;;;;;:::o;1775:293::-;1177:1;1909:7;;:19;;1901:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1177:1;2042:7;:18;;;;1775:293::o;18284:115::-;10131:12;:10;:12::i;:::-;10120:23;;:7;:5;:7::i;:::-;:23;;;10112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18369:22:::1;18375:7;18384:6;18369:5;:22::i;:::-;18284:115:::0;;:::o;2076:213::-;1133:1;2259:7;:22;;;;2076:213::o;16095:591::-;16198:1;16179:21;;:7;:21;;;;16171:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16251:49;16272:7;16289:1;16293:6;16251:20;:49::i;:::-;16313:22;16338:9;:18;16348:7;16338:18;;;;;;;;;;;;;;;;16313:43;;16393:6;16375:14;:24;;16367:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16512:6;16495:14;:23;16474:9;:18;16484:7;16474:18;;;;;;;;;;;;;;;:44;;;;16556:6;16540:12;;:22;;;;;;;:::i;:::-;;;;;;;;16606:1;16580:37;;16589:7;16580:37;;;16610:6;16580:37;;;;;;:::i;:::-;;;;;;;;16630:48;16650:7;16667:1;16671:6;16630:19;:48::i;:::-;16160:526;16095:591;;:::o;10565:191::-;10639:16;10658:6;;;;;;;;;;;10639:25;;10684:8;10675:6;;:17;;;;;;;;;;;;;;;;;;10739:8;10708:40;;10729:8;10708:40;;;;;;;;;;;;10628:128;10565:191;:::o;17082:502::-;17217:24;17244:25;17254:5;17261:7;17244:9;:25::i;:::-;17217:52;;17304:17;17284:16;:37;17280:297;;17384:6;17364:16;:26;;17338:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;17499:51;17508:5;17515:7;17543:6;17524:16;:25;17499:8;:51::i;:::-;17280:297;17206:378;17082:502;;;:::o;19709:147::-;19774:4;19791:35;19801:12;:10;:12::i;:::-;19815:2;19819:6;19791:9;:35::i;:::-;19844:4;19837:11;;19709:147;;;;:::o;14972:708::-;15119:1;15103:18;;:4;:18;;;;15095:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15196:1;15182:16;;:2;:16;;;;15174:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15251:38;15272:4;15278:2;15282:6;15251:20;:38::i;:::-;15302:19;15324:9;:15;15334:4;15324:15;;;;;;;;;;;;;;;;15302:37;;15387:6;15372:11;:21;;15350:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;15527:6;15513:11;:20;15495:9;:15;15505:4;15495:15;;;;;;;;;;;;;;;:38;;;;15572:6;15555:9;:13;15565:2;15555:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15611:2;15596:26;;15605:4;15596:26;;;15615:6;15596:26;;;;;;:::i;:::-;;;;;;;;15635:37;15655:4;15661:2;15665:6;15635:19;:37::i;:::-;15084:596;14972:708;;;:::o;15688:399::-;15791:1;15772:21;;:7;:21;;;;15764:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15842:49;15871:1;15875:7;15884:6;15842:20;:49::i;:::-;15920:6;15904:12;;:22;;;;;;;:::i;:::-;;;;;;;;15959:6;15937:9;:18;15947:7;15937:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;16002:7;15981:37;;15998:1;15981:37;;;16011:6;15981:37;;;;;;:::i;:::-;;;;;;;;16031:48;16059:1;16063:7;16072:6;16031:19;:48::i;:::-;15688:399;;:::o;17592:125::-;;;;:::o;17725:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:329::-;2276:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:119;;;2331:79;;:::i;:::-;2293:119;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2217:329;;;;:::o;2552:118::-;2639:24;2657:5;2639:24;:::i;:::-;2634:3;2627:37;2552:118;;:::o;2676:109::-;2757:21;2772:5;2757:21;:::i;:::-;2752:3;2745:34;2676:109;;:::o;2791:364::-;2879:3;2907:39;2940:5;2907:39;:::i;:::-;2962:71;3026:6;3021:3;2962:71;:::i;:::-;2955:78;;3042:52;3087:6;3082:3;3075:4;3068:5;3064:16;3042:52;:::i;:::-;3119:29;3141:6;3119:29;:::i;:::-;3114:3;3110:39;3103:46;;2883:272;2791:364;;;;:::o;3161:366::-;3303:3;3324:67;3388:2;3383:3;3324:67;:::i;:::-;3317:74;;3400:93;3489:3;3400:93;:::i;:::-;3518:2;3513:3;3509:12;3502:19;;3161:366;;;:::o;3533:::-;3675:3;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3772:93;3861:3;3772:93;:::i;:::-;3890:2;3885:3;3881:12;3874:19;;3533:366;;;:::o;3905:::-;4047:3;4068:67;4132:2;4127:3;4068:67;:::i;:::-;4061:74;;4144:93;4233:3;4144:93;:::i;:::-;4262:2;4257:3;4253:12;4246:19;;3905:366;;;:::o;4277:::-;4419:3;4440:67;4504:2;4499:3;4440:67;:::i;:::-;4433:74;;4516:93;4605:3;4516:93;:::i;:::-;4634:2;4629:3;4625:12;4618:19;;4277:366;;;:::o;4649:::-;4791:3;4812:67;4876:2;4871:3;4812:67;:::i;:::-;4805:74;;4888:93;4977:3;4888:93;:::i;:::-;5006:2;5001:3;4997:12;4990:19;;4649:366;;;:::o;5021:::-;5163:3;5184:67;5248:2;5243:3;5184:67;:::i;:::-;5177:74;;5260:93;5349:3;5260:93;:::i;:::-;5378:2;5373:3;5369:12;5362:19;;5021:366;;;:::o;5393:::-;5535:3;5556:67;5620:2;5615:3;5556:67;:::i;:::-;5549:74;;5632:93;5721:3;5632:93;:::i;:::-;5750:2;5745:3;5741:12;5734:19;;5393:366;;;:::o;5765:::-;5907:3;5928:67;5992:2;5987:3;5928:67;:::i;:::-;5921:74;;6004:93;6093:3;6004:93;:::i;:::-;6122:2;6117:3;6113:12;6106:19;;5765:366;;;:::o;6137:::-;6279:3;6300:67;6364:2;6359:3;6300:67;:::i;:::-;6293:74;;6376:93;6465:3;6376:93;:::i;:::-;6494:2;6489:3;6485:12;6478:19;;6137:366;;;:::o;6509:::-;6651:3;6672:67;6736:2;6731:3;6672:67;:::i;:::-;6665:74;;6748:93;6837:3;6748:93;:::i;:::-;6866:2;6861:3;6857:12;6850:19;;6509:366;;;:::o;6881:::-;7023:3;7044:67;7108:2;7103:3;7044:67;:::i;:::-;7037:74;;7120:93;7209:3;7120:93;:::i;:::-;7238:2;7233:3;7229:12;7222:19;;6881:366;;;:::o;7253:::-;7395:3;7416:67;7480:2;7475:3;7416:67;:::i;:::-;7409:74;;7492:93;7581:3;7492:93;:::i;:::-;7610:2;7605:3;7601:12;7594:19;;7253:366;;;:::o;7625:::-;7767:3;7788:67;7852:2;7847:3;7788:67;:::i;:::-;7781:74;;7864:93;7953:3;7864:93;:::i;:::-;7982:2;7977:3;7973:12;7966:19;;7625:366;;;:::o;7997:::-;8139:3;8160:67;8224:2;8219:3;8160:67;:::i;:::-;8153:74;;8236:93;8325:3;8236:93;:::i;:::-;8354:2;8349:3;8345:12;8338:19;;7997:366;;;:::o;8369:118::-;8456:24;8474:5;8456:24;:::i;:::-;8451:3;8444:37;8369:118;;:::o;8493:112::-;8576:22;8592:5;8576:22;:::i;:::-;8571:3;8564:35;8493:112;;:::o;8611:222::-;8704:4;8742:2;8731:9;8727:18;8719:26;;8755:71;8823:1;8812:9;8808:17;8799:6;8755:71;:::i;:::-;8611:222;;;;:::o;8839:210::-;8926:4;8964:2;8953:9;8949:18;8941:26;;8977:65;9039:1;9028:9;9024:17;9015:6;8977:65;:::i;:::-;8839:210;;;;:::o;9055:313::-;9168:4;9206:2;9195:9;9191:18;9183:26;;9255:9;9249:4;9245:20;9241:1;9230:9;9226:17;9219:47;9283:78;9356:4;9347:6;9283:78;:::i;:::-;9275:86;;9055:313;;;;:::o;9374:419::-;9540:4;9578:2;9567:9;9563:18;9555:26;;9627:9;9621:4;9617:20;9613:1;9602:9;9598:17;9591:47;9655:131;9781:4;9655:131;:::i;:::-;9647:139;;9374:419;;;:::o;9799:::-;9965:4;10003:2;9992:9;9988:18;9980:26;;10052:9;10046:4;10042:20;10038:1;10027:9;10023:17;10016:47;10080:131;10206:4;10080:131;:::i;:::-;10072:139;;9799:419;;;:::o;10224:::-;10390:4;10428:2;10417:9;10413:18;10405:26;;10477:9;10471:4;10467:20;10463:1;10452:9;10448:17;10441:47;10505:131;10631:4;10505:131;:::i;:::-;10497:139;;10224:419;;;:::o;10649:::-;10815:4;10853:2;10842:9;10838:18;10830:26;;10902:9;10896:4;10892:20;10888:1;10877:9;10873:17;10866:47;10930:131;11056:4;10930:131;:::i;:::-;10922:139;;10649:419;;;:::o;11074:::-;11240:4;11278:2;11267:9;11263:18;11255:26;;11327:9;11321:4;11317:20;11313:1;11302:9;11298:17;11291:47;11355:131;11481:4;11355:131;:::i;:::-;11347:139;;11074:419;;;:::o;11499:::-;11665:4;11703:2;11692:9;11688:18;11680:26;;11752:9;11746:4;11742:20;11738:1;11727:9;11723:17;11716:47;11780:131;11906:4;11780:131;:::i;:::-;11772:139;;11499:419;;;:::o;11924:::-;12090:4;12128:2;12117:9;12113:18;12105:26;;12177:9;12171:4;12167:20;12163:1;12152:9;12148:17;12141:47;12205:131;12331:4;12205:131;:::i;:::-;12197:139;;11924:419;;;:::o;12349:::-;12515:4;12553:2;12542:9;12538:18;12530:26;;12602:9;12596:4;12592:20;12588:1;12577:9;12573:17;12566:47;12630:131;12756:4;12630:131;:::i;:::-;12622:139;;12349:419;;;:::o;12774:::-;12940:4;12978:2;12967:9;12963:18;12955:26;;13027:9;13021:4;13017:20;13013:1;13002:9;12998:17;12991:47;13055:131;13181:4;13055:131;:::i;:::-;13047:139;;12774:419;;;:::o;13199:::-;13365:4;13403:2;13392:9;13388:18;13380:26;;13452:9;13446:4;13442:20;13438:1;13427:9;13423:17;13416:47;13480:131;13606:4;13480:131;:::i;:::-;13472:139;;13199:419;;;:::o;13624:::-;13790:4;13828:2;13817:9;13813:18;13805:26;;13877:9;13871:4;13867:20;13863:1;13852:9;13848:17;13841:47;13905:131;14031:4;13905:131;:::i;:::-;13897:139;;13624:419;;;:::o;14049:::-;14215:4;14253:2;14242:9;14238:18;14230:26;;14302:9;14296:4;14292:20;14288:1;14277:9;14273:17;14266:47;14330:131;14456:4;14330:131;:::i;:::-;14322:139;;14049:419;;;:::o;14474:::-;14640:4;14678:2;14667:9;14663:18;14655:26;;14727:9;14721:4;14717:20;14713:1;14702:9;14698:17;14691:47;14755:131;14881:4;14755:131;:::i;:::-;14747:139;;14474:419;;;:::o;14899:::-;15065:4;15103:2;15092:9;15088:18;15080:26;;15152:9;15146:4;15142:20;15138:1;15127:9;15123:17;15116:47;15180:131;15306:4;15180:131;:::i;:::-;15172:139;;14899:419;;;:::o;15324:222::-;15417:4;15455:2;15444:9;15440:18;15432:26;;15468:71;15536:1;15525:9;15521:17;15512:6;15468:71;:::i;:::-;15324:222;;;;:::o;15552:214::-;15641:4;15679:2;15668:9;15664:18;15656:26;;15692:67;15756:1;15745:9;15741:17;15732:6;15692:67;:::i;:::-;15552:214;;;;:::o;15853:99::-;15905:6;15939:5;15933:12;15923:22;;15853:99;;;:::o;15958:169::-;16042:11;16076:6;16071:3;16064:19;16116:4;16111:3;16107:14;16092:29;;15958:169;;;;:::o;16133:305::-;16173:3;16192:20;16210:1;16192:20;:::i;:::-;16187:25;;16226:20;16244:1;16226:20;:::i;:::-;16221:25;;16380:1;16312:66;16308:74;16305:1;16302:81;16299:107;;;16386:18;;:::i;:::-;16299:107;16430:1;16427;16423:9;16416:16;;16133:305;;;;:::o;16444:191::-;16484:4;16504:20;16522:1;16504:20;:::i;:::-;16499:25;;16538:20;16556:1;16538:20;:::i;:::-;16533:25;;16577:1;16574;16571:8;16568:34;;;16582:18;;:::i;:::-;16568:34;16627:1;16624;16620:9;16612:17;;16444:191;;;;:::o;16641:96::-;16678:7;16707:24;16725:5;16707:24;:::i;:::-;16696:35;;16641:96;;;:::o;16743:90::-;16777:7;16820:5;16813:13;16806:21;16795:32;;16743:90;;;:::o;16839:126::-;16876:7;16916:42;16909:5;16905:54;16894:65;;16839:126;;;:::o;16971:77::-;17008:7;17037:5;17026:16;;16971:77;;;:::o;17054:86::-;17089:7;17129:4;17122:5;17118:16;17107:27;;17054:86;;;:::o;17146:307::-;17214:1;17224:113;17238:6;17235:1;17232:13;17224:113;;;17323:1;17318:3;17314:11;17308:18;17304:1;17299:3;17295:11;17288:39;17260:2;17257:1;17253:10;17248:15;;17224:113;;;17355:6;17352:1;17349:13;17346:101;;;17435:1;17426:6;17421:3;17417:16;17410:27;17346:101;17195:258;17146:307;;;:::o;17459:320::-;17503:6;17540:1;17534:4;17530:12;17520:22;;17587:1;17581:4;17577:12;17608:18;17598:81;;17664:4;17656:6;17652:17;17642:27;;17598:81;17726:2;17718:6;17715:14;17695:18;17692:38;17689:84;;;17745:18;;:::i;:::-;17689:84;17510:269;17459:320;;;:::o;17785:180::-;17833:77;17830:1;17823:88;17930:4;17927:1;17920:15;17954:4;17951:1;17944:15;17971:180;18019:77;18016:1;18009:88;18116:4;18113:1;18106:15;18140:4;18137:1;18130:15;18280:117;18389:1;18386;18379:12;18403:102;18444:6;18495:2;18491:7;18486:2;18479:5;18475:14;18471:28;18461:38;;18403:102;;;:::o;18511:222::-;18651:34;18647:1;18639:6;18635:14;18628:58;18720:5;18715:2;18707:6;18703:15;18696:30;18511:222;:::o;18739:221::-;18879:34;18875:1;18867:6;18863:14;18856:58;18948:4;18943:2;18935:6;18931:15;18924:29;18739:221;:::o;18966:225::-;19106:34;19102:1;19094:6;19090:14;19083:58;19175:8;19170:2;19162:6;19158:15;19151:33;18966:225;:::o;19197:221::-;19337:34;19333:1;19325:6;19321:14;19314:58;19406:4;19401:2;19393:6;19389:15;19382:29;19197:221;:::o;19424:179::-;19564:31;19560:1;19552:6;19548:14;19541:55;19424:179;:::o;19609:225::-;19749:34;19745:1;19737:6;19733:14;19726:58;19818:8;19813:2;19805:6;19801:15;19794:33;19609:225;:::o;19840:176::-;19980:28;19976:1;19968:6;19964:14;19957:52;19840:176;:::o;20022:182::-;20162:34;20158:1;20150:6;20146:14;20139:58;20022:182;:::o;20210:220::-;20350:34;20346:1;20338:6;20334:14;20327:58;20419:3;20414:2;20406:6;20402:15;20395:28;20210:220;:::o;20436:224::-;20576:34;20572:1;20564:6;20560:14;20553:58;20645:7;20640:2;20632:6;20628:15;20621:32;20436:224;:::o;20666:223::-;20806:34;20802:1;20794:6;20790:14;20783:58;20875:6;20870:2;20862:6;20858:15;20851:31;20666:223;:::o;20895:181::-;21035:33;21031:1;21023:6;21019:14;21012:57;20895:181;:::o;21082:224::-;21222:34;21218:1;21210:6;21206:14;21199:58;21291:7;21286:2;21278:6;21274:15;21267:32;21082:224;:::o;21312:181::-;21452:33;21448:1;21440:6;21436:14;21429:57;21312:181;:::o;21499:122::-;21572:24;21590:5;21572:24;:::i;:::-;21565:5;21562:35;21552:63;;21611:1;21608;21601:12;21552:63;21499:122;:::o;21627:::-;21700:24;21718:5;21700:24;:::i;:::-;21693:5;21690:35;21680:63;;21739:1;21736;21729:12;21680:63;21627:122;:::o
Swarm Source
ipfs://0049e211ace4b506bdd5dfd9e6ec17550267765a12a1d88393c07d3d5070ee01
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.