Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
69,420,000,000 USBDOG
Holders
48
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BIRD
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-04 */ /* American Bird Dog is the 5th member to join Pepe’s gang of roommates You've seen Landwolf, Brett, Pepe, Andy... Who's left? Bird Dog Join us below! https://americanbirddog.com/ https://x.com/A_BirdDog https://t.me/americanbirddog */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender)external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract BIRD is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "American BirdDog"; string private constant _symbol = "USBDOG"; uint8 private constant _decimals = 18; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 69420000000*10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 5; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 5; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) public _buyMap; mapping(address => bool) private botGuard; address payable private _developmentAddress = payable(0xF5291E8bE07771498827D2c124f05CE2f8774Cab); address payable private _marketingAddress = payable(0xF5291E8bE07771498827D2c124f05CE2f8774Cab); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1041300000 * 10**18; uint256 public _maxWalletSize = 1041300000 * 10**18; uint256 public _swapTokensAtAmount = 694200000 * 10**18; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); bool allowTransfer = false; if ( from != owner() && to != owner() && !botGuard[from] && !botGuard[to] ) { // Trade start check if (tradingOpen || botGuard[from]) { allowTransfer = true; } else { revert( "TOKEN: This account cannot send tokens until trading is enabled" ); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require( !bots[from] && !bots[to], "TOKEN: Your account is blacklisted!" ); if (to != uniswapV2Pair) { require( balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!" ); } } else { if (to != uniswapV2Pair) { require( balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!" ); } allowTransfer = true; } if (allowTransfer) { bool takeFee = true; // Transfer Tokens if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else { // Set Fee for Buys if (from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } // Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } } 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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function enableTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require( _msgSender() == _developmentAddress || _msgSender() == _marketingAddress ); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require( _msgSender() == _developmentAddress || _msgSender() == _marketingAddress ); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues( tAmount, _redisFee, _taxFee ); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues( tAmount, tFee, tTeam, currentRate ); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee( uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell ) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees( address[] calldata accounts, bool excluded ) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function invokeBotGuard(address[] calldata accounts) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { botGuard[accounts[i]] = true; } } function removeBotGuard(address[] calldata accounts) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { delete botGuard[accounts[i]]; } } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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[]"}],"name":"invokeBotGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeBotGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","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":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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
60806040526200001d6be04ee0ccb27ac646ac0000005f1962000366565b6200002a905f1962000386565b6006555f600881905560056009819055600a829055600b819055600c829055600d819055600e91909155600f55601380546001600160a01b031990811673f5291e8be07771498827d2c124f05ce2f8774cab9081179092556014805490911690911790556016805461ffff60a81b1916600160b01b1790556b035d57da1c46f62c9480000060178190556018556b023e3a91682f4ec863000000601955348015620000d3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b39190620003ac565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002259190620003ac565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000270573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002969190620003ac565b601680546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6be04ee0ccb27ac646ac0000006040516200035791815260200190565b60405180910390a350620003db565b5f826200038157634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003a657634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620003bd575f80fd5b81516001600160a01b0381168114620003d4575f80fd5b9392505050565b611ed080620003e95f395ff3fe6080604052600436106101dd575f3560e01c80637d1db4a5116100fd578063bfd7928411610092578063dd62ed3e11610062578063dd62ed3e1461058e578063ea1644d5146105d2578063f275f64b146105f1578063f2fde38b14610610575f80fd5b8063bfd792841461050e578063c17a14231461053c578063c3c8cd801461055b578063c492f0461461056f575f80fd5b806395d89b41116100cd57806395d89b411461048357806398a5c315146104b1578063a2a957bb146104d0578063a9059cbb146104ef575f80fd5b80637d1db4a5146104125780637f2feddc146104275780638da5cb5b146104525780638f9a55c01461046e575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec146103ac57806370a08231146103c0578063715018a6146103df57806374010ece146103f3575f80fd5b8063313ce5671461033457806349bd5a5e1461034f5780636b9990531461036e5780636d8aa8f81461038d575f80fd5b806318160ddd116101ae57806318160ddd146102b957806323b872dd146102e1578063265d57c6146103005780632fd689e31461031f575f80fd5b8062b8cf2a146101e857806306fdde0314610209578063095ea7b3146102535780631694505e14610282575f80fd5b366101e457005b5f80fd5b3480156101f3575f80fd5b506102076102023660046119df565b61062f565b005b348015610214575f80fd5b5060408051808201909152601081526f416d65726963616e2042697264446f6760801b60208201525b60405161024a9190611a9f565b60405180910390f35b34801561025e575f80fd5b5061027261026d366004611aeb565b6106c0565b604051901515815260200161024a565b34801561028d575f80fd5b506015546102a1906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b3480156102c4575f80fd5b506be04ee0ccb27ac646ac0000005b60405190815260200161024a565b3480156102ec575f80fd5b506102726102fb366004611b15565b6106d6565b34801561030b575f80fd5b5061020761031a366004611b9b565b61073d565b34801561032a575f80fd5b506102d360195481565b34801561033f575f80fd5b506040516012815260200161024a565b34801561035a575f80fd5b506016546102a1906001600160a01b031681565b348015610379575f80fd5b50610207610388366004611bda565b6107c7565b348015610398575f80fd5b506102076103a7366004611c04565b610810565b3480156103b7575f80fd5b50610207610857565b3480156103cb575f80fd5b506102d36103da366004611bda565b6108a1565b3480156103ea575f80fd5b506102076108c2565b3480156103fe575f80fd5b5061020761040d366004611c1d565b610933565b34801561041d575f80fd5b506102d360175481565b348015610432575f80fd5b506102d3610441366004611bda565b60116020525f908152604090205481565b34801561045d575f80fd5b505f546001600160a01b03166102a1565b348015610479575f80fd5b506102d360185481565b34801561048e575f80fd5b50604080518082019091526006815265555342444f4760d01b602082015261023d565b3480156104bc575f80fd5b506102076104cb366004611c1d565b610961565b3480156104db575f80fd5b506102076104ea366004611c34565b61098f565b3480156104fa575f80fd5b50610272610509366004611aeb565b6109cc565b348015610519575f80fd5b50610272610528366004611bda565b60106020525f908152604090205460ff1681565b348015610547575f80fd5b50610207610556366004611b9b565b6109d8565b348015610566575f80fd5b50610207610a66565b34801561057a575f80fd5b50610207610589366004611c63565b610ab8565b348015610599575f80fd5b506102d36105a8366004611cb3565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105dd575f80fd5b506102076105ec366004611c1d565b610b4b565b3480156105fc575f80fd5b5061020761060b366004611c04565b610b79565b34801561061b575f80fd5b5061020761062a366004611bda565b610bc0565b5f546001600160a01b031633146106615760405162461bcd60e51b815260040161065890611cea565b60405180910390fd5b5f5b81518110156106bc57600160105f84848151811061068357610683611d1f565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610663565b5050565b5f6106cc338484610ca7565b5060015b92915050565b5f6106e2848484610dca565b610733843361072e85604051806060016040528060288152602001611e73602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112ab565b610ca7565b5060019392505050565b5f546001600160a01b031633146107665760405162461bcd60e51b815260040161065890611cea565b5f5b818110156107c25760125f84848481811061078557610785611d1f565b905060200201602081019061079a9190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101610768565b505050565b5f546001600160a01b031633146107f05760405162461bcd60e51b815260040161065890611cea565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108395760405162461bcd60e51b815260040161065890611cea565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061088c57506014546001600160a01b0316336001600160a01b0316145b610894575f80fd5b4761089e816112e3565b50565b6001600160a01b0381165f908152600260205260408120546106d09061131a565b5f546001600160a01b031633146108eb5760405162461bcd60e51b815260040161065890611cea565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461095c5760405162461bcd60e51b815260040161065890611cea565b601755565b5f546001600160a01b0316331461098a5760405162461bcd60e51b815260040161065890611cea565b601955565b5f546001600160a01b031633146109b85760405162461bcd60e51b815260040161065890611cea565b600893909355600a91909155600955600b55565b5f6106cc338484610dca565b5f546001600160a01b03163314610a015760405162461bcd60e51b815260040161065890611cea565b5f5b818110156107c257600160125f858585818110610a2257610a22611d1f565b9050602002016020810190610a379190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a03565b6013546001600160a01b0316336001600160a01b03161480610a9b57506014546001600160a01b0316336001600160a01b0316145b610aa3575f80fd5b5f610aad306108a1565b905061089e8161139c565b5f546001600160a01b03163314610ae15760405162461bcd60e51b815260040161065890611cea565b5f5b82811015610b45578160055f868685818110610b0157610b01611d1f565b9050602002016020810190610b169190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ae3565b50505050565b5f546001600160a01b03163314610b745760405162461bcd60e51b815260040161065890611cea565b601855565b5f546001600160a01b03163314610ba25760405162461bcd60e51b815260040161065890611cea565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610be95760405162461bcd60e51b815260040161065890611cea565b6001600160a01b038116610c4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610658565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610658565b6001600160a01b038216610d6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610658565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610658565b6001600160a01b038216610e905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610658565b5f8111610ef15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610658565b5f80546001600160a01b03858116911614801590610f1c57505f546001600160a01b03848116911614155b8015610f4057506001600160a01b0384165f9081526012602052604090205460ff16155b8015610f6457506001600160a01b0383165f9081526012602052604090205460ff16155b1561114c57601654600160a01b900460ff1680610f9857506001600160a01b0384165f9081526012602052604090205460ff165b15610fa557506001611013565b60405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610658565b6017548211156110655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610658565b6001600160a01b0384165f9081526010602052604090205460ff161580156110a557506001600160a01b0383165f9081526010602052604090205460ff16155b6110fd5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610658565b6016546001600160a01b03848116911614611147576018548261111f856108a1565b6111299190611d47565b11156111475760405162461bcd60e51b815260040161065890611d5a565b61119a565b6016546001600160a01b03848116911614611196576018548261116e856108a1565b6111789190611d47565b11156111965760405162461bcd60e51b815260040161065890611d5a565b5060015b8015610b45576001600160a01b0384165f9081526005602052604090205460019060ff16806111e057506001600160a01b0384165f9081526005602052604090205460ff165b8061121257506016546001600160a01b0386811691161480159061121257506016546001600160a01b03858116911614155b1561121e57505f611298565b6016546001600160a01b03868116911614801561124957506015546001600160a01b03858116911614155b1561125b57600854600c55600954600d555b6016546001600160a01b03858116911614801561128657506015546001600160a01b03868116911614155b1561129857600a54600c55600b54600d555b6112a48585858461150c565b5050505050565b5f81848411156112ce5760405162461bcd60e51b81526004016106589190611a9f565b505f6112da8486611d9d565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106bc573d5f803e3d5ffd5b5f6006548211156113805760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610658565b5f61138961153a565b9050611395838261155b565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113e2576113e2611d1f565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611439573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145d9190611db0565b8160018151811061147057611470611d1f565b6001600160a01b0392831660209182029290920101526015546114969130911684610ca7565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ce9085905f90869030904290600401611dcb565b5f604051808303815f87803b1580156114e5575f80fd5b505af11580156114f7573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806115195761151961159c565b6115248484846115c9565b80610b4557610b45600e54600c55600f54600d55565b5f805f6115456116ba565b9092509050611554828261155b565b9250505090565b5f61139583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611701565b600c541580156115ac5750600d54155b156115b357565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806115d88761172d565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506116099087611782565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461163790866117c3565b6001600160a01b0389165f9081526002602052604090205561165881611821565b6116628483611867565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116a791815260200190565b60405180910390a3505050505050505050565b6006545f9081906be04ee0ccb27ac646ac0000006116d8828261155b565b8210156116f8575050600654926be04ee0ccb27ac646ac00000092509050565b90939092509050565b5f81836117215760405162461bcd60e51b81526004016106589190611a9f565b505f6112da8486611e3c565b5f805f805f805f805f6117458a600c54600d5461188b565b9250925092505f61175461153a565b90505f805f6117658e8787876118dd565b919e509c509a509598509396509194505050505091939550919395565b5f61139583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ab565b5f806117cf8385611d47565b9050838110156113955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610658565b5f61182a61153a565b90505f6118378383611929565b305f9081526002602052604090205490915061185390826117c3565b305f90815260026020526040902055505050565b6006546118749083611782565b60065560075461188490826117c3565b6007555050565b5f8080806118a4606461189e8989611929565b9061155b565b90505f6118b6606461189e8a89611929565b90505f6118cd826118c78b86611782565b90611782565b9992985090965090945050505050565b5f8080806118eb8886611929565b90505f6118f88887611929565b90505f6119058888611929565b90505f611916826118c78686611782565b939b939a50919850919650505050505050565b5f825f0361193857505f6106d0565b5f6119438385611e5b565b9050826119508583611e3c565b146113955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610658565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b038116811461089e575f80fd5b80356119da816119bb565b919050565b5f60208083850312156119f0575f80fd5b823567ffffffffffffffff80821115611a07575f80fd5b818501915085601f830112611a1a575f80fd5b813581811115611a2c57611a2c6119a7565b8060051b604051601f19603f83011681018181108582111715611a5157611a516119a7565b604052918252848201925083810185019188831115611a6e575f80fd5b938501935b82851015611a9357611a84856119cf565b84529385019392850192611a73565b98975050505050505050565b5f602080835283518060208501525f5b81811015611acb57858101830151858201604001528201611aaf565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611afc575f80fd5b8235611b07816119bb565b946020939093013593505050565b5f805f60608486031215611b27575f80fd5b8335611b32816119bb565b92506020840135611b42816119bb565b929592945050506040919091013590565b5f8083601f840112611b63575f80fd5b50813567ffffffffffffffff811115611b7a575f80fd5b6020830191508360208260051b8501011115611b94575f80fd5b9250929050565b5f8060208385031215611bac575f80fd5b823567ffffffffffffffff811115611bc2575f80fd5b611bce85828601611b53565b90969095509350505050565b5f60208284031215611bea575f80fd5b8135611395816119bb565b803580151581146119da575f80fd5b5f60208284031215611c14575f80fd5b61139582611bf5565b5f60208284031215611c2d575f80fd5b5035919050565b5f805f8060808587031215611c47575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611c75575f80fd5b833567ffffffffffffffff811115611c8b575f80fd5b611c9786828701611b53565b9094509250611caa905060208501611bf5565b90509250925092565b5f8060408385031215611cc4575f80fd5b8235611ccf816119bb565b91506020830135611cdf816119bb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106d0576106d0611d33565b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b818103818111156106d0576106d0611d33565b5f60208284031215611dc0575f80fd5b8151611395816119bb565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e1b5784516001600160a01b031683529383019391830191600101611df6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e5657634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106d0576106d0611d3356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a9489a535854dc5c197d05c84b591b78274d3acb95d12312aa4bbde0962670c364736f6c63430008160033
Deployed Bytecode
0x6080604052600436106101dd575f3560e01c80637d1db4a5116100fd578063bfd7928411610092578063dd62ed3e11610062578063dd62ed3e1461058e578063ea1644d5146105d2578063f275f64b146105f1578063f2fde38b14610610575f80fd5b8063bfd792841461050e578063c17a14231461053c578063c3c8cd801461055b578063c492f0461461056f575f80fd5b806395d89b41116100cd57806395d89b411461048357806398a5c315146104b1578063a2a957bb146104d0578063a9059cbb146104ef575f80fd5b80637d1db4a5146104125780637f2feddc146104275780638da5cb5b146104525780638f9a55c01461046e575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec146103ac57806370a08231146103c0578063715018a6146103df57806374010ece146103f3575f80fd5b8063313ce5671461033457806349bd5a5e1461034f5780636b9990531461036e5780636d8aa8f81461038d575f80fd5b806318160ddd116101ae57806318160ddd146102b957806323b872dd146102e1578063265d57c6146103005780632fd689e31461031f575f80fd5b8062b8cf2a146101e857806306fdde0314610209578063095ea7b3146102535780631694505e14610282575f80fd5b366101e457005b5f80fd5b3480156101f3575f80fd5b506102076102023660046119df565b61062f565b005b348015610214575f80fd5b5060408051808201909152601081526f416d65726963616e2042697264446f6760801b60208201525b60405161024a9190611a9f565b60405180910390f35b34801561025e575f80fd5b5061027261026d366004611aeb565b6106c0565b604051901515815260200161024a565b34801561028d575f80fd5b506015546102a1906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b3480156102c4575f80fd5b506be04ee0ccb27ac646ac0000005b60405190815260200161024a565b3480156102ec575f80fd5b506102726102fb366004611b15565b6106d6565b34801561030b575f80fd5b5061020761031a366004611b9b565b61073d565b34801561032a575f80fd5b506102d360195481565b34801561033f575f80fd5b506040516012815260200161024a565b34801561035a575f80fd5b506016546102a1906001600160a01b031681565b348015610379575f80fd5b50610207610388366004611bda565b6107c7565b348015610398575f80fd5b506102076103a7366004611c04565b610810565b3480156103b7575f80fd5b50610207610857565b3480156103cb575f80fd5b506102d36103da366004611bda565b6108a1565b3480156103ea575f80fd5b506102076108c2565b3480156103fe575f80fd5b5061020761040d366004611c1d565b610933565b34801561041d575f80fd5b506102d360175481565b348015610432575f80fd5b506102d3610441366004611bda565b60116020525f908152604090205481565b34801561045d575f80fd5b505f546001600160a01b03166102a1565b348015610479575f80fd5b506102d360185481565b34801561048e575f80fd5b50604080518082019091526006815265555342444f4760d01b602082015261023d565b3480156104bc575f80fd5b506102076104cb366004611c1d565b610961565b3480156104db575f80fd5b506102076104ea366004611c34565b61098f565b3480156104fa575f80fd5b50610272610509366004611aeb565b6109cc565b348015610519575f80fd5b50610272610528366004611bda565b60106020525f908152604090205460ff1681565b348015610547575f80fd5b50610207610556366004611b9b565b6109d8565b348015610566575f80fd5b50610207610a66565b34801561057a575f80fd5b50610207610589366004611c63565b610ab8565b348015610599575f80fd5b506102d36105a8366004611cb3565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105dd575f80fd5b506102076105ec366004611c1d565b610b4b565b3480156105fc575f80fd5b5061020761060b366004611c04565b610b79565b34801561061b575f80fd5b5061020761062a366004611bda565b610bc0565b5f546001600160a01b031633146106615760405162461bcd60e51b815260040161065890611cea565b60405180910390fd5b5f5b81518110156106bc57600160105f84848151811061068357610683611d1f565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610663565b5050565b5f6106cc338484610ca7565b5060015b92915050565b5f6106e2848484610dca565b610733843361072e85604051806060016040528060288152602001611e73602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112ab565b610ca7565b5060019392505050565b5f546001600160a01b031633146107665760405162461bcd60e51b815260040161065890611cea565b5f5b818110156107c25760125f84848481811061078557610785611d1f565b905060200201602081019061079a9190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101610768565b505050565b5f546001600160a01b031633146107f05760405162461bcd60e51b815260040161065890611cea565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108395760405162461bcd60e51b815260040161065890611cea565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061088c57506014546001600160a01b0316336001600160a01b0316145b610894575f80fd5b4761089e816112e3565b50565b6001600160a01b0381165f908152600260205260408120546106d09061131a565b5f546001600160a01b031633146108eb5760405162461bcd60e51b815260040161065890611cea565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461095c5760405162461bcd60e51b815260040161065890611cea565b601755565b5f546001600160a01b0316331461098a5760405162461bcd60e51b815260040161065890611cea565b601955565b5f546001600160a01b031633146109b85760405162461bcd60e51b815260040161065890611cea565b600893909355600a91909155600955600b55565b5f6106cc338484610dca565b5f546001600160a01b03163314610a015760405162461bcd60e51b815260040161065890611cea565b5f5b818110156107c257600160125f858585818110610a2257610a22611d1f565b9050602002016020810190610a379190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a03565b6013546001600160a01b0316336001600160a01b03161480610a9b57506014546001600160a01b0316336001600160a01b0316145b610aa3575f80fd5b5f610aad306108a1565b905061089e8161139c565b5f546001600160a01b03163314610ae15760405162461bcd60e51b815260040161065890611cea565b5f5b82811015610b45578160055f868685818110610b0157610b01611d1f565b9050602002016020810190610b169190611bda565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ae3565b50505050565b5f546001600160a01b03163314610b745760405162461bcd60e51b815260040161065890611cea565b601855565b5f546001600160a01b03163314610ba25760405162461bcd60e51b815260040161065890611cea565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610be95760405162461bcd60e51b815260040161065890611cea565b6001600160a01b038116610c4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610658565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610658565b6001600160a01b038216610d6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610658565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610658565b6001600160a01b038216610e905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610658565b5f8111610ef15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610658565b5f80546001600160a01b03858116911614801590610f1c57505f546001600160a01b03848116911614155b8015610f4057506001600160a01b0384165f9081526012602052604090205460ff16155b8015610f6457506001600160a01b0383165f9081526012602052604090205460ff16155b1561114c57601654600160a01b900460ff1680610f9857506001600160a01b0384165f9081526012602052604090205460ff165b15610fa557506001611013565b60405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610658565b6017548211156110655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610658565b6001600160a01b0384165f9081526010602052604090205460ff161580156110a557506001600160a01b0383165f9081526010602052604090205460ff16155b6110fd5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610658565b6016546001600160a01b03848116911614611147576018548261111f856108a1565b6111299190611d47565b11156111475760405162461bcd60e51b815260040161065890611d5a565b61119a565b6016546001600160a01b03848116911614611196576018548261116e856108a1565b6111789190611d47565b11156111965760405162461bcd60e51b815260040161065890611d5a565b5060015b8015610b45576001600160a01b0384165f9081526005602052604090205460019060ff16806111e057506001600160a01b0384165f9081526005602052604090205460ff165b8061121257506016546001600160a01b0386811691161480159061121257506016546001600160a01b03858116911614155b1561121e57505f611298565b6016546001600160a01b03868116911614801561124957506015546001600160a01b03858116911614155b1561125b57600854600c55600954600d555b6016546001600160a01b03858116911614801561128657506015546001600160a01b03868116911614155b1561129857600a54600c55600b54600d555b6112a48585858461150c565b5050505050565b5f81848411156112ce5760405162461bcd60e51b81526004016106589190611a9f565b505f6112da8486611d9d565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106bc573d5f803e3d5ffd5b5f6006548211156113805760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610658565b5f61138961153a565b9050611395838261155b565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113e2576113e2611d1f565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611439573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145d9190611db0565b8160018151811061147057611470611d1f565b6001600160a01b0392831660209182029290920101526015546114969130911684610ca7565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ce9085905f90869030904290600401611dcb565b5f604051808303815f87803b1580156114e5575f80fd5b505af11580156114f7573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806115195761151961159c565b6115248484846115c9565b80610b4557610b45600e54600c55600f54600d55565b5f805f6115456116ba565b9092509050611554828261155b565b9250505090565b5f61139583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611701565b600c541580156115ac5750600d54155b156115b357565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806115d88761172d565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506116099087611782565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461163790866117c3565b6001600160a01b0389165f9081526002602052604090205561165881611821565b6116628483611867565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116a791815260200190565b60405180910390a3505050505050505050565b6006545f9081906be04ee0ccb27ac646ac0000006116d8828261155b565b8210156116f8575050600654926be04ee0ccb27ac646ac00000092509050565b90939092509050565b5f81836117215760405162461bcd60e51b81526004016106589190611a9f565b505f6112da8486611e3c565b5f805f805f805f805f6117458a600c54600d5461188b565b9250925092505f61175461153a565b90505f805f6117658e8787876118dd565b919e509c509a509598509396509194505050505091939550919395565b5f61139583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ab565b5f806117cf8385611d47565b9050838110156113955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610658565b5f61182a61153a565b90505f6118378383611929565b305f9081526002602052604090205490915061185390826117c3565b305f90815260026020526040902055505050565b6006546118749083611782565b60065560075461188490826117c3565b6007555050565b5f8080806118a4606461189e8989611929565b9061155b565b90505f6118b6606461189e8a89611929565b90505f6118cd826118c78b86611782565b90611782565b9992985090965090945050505050565b5f8080806118eb8886611929565b90505f6118f88887611929565b90505f6119058888611929565b90505f611916826118c78686611782565b939b939a50919850919650505050505050565b5f825f0361193857505f6106d0565b5f6119438385611e5b565b9050826119508583611e3c565b146113955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610658565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b038116811461089e575f80fd5b80356119da816119bb565b919050565b5f60208083850312156119f0575f80fd5b823567ffffffffffffffff80821115611a07575f80fd5b818501915085601f830112611a1a575f80fd5b813581811115611a2c57611a2c6119a7565b8060051b604051601f19603f83011681018181108582111715611a5157611a516119a7565b604052918252848201925083810185019188831115611a6e575f80fd5b938501935b82851015611a9357611a84856119cf565b84529385019392850192611a73565b98975050505050505050565b5f602080835283518060208501525f5b81811015611acb57858101830151858201604001528201611aaf565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611afc575f80fd5b8235611b07816119bb565b946020939093013593505050565b5f805f60608486031215611b27575f80fd5b8335611b32816119bb565b92506020840135611b42816119bb565b929592945050506040919091013590565b5f8083601f840112611b63575f80fd5b50813567ffffffffffffffff811115611b7a575f80fd5b6020830191508360208260051b8501011115611b94575f80fd5b9250929050565b5f8060208385031215611bac575f80fd5b823567ffffffffffffffff811115611bc2575f80fd5b611bce85828601611b53565b90969095509350505050565b5f60208284031215611bea575f80fd5b8135611395816119bb565b803580151581146119da575f80fd5b5f60208284031215611c14575f80fd5b61139582611bf5565b5f60208284031215611c2d575f80fd5b5035919050565b5f805f8060808587031215611c47575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611c75575f80fd5b833567ffffffffffffffff811115611c8b575f80fd5b611c9786828701611b53565b9094509250611caa905060208501611bf5565b90509250925092565b5f8060408385031215611cc4575f80fd5b8235611ccf816119bb565b91506020830135611cdf816119bb565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106d0576106d0611d33565b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b818103818111156106d0576106d0611d33565b5f60208284031215611dc0575f80fd5b8151611395816119bb565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e1b5784516001600160a01b031683529383019391830191600101611df6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e5657634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106d0576106d0611d3356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a9489a535854dc5c197d05c84b591b78274d3acb95d12312aa4bbde0962670c364736f6c63430008160033
Deployed Bytecode Sourcemap
4340:14320:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13262:169;;;;;;;;;;-1:-1:-1;13262:169:0;;;;;:::i;:::-;;:::i;:::-;;6946:83;;;;;;;;;;-1:-1:-1;7016:5:0;;;;;;;;;;;;-1:-1:-1;;;7016:5:0;;;;6946:83;;;;;;;:::i;:::-;;;;;;;;7871:193;;;;;;;;;;-1:-1:-1;7871:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;7871:193:0;2420:187:1;5760:41:0;;;;;;;;;;-1:-1:-1;5760:41:0;;;;-1:-1:-1;;;;;5760:41:0;;;;;;-1:-1:-1;;;;;2802:32:1;;;2784:51;;2772:2;2757:18;5760:41:0;2612:229:1;7223:95:0;;;;;;;;;;-1:-1:-1;4896:18:0;7223:95;;;2992:25:1;;;2980:2;2965:18;7223:95:0;2846:177:1;8072:446:0;;;;;;;;;;-1:-1:-1;8072:446:0;;;;;:::i;:::-;;:::i;18468:189::-;;;;;;;;;;-1:-1:-1;18468:189:0;;;;;:::i;:::-;;:::i;6064:55::-;;;;;;;;;;;;;;;;7132:83;;;;;;;;;;-1:-1:-1;7132:83:0;;4565:2;4445:36:1;;4433:2;4418:18;7132:83:0;4303:184:1;5808:28:0;;;;;;;;;;-1:-1:-1;5808:28:0;;;;-1:-1:-1;;;;;5808:28:0;;;13439:92;;;;;;;;;;-1:-1:-1;13439:92:0;;;;;:::i;:::-;;:::i;17624:101::-;;;;;;;;;;-1:-1:-1;17624:101:0;;;;;:::i;:::-;;:::i;12978:276::-;;;;;;;;;;;;;:::i;7326:138::-;;;;;;;;;;-1:-1:-1;7326:138:0;;;;;:::i;:::-;;:::i;1798:148::-;;;;;;;;;;;;;:::i;17764:108::-;;;;;;;;;;-1:-1:-1;17764:108:0;;;;;:::i;:::-;;:::i;5950:49::-;;;;;;;;;;;;;;;;5437:42;;;;;;;;;;-1:-1:-1;5437:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;1584:79;;;;;;;;;;-1:-1:-1;1622:7:0;1649:6;-1:-1:-1;;;;;1649:6:0;1584:79;;6006:51;;;;;;;;;;;;;;;;7037:87;;;;;;;;;;-1:-1:-1;7109:7:0;;;;;;;;;;;;-1:-1:-1;;;7109:7:0;;;;7037:87;;17410:162;;;;;;;;;;-1:-1:-1;17410:162:0;;;;;:::i;:::-;;:::i;17024:334::-;;;;;;;;;;-1:-1:-1;17024:334:0;;;;;:::i;:::-;;:::i;7472:199::-;;;;;;;;;;-1:-1:-1;7472:199:0;;;;;:::i;:::-;;:::i;5394:36::-;;;;;;;;;;-1:-1:-1;5394:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18271:189;;;;;;;;;;-1:-1:-1;18271:189:0;;;;;:::i;:::-;;:::i;12693:277::-;;;;;;;;;;;;;:::i;18003:260::-;;;;;;;;;;-1:-1:-1;18003:260:0;;;;;:::i;:::-;;:::i;7679:184::-;;;;;;;;;;-1:-1:-1;7679:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7828:18:0;;;7796:7;7828:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7679:184;17880:115;;;;;;;;;;-1:-1:-1;17880:115:0;;;;;:::i;:::-;;:::i;12581:104::-;;;;;;;;;;-1:-1:-1;12581:104:0;;;;;:::i;:::-;;:::i;1954:281::-;;;;;;;;;;-1:-1:-1;1954:281:0;;;;;:::i;:::-;;:::i;13262:169::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;;;;;;;;;13338:9:::1;13333:91;13357:5;:12;13353:1;:16;13333:91;;;13408:4;13391;:14;13396:5;13402:1;13396:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13391:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13391:14:0;:21;;-1:-1:-1;;13391:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13371:3:0::1;13333:91;;;;13262:169:::0;:::o;7871:193::-;7973:4;7995:39;432:10;8018:7;8027:6;7995:8;:39::i;:::-;-1:-1:-1;8052:4:0;7871:193;;;;;:::o;8072:446::-;8204:4;8221:36;8231:6;8239:9;8250:6;8221:9;:36::i;:::-;8268:220;8291:6;432:10;8339:138;8395:6;8339:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8339:19:0;;;;;;:11;:19;;;;;;;;432:10;8339:33;;;;;;;;;;:37;:138::i;:::-;8268:8;:220::i;:::-;-1:-1:-1;8506:4:0;8072:446;;;;;:::o;18468:189::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;18554:9:::1;18549:101;18569:19:::0;;::::1;18549:101;;;18617:8;:21;18626:8;;18635:1;18626:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18617:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18617:21:0;18610:28;;-1:-1:-1;;18610:28:0::1;::::0;;;18590:3:::1;18549:101;;;;18468:189:::0;;:::o;13439:92::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13503:12:0::1;13518:5;13503:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13503:20:0::1;::::0;;13439:92::o;17624:101::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;17691:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17691:26:0::1;-1:-1:-1::0;;;;17691:26:0;;::::1;::::0;;;::::1;::::0;;17624:101::o;12978:276::-;13058:19;;-1:-1:-1;;;;;13058:19:0;432:10;-1:-1:-1;;;;;13042:35:0;;:89;;;-1:-1:-1;13114:17:0;;-1:-1:-1;;;;;13114:17:0;432:10;-1:-1:-1;;;;;13098:33:0;;13042:89;13020:122;;;;;;13182:21;13214:32;13182:21;13214:12;:32::i;:::-;13009:245;12978:276::o;7326:138::-;-1:-1:-1;;;;;7439:16:0;;7392:7;7439:16;;;:7;:16;;;;;;7419:37;;:19;:37::i;1798:148::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;1905:1:::1;1889:6:::0;;1868:40:::1;::::0;-1:-1:-1;;;;;1889:6:0;;::::1;::::0;1868:40:::1;::::0;1905:1;;1868:40:::1;1936:1;1919:19:::0;;-1:-1:-1;;;;;;1919:19:0::1;::::0;;1798:148::o;17764:108::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;17838:12:::1;:26:::0;17764:108::o;17410:162::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;17524:19:::1;:40:::0;17410:162::o;17024:334::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;17201:14:::1;:30:::0;;;;17242:15:::1;:32:::0;;;;17285:12:::1;:26:::0;17322:13:::1;:28:::0;17024:334::o;7472:199::-;7577:4;7599:42;432:10;7623:9;7634:6;7599:9;:42::i;18271:189::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;18357:9:::1;18352:101;18372:19:::0;;::::1;18352:101;;;18437:4;18413:8;:21;18422:8;;18431:1;18422:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18413:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18413:21:0;:28;;-1:-1:-1;;18413:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18393:3:0::1;18352:101;;12693:277:::0;12773:19;;-1:-1:-1;;;;;12773:19:0;432:10;-1:-1:-1;;;;;12757:35:0;;:89;;;-1:-1:-1;12829:17:0;;-1:-1:-1;;;;;12829:17:0;432:10;-1:-1:-1;;;;;12813:33:0;;12757:89;12735:122;;;;;;12868:23;12894:24;12912:4;12894:9;:24::i;:::-;12868:50;;12929:33;12946:15;12929:16;:33::i;18003:260::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;18146:9:::1;18141:115;18161:19:::0;;::::1;18141:115;;;18236:8;18202:18;:31;18221:8;;18230:1;18221:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18202:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18202:31:0;:42;;-1:-1:-1;;18202:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18182:3:0::1;18141:115;;;;18003:260:::0;;;:::o;17880:115::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;17957:14:::1;:30:::0;17880:115::o;12581:104::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;12651:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12651:26:0::1;-1:-1:-1::0;;;;12651:26:0;;::::1;::::0;;;::::1;::::0;;12581:104::o;1954:281::-;1711:6;;-1:-1:-1;;;;;1711:6:0;432:10;1711:22;1703:67;;;;-1:-1:-1;;;1703:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2057:22:0;::::1;2035:110;;;::::0;-1:-1:-1;;;2035:110:0;;7475:2:1;2035:110:0::1;::::0;::::1;7457:21:1::0;7514:2;7494:18;;;7487:30;7553:34;7533:18;;;7526:62;-1:-1:-1;;;7604:18:1;;;7597:36;7650:19;;2035:110:0::1;7273:402:1::0;2035:110:0::1;2182:6;::::0;;2161:38:::1;::::0;-1:-1:-1;;;;;2161:38:0;;::::1;::::0;2182:6;::::1;::::0;2161:38:::1;::::0;::::1;2210:6;:17:::0;;-1:-1:-1;;;;;;2210:17:0::1;-1:-1:-1::0;;;;;2210:17:0;;;::::1;::::0;;;::::1;::::0;;1954:281::o;9209:369::-;-1:-1:-1;;;;;9336:19:0;;9328:68;;;;-1:-1:-1;;;9328:68:0;;7882:2:1;9328:68:0;;;7864:21:1;7921:2;7901:18;;;7894:30;7960:34;7940:18;;;7933:62;-1:-1:-1;;;8011:18:1;;;8004:34;8055:19;;9328:68:0;7680:400:1;9328:68:0;-1:-1:-1;;;;;9415:21:0;;9407:68;;;;-1:-1:-1;;;9407:68:0;;8287:2:1;9407:68:0;;;8269:21:1;8326:2;8306:18;;;8299:30;8365:34;8345:18;;;8338:62;-1:-1:-1;;;8416:18:1;;;8409:32;8458:19;;9407:68:0;8085:398:1;9407:68:0;-1:-1:-1;;;;;9486:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9538:32;;2992:25:1;;;9538:32:0;;2965:18:1;9538:32:0;;;;;;;9209:369;;;:::o;9586:2389::-;-1:-1:-1;;;;;9708:18:0;;9700:68;;;;-1:-1:-1;;;9700:68:0;;8690:2:1;9700:68:0;;;8672:21:1;8729:2;8709:18;;;8702:30;8768:34;8748:18;;;8741:62;-1:-1:-1;;;8819:18:1;;;8812:35;8864:19;;9700:68:0;8488:401:1;9700:68:0;-1:-1:-1;;;;;9787:16:0;;9779:64;;;;-1:-1:-1;;;9779:64:0;;9096:2:1;9779:64:0;;;9078:21:1;9135:2;9115:18;;;9108:30;9174:34;9154:18;;;9147:62;-1:-1:-1;;;9225:18:1;;;9218:33;9268:19;;9779:64:0;8894:399:1;9779:64:0;9871:1;9862:6;:10;9854:64;;;;-1:-1:-1;;;9854:64:0;;9500:2:1;9854:64:0;;;9482:21:1;9539:2;9519:18;;;9512:30;9578:34;9558:18;;;9551:62;-1:-1:-1;;;9629:18:1;;;9622:39;9678:19;;9854:64:0;9298:405:1;9854:64:0;9931:18;1649:6;;-1:-1:-1;;;;;9988:15:0;;;1649:6;;9988:15;;;;:32;;-1:-1:-1;1622:7:0;1649:6;-1:-1:-1;;;;;10007:13:0;;;1649:6;;10007:13;;9988:32;:51;;;;-1:-1:-1;;;;;;10025:14:0;;;;;;:8;:14;;;;;;;;10024:15;9988:51;:68;;;;-1:-1:-1;;;;;;10044:12:0;;;;;;:8;:12;;;;;;;;10043:13;9988:68;9970:1121;;;10121:11;;-1:-1:-1;;;10121:11:0;;;;;:29;;-1:-1:-1;;;;;;10136:14:0;;;;;;:8;:14;;;;;;;;10121:29;10117:244;;;-1:-1:-1;10187:4:0;10117:244;;;10232:113;;-1:-1:-1;;;10232:113:0;;9910:2:1;10232:113:0;;;9892:21:1;9949:2;9929:18;;;9922:30;9988:34;9968:18;;;9961:62;10059:33;10039:18;;;10032:61;10110:19;;10232:113:0;9708:427:1;10117:244:0;10395:12;;10385:6;:22;;10377:63;;;;-1:-1:-1;;;10377:63:0;;10342:2:1;10377:63:0;;;10324:21:1;10381:2;10361:18;;;10354:30;10420;10400:18;;;10393:58;10468:18;;10377:63:0;10140:352:1;10377:63:0;-1:-1:-1;;;;;10482:10:0;;;;;;:4;:10;;;;;;;;10481:11;:24;;;;-1:-1:-1;;;;;;10497:8:0;;;;;;:4;:8;;;;;;;;10496:9;10481:24;10455:121;;;;-1:-1:-1;;;10455:121:0;;10699:2:1;10455:121:0;;;10681:21:1;10738:2;10718:18;;;10711:30;10777:34;10757:18;;;10750:62;-1:-1:-1;;;10828:18:1;;;10821:33;10871:19;;10455:121:0;10497:399:1;10455:121:0;10603:13;;-1:-1:-1;;;;;10597:19:0;;;10603:13;;10597:19;10593:209;;10693:14;;10683:6;10667:13;10677:2;10667:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10637:149;;;;-1:-1:-1;;;10637:149:0;;;;;;;:::i;:::-;9970:1121;;;10846:13;;-1:-1:-1;;;;;10840:19:0;;;10846:13;;10840:19;10836:209;;10936:14;;10926:6;10910:13;10920:2;10910:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10880:149;;;;-1:-1:-1;;;10880:149:0;;;;;;;:::i;:::-;-1:-1:-1;11075:4:0;9970:1121;11107:13;11103:865;;;-1:-1:-1;;;;;11228:24:0;;11137:12;11228:24;;;:18;:24;;;;;;11152:4;;11228:24;;;:50;;-1:-1:-1;;;;;;11256:22:0;;;;;;:18;:22;;;;;;;;11228:50;11227:119;;;-1:-1:-1;11309:13:0;;-1:-1:-1;;;;;11301:21:0;;;11309:13;;11301:21;;;;:44;;-1:-1:-1;11332:13:0;;-1:-1:-1;;;;;11326:19:0;;;11332:13;;11326:19;;11301:44;11205:694;;;-1:-1:-1;11391:5:0;11205:694;;;11486:13;;-1:-1:-1;;;;;11478:21:0;;;11486:13;;11478:21;:55;;;;-1:-1:-1;11517:15:0;;-1:-1:-1;;;;;11503:30:0;;;11517:15;;11503:30;;11478:55;11474:175;;;11570:14;;11558:9;:26;11617:12;;11607:7;:22;11474:175;11717:13;;-1:-1:-1;;;;;11711:19:0;;;11717:13;;11711:19;:55;;;;-1:-1:-1;11750:15:0;;-1:-1:-1;;;;;11734:32:0;;;11750:15;;11734:32;;11711:55;11707:177;;;11803:15;;11791:9;:27;11851:13;;11841:7;:23;11707:177;11915:41;11930:4;11936:2;11940:6;11948:7;11915:14;:41::i;:::-;11122:846;9689:2286;9586:2389;;;:::o;2597:224::-;2717:7;2753:12;2745:6;;;;2737:29;;;;-1:-1:-1;;;2737:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2777:9:0;2789:5;2793:1;2789;:5;:::i;:::-;2777:17;2597:224;-1:-1:-1;;;;;2597:224:0:o;12474:99::-;12531:17;;:34;;-1:-1:-1;;;;;12531:17:0;;;;:34;;;;;12558:6;;12531:17;:34;:17;:34;12558:6;12531:17;:34;;;;;;;;;;;;;;;;;;;8526:323;8621:7;8679;;8668;:18;;8646:110;;;;-1:-1:-1;;;8646:110:0;;11902:2:1;8646:110:0;;;11884:21:1;11941:2;11921:18;;;11914:30;11980:34;11960:18;;;11953:62;-1:-1:-1;;;12031:18:1;;;12024:40;12081:19;;8646:110:0;11700:406:1;8646:110:0;8767:19;8789:10;:8;:10::i;:::-;8767:32;-1:-1:-1;8817:24:0;:7;8767:32;8817:11;:24::i;:::-;8810:31;8526:323;-1:-1:-1;;;8526:323:0:o;11983:483::-;6215:6;:13;;-1:-1:-1;;;;6215:13:0;-1:-1:-1;;;6215:13:0;;;12085:16:::1;::::0;;12099:1:::1;12085:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12085:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12085:16:0::1;12061:40;;12130:4;12112;12117:1;12112:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12112:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12156:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12156:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12112:7;;12156:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12146:4;12151:1;12146:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12146:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12221:15:::1;::::0;12189:62:::1;::::0;12206:4:::1;::::0;12221:15:::1;12239:11:::0;12189:8:::1;:62::i;:::-;12262:15;::::0;:196:::1;::::0;-1:-1:-1;;;12262:196:0;;-1:-1:-1;;;;;12262:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12343:11;;12262:15:::1;::::0;12385:4;;12412::::1;::::0;12432:15:::1;::::0;12262:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6251:6:0;:14;;-1:-1:-1;;;;6251:14:0;;;-1:-1:-1;;;;11983:483:0:o;13539:282::-;13695:7;13690:28;;13704:14;:12;:14::i;:::-;13729:44;13747:6;13755:9;13766:6;13729:17;:44::i;:::-;13789:7;13784:29;;13798:15;9140:17;;9128:9;:29;9178:15;;9168:7;:25;9084:117;16587:164;16629:7;16650:15;16667;16686:19;:17;:19::i;:::-;16649:56;;-1:-1:-1;16649:56:0;-1:-1:-1;16723:20:0;16649:56;;16723:11;:20::i;:::-;16716:27;;;;16587:164;:::o;3083:132::-;3141:7;3168:39;3172:1;3175;3168:39;;;;;;;;;;;;;;;;;:3;:39::i;8857:219::-;8904:9;;:14;:30;;;;-1:-1:-1;8922:7:0;;:12;8904:30;8900:43;;;8857:219::o;8900:43::-;8975:9;;;8955:17;:29;9013:7;;;8995:15;:25;-1:-1:-1;9033:13:0;;;;9057:11;8857:219::o;13829:610::-;13976:15;14006:23;14044:12;14071:23;14109:12;14136:13;14163:19;14174:7;14163:10;:19::i;:::-;-1:-1:-1;;;;;14211:15:0;;;;;;:7;:15;;;;;;13961:221;;-1:-1:-1;13961:221:0;;-1:-1:-1;13961:221:0;;-1:-1:-1;13961:221:0;-1:-1:-1;13961:221:0;-1:-1:-1;13961:221:0;-1:-1:-1;14211:28:0;;13961:221;14211:19;:28::i;:::-;-1:-1:-1;;;;;14193:15:0;;;;;;;:7;:15;;;;;;:46;;;;14271:18;;;;;;;:39;;14294:15;14271:22;:39::i;:::-;-1:-1:-1;;;;;14250:18:0;;;;;;:7;:18;;;;;:60;14321:16;14331:5;14321:9;:16::i;:::-;14348:23;14360:4;14366;14348:11;:23::i;:::-;14404:9;-1:-1:-1;;;;;14387:44:0;14396:6;-1:-1:-1;;;;;14387:44:0;;14415:15;14387:44;;;;2992:25:1;;2980:2;2965:18;;2846:177;14387:44:0;;;;;;;;13950:489;;;;;;13829:610;;;:::o;16759:257::-;16857:7;;16810;;;;4896:18;16925:20;16857:7;4896:18;16925:11;:20::i;:::-;16915:7;:30;16911:61;;;-1:-1:-1;;16955:7:0;;;4896:18;;-1:-1:-1;16759:257:0;-1:-1:-1;16759:257:0:o;16911:61::-;16991:7;;17000;;-1:-1:-1;16759:257:0;-1:-1:-1;16759:257:0:o;3223:223::-;3343:7;3378:12;3371:5;3363:28;;;;-1:-1:-1;;;3363:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3402:9:0;3414:5;3418:1;3414;:5;:::i;14858:702::-;14958:7;14980;15002;15024;15046;15068;15104:23;15129:12;15143:13;15160:90;15186:7;15208:9;;15232:7;;15160:11;:90::i;:::-;15103:147;;;;;;15261:19;15283:10;:8;:10::i;:::-;15261:32;;15305:15;15322:23;15347:12;15363:109;15389:7;15411:4;15430:5;15450:11;15363;:109::i;:::-;15304:168;;-1:-1:-1;15304:168:0;-1:-1:-1;15304:168:0;-1:-1:-1;15523:15:0;;-1:-1:-1;15540:4:0;;-1:-1:-1;15546:5:0;;-1:-1:-1;;;;;14858:702:0;;;;;;;:::o;2453:136::-;2511:7;2538:43;2542:1;2545;2538:43;;;;;;;;;;;;;;;;;:3;:43::i;2266:179::-;2324:7;;2356:5;2360:1;2356;:5;:::i;:::-;2344:17;;2385:1;2380;:6;;2372:46;;;;-1:-1:-1;;;2372:46:0;;13776:2:1;2372:46:0;;;13758:21:1;13815:2;13795:18;;;13788:30;13854:29;13834:18;;;13827:57;13901:18;;2372:46:0;13574:351:1;14447:211:0;14500:19;14522:10;:8;:10::i;:::-;14500:32;-1:-1:-1;14543:13:0;14559:22;:5;14500:32;14559:9;:22::i;:::-;14633:4;14617:22;;;;:7;:22;;;;;;14543:38;;-1:-1:-1;14617:33:0;;14543:38;14617:26;:33::i;:::-;14608:4;14592:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14447:211:0:o;14666:147::-;14744:7;;:17;;14756:4;14744:11;:17::i;:::-;14734:7;:27;14785:10;;:20;;14800:4;14785:14;:20::i;:::-;14772:10;:33;-1:-1:-1;;14666:147:0:o;15568:469::-;15737:7;;;;15831:30;15857:3;15831:21;:7;15843:8;15831:11;:21::i;:::-;:25;;:30::i;:::-;15816:45;-1:-1:-1;15872:13:0;15888:28;15912:3;15888:19;:7;15900:6;15888:11;:19::i;:28::-;15872:44;-1:-1:-1;15927:23:0;15953:28;15872:44;15953:17;:7;15965:4;15953:11;:17::i;:::-;:21;;:28::i;:::-;15927:54;16017:4;;-1:-1:-1;16023:5:0;;-1:-1:-1;15568:469:0;;-1:-1:-1;;;;;15568:469:0:o;16045:534::-;16239:7;;;;16336:24;:7;16348:11;16336;:24::i;:::-;16318:42;-1:-1:-1;16371:12:0;16386:21;:4;16395:11;16386:8;:21::i;:::-;16371:36;-1:-1:-1;16418:13:0;16434:22;:5;16444:11;16434:9;:22::i;:::-;16418:38;-1:-1:-1;16467:23:0;16493:28;16418:38;16493:17;:7;16505:4;16493:11;:17::i;:28::-;16540:7;;;;-1:-1:-1;16566:4:0;;-1:-1:-1;16045:534:0;;-1:-1:-1;;;;;;;16045:534:0:o;2829:246::-;2887:7;2911:1;2916;2911:6;2907:47;;-1:-1:-1;2941:1:0;2934:8;;2907:47;2964:9;2976:5;2980:1;2976;:5;:::i;:::-;2964:17;-1:-1:-1;3009:1:0;3000:5;3004:1;2964:17;3000:5;:::i;:::-;:10;2992:56;;;;-1:-1:-1;;;2992:56:0;;14305:2:1;2992:56:0;;;14287:21:1;14344:2;14324:18;;;14317:30;14383:34;14363:18;;;14356:62;-1:-1:-1;;;14434:18:1;;;14427:31;14475:19;;2992:56:0;14103:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;3028:456::-;3105:6;3113;3121;3174:2;3162:9;3153:7;3149:23;3145:32;3142:52;;;3190:1;3187;3180:12;3142:52;3229:9;3216:23;3248:31;3273:5;3248:31;:::i;:::-;3298:5;-1:-1:-1;3355:2:1;3340:18;;3327:32;3368:33;3327:32;3368:33;:::i;:::-;3028:456;;3420:7;;-1:-1:-1;;;3474:2:1;3459:18;;;;3446:32;;3028:456::o;3489:367::-;3552:8;3562:6;3616:3;3609:4;3601:6;3597:17;3593:27;3583:55;;3634:1;3631;3624:12;3583:55;-1:-1:-1;3657:20:1;;3700:18;3689:30;;3686:50;;;3732:1;3729;3722:12;3686:50;3769:4;3761:6;3757:17;3745:29;;3829:3;3822:4;3812:6;3809:1;3805:14;3797:6;3793:27;3789:38;3786:47;3783:67;;;3846:1;3843;3836:12;3783:67;3489:367;;;;;:::o;3861:437::-;3947:6;3955;4008:2;3996:9;3987:7;3983:23;3979:32;3976:52;;;4024:1;4021;4014:12;3976:52;4064:9;4051:23;4097:18;4089:6;4086:30;4083:50;;;4129:1;4126;4119:12;4083:50;4168:70;4230:7;4221:6;4210:9;4206:22;4168:70;:::i;:::-;4257:8;;4142:96;;-1:-1:-1;3861:437:1;-1:-1:-1;;;;3861:437:1:o;4700:247::-;4759:6;4812:2;4800:9;4791:7;4787:23;4783:32;4780:52;;;4828:1;4825;4818:12;4780:52;4867:9;4854:23;4886:31;4911:5;4886:31;:::i;4952:160::-;5017:20;;5073:13;;5066:21;5056:32;;5046:60;;5102:1;5099;5092:12;5117:180;5173:6;5226:2;5214:9;5205:7;5201:23;5197:32;5194:52;;;5242:1;5239;5232:12;5194:52;5265:26;5281:9;5265:26;:::i;5302:180::-;5361:6;5414:2;5402:9;5393:7;5389:23;5385:32;5382:52;;;5430:1;5427;5420:12;5382:52;-1:-1:-1;5453:23:1;;5302:180;-1:-1:-1;5302:180:1:o;5487:385::-;5573:6;5581;5589;5597;5650:3;5638:9;5629:7;5625:23;5621:33;5618:53;;;5667:1;5664;5657:12;5618:53;-1:-1:-1;;5690:23:1;;;5760:2;5745:18;;5732:32;;-1:-1:-1;5811:2:1;5796:18;;5783:32;;5862:2;5847:18;5834:32;;-1:-1:-1;5487:385:1;-1:-1:-1;5487:385:1:o;5877:505::-;5969:6;5977;5985;6038:2;6026:9;6017:7;6013:23;6009:32;6006:52;;;6054:1;6051;6044:12;6006:52;6094:9;6081:23;6127:18;6119:6;6116:30;6113:50;;;6159:1;6156;6149:12;6113:50;6198:70;6260:7;6251:6;6240:9;6236:22;6198:70;:::i;:::-;6287:8;;-1:-1:-1;6172:96:1;-1:-1:-1;6341:35:1;;-1:-1:-1;6372:2:1;6357:18;;6341:35;:::i;:::-;6331:45;;5877:505;;;;;:::o;6387:388::-;6455:6;6463;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;6571:9;6558:23;6590:31;6615:5;6590:31;:::i;:::-;6640:5;-1:-1:-1;6697:2:1;6682:18;;6669:32;6710:33;6669:32;6710:33;:::i;:::-;6762:7;6752:17;;;6387:388;;;;;:::o;6780:356::-;6982:2;6964:21;;;7001:18;;;6994:30;7060:34;7055:2;7040:18;;7033:62;7127:2;7112:18;;6780:356::o;7141:127::-;7202:10;7197:3;7193:20;7190:1;7183:31;7233:4;7230:1;7223:15;7257:4;7254:1;7247:15;10901:127;10962:10;10957:3;10953:20;10950:1;10943:31;10993:4;10990:1;10983:15;11017:4;11014:1;11007:15;11033:125;11098:9;;;11119:10;;;11116:36;;;11132:18;;:::i;11163:399::-;11365:2;11347:21;;;11404:2;11384:18;;;11377:30;11443:34;11438:2;11423:18;;11416:62;-1:-1:-1;;;11509:2:1;11494:18;;11487:33;11552:3;11537:19;;11163:399::o;11567:128::-;11634:9;;;11655:11;;;11652:37;;;11669:18;;:::i;12111:251::-;12181:6;12234:2;12222:9;12213:7;12209:23;12205:32;12202:52;;;12250:1;12247;12240:12;12202:52;12282:9;12276:16;12301:31;12326:5;12301:31;:::i;12367:980::-;12629:4;12677:3;12666:9;12662:19;12708:6;12697:9;12690:25;12734:2;12772:6;12767:2;12756:9;12752:18;12745:34;12815:3;12810:2;12799:9;12795:18;12788:31;12839:6;12874;12868:13;12905:6;12897;12890:22;12943:3;12932:9;12928:19;12921:26;;12982:2;12974:6;12970:15;12956:29;;13003:1;13013:195;13027:6;13024:1;13021:13;13013:195;;;13092:13;;-1:-1:-1;;;;;13088:39:1;13076:52;;13183:15;;;;13148:12;;;;13124:1;13042:9;13013:195;;;-1:-1:-1;;;;;;;13264:32:1;;;;13259:2;13244:18;;13237:60;-1:-1:-1;;;13328:3:1;13313:19;13306:35;13225:3;12367:980;-1:-1:-1;;;12367:980:1:o;13352:217::-;13392:1;13418;13408:132;;13462:10;13457:3;13453:20;13450:1;13443:31;13497:4;13494:1;13487:15;13525:4;13522:1;13515:15;13408:132;-1:-1:-1;13554:9:1;;13352:217::o;13930:168::-;14003:9;;;14034;;14051:15;;;14045:22;;14031:37;14021:71;;14072:18;;:::i
Swarm Source
ipfs://a9489a535854dc5c197d05c84b591b78274d3acb95d12312aa4bbde0962670c3
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.