ERC-20
Overview
Max Total Supply
6,900,000,000 ACK
Holders
187
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,342,986.27 ACKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Ackchyually
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-12 */ /** Ackchyually.. I know it all baby. Twitter: https://twitter.com/Ackchyuallycoin Telegram: https://t.me/+rFw9YvF2Z-80ODQ5 .^~7????77!~^: .~?JYYY5PBB#&GYJ5GBGY!^. .~??7J?JPG#&#PPYJY5P55JJY5P?!: :7?!: ^JPG5GY~.!PGBGGBBP?JY55YP5J?^ ~J?^ .YJ7^. .^JPP5GPGG5J777?JY5PPPGGP?^ ^J?. ~~ 7@#?~YP!:..^!J5555YJJJJJ5P5?~ 7Y: :Y5!.~Y5: ^PG55JJ?YP55555555J!5P~ ?J J~ :Y7. 7GJJPYYYYJ!~~~~~~~~^^^?J. :P#~ .. :7J7^ 7P!: !5. 5@@@5 ^~. . ~5. B@@@@B7^^ ?Y .#@@@@@@@@G~. .G: ^&@@@@@@@@@@#GY! 5! Y&@@@&GG#&@@@@@@@5^ 5~ :B@@@@5.^PPY@@@@@@@&: 5! :#@@@@@!. :! P@@@@@@@~ .~!~7!~!~ JY55Y55^G! :7G@@@@@@!J5J7 ?@@@@@B????!^:. .5@B##PG5^^^^^^^~~PG55PPBJ~ .:?&@@@@@@@@YJY~ J@@@@G: :~!???7!^?GYJYJJ5G7~~~~~~5P~^!!^?J :^~~~~~~!!7777?5?7Y&&&@@@@@@P~7?: .#@@@#. .:~P5..:^: !P~7777JB:::. .:YJ ??77777!!!~~~~^P? .:::~JYPP^. ~@@@@J !P7!: .:^~B~.. .5J:.:~~~J5 ^^^^^^^^^^^^^^^!G. ^Y55! :7??7??JY! :~~~~^7?7???G!. ^^^^^^^^^^^^^^^^YJ .... 7P~~~~75^ P~ ^^^^^^^^^^^^^^^^~B^ ?Y^! .77! !P. ^^^^^^^^^^^^^^^^^JP :.. : 75 ^^^^^^^^^^^^^^^^^^5J .^7?777???77^. P! ^^^^^^^^^^^^^^^^^^^P? JB@&: J7 .J@#Y. !5 ^^^^^^^^^^^^^^^^^^^~5J 5Y7#~ P? .?#5#~ ^G ^^^^^^^^^^^^^^^^^^^^^Y5: :G~~??7?5J??7:.B^ ^G ^^^^^^^^^^^^^^^^^^^^^^7P~ :5?^.. .^5J 75 ^^^^^^^^^^^^^^^^^^^^^^^~5J. ~7????77??7^ ?5. ^^^^^^^^^^^^^^^^^^^^^^^^^?57 ..... ~Y? ^^^^^^^^^^^^^^^^^^^^^^^^^^~J5~ :. .!J7. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^~JY?~. ^:. :J7:~?YY7: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~7?JJ?!^:. ~7???7!~~^^^^^~7??JJJ????!^~!JJ!. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~7?JJ??7!~~^:..:^~~!7?JY5PPPY7~^^^^^^^^^^^~?Y7. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~!777??J?????????7!~^^^^^^^^^^^^^^^^^^^?5~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!G~ ^^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!P! ^^^^^^P!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~P~ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^ 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } contract Ackchyually is IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromMax; string private constant _name = "ACKCHYUALLY"; string private constant _symbol = "ACK"; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 6900000000 * 10 ** 9; uint256 private constant _maxFee = 5; uint256 private _taxFeeOnBuy = 5; uint256 private _taxFeeOnSell = 5; address payable private constant _devAddy = payable(0x98CF44571B8deF729730EE8659B51281A1d88297); address payable private constant _ackTeam = payable(0xB3dD9aF4CF916a93e9ba8c17DF08AC15f4ADe41d); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; uint256 public _maxTxAmount = 6900000000 * 10 ** 9; uint256 public _maxWalletSize = 6900000000 * 10 ** 9; uint256 public _swapTokensAtAmount = 10000000 * 10 ** 9; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } //Prepare for liftoff constructor() { _balances[_msgSender()] = _totalSupply; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router .factory()) .createPair(address(this),uniswapV2Router.WETH()); _isExcludedFromMax[owner()] = true; _isExcludedFromMax[address(this)] = true; _isExcludedFromMax[_devAddy] = true; _isExcludedFromMax[_ackTeam] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devAddy] = true; _isExcludedFromFee[_ackTeam] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } _transfer(sender, recipient, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount != 0, "Transfer amount must be greater than zero"); if (!_isExcludedFromMax[from] && !_isExcludedFromMax[to]) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount <= _maxWalletSize,"TOKEN: Balance exceeds wallet size!"); } } uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } bool canSwap = contractTokenBalance >= _swapTokensAtAmount && from != owner() && to != owner(); if ( canSwap && !inSwap && from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance != 0) { _ackTeam.transfer(address(this).balance); } } //Transfer Tokens uint256 _taxFee = _getTaxFee(from, to); _tokenTransfer(from, to, amount, _taxFee); } function _getTaxFee( address _from, address _to ) internal view returns(uint256) { uint256 _taxFee; if(_from != uniswapV2Pair && _to != uniswapV2Pair){ _taxFee = 0; } else if(_from == uniswapV2Pair && _to != uniswapV2Pair) { _taxFee = _taxFeeOnBuy; } else if(_to == uniswapV2Pair && _from != uniswapV2Pair) { _taxFee = _taxFeeOnSell; } if(_isExcludedFromFee[_from] || _isExcludedFromFee[_to]) { _taxFee = 0; } return _taxFee; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _tokenTransfer( address sender, address recipient, uint256 amount, uint256 tax ) private { uint256 tTeam = (amount * tax) / 100; uint256 tTransferAmount = amount - tTeam; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; if (tTeam != 0) { _balances[address(this)] = _balances[address(this)] + tTeam; emit Transfer(sender, address(this), tTeam); } emit Transfer(sender, recipient, tTransferAmount); } //Set minimum tokens required to swap. event UpdateMinSwapTokenThreshold(uint256 swapTokensAtAmount); function setMinSwapTokensThreshold( uint256 swapTokensAtAmount ) external onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; emit UpdateMinSwapTokenThreshold(swapTokensAtAmount); } // onlyOwner external event UpdateTaxFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell); function setFee( uint256 taxFeeOnBuy, uint256 taxFeeOnSell ) external onlyOwner { require(taxFeeOnBuy <= _maxFee, "Fee is too high"); require(taxFeeOnSell <= _maxFee, "Fee is too high"); _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; emit UpdateTaxFee(taxFeeOnBuy, taxFeeOnSell); } event UpdatedMaxTxAmount(uint256 _amount); function setMaxTxAmount( uint256 _amount ) external onlyOwner { _maxTxAmount = _amount; emit UpdatedMaxTxAmount(_amount); } event ExcludedFromMax(address indexed account, bool _exclude); function excludeMultipleAccountsFromMax( address[] memory accounts, bool _exclude ) external onlyOwner { for(uint256 i; i < accounts.length; i++) { _isExcludedFromMax[accounts[i]] = _exclude; emit ExcludedFromMax(accounts[i], _exclude); } } event UpdatedMaxWalletSize(uint256 _maxSizeAmount); function setMaxWalletSize( uint256 _maxSizeAmount ) external onlyOwner { _maxWalletSize = _maxSizeAmount; emit UpdatedMaxWalletSize(_maxSizeAmount); } event ExcludedFromFee(address indexed account, bool _exclude); function excludeMultipleAccountsFromFees( address[] calldata accounts, bool excluded ) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; emit ExcludedFromFee(accounts[i], excluded); } } receive() external payable {} }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"_exclude","type":"bool"}],"name":"ExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"_exclude","type":"bool"}],"name":"ExcludedFromMax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"UpdateMinSwapTokenThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"UpdateTaxFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"UpdatedMaxTxAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSizeAmount","type":"uint256"}],"name":"UpdatedMaxWalletSize","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_exclude","type":"bool"}],"name":"excludeMultipleAccountsFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSizeAmount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260058080556006556008805460ff60a01b19169055675fc1b971363200006009819055600a55662386f26fc10000600b5534801562000041575f80fd5b506200004d3362000354565b335f90815260016020908152604091829020675fc1b971363200009055600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa158015620000c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000ef9190620003a3565b6001600160a01b031663c9c653963060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001759190620003a3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001c0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e69190620003a3565b600880546001600160a01b0319166001600160a01b039283161790555f805482168152600460209081526040808320805460ff1990811660019081179092553080865283862080548316841790557fcd9a573251265e3f10f6d0747c4e4148777e7c099a3dc531afa5946f4a84d46c80548316841790557f9c3e0b932a02505ee24a35a6efcd4dfe737be503834dc3a0bf603440c4d525e480548316841790558554909616855260038452828520805482168317905594845281842080548616821790557f7f83c86dc0b6a5ab94c7ca333224da95ac794622ed44a263f986c041548239a6805486168217905573b3dd9af4cf916a93e9ba8c17df08ac15f4ade41d84527f9ef18b6d8ea8d6039f87a15ed2e9c2a6194cd13f00c947f8edf222cfc687f6a98054909516179093559151675fc1b97136320000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003d2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215620003b4575f80fd5b81516001600160a01b0381168114620003cb575f80fd5b9392505050565b6118af80620003e05f395ff3fe60806040526004361061017b575f3560e01c8063715018a6116100d1578063a9059cbb1161007c578063ea1644d511610057578063ea1644d514610489578063ec28438a146104a8578063f2fde38b146104c7575f80fd5b8063a9059cbb14610407578063c492f04614610426578063dd62ed3e14610445575f80fd5b80638f9a55c0116100ac5780638f9a55c01461038e57806395d89b41146103a357806398a5c315146103e8575f80fd5b8063715018a6146103495780637d1db4a51461035d5780638da5cb5b14610372575f80fd5b80632fd689e31161013157806349bd5a5e1161010c57806349bd5a5e146102d757806352f7c988146102f657806370a0823114610315575f80fd5b80632fd689e314610286578063313ce5671461029b57806341c6ee38146102b6575f80fd5b80631694505e116101615780631694505e1461020c57806318160ddd1461024357806323b872dd14610267575f80fd5b806306fdde0314610186578063095ea7b3146101dd575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5060408051808201909152600b81527f41434b43485955414c4c5900000000000000000000000000000000000000000060208201525b6040516101d49190611462565b60405180910390f35b3480156101e8575f80fd5b506101fc6101f73660046114d1565b6104e6565b60405190151581526020016101d4565b348015610217575f80fd5b5060075461022b906001600160a01b031681565b6040516001600160a01b0390911681526020016101d4565b34801561024e575f80fd5b50675fc1b971363200005b6040519081526020016101d4565b348015610272575f80fd5b506101fc6102813660046114fb565b6104fc565b348015610291575f80fd5b50610259600b5481565b3480156102a6575f80fd5b50604051600981526020016101d4565b3480156102c1575f80fd5b506102d56102d036600461155c565b6105bd565b005b3480156102e2575f80fd5b5060085461022b906001600160a01b031681565b348015610301575f80fd5b506102d561031036600461162e565b610698565b348015610320575f80fd5b5061025961032f36600461164e565b6001600160a01b03165f9081526001602052604090205490565b348015610354575f80fd5b506102d5610789565b348015610368575f80fd5b5061025960095481565b34801561037d575f80fd5b505f546001600160a01b031661022b565b348015610399575f80fd5b50610259600a5481565b3480156103ae575f80fd5b5060408051808201909152600381527f41434b000000000000000000000000000000000000000000000000000000000060208201526101c7565b3480156103f3575f80fd5b506102d5610402366004611669565b61079c565b348015610412575f80fd5b506101fc6104213660046114d1565b6107e0565b348015610431575f80fd5b506102d5610440366004611680565b6107ec565b348015610450575f80fd5b5061025961045f3660046116fd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610494575f80fd5b506102d56104a3366004611669565b6108f1565b3480156104b3575f80fd5b506102d56104c2366004611669565b61092e565b3480156104d2575f80fd5b506102d56104e136600461164e565b61096b565b5f6104f23384846109fb565b5060015b92915050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548281101561059a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105a785338584036109fb565b6105b2858585610b52565b506001949350505050565b6105c5610f64565b5f5b8251811015610693578160045f8584815181106105e6576105e6611734565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555082818151811061063557610635611734565b60200260200101516001600160a01b03167f2805abee54b8f8811367e220e10c2da1762bea5b3295e256642ccd724862590083604051610679911515815260200190565b60405180910390a28061068b8161175c565b9150506105c7565b505050565b6106a0610f64565b60058211156106f15760405162461bcd60e51b815260206004820152600f60248201527f46656520697320746f6f206869676800000000000000000000000000000000006044820152606401610591565b60058111156107425760405162461bcd60e51b815260206004820152600f60248201527f46656520697320746f6f206869676800000000000000000000000000000000006044820152606401610591565b6005829055600681905560408051838152602081018390527f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b6910160405180910390a15050565b610791610f64565b61079a5f610fbd565b565b6107a4610f64565b600b8190556040518181527fd371a90ac9298515f0c64bbcd4159ea805a04df67586927b3709819f88912f99906020015b60405180910390a150565b5f6104f2338484610b52565b6107f4610f64565b5f5b828110156108eb578160035f86868581811061081457610814611734565b9050602002016020810190610829919061164e565b6001600160a01b0316815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905583838281811061088057610880611734565b9050602002016020810190610895919061164e565b6001600160a01b03167f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9836040516108d1911515815260200190565b60405180910390a2806108e38161175c565b9150506107f6565b50505050565b6108f9610f64565b600a8190556040518181527fcd08c375cc2759ba9284bf314cd100fb0cef5a8ef75294f7c3f0a3320b28bd42906020016107d5565b610936610f64565b60098190556040518181527f9f5e246af7c18550ffbb625af523d90c3be8c2f4c33faede31f8005c517200fa906020016107d5565b610973610f64565b6001600160a01b0381166109ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610591565b6109f881610fbd565b50565b6001600160a01b038316610a765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038216610af25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038216610c4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610591565b805f03610cbf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b0383165f9081526004602052604090205460ff16158015610cff57506001600160a01b0382165f9081526004602052604090205460ff16155b15610e0b57600954811115610d565760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610591565b6008546001600160a01b03838116911614610e0b57600a5481610d8d846001600160a01b03165f9081526001602052604090205490565b610d979190611793565b1115610e0b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a652100000000000000000000000000000000000000000000000000000000006064820152608401610591565b305f908152600160205260409020546009548110610e2857506009545b5f600b548210158015610e4857505f546001600160a01b03868116911614155b8015610e6157505f546001600160a01b03858116911614155b9050808015610e8b575060085474010000000000000000000000000000000000000000900460ff16155b8015610ea557506008546001600160a01b03868116911614155b8015610ec957506001600160a01b0385165f9081526003602052604090205460ff16155b8015610eed57506001600160a01b0384165f9081526003602052604090205460ff16155b15610f4357610efb82611024565b478015610f415760405173b3dd9af4cf916a93e9ba8c17df08ac15f4ade41d904780156108fc02915f818181858888f19350505050158015610f3f573d5f803e3d5ffd5b505b505b5f610f4e868661120d565b9050610f5c86868684611303565b505050505050565b5f546001600160a01b0316331461079a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610591565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061109657611096611734565b6001600160a01b03928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611106573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112a91906117a6565b8160018151811061113d5761113d611734565b6001600160a01b03928316602091820292909201015260075461116391309116846109fb565b6007546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906111b49085905f908690309042906004016117c1565b5f604051808303815f87803b1580156111cb575f80fd5b505af11580156111dd573d5f803e3d5ffd5b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550505050565b6008545f9081906001600160a01b0385811691161480159061123d57506008546001600160a01b03848116911614155b1561124957505f6112b7565b6008546001600160a01b03858116911614801561127457506008546001600160a01b03848116911614155b1561128257506005546112b7565b6008546001600160a01b0384811691161480156112ad57506008546001600160a01b03858116911614155b156112b757506006545b6001600160a01b0384165f9081526003602052604090205460ff16806112f457506001600160a01b0383165f9081526003602052604090205460ff165b156112fc57505f5b9392505050565b5f60646113108385611830565b61131a9190611847565b90505f6113278285611866565b6001600160a01b0387165f9081526001602052604090205490915061134d908590611866565b6001600160a01b038088165f90815260016020526040808220939093559087168152205461137c908290611793565b6001600160a01b0386165f90815260016020526040902055811561140d57305f908152600160205260409020546113b4908390611793565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114049086815260200190565b60405180910390a35b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145291815260200190565b60405180910390a3505050505050565b5f6020808352835180828501525f5b8181101561148d57858101830151858201604001528201611471565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109f8575f80fd5b80356114cc816114ad565b919050565b5f80604083850312156114e2575f80fd5b82356114ed816114ad565b946020939093013593505050565b5f805f6060848603121561150d575f80fd5b8335611518816114ad565b92506020840135611528816114ad565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b803580151581146114cc575f80fd5b5f806040838503121561156d575f80fd5b823567ffffffffffffffff80821115611584575f80fd5b818501915085601f830112611597575f80fd5b81356020828211156115ab576115ab611539565b8160051b604051601f19603f830116810181811086821117156115d0576115d0611539565b6040529283528183019350848101820192898411156115ed575f80fd5b948201945b8386101561161257611603866114c1565b855294820194938201936115f2565b9650611621905087820161154d565b9450505050509250929050565b5f806040838503121561163f575f80fd5b50508035926020909101359150565b5f6020828403121561165e575f80fd5b81356112fc816114ad565b5f60208284031215611679575f80fd5b5035919050565b5f805f60408486031215611692575f80fd5b833567ffffffffffffffff808211156116a9575f80fd5b818601915086601f8301126116bc575f80fd5b8135818111156116ca575f80fd5b8760208260051b85010111156116de575f80fd5b6020928301955093506116f4918601905061154d565b90509250925092565b5f806040838503121561170e575f80fd5b8235611719816114ad565b91506020830135611729816114ad565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361178c5761178c611748565b5060010190565b808201808211156104f6576104f6611748565b5f602082840312156117b6575f80fd5b81516112fc816114ad565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561180f5784516001600160a01b0316835293830193918301916001016117ea565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104f6576104f6611748565b5f8261186157634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104f6576104f661174856fea2646970667358221220c879651838e1ee0e8bd4383733d0a0e41e3a798345ad91c19a8158445541093b64736f6c63430008140033
Deployed Bytecode
0x60806040526004361061017b575f3560e01c8063715018a6116100d1578063a9059cbb1161007c578063ea1644d511610057578063ea1644d514610489578063ec28438a146104a8578063f2fde38b146104c7575f80fd5b8063a9059cbb14610407578063c492f04614610426578063dd62ed3e14610445575f80fd5b80638f9a55c0116100ac5780638f9a55c01461038e57806395d89b41146103a357806398a5c315146103e8575f80fd5b8063715018a6146103495780637d1db4a51461035d5780638da5cb5b14610372575f80fd5b80632fd689e31161013157806349bd5a5e1161010c57806349bd5a5e146102d757806352f7c988146102f657806370a0823114610315575f80fd5b80632fd689e314610286578063313ce5671461029b57806341c6ee38146102b6575f80fd5b80631694505e116101615780631694505e1461020c57806318160ddd1461024357806323b872dd14610267575f80fd5b806306fdde0314610186578063095ea7b3146101dd575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5060408051808201909152600b81527f41434b43485955414c4c5900000000000000000000000000000000000000000060208201525b6040516101d49190611462565b60405180910390f35b3480156101e8575f80fd5b506101fc6101f73660046114d1565b6104e6565b60405190151581526020016101d4565b348015610217575f80fd5b5060075461022b906001600160a01b031681565b6040516001600160a01b0390911681526020016101d4565b34801561024e575f80fd5b50675fc1b971363200005b6040519081526020016101d4565b348015610272575f80fd5b506101fc6102813660046114fb565b6104fc565b348015610291575f80fd5b50610259600b5481565b3480156102a6575f80fd5b50604051600981526020016101d4565b3480156102c1575f80fd5b506102d56102d036600461155c565b6105bd565b005b3480156102e2575f80fd5b5060085461022b906001600160a01b031681565b348015610301575f80fd5b506102d561031036600461162e565b610698565b348015610320575f80fd5b5061025961032f36600461164e565b6001600160a01b03165f9081526001602052604090205490565b348015610354575f80fd5b506102d5610789565b348015610368575f80fd5b5061025960095481565b34801561037d575f80fd5b505f546001600160a01b031661022b565b348015610399575f80fd5b50610259600a5481565b3480156103ae575f80fd5b5060408051808201909152600381527f41434b000000000000000000000000000000000000000000000000000000000060208201526101c7565b3480156103f3575f80fd5b506102d5610402366004611669565b61079c565b348015610412575f80fd5b506101fc6104213660046114d1565b6107e0565b348015610431575f80fd5b506102d5610440366004611680565b6107ec565b348015610450575f80fd5b5061025961045f3660046116fd565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610494575f80fd5b506102d56104a3366004611669565b6108f1565b3480156104b3575f80fd5b506102d56104c2366004611669565b61092e565b3480156104d2575f80fd5b506102d56104e136600461164e565b61096b565b5f6104f23384846109fb565b5060015b92915050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548281101561059a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105a785338584036109fb565b6105b2858585610b52565b506001949350505050565b6105c5610f64565b5f5b8251811015610693578160045f8584815181106105e6576105e6611734565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555082818151811061063557610635611734565b60200260200101516001600160a01b03167f2805abee54b8f8811367e220e10c2da1762bea5b3295e256642ccd724862590083604051610679911515815260200190565b60405180910390a28061068b8161175c565b9150506105c7565b505050565b6106a0610f64565b60058211156106f15760405162461bcd60e51b815260206004820152600f60248201527f46656520697320746f6f206869676800000000000000000000000000000000006044820152606401610591565b60058111156107425760405162461bcd60e51b815260206004820152600f60248201527f46656520697320746f6f206869676800000000000000000000000000000000006044820152606401610591565b6005829055600681905560408051838152602081018390527f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b6910160405180910390a15050565b610791610f64565b61079a5f610fbd565b565b6107a4610f64565b600b8190556040518181527fd371a90ac9298515f0c64bbcd4159ea805a04df67586927b3709819f88912f99906020015b60405180910390a150565b5f6104f2338484610b52565b6107f4610f64565b5f5b828110156108eb578160035f86868581811061081457610814611734565b9050602002016020810190610829919061164e565b6001600160a01b0316815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905583838281811061088057610880611734565b9050602002016020810190610895919061164e565b6001600160a01b03167f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9836040516108d1911515815260200190565b60405180910390a2806108e38161175c565b9150506107f6565b50505050565b6108f9610f64565b600a8190556040518181527fcd08c375cc2759ba9284bf314cd100fb0cef5a8ef75294f7c3f0a3320b28bd42906020016107d5565b610936610f64565b60098190556040518181527f9f5e246af7c18550ffbb625af523d90c3be8c2f4c33faede31f8005c517200fa906020016107d5565b610973610f64565b6001600160a01b0381166109ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610591565b6109f881610fbd565b50565b6001600160a01b038316610a765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038216610af25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b038216610c4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610591565b805f03610cbf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610591565b6001600160a01b0383165f9081526004602052604090205460ff16158015610cff57506001600160a01b0382165f9081526004602052604090205460ff16155b15610e0b57600954811115610d565760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610591565b6008546001600160a01b03838116911614610e0b57600a5481610d8d846001600160a01b03165f9081526001602052604090205490565b610d979190611793565b1115610e0b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a652100000000000000000000000000000000000000000000000000000000006064820152608401610591565b305f908152600160205260409020546009548110610e2857506009545b5f600b548210158015610e4857505f546001600160a01b03868116911614155b8015610e6157505f546001600160a01b03858116911614155b9050808015610e8b575060085474010000000000000000000000000000000000000000900460ff16155b8015610ea557506008546001600160a01b03868116911614155b8015610ec957506001600160a01b0385165f9081526003602052604090205460ff16155b8015610eed57506001600160a01b0384165f9081526003602052604090205460ff16155b15610f4357610efb82611024565b478015610f415760405173b3dd9af4cf916a93e9ba8c17df08ac15f4ade41d904780156108fc02915f818181858888f19350505050158015610f3f573d5f803e3d5ffd5b505b505b5f610f4e868661120d565b9050610f5c86868684611303565b505050505050565b5f546001600160a01b0316331461079a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610591565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061109657611096611734565b6001600160a01b03928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611106573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112a91906117a6565b8160018151811061113d5761113d611734565b6001600160a01b03928316602091820292909201015260075461116391309116846109fb565b6007546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906111b49085905f908690309042906004016117c1565b5f604051808303815f87803b1580156111cb575f80fd5b505af11580156111dd573d5f803e3d5ffd5b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550505050565b6008545f9081906001600160a01b0385811691161480159061123d57506008546001600160a01b03848116911614155b1561124957505f6112b7565b6008546001600160a01b03858116911614801561127457506008546001600160a01b03848116911614155b1561128257506005546112b7565b6008546001600160a01b0384811691161480156112ad57506008546001600160a01b03858116911614155b156112b757506006545b6001600160a01b0384165f9081526003602052604090205460ff16806112f457506001600160a01b0383165f9081526003602052604090205460ff165b156112fc57505f5b9392505050565b5f60646113108385611830565b61131a9190611847565b90505f6113278285611866565b6001600160a01b0387165f9081526001602052604090205490915061134d908590611866565b6001600160a01b038088165f90815260016020526040808220939093559087168152205461137c908290611793565b6001600160a01b0386165f90815260016020526040902055811561140d57305f908152600160205260409020546113b4908390611793565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114049086815260200190565b60405180910390a35b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145291815260200190565b60405180910390a3505050505050565b5f6020808352835180828501525f5b8181101561148d57858101830151858201604001528201611471565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109f8575f80fd5b80356114cc816114ad565b919050565b5f80604083850312156114e2575f80fd5b82356114ed816114ad565b946020939093013593505050565b5f805f6060848603121561150d575f80fd5b8335611518816114ad565b92506020840135611528816114ad565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b803580151581146114cc575f80fd5b5f806040838503121561156d575f80fd5b823567ffffffffffffffff80821115611584575f80fd5b818501915085601f830112611597575f80fd5b81356020828211156115ab576115ab611539565b8160051b604051601f19603f830116810181811086821117156115d0576115d0611539565b6040529283528183019350848101820192898411156115ed575f80fd5b948201945b8386101561161257611603866114c1565b855294820194938201936115f2565b9650611621905087820161154d565b9450505050509250929050565b5f806040838503121561163f575f80fd5b50508035926020909101359150565b5f6020828403121561165e575f80fd5b81356112fc816114ad565b5f60208284031215611679575f80fd5b5035919050565b5f805f60408486031215611692575f80fd5b833567ffffffffffffffff808211156116a9575f80fd5b818601915086601f8301126116bc575f80fd5b8135818111156116ca575f80fd5b8760208260051b85010111156116de575f80fd5b6020928301955093506116f4918601905061154d565b90509250925092565b5f806040838503121561170e575f80fd5b8235611719816114ad565b91506020830135611729816114ad565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361178c5761178c611748565b5060010190565b808201808211156104f6576104f6611748565b5f602082840312156117b6575f80fd5b81516112fc816114ad565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561180f5784516001600160a01b0316835293830193918301916001016117ea565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104f6576104f6611748565b5f8261186157634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104f6576104f661174856fea2646970667358221220c879651838e1ee0e8bd4383733d0a0e41e3a798345ad91c19a8158445541093b64736f6c63430008140033
Deployed Bytecode Sourcemap
9863:9326:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11919:83;;;;;;;;;;-1:-1:-1;11989:5:0;;;;;;;;;;;;;;;;;11919:83;;;;;;;:::i;:::-;;;;;;;;12807:186;;;;;;;;;;-1:-1:-1;12807:186:0;;;;;:::i;:::-;;:::i;:::-;;;1409:14:1;;1402:22;1384:41;;1372:2;1357:18;12807:186:0;1244:187:1;10701:41:0;;;;;;;;;;-1:-1:-1;10701:41:0;;;;-1:-1:-1;;;;;10701:41:0;;;;;;-1:-1:-1;;;;;1626:55:1;;;1608:74;;1596:2;1581:18;10701:41:0;1436:252:1;12196:100:0;;;;;;;;;;-1:-1:-1;10340:20:0;12196:100;;;1839:25:1;;;1827:2;1812:18;12196:100:0;1693:177:1;13001:517:0;;;;;;;;;;-1:-1:-1;13001:517:0;;;;;:::i;:::-;;:::i;10936:55::-;;;;;;;;;;;;;;;;12105:83;;;;;;;;;;-1:-1:-1;12105:83:0;;10292:1;2478:36:1;;2466:2;2451:18;12105:83:0;2336:184:1;18185:312:0;;;;;;;;;;-1:-1:-1;18185:312:0;;;;;:::i;:::-;;:::i;:::-;;10749:28;;;;;;;;;;-1:-1:-1;10749:28:0;;;;-1:-1:-1;;;;;10749:28:0;;;17528:365;;;;;;;;;;-1:-1:-1;17528:365:0;;;;;:::i;:::-;;:::i;12304:119::-;;;;;;;;;;-1:-1:-1;12304:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12397:18:0;12370:7;12397:18;;;:9;:18;;;;;;;12304:119;5719:103;;;;;;;;;;;;;:::i;10820:50::-;;;;;;;;;;;;;;;;5071:87;;;;;;;;;;-1:-1:-1;5117:7:0;5144:6;-1:-1:-1;;;;;5144:6:0;5071:87;;10877:52;;;;;;;;;;;;;;;;12010:87;;;;;;;;;;-1:-1:-1;12082:7:0;;;;;;;;;;;;;;;;;12010:87;;17205:220;;;;;;;;;;-1:-1:-1;17205:220:0;;;;;:::i;:::-;;:::i;12431:192::-;;;;;;;;;;-1:-1:-1;12431:192:0;;;;;:::i;:::-;;:::i;18825:320::-;;;;;;;;;;-1:-1:-1;18825:320:0;;;;;:::i;:::-;;:::i;12631:168::-;;;;;;;;;;-1:-1:-1;12631:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;12764:18:0;;;12737:7;12764:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12631:168;18562:187;;;;;;;;;;-1:-1:-1;18562:187:0;;;;;:::i;:::-;;:::i;17949:160::-;;;;;;;;;;-1:-1:-1;17949:160:0;;;;;:::i;:::-;;:::i;5977:238::-;;;;;;;;;;-1:-1:-1;5977:238:0;;;;;:::i;:::-;;:::i;12807:186::-;12907:4;12924:39;4451:10;12947:7;12956:6;12924:8;:39::i;:::-;-1:-1:-1;12981:4:0;12807:186;;;;;:::o;13001:517::-;-1:-1:-1;;;;;13177:19:0;;13133:4;13177:19;;;:11;:19;;;;;;;;4451:10;13177:33;;;;;;;;13243:26;;;;13221:116;;;;-1:-1:-1;;;13221:116:0;;6344:2:1;13221:116:0;;;6326:21:1;6383:2;6363:18;;;6356:30;6422:34;6402:18;;;6395:62;6493:10;6473:18;;;6466:38;6521:19;;13221:116:0;;;;;;;;;13373:57;13382:6;4451:10;13423:6;13404:16;:25;13373:8;:57::i;:::-;13452:36;13462:6;13470:9;13481:6;13452:9;:36::i;:::-;-1:-1:-1;13506:4:0;;13001:517;-1:-1:-1;;;;13001:517:0:o;18185:312::-;4957:13;:11;:13::i;:::-;18326:9:::1;18322:168;18341:8;:15;18337:1;:19;18322:168;;;18412:8;18378:18;:31;18397:8;18406:1;18397:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18378:31:0::1;-1:-1:-1::0;;;;;18378:31:0::1;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18456:8;18465:1;18456:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18440:38:0::1;;18469:8;18440:38;;;;1409:14:1::0;1402:22;1384:41;;1372:2;1357:18;;1244:187;18440:38:0::1;;;;;;;;18358:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18322:168;;;;18185:312:::0;;:::o;17528:365::-;4957:13;:11;:13::i;:::-;10404:1:::1;17650:11;:22;;17642:50;;;::::0;-1:-1:-1;;;17642:50:0;;7331:2:1;17642:50:0::1;::::0;::::1;7313:21:1::0;7370:2;7350:18;;;7343:30;7409:17;7389:18;;;7382:45;7444:18;;17642:50:0::1;7129:339:1::0;17642:50:0::1;10404:1;17711:12;:23;;17703:51;;;::::0;-1:-1:-1;;;17703:51:0;;7331:2:1;17703:51:0::1;::::0;::::1;7313:21:1::0;7370:2;7350:18;;;7343:30;7409:17;7389:18;;;7382:45;7444:18;;17703:51:0::1;7129:339:1::0;17703:51:0::1;17765:12;:26:::0;;;17802:13:::1;:28:::0;;;17846:39:::1;::::0;;7647:25:1;;;7703:2;7688:18;;7681:34;;;17846:39:0::1;::::0;7620:18:1;17846:39:0::1;;;;;;;17528:365:::0;;:::o;5719:103::-;4957:13;:11;:13::i;:::-;5784:30:::1;5811:1;5784:18;:30::i;:::-;5719:103::o:0;17205:220::-;4957:13;:11;:13::i;:::-;17314:19:::1;:40:::0;;;17370:47:::1;::::0;1839:25:1;;;17370:47:0::1;::::0;1827:2:1;1812:18;17370:47:0::1;;;;;;;;17205:220:::0;:::o;12431:192::-;12534:4;12551:42;4451:10;12575:9;12586:6;12551:9;:42::i;18825:320::-;4957:13;:11;:13::i;:::-;18970:9:::1;18965:173;18985:19:::0;;::::1;18965:173;;;19060:8;19026:18;:31;19045:8;;19054:1;19045:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19026:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19026:31:0;:42;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;19104:8;;19113:1;19104:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19088:38:0::1;;19117:8;19088:38;;;;1409:14:1::0;1402:22;1384:41;;1372:2;1357:18;;1244:187;19088:38:0::1;;;;;;;;19006:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18965:173;;;;18825:320:::0;;;:::o;18562:187::-;4957:13;:11;:13::i;:::-;18658:14:::1;:31:::0;;;18705:36:::1;::::0;1839:25:1;;;18705:36:0::1;::::0;1827:2:1;1812:18;18705:36:0::1;1693:177:1::0;17949:160:0;4957:13;:11;:13::i;:::-;18036:12:::1;:22:::0;;;18074:27:::1;::::0;1839:25:1;;;18074:27:0::1;::::0;1827:2:1;1812:18;18074:27:0::1;1693:177:1::0;5977:238:0;4957:13;:11;:13::i;:::-;-1:-1:-1;;;;;6080:22:0;::::1;6058:110;;;::::0;-1:-1:-1;;;6058:110:0;;7928:2:1;6058:110:0::1;::::0;::::1;7910:21:1::0;7967:2;7947:18;;;7940:30;8006:34;7986:18;;;7979:62;8077:8;8057:18;;;8050:36;8103:19;;6058:110:0::1;7726:402:1::0;6058:110:0::1;6179:28;6198:8;6179:18;:28::i;:::-;5977:238:::0;:::o;13534:335::-;-1:-1:-1;;;;;13627:19:0;;13619:68;;;;-1:-1:-1;;;13619:68:0;;8335:2:1;13619:68:0;;;8317:21:1;8374:2;8354:18;;;8347:30;8413:34;8393:18;;;8386:62;8484:6;8464:18;;;8457:34;8508:19;;13619:68:0;8133:400:1;13619:68:0;-1:-1:-1;;;;;13706:21:0;;13698:68;;;;-1:-1:-1;;;13698:68:0;;8740:2:1;13698:68:0;;;8722:21:1;8779:2;8759:18;;;8752:30;8818:34;8798:18;;;8791:62;8889:4;8869:18;;;8862:32;8911:19;;13698:68:0;8538:398:1;13698:68:0;-1:-1:-1;;;;;13777:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13829:32;;1839:25:1;;;13829:32:0;;1812:18:1;13829:32:0;;;;;;;13534:335;;;:::o;13877:1495::-;-1:-1:-1;;;;;13965:18:0;;13957:68;;;;-1:-1:-1;;;13957:68:0;;9143:2:1;13957:68:0;;;9125:21:1;9182:2;9162:18;;;9155:30;9221:34;9201:18;;;9194:62;9292:7;9272:18;;;9265:35;9317:19;;13957:68:0;8941:401:1;13957:68:0;-1:-1:-1;;;;;14044:16:0;;14036:64;;;;-1:-1:-1;;;14036:64:0;;9549:2:1;14036:64:0;;;9531:21:1;9588:2;9568:18;;;9561:30;9627:34;9607:18;;;9600:62;9698:5;9678:18;;;9671:33;9721:19;;14036:64:0;9347:399:1;14036:64:0;14119:6;14129:1;14119:11;14111:65;;;;-1:-1:-1;;;14111:65:0;;9953:2:1;14111:65:0;;;9935:21:1;9992:2;9972:18;;;9965:30;10031:34;10011:18;;;10004:62;10102:11;10082:18;;;10075:39;10131:19;;14111:65:0;9751:405:1;14111:65:0;-1:-1:-1;;;;;14196:24:0;;;;;;:18;:24;;;;;;;;14195:25;:52;;;;-1:-1:-1;;;;;;14225:22:0;;;;;;:18;:22;;;;;;;;14224:23;14195:52;14191:308;;;14282:12;;14272:6;:22;;14264:63;;;;-1:-1:-1;;;14264:63:0;;10363:2:1;14264:63:0;;;10345:21:1;10402:2;10382:18;;;10375:30;10441;10421:18;;;10414:58;10489:18;;14264:63:0;10161:352:1;14264:63:0;14351:13;;-1:-1:-1;;;;;14345:19:0;;;14351:13;;14345:19;14342:146;;14419:14;;14409:6;14393:13;14403:2;-1:-1:-1;;;;;12397:18:0;12370:7;12397:18;;;:9;:18;;;;;;;12304:119;14393:13;:22;;;;:::i;:::-;:40;;14385:87;;;;-1:-1:-1;;;14385:87:0;;10850:2:1;14385:87:0;;;10832:21:1;10889:2;10869:18;;;10862:30;10928:34;10908:18;;;10901:62;10999:5;10979:18;;;10972:33;11022:19;;14385:87:0;10648:399:1;14385:87:0;14560:4;14511:28;12397:18;;;:9;:18;;;;;;14607:12;;14583:36;;14579:104;;-1:-1:-1;14659:12:0;;14579:104;14695:12;14734:19;;14710:20;:43;;:62;;;;-1:-1:-1;5117:7:0;5144:6;-1:-1:-1;;;;;14757:15:0;;;5144:6;;14757:15;;14710:62;:79;;;;-1:-1:-1;5117:7:0;5144:6;-1:-1:-1;;;;;14776:13:0;;;5144:6;;14776:13;;14710:79;14695:94;;14820:7;:31;;;;-1:-1:-1;14845:6:0;;;;;;;14844:7;14820:31;:69;;;;-1:-1:-1;14876:13:0;;-1:-1:-1;;;;;14868:21:0;;;14876:13;;14868:21;;14820:69;:111;;;;-1:-1:-1;;;;;;14907:24:0;;;;;;:18;:24;;;;;;;;14906:25;14820:111;:151;;;;-1:-1:-1;;;;;;14949:22:0;;;;;;:18;:22;;;;;;;;14948:23;14820:151;14802:431;;;14998:38;15015:20;14998:16;:38::i;:::-;15082:21;15122:23;;15118:104;;15166:40;;10649:42;;15184:21;15166:40;;;;;;;;;15184:21;10649:42;15166:40;;;;;;;;;;;;;;;;;;;;;15118:104;14983:250;14802:431;15272:15;15290:20;15301:4;15307:2;15290:10;:20::i;:::-;15272:38;;15323:41;15338:4;15344:2;15348:6;15356:7;15323:14;:41::i;:::-;13946:1426;;;13877:1495;;;:::o;5236:132::-;5117:7;5144:6;-1:-1:-1;;;;;5144:6:0;4451:10;5300:23;5292:68;;;;-1:-1:-1;;;5292:68:0;;11254:2:1;5292:68:0;;;11236:21:1;;;11273:18;;;11266:30;11332:34;11312:18;;;11305:62;11384:18;;5292:68:0;11052:356:1;6375:191:0;6449:16;6468:6;;-1:-1:-1;;;;;6485:17:0;;;;;;;;;;6518:40;;6468:6;;;;;;;6518:40;;6449:16;6518:40;6438:128;6375:191;:::o;15986:483::-;11034:6;:13;;;;;;;;16088:16:::1;::::0;;16102:1:::1;16088:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16088:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16088:16:0::1;16064:40;;16133:4;16115;16120:1;16115:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16115:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16159:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;16115:7;;16159:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16149:4;16154:1;16149:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16149:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16224:15:::1;::::0;16192:62:::1;::::0;16209:4:::1;::::0;16224:15:::1;16242:11:::0;16192:8:::1;:62::i;:::-;16265:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;16265:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16346:11;;16265:15:::1;::::0;16388:4;;16415::::1;::::0;16435:15:::1;::::0;16265:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11070:6:0;:14;;;;;;-1:-1:-1;;;;15986:483:0:o;15380:598::-;15536:13;;15476:7;;;;-1:-1:-1;;;;;15527:22:0;;;15536:13;;15527:22;;;;:46;;-1:-1:-1;15560:13:0;;-1:-1:-1;;;;;15553:20:0;;;15560:13;;15553:20;;15527:46;15524:301;;;-1:-1:-1;15599:1:0;15524:301;;;15630:13;;-1:-1:-1;;;;;15621:22:0;;;15630:13;;15621:22;:46;;;;-1:-1:-1;15654:13:0;;-1:-1:-1;;;;;15647:20:0;;;15654:13;;15647:20;;15621:46;15618:207;;;-1:-1:-1;15694:12:0;;15618:207;;;15734:13;;-1:-1:-1;;;;;15727:20:0;;;15734:13;;15727:20;:46;;;;-1:-1:-1;15760:13:0;;-1:-1:-1;;;;;15751:22:0;;;15760:13;;15751:22;;15727:46;15724:101;;;-1:-1:-1;15800:13:0;;15724:101;-1:-1:-1;;;;;15842:25:0;;;;;;:18;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15871:23:0;;;;;;:18;:23;;;;;;;;15842:52;15839:105;;;-1:-1:-1;15931:1:0;15839:105;15963:7;15380:598;-1:-1:-1;;;15380:598:0:o;16477:604::-;16627:13;16660:3;16644:12;16653:3;16644:6;:12;:::i;:::-;16643:20;;;;:::i;:::-;16627:36;-1:-1:-1;16674:23:0;16700:14;16627:36;16700:6;:14;:::i;:::-;-1:-1:-1;;;;;16745:17:0;;;;;;:9;:17;;;;;;16674:40;;-1:-1:-1;16745:26:0;;16765:6;;16745:26;:::i;:::-;-1:-1:-1;;;;;16725:17:0;;;;;;;:9;:17;;;;;;:46;;;;16805:20;;;;;;;:38;;16828:15;;16805:38;:::i;:::-;-1:-1:-1;;;;;16782:20:0;;;;;;:9;:20;;;;;:61;16858:10;;16854:160;;16930:4;16912:24;;;;:9;:24;;;;;;:32;;16939:5;;16912:32;:::i;:::-;16903:4;16885:24;;;;:9;:24;;;;;;;:59;;;;16964:38;;-1:-1:-1;;;;;16964:38:0;;;;;;;16996:5;1839:25:1;;1827:2;1812:18;;1693:177;16964:38:0;;;;;;;;16854:160;17046:9;-1:-1:-1;;;;;17029:44:0;17038:6;-1:-1:-1;;;;;17029:44:0;;17057:15;17029:44;;;;1839:25:1;;1827:2;1812:18;;1693:177;17029:44:0;;;;;;;;16616:465;;16477:604;;;;:::o;14:607:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;612:2;-1:-1:-1;;537:2:1;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;-1:-1:-1;;;;;705:5:1;701:54;694:5;691:65;681:93;;770:1;767;760:12;785:134;853:20;;882:31;853:20;882:31;:::i;:::-;785:134;;;:::o;924:315::-;992:6;1000;1053:2;1041:9;1032:7;1028:23;1024:32;1021:52;;;1069:1;1066;1059:12;1021:52;1108:9;1095:23;1127:31;1152:5;1127:31;:::i;:::-;1177:5;1229:2;1214:18;;;;1201:32;;-1:-1:-1;;;924:315:1:o;1875:456::-;1952:6;1960;1968;2021:2;2009:9;2000:7;1996:23;1992:32;1989:52;;;2037:1;2034;2027:12;1989:52;2076:9;2063:23;2095:31;2120:5;2095:31;:::i;:::-;2145:5;-1:-1:-1;2202:2:1;2187:18;;2174:32;2215:33;2174:32;2215:33;:::i;:::-;1875:456;;2267:7;;-1:-1:-1;;;2321:2:1;2306:18;;;;2293:32;;1875:456::o;2525:184::-;-1:-1:-1;;;2574:1:1;2567:88;2674:4;2671:1;2664:15;2698:4;2695:1;2688:15;2714:160;2779:20;;2835:13;;2828:21;2818:32;;2808:60;;2864:1;2861;2854:12;2879:1250;2969:6;2977;3030:2;3018:9;3009:7;3005:23;3001:32;2998:52;;;3046:1;3043;3036:12;2998:52;3086:9;3073:23;3115:18;3156:2;3148:6;3145:14;3142:34;;;3172:1;3169;3162:12;3142:34;3210:6;3199:9;3195:22;3185:32;;3255:7;3248:4;3244:2;3240:13;3236:27;3226:55;;3277:1;3274;3267:12;3226:55;3313:2;3300:16;3335:4;3358:2;3354;3351:10;3348:36;;;3364:18;;:::i;:::-;3410:2;3407:1;3403:10;3442:2;3436:9;-1:-1:-1;;3496:2:1;3492;3488:11;3484:84;3476:6;3472:97;3619:6;3607:10;3604:22;3599:2;3587:10;3584:18;3581:46;3578:72;;;3630:18;;:::i;:::-;3666:2;3659:22;3716:18;;;3750:15;;;;-1:-1:-1;3792:11:1;;;3788:20;;;3820:19;;;3817:39;;;3852:1;3849;3842:12;3817:39;3876:11;;;;3896:148;3912:6;3907:3;3904:15;3896:148;;;3978:23;3997:3;3978:23;:::i;:::-;3966:36;;3929:12;;;;4022;;;;3896:148;;;4063:6;-1:-1:-1;4088:35:1;;-1:-1:-1;4104:18:1;;;4088:35;:::i;:::-;4078:45;;;;;;2879:1250;;;;;:::o;4365:248::-;4433:6;4441;4494:2;4482:9;4473:7;4469:23;4465:32;4462:52;;;4510:1;4507;4500:12;4462:52;-1:-1:-1;;4533:23:1;;;4603:2;4588:18;;;4575:32;;-1:-1:-1;4365:248:1:o;4618:247::-;4677:6;4730:2;4718:9;4709:7;4705:23;4701:32;4698:52;;;4746:1;4743;4736:12;4698:52;4785:9;4772:23;4804:31;4829:5;4804:31;:::i;4870:180::-;4929:6;4982:2;4970:9;4961:7;4957:23;4953:32;4950:52;;;4998:1;4995;4988:12;4950:52;-1:-1:-1;5021:23:1;;4870:180;-1:-1:-1;4870:180:1:o;5055:689::-;5147:6;5155;5163;5216:2;5204:9;5195:7;5191:23;5187:32;5184:52;;;5232:1;5229;5222:12;5184:52;5272:9;5259:23;5301:18;5342:2;5334:6;5331:14;5328:34;;;5358:1;5355;5348:12;5328:34;5396:6;5385:9;5381:22;5371:32;;5441:7;5434:4;5430:2;5426:13;5422:27;5412:55;;5463:1;5460;5453:12;5412:55;5503:2;5490:16;5529:2;5521:6;5518:14;5515:34;;;5545:1;5542;5535:12;5515:34;5600:7;5593:4;5583:6;5580:1;5576:14;5572:2;5568:23;5564:34;5561:47;5558:67;;;5621:1;5618;5611:12;5558:67;5652:4;5644:13;;;;-1:-1:-1;5676:6:1;-1:-1:-1;5701:37:1;;5717:20;;;-1:-1:-1;5701:37:1;:::i;:::-;5691:47;;5055:689;;;;;:::o;5749:388::-;5817:6;5825;5878:2;5866:9;5857:7;5853:23;5849:32;5846:52;;;5894:1;5891;5884:12;5846:52;5933:9;5920:23;5952:31;5977:5;5952:31;:::i;:::-;6002:5;-1:-1:-1;6059:2:1;6044:18;;6031:32;6072:33;6031:32;6072:33;:::i;:::-;6124:7;6114:17;;;5749:388;;;;;:::o;6551:184::-;-1:-1:-1;;;6600:1:1;6593:88;6700:4;6697:1;6690:15;6724:4;6721:1;6714:15;6740:184;-1:-1:-1;;;6789:1:1;6782:88;6889:4;6886:1;6879:15;6913:4;6910:1;6903:15;6929:195;6968:3;6999:66;6992:5;6989:77;6986:103;;7069:18;;:::i;:::-;-1:-1:-1;7116:1:1;7105:13;;6929:195::o;10518:125::-;10583:9;;;10604:10;;;10601:36;;;10617:18;;:::i;11413:251::-;11483:6;11536:2;11524:9;11515:7;11511:23;11507:32;11504:52;;;11552:1;11549;11542:12;11504:52;11584:9;11578:16;11603:31;11628:5;11603:31;:::i;11669:1026::-;11931:4;11979:3;11968:9;11964:19;12010:6;11999:9;11992:25;12036:2;12074:6;12069:2;12058:9;12054:18;12047:34;12117:3;12112:2;12101:9;12097:18;12090:31;12141:6;12176;12170:13;12207:6;12199;12192:22;12245:3;12234:9;12230:19;12223:26;;12284:2;12276:6;12272:15;12258:29;;12305:1;12315:218;12329:6;12326:1;12323:13;12315:218;;;12394:13;;-1:-1:-1;;;;;12390:62:1;12378:75;;12508:15;;;;12473:12;;;;12351:1;12344:9;12315:218;;;-1:-1:-1;;;;;;;12589:55:1;;;;12584:2;12569:18;;12562:83;-1:-1:-1;;;12676:3:1;12661:19;12654:35;12550:3;11669:1026;-1:-1:-1;;;11669:1026:1:o;12700:168::-;12773:9;;;12804;;12821:15;;;12815:22;;12801:37;12791:71;;12842:18;;:::i;12873:274::-;12913:1;12939;12929:189;;-1:-1:-1;;;12971:1:1;12964:88;13075:4;13072:1;13065:15;13103:4;13100:1;13093:15;12929:189;-1:-1:-1;13132:9:1;;12873:274::o;13152:128::-;13219:9;;;13240:11;;;13237:37;;;13254:18;;:::i
Swarm Source
ipfs://c879651838e1ee0e8bd4383733d0a0e41e3a798345ad91c19a8158445541093b
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.