ERC-20
Overview
Max Total Supply
30,000,000,000,000 unemployment
Holders
82
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
19,181,533,069.688024116 unemploymentValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DogeDiploma
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-21 */ // SPDX-License-Identifier: Unlicensed /* You Fucking Did It, Graduate 👨🎓 https://t.me/DogeDiplomaOfficial https://dogediploma.com/ */ pragma solidity ^0.8.7; 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 DogeDiploma is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Doge Diploma"; string private constant _symbol = "unemployment"; uint8 private constant _decimals = 9; 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 = 30000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 8; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 8; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress = payable(0x99eb57693B9Eb2e75a7b54563368F08EE8b01968); address payable private _marketingAddress = payable(0x99eb57693B9Eb2e75a7b54563368F08EE8b01968); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 600000000000 * 10**9; uint256 public _maxWalletSize = 600000000000 * 10**9; uint256 public _swapTokensAtAmount = 300000000 * 10**9; 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } 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)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } 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 setTrading(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 _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; } } }
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":[],"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":[],"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":[],"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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[],"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
60806040526200001c69065a4da25d3016c00000600019620003f1565b6200002a90600019620003cb565b600655600060088181556009819055600a829055600b819055600c829055600d819055600e91909155600f55601080546001600160a01b03199081167399eb57693b9eb2e75a7b54563368f08ee8b019689081179092556011805490911690911790556013805462ffffff60a01b1916600160b01b179055682086ac3510526000006014819055601555670429d069189e0000601655348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200018657600080fd5b505afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c1919062000399565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020a57600080fd5b505afa1580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000245919062000399565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028e57600080fd5b505af1158015620002a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c9919062000399565b601380546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601054851684528284208054821683179055601154909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69065a4da25d3016c000006040516200038a91815260200190565b60405180910390a35062000414565b600060208284031215620003ac57600080fd5b81516001600160a01b0381168114620003c457600080fd5b9392505050565b600082821015620003ec57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200040f57634e487b7160e01b600052601260045260246000fd5b500690565b611ad980620004246000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610479578063dd62ed3e14610499578063ea1644d5146104df578063f2fde38b146104ff57600080fd5b8063a2a957bb14610424578063a9059cbb14610444578063c3c8cd801461046457600080fd5b80637d1db4a5146103655780638da5cb5b1461037b5780638f70ccf7146103995780638f9a55c0146103b957806395d89b41146103cf57806398a5c3151461040457600080fd5b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec146102fb57806370a0823114610310578063715018a61461033057806374010ece1461034557600080fd5b8063313ce5671461029d57806349bd5a5e146102b95780636d8aa8f8146102d957600080fd5b806306fdde0314610191578063095ea7b3146101d85780631694505e1461020857806318160ddd1461024057806323b872dd146102675780632fd689e31461028757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600c81526b446f6765204469706c6f6d6160a01b60208201525b6040516101cf91906118b4565b60405180910390f35b3480156101e457600080fd5b506101f86101f336600461179e565b61051f565b60405190151581526020016101cf565b34801561021457600080fd5b50601254610228906001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561024c57600080fd5b5069065a4da25d3016c000005b6040519081526020016101cf565b34801561027357600080fd5b506101f861028236600461175d565b610536565b34801561029357600080fd5b5061025960165481565b3480156102a957600080fd5b50604051600981526020016101cf565b3480156102c557600080fd5b50601354610228906001600160a01b031681565b3480156102e557600080fd5b506102f96102f436600461184e565b61059f565b005b34801561030757600080fd5b506102f96105f0565b34801561031c57600080fd5b5061025961032b3660046116ea565b61063b565b34801561033c57600080fd5b506102f961065d565b34801561035157600080fd5b506102f9610360366004611869565b6106d1565b34801561037157600080fd5b5061025960145481565b34801561038757600080fd5b506000546001600160a01b0316610228565b3480156103a557600080fd5b506102f96103b436600461184e565b610700565b3480156103c557600080fd5b5061025960155481565b3480156103db57600080fd5b5060408051808201909152600c81526b1d5b995b5c1b1bde5b595b9d60a21b60208201526101c2565b34801561041057600080fd5b506102f961041f366004611869565b610748565b34801561043057600080fd5b506102f961043f366004611882565b610777565b34801561045057600080fd5b506101f861045f36600461179e565b6107b5565b34801561047057600080fd5b506102f96107c2565b34801561048557600080fd5b506102f96104943660046117ca565b610816565b3480156104a557600080fd5b506102596104b4366004611724565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104eb57600080fd5b506102f96104fa366004611869565b6108b7565b34801561050b57600080fd5b506102f961051a3660046116ea565b6108e6565b600061052c3384846109d0565b5060015b92915050565b6000610543848484610af4565b610595843361059085604051806060016040528060288152602001611a7c602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f96565b6109d0565b5060019392505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611909565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061062557506011546001600160a01b0316336001600160a01b0316145b61062e57600080fd5b4761063881610fd0565b50565b6001600160a01b0381166000908152600260205260408120546105309061100e565b6000546001600160a01b031633146106875760405162461bcd60e51b81526004016105c990611909565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fb5760405162461bcd60e51b81526004016105c990611909565b601455565b6000546001600160a01b0316331461072a5760405162461bcd60e51b81526004016105c990611909565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105c990611909565b601655565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016105c990611909565b600893909355600a91909155600955600b55565b600061052c338484610af4565b6010546001600160a01b0316336001600160a01b031614806107f757506011546001600160a01b0316336001600160a01b0316145b61080057600080fd5b600061080b3061063b565b905061063881611092565b6000546001600160a01b031633146108405760405162461bcd60e51b81526004016105c990611909565b60005b828110156108b157816005600086868581811061086257610862611a50565b905060200201602081019061087791906116ea565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108a981611a1f565b915050610843565b50505050565b6000546001600160a01b031633146108e15760405162461bcd60e51b81526004016105c990611909565b601555565b6000546001600160a01b031633146109105760405162461bcd60e51b81526004016105c990611909565b6001600160a01b0381166109755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610a935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b60008111610c1c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c9565b6000546001600160a01b03848116911614801590610c4857506000546001600160a01b03838116911614155b15610e8f57601354600160a01b900460ff16610ce1576000546001600160a01b03848116911614610ce15760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105c9565b601454811115610d335760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105c9565b6013546001600160a01b03838116911614610db85760155481610d558461063b565b610d5f91906119af565b10610db85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105c9565b6000610dc33061063b565b601654601454919250821015908210610ddc5760145491505b808015610df35750601354600160a81b900460ff16155b8015610e0d57506013546001600160a01b03868116911614155b8015610e225750601354600160b01b900460ff165b8015610e4757506001600160a01b03851660009081526005602052604090205460ff16155b8015610e6c57506001600160a01b03841660009081526005602052604090205460ff16155b15610e8c57610e7a82611092565b478015610e8a57610e8a47610fd0565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ed157506001600160a01b03831660009081526005602052604090205460ff165b80610f0357506013546001600160a01b03858116911614801590610f0357506013546001600160a01b03848116911614155b15610f1057506000610f8a565b6013546001600160a01b038581169116148015610f3b57506012546001600160a01b03848116911614155b15610f4d57600854600c55600954600d555b6013546001600160a01b038481169116148015610f7857506012546001600160a01b03858116911614155b15610f8a57600a54600c55600b54600d555b6108b18484848461121b565b60008184841115610fba5760405162461bcd60e51b81526004016105c991906118b4565b506000610fc78486611a08565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561100a573d6000803e3d6000fd5b5050565b60006006548211156110755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c9565b600061107f611249565b905061108b838261126c565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110da576110da611a50565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111669190611707565b8160018151811061117957611179611a50565b6001600160a01b03928316602091820292909201015260125461119f91309116846109d0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111d890859060009086903090429060040161193e565b600060405180830381600087803b1580156111f257600080fd5b505af1158015611206573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b80611228576112286112ae565b6112338484846112dc565b806108b1576108b1600e54600c55600f54600d55565b60008060006112566113d3565b9092509050611265828261126c565b9250505090565b600061108b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611417565b600c541580156112be5750600d54155b156112c557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112ee87611445565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061132090876114a2565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461134f90866114e4565b6001600160a01b03891660009081526002602052604090205561137181611543565b61137b848361158d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113c091815260200190565b60405180910390a3505050505050505050565b600654600090819069065a4da25d3016c000006113f0828261126c565b82101561140e5750506006549269065a4da25d3016c0000092509050565b90939092509050565b600081836114385760405162461bcd60e51b81526004016105c991906118b4565b506000610fc784866119c7565b60008060008060008060008060006114628a600c54600d546115b1565b9250925092506000611472611249565b905060008060006114858e878787611606565b919e509c509a509598509396509194505050505091939550919395565b600061108b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b6000806114f183856119af565b90508381101561108b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c9565b600061154d611249565b9050600061155b8383611656565b3060009081526002602052604090205490915061157890826114e4565b30600090815260026020526040902055505050565b60065461159a90836114a2565b6006556007546115aa90826114e4565b6007555050565b60008080806115cb60646115c58989611656565b9061126c565b905060006115de60646115c58a89611656565b905060006115f6826115f08b866114a2565b906114a2565b9992985090965090945050505050565b60008080806116158886611656565b905060006116238887611656565b905060006116318888611656565b90506000611643826115f086866114a2565b939b939a50919850919650505050505050565b60008261166557506000610530565b600061167183856119e9565b90508261167e85836119c7565b1461108b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c9565b803580151581146116e557600080fd5b919050565b6000602082840312156116fc57600080fd5b813561108b81611a66565b60006020828403121561171957600080fd5b815161108b81611a66565b6000806040838503121561173757600080fd5b823561174281611a66565b9150602083013561175281611a66565b809150509250929050565b60008060006060848603121561177257600080fd5b833561177d81611a66565b9250602084013561178d81611a66565b929592945050506040919091013590565b600080604083850312156117b157600080fd5b82356117bc81611a66565b946020939093013593505050565b6000806000604084860312156117df57600080fd5b833567ffffffffffffffff808211156117f757600080fd5b818601915086601f83011261180b57600080fd5b81358181111561181a57600080fd5b8760208260051b850101111561182f57600080fd5b60209283019550935061184591860190506116d5565b90509250925092565b60006020828403121561186057600080fd5b61108b826116d5565b60006020828403121561187b57600080fd5b5035919050565b6000806000806080858703121561189857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118e1578581018301518582016040015282016118c5565b818111156118f3576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561198e5784516001600160a01b031683529383019391830191600101611969565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156119c2576119c2611a3a565b500190565b6000826119e457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a0357611a03611a3a565b500290565b600082821015611a1a57611a1a611a3a565b500390565b6000600019821415611a3357611a33611a3a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461063857600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a82b2eba4b23efbc11b724d3b9ed2cb97ab06170792a29005ed7fd40d5a4d5964736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610479578063dd62ed3e14610499578063ea1644d5146104df578063f2fde38b146104ff57600080fd5b8063a2a957bb14610424578063a9059cbb14610444578063c3c8cd801461046457600080fd5b80637d1db4a5146103655780638da5cb5b1461037b5780638f70ccf7146103995780638f9a55c0146103b957806395d89b41146103cf57806398a5c3151461040457600080fd5b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec146102fb57806370a0823114610310578063715018a61461033057806374010ece1461034557600080fd5b8063313ce5671461029d57806349bd5a5e146102b95780636d8aa8f8146102d957600080fd5b806306fdde0314610191578063095ea7b3146101d85780631694505e1461020857806318160ddd1461024057806323b872dd146102675780632fd689e31461028757600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600c81526b446f6765204469706c6f6d6160a01b60208201525b6040516101cf91906118b4565b60405180910390f35b3480156101e457600080fd5b506101f86101f336600461179e565b61051f565b60405190151581526020016101cf565b34801561021457600080fd5b50601254610228906001600160a01b031681565b6040516001600160a01b0390911681526020016101cf565b34801561024c57600080fd5b5069065a4da25d3016c000005b6040519081526020016101cf565b34801561027357600080fd5b506101f861028236600461175d565b610536565b34801561029357600080fd5b5061025960165481565b3480156102a957600080fd5b50604051600981526020016101cf565b3480156102c557600080fd5b50601354610228906001600160a01b031681565b3480156102e557600080fd5b506102f96102f436600461184e565b61059f565b005b34801561030757600080fd5b506102f96105f0565b34801561031c57600080fd5b5061025961032b3660046116ea565b61063b565b34801561033c57600080fd5b506102f961065d565b34801561035157600080fd5b506102f9610360366004611869565b6106d1565b34801561037157600080fd5b5061025960145481565b34801561038757600080fd5b506000546001600160a01b0316610228565b3480156103a557600080fd5b506102f96103b436600461184e565b610700565b3480156103c557600080fd5b5061025960155481565b3480156103db57600080fd5b5060408051808201909152600c81526b1d5b995b5c1b1bde5b595b9d60a21b60208201526101c2565b34801561041057600080fd5b506102f961041f366004611869565b610748565b34801561043057600080fd5b506102f961043f366004611882565b610777565b34801561045057600080fd5b506101f861045f36600461179e565b6107b5565b34801561047057600080fd5b506102f96107c2565b34801561048557600080fd5b506102f96104943660046117ca565b610816565b3480156104a557600080fd5b506102596104b4366004611724565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104eb57600080fd5b506102f96104fa366004611869565b6108b7565b34801561050b57600080fd5b506102f961051a3660046116ea565b6108e6565b600061052c3384846109d0565b5060015b92915050565b6000610543848484610af4565b610595843361059085604051806060016040528060288152602001611a7c602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f96565b6109d0565b5060019392505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611909565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061062557506011546001600160a01b0316336001600160a01b0316145b61062e57600080fd5b4761063881610fd0565b50565b6001600160a01b0381166000908152600260205260408120546105309061100e565b6000546001600160a01b031633146106875760405162461bcd60e51b81526004016105c990611909565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fb5760405162461bcd60e51b81526004016105c990611909565b601455565b6000546001600160a01b0316331461072a5760405162461bcd60e51b81526004016105c990611909565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105c990611909565b601655565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016105c990611909565b600893909355600a91909155600955600b55565b600061052c338484610af4565b6010546001600160a01b0316336001600160a01b031614806107f757506011546001600160a01b0316336001600160a01b0316145b61080057600080fd5b600061080b3061063b565b905061063881611092565b6000546001600160a01b031633146108405760405162461bcd60e51b81526004016105c990611909565b60005b828110156108b157816005600086868581811061086257610862611a50565b905060200201602081019061087791906116ea565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108a981611a1f565b915050610843565b50505050565b6000546001600160a01b031633146108e15760405162461bcd60e51b81526004016105c990611909565b601555565b6000546001600160a01b031633146109105760405162461bcd60e51b81526004016105c990611909565b6001600160a01b0381166109755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610a935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b038216610bba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b60008111610c1c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c9565b6000546001600160a01b03848116911614801590610c4857506000546001600160a01b03838116911614155b15610e8f57601354600160a01b900460ff16610ce1576000546001600160a01b03848116911614610ce15760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105c9565b601454811115610d335760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105c9565b6013546001600160a01b03838116911614610db85760155481610d558461063b565b610d5f91906119af565b10610db85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105c9565b6000610dc33061063b565b601654601454919250821015908210610ddc5760145491505b808015610df35750601354600160a81b900460ff16155b8015610e0d57506013546001600160a01b03868116911614155b8015610e225750601354600160b01b900460ff165b8015610e4757506001600160a01b03851660009081526005602052604090205460ff16155b8015610e6c57506001600160a01b03841660009081526005602052604090205460ff16155b15610e8c57610e7a82611092565b478015610e8a57610e8a47610fd0565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ed157506001600160a01b03831660009081526005602052604090205460ff165b80610f0357506013546001600160a01b03858116911614801590610f0357506013546001600160a01b03848116911614155b15610f1057506000610f8a565b6013546001600160a01b038581169116148015610f3b57506012546001600160a01b03848116911614155b15610f4d57600854600c55600954600d555b6013546001600160a01b038481169116148015610f7857506012546001600160a01b03858116911614155b15610f8a57600a54600c55600b54600d555b6108b18484848461121b565b60008184841115610fba5760405162461bcd60e51b81526004016105c991906118b4565b506000610fc78486611a08565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561100a573d6000803e3d6000fd5b5050565b60006006548211156110755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c9565b600061107f611249565b905061108b838261126c565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110da576110da611a50565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111669190611707565b8160018151811061117957611179611a50565b6001600160a01b03928316602091820292909201015260125461119f91309116846109d0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111d890859060009086903090429060040161193e565b600060405180830381600087803b1580156111f257600080fd5b505af1158015611206573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b80611228576112286112ae565b6112338484846112dc565b806108b1576108b1600e54600c55600f54600d55565b60008060006112566113d3565b9092509050611265828261126c565b9250505090565b600061108b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611417565b600c541580156112be5750600d54155b156112c557565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112ee87611445565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061132090876114a2565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461134f90866114e4565b6001600160a01b03891660009081526002602052604090205561137181611543565b61137b848361158d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113c091815260200190565b60405180910390a3505050505050505050565b600654600090819069065a4da25d3016c000006113f0828261126c565b82101561140e5750506006549269065a4da25d3016c0000092509050565b90939092509050565b600081836114385760405162461bcd60e51b81526004016105c991906118b4565b506000610fc784866119c7565b60008060008060008060008060006114628a600c54600d546115b1565b9250925092506000611472611249565b905060008060006114858e878787611606565b919e509c509a509598509396509194505050505091939550919395565b600061108b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b6000806114f183856119af565b90508381101561108b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c9565b600061154d611249565b9050600061155b8383611656565b3060009081526002602052604090205490915061157890826114e4565b30600090815260026020526040902055505050565b60065461159a90836114a2565b6006556007546115aa90826114e4565b6007555050565b60008080806115cb60646115c58989611656565b9061126c565b905060006115de60646115c58a89611656565b905060006115f6826115f08b866114a2565b906114a2565b9992985090965090945050505050565b60008080806116158886611656565b905060006116238887611656565b905060006116318888611656565b90506000611643826115f086866114a2565b939b939a50919850919650505050505050565b60008261166557506000610530565b600061167183856119e9565b90508261167e85836119c7565b1461108b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c9565b803580151581146116e557600080fd5b919050565b6000602082840312156116fc57600080fd5b813561108b81611a66565b60006020828403121561171957600080fd5b815161108b81611a66565b6000806040838503121561173757600080fd5b823561174281611a66565b9150602083013561175281611a66565b809150509250929050565b60008060006060848603121561177257600080fd5b833561177d81611a66565b9250602084013561178d81611a66565b929592945050506040919091013590565b600080604083850312156117b157600080fd5b82356117bc81611a66565b946020939093013593505050565b6000806000604084860312156117df57600080fd5b833567ffffffffffffffff808211156117f757600080fd5b818601915086601f83011261180b57600080fd5b81358181111561181a57600080fd5b8760208260051b850101111561182f57600080fd5b60209283019550935061184591860190506116d5565b90509250925092565b60006020828403121561186057600080fd5b61108b826116d5565b60006020828403121561187b57600080fd5b5035919050565b6000806000806080858703121561189857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118e1578581018301518582016040015282016118c5565b818111156118f3576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561198e5784516001600160a01b031683529383019391830191600101611969565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156119c2576119c2611a3a565b500190565b6000826119e457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611a0357611a03611a3a565b500290565b600082821015611a1a57611a1a611a3a565b500390565b6000600019821415611a3357611a33611a3a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461063857600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a82b2eba4b23efbc11b724d3b9ed2cb97ab06170792a29005ed7fd40d5a4d5964736f6c63430008070033
Deployed Bytecode Sourcemap
4194:13077:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6636:83;;;;;;;;;;-1:-1:-1;6706:5:0;;;;;;;;;;;;-1:-1:-1;;;6706:5:0;;;;6636:83;;;;;;;:::i;:::-;;;;;;;;7561:193;;;;;;;;;;-1:-1:-1;7561:193:0;;;;;:::i;:::-;;:::i;:::-;;;3688:14:1;;3681:22;3663:41;;3651:2;3636:18;7561:193:0;3523:187:1;5466:41:0;;;;;;;;;;-1:-1:-1;5466:41:0;;;;-1:-1:-1;;;;;5466:41:0;;;;;;-1:-1:-1;;;;;3479:32:1;;;3461:51;;3449:2;3434:18;5466:41:0;3315:203:1;6913:95:0;;;;;;;;;;-1:-1:-1;4756:22:0;6913:95;;;9855:25:1;;;9843:2;9828:18;6913:95:0;9709:177:1;7762:446:0;;;;;;;;;;-1:-1:-1;7762:446:0;;;;;:::i;:::-;;:::i;5780:54::-;;;;;;;;;;;;;;;;6822:83;;;;;;;;;;-1:-1:-1;6822:83:0;;4430:1;11018:36:1;;11006:2;10991:18;6822:83:0;10876:184:1;5514:28:0;;;;;;;;;;-1:-1:-1;5514:28:0;;;;-1:-1:-1;;;;;5514:28:0;;;16653:101;;;;;;;;;;-1:-1:-1;16653:101:0;;;;;:::i;:::-;;:::i;:::-;;12478:235;;;;;;;;;;;;;:::i;7016:138::-;;;;;;;;;;-1:-1:-1;7016:138:0;;;;;:::i;:::-;;:::i;1681:148::-;;;;;;;;;;;;;:::i;16793:108::-;;;;;;;;;;-1:-1:-1;16793:108:0;;;;;:::i;:::-;;:::i;5664:50::-;;;;;;;;;;;;;;;;1467:79;;;;;;;;;;-1:-1:-1;1505:7:0;1532:6;-1:-1:-1;;;;;1532:6:0;1467:79;;12125:101;;;;;;;;;;-1:-1:-1;12125:101:0;;;;;:::i;:::-;;:::i;5721:52::-;;;;;;;;;;;;;;;;6727:87;;;;;;;;;;-1:-1:-1;6799:7:0;;;;;;;;;;;;-1:-1:-1;;;6799:7:0;;;;6727:87;;16462:139;;;;;;;;;;-1:-1:-1;16462:139:0;;;;;:::i;:::-;;:::i;16119:291::-;;;;;;;;;;-1:-1:-1;16119:291:0;;;;;:::i;:::-;;:::i;7162:199::-;;;;;;;;;;-1:-1:-1;7162:199:0;;;;;:::i;:::-;;:::i;12234:236::-;;;;;;;;;;;;;:::i;17032:234::-;;;;;;;;;;-1:-1:-1;17032:234:0;;;;;:::i;:::-;;:::i;7369:184::-;;;;;;;;;;-1:-1:-1;7369:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7518:18:0;;;7486:7;7518:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7369:184;16909:115;;;;;;;;;;-1:-1:-1;16909:115:0;;;;;:::i;:::-;;:::i;1837:244::-;;;;;;;;;;-1:-1:-1;1837:244:0;;;;;:::i;:::-;;:::i;7561:193::-;7663:4;7685:39;306:10;7708:7;7717:6;7685:8;:39::i;:::-;-1:-1:-1;7742:4:0;7561:193;;;;;:::o;7762:446::-;7894:4;7911:36;7921:6;7929:9;7940:6;7911:9;:36::i;:::-;7958:220;7981:6;306:10;8029:138;8085:6;8029:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8029:19:0;;;;;;:11;:19;;;;;;;;306:10;8029:33;;;;;;;;;;:37;:138::i;:::-;7958:8;:220::i;:::-;-1:-1:-1;8196:4:0;7762:446;;;;;:::o;16653:101::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;;;;;;;;;16720:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16720:26:0::1;-1:-1:-1::0;;;;16720:26:0;;::::1;::::0;;;::::1;::::0;;16653:101::o;12478:235::-;12544:19;;-1:-1:-1;;;;;12544:19:0;306:10;-1:-1:-1;;;;;12528:35:0;;:72;;;-1:-1:-1;12583:17:0;;-1:-1:-1;;;;;12583:17:0;306:10;-1:-1:-1;;;;;12567:33:0;;12528:72;12520:81;;;;;;12641:21;12673:32;12641:21;12673:12;:32::i;:::-;12509:204;12478:235::o;7016:138::-;-1:-1:-1;;;;;7129:16:0;;7082:7;7129:16;;;:7;:16;;;;;;7109:37;;:19;:37::i;1681:148::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;1788:1:::1;1772:6:::0;;1751:40:::1;::::0;-1:-1:-1;;;;;1772:6:0;;::::1;::::0;1751:40:::1;::::0;1788:1;;1751:40:::1;1819:1;1802:19:::0;;-1:-1:-1;;;;;;1802:19:0::1;::::0;;1681:148::o;16793:108::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;16867:12:::1;:26:::0;16793:108::o;12125:101::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;12192:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12192:26:0::1;-1:-1:-1::0;;;;12192:26:0;;::::1;::::0;;;::::1;::::0;;12125:101::o;16462:139::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;16553:19:::1;:40:::0;16462:139::o;16119:291::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;16253:14:::1;:30:::0;;;;16294:15:::1;:32:::0;;;;16337:12:::1;:26:::0;16374:13:::1;:28:::0;16119:291::o;7162:199::-;7267:4;7289:42;306:10;7313:9;7324:6;7289:9;:42::i;12234:236::-;12300:19;;-1:-1:-1;;;;;12300:19:0;306:10;-1:-1:-1;;;;;12284:35:0;;:72;;;-1:-1:-1;12339:17:0;;-1:-1:-1;;;;;12339:17:0;306:10;-1:-1:-1;;;;;12323:33:0;;12284:72;12276:81;;;;;;12368:23;12394:24;12412:4;12394:9;:24::i;:::-;12368:50;;12429:33;12446:15;12429:16;:33::i;17032:234::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;17149:9:::1;17145:114;17164:19:::0;;::::1;17145:114;;;17239:8;17205:18;:31;17224:8;;17233:1;17224:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17205:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17205:31:0;:42;;-1:-1:-1;;17205:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17185:3;::::1;::::0;::::1;:::i;:::-;;;;17145:114;;;;17032:234:::0;;;:::o;16909:115::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;16986:14:::1;:30:::0;16909:115::o;1837:244::-;1594:6;;-1:-1:-1;;;;;1594:6:0;306:10;1594:22;1586:67;;;;-1:-1:-1;;;1586:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1926:22:0;::::1;1918:73;;;::::0;-1:-1:-1;;;1918:73:0;;6357:2:1;1918:73:0::1;::::0;::::1;6339:21:1::0;6396:2;6376:18;;;6369:30;6435:34;6415:18;;;6408:62;-1:-1:-1;;;6486:18:1;;;6479:36;6532:19;;1918:73:0::1;6155:402:1::0;1918:73:0::1;2028:6;::::0;;2007:38:::1;::::0;-1:-1:-1;;;;;2007:38:0;;::::1;::::0;2028:6;::::1;::::0;2007:38:::1;::::0;::::1;2056:6;:17:::0;;-1:-1:-1;;;;;;2056:17:0::1;-1:-1:-1::0;;;;;2056:17:0;;;::::1;::::0;;;::::1;::::0;;1837:244::o;8899:369::-;-1:-1:-1;;;;;9026:19:0;;9018:68;;;;-1:-1:-1;;;9018:68:0;;9506:2:1;9018:68:0;;;9488:21:1;9545:2;9525:18;;;9518:30;9584:34;9564:18;;;9557:62;-1:-1:-1;;;9635:18:1;;;9628:34;9679:19;;9018:68:0;9304:400:1;9018:68:0;-1:-1:-1;;;;;9105:21:0;;9097:68;;;;-1:-1:-1;;;9097:68:0;;6764:2:1;9097:68:0;;;6746:21:1;6803:2;6783:18;;;6776:30;6842:34;6822:18;;;6815:62;-1:-1:-1;;;6893:18:1;;;6886:32;6935:19;;9097:68:0;6562:398:1;9097:68:0;-1:-1:-1;;;;;9176:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9228:32;;9855:25:1;;;9228:32:0;;9828:18:1;9228:32:0;;;;;;;8899:369;;;:::o;9276:2243::-;-1:-1:-1;;;;;9398:18:0;;9390:68;;;;-1:-1:-1;;;9390:68:0;;8696:2:1;9390:68:0;;;8678:21:1;8735:2;8715:18;;;8708:30;8774:34;8754:18;;;8747:62;-1:-1:-1;;;8825:18:1;;;8818:35;8870:19;;9390:68:0;8494:401:1;9390:68:0;-1:-1:-1;;;;;9477:16:0;;9469:64;;;;-1:-1:-1;;;9469:64:0;;4753:2:1;9469:64:0;;;4735:21:1;4792:2;4772:18;;;4765:30;4831:34;4811:18;;;4804:62;-1:-1:-1;;;4882:18:1;;;4875:33;4925:19;;9469:64:0;4551:399:1;9469:64:0;9561:1;9552:6;:10;9544:64;;;;-1:-1:-1;;;9544:64:0;;8286:2:1;9544:64:0;;;8268:21:1;8325:2;8305:18;;;8298:30;8364:34;8344:18;;;8337:62;-1:-1:-1;;;8415:18:1;;;8408:39;8464:19;;9544:64:0;8084:405:1;9544:64:0;1505:7;1532:6;-1:-1:-1;;;;;9625:15:0;;;1532:6;;9625:15;;;;:32;;-1:-1:-1;1505:7:0;1532:6;-1:-1:-1;;;;;9644:13:0;;;1532:6;;9644:13;;9625:32;9621:1172;;;9714:11;;-1:-1:-1;;;9714:11:0;;;;9709:144;;1505:7;1532:6;-1:-1:-1;;;;;9754:15:0;;;1532:6;;9754:15;9746:91;;;;-1:-1:-1;;;9746:91:0;;5157:2:1;9746:91:0;;;5139:21:1;5196:2;5176:18;;;5169:30;5235:34;5215:18;;;5208:62;5306:33;5286:18;;;5279:61;5357:19;;9746:91:0;4955:427:1;9746:91:0;9887:12;;9877:6;:22;;9869:63;;;;-1:-1:-1;;;9869:63:0;;6000:2:1;9869:63:0;;;5982:21:1;6039:2;6019:18;;;6012:30;6078;6058:18;;;6051:58;6126:18;;9869:63:0;5798:352:1;9869:63:0;9958:13;;-1:-1:-1;;;;;9952:19:0;;;9958:13;;9952:19;9949:146;;10025:14;;10016:6;10000:13;10010:2;10000:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9992:87;;;;-1:-1:-1;;;9992:87:0;;9102:2:1;9992:87:0;;;9084:21:1;9141:2;9121:18;;;9114:30;9180:34;9160:18;;;9153:62;-1:-1:-1;;;9231:18:1;;;9224:33;9274:19;;9992:87:0;8900:399:1;9992:87:0;10111:28;10142:24;10160:4;10142:9;:24::i;:::-;10220:19;;10283:12;;10111:55;;-1:-1:-1;10196:43:0;;;;10259:36;;10256:124;;10352:12;;10329:35;;10256:124;10400:7;:18;;;;-1:-1:-1;10412:6:0;;-1:-1:-1;;;10412:6:0;;;;10411:7;10400:18;:43;;;;-1:-1:-1;10430:13:0;;-1:-1:-1;;;;;10422:21:0;;;10430:13;;10422:21;;10400:43;:58;;;;-1:-1:-1;10447:11:0;;-1:-1:-1;;;10447:11:0;;;;10400:58;:87;;;;-1:-1:-1;;;;;;10463:24:0;;;;;;:18;:24;;;;;;;;10462:25;10400:87;:114;;;;-1:-1:-1;;;;;;10492:22:0;;;;;;:18;:22;;;;;;;;10491:23;10400:114;10396:386;;;10535:38;10552:20;10535:16;:38::i;:::-;10621:21;10665:22;;10661:106;;10712:35;10725:21;10712:12;:35::i;:::-;10516:266;10396:386;9659:1134;;9621:1172;-1:-1:-1;;;;;10869:24:0;;10805:12;10869:24;;;:18;:24;;;;;;10820:4;;10869:24;;;:50;;-1:-1:-1;;;;;;10897:22:0;;;;;;:18;:22;;;;;;;;10869:50;10868:102;;;-1:-1:-1;10933:13:0;;-1:-1:-1;;;;;10925:21:0;;;10933:13;;10925:21;;;;:44;;-1:-1:-1;10956:13:0;;-1:-1:-1;;;;;10950:19:0;;;10956:13;;10950:19;;10925:44;10864:594;;;-1:-1:-1;10997:5:0;10864:594;;;11080:13;;-1:-1:-1;;;;;11072:21:0;;;11080:13;;11072:21;:55;;;;-1:-1:-1;11111:15:0;;-1:-1:-1;;;;;11097:30:0;;;11111:15;;11097:30;;11072:55;11069:162;;;11160:14;;11148:9;:26;11203:12;;11193:7;:22;11069:162;11290:13;;-1:-1:-1;;;;;11284:19:0;;;11290:13;;11284:19;:55;;;;-1:-1:-1;11323:15:0;;-1:-1:-1;;;;;11307:32:0;;;11323:15;;11307:32;;11284:55;11280:165;;;11372:15;;11360:9;:27;11416:13;;11406:7;:23;11280:165;11470:41;11485:4;11491:2;11495:6;11503:7;11470:14;:41::i;2445:224::-;2565:7;2601:12;2593:6;;;;2585:29;;;;-1:-1:-1;;;2585:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2625:9:0;2637:5;2641:1;2637;:5;:::i;:::-;2625:17;2445:224;-1:-1:-1;;;;;2445:224:0:o;12018:99::-;12075:17;;:34;;-1:-1:-1;;;;;12075:17:0;;;;:34;;;;;12102:6;;12075:17;:34;:17;:34;12102:6;12075:17;:34;;;;;;;;;;;;;;;;;;;;;12018:99;:::o;8216:323::-;8311:7;8369;;8358;:18;;8336:110;;;;-1:-1:-1;;;8336:110:0;;5589:2:1;8336:110:0;;;5571:21:1;5628:2;5608:18;;;5601:30;5667:34;5647:18;;;5640:62;-1:-1:-1;;;5718:18:1;;;5711:40;5768:19;;8336:110:0;5387:406:1;8336:110:0;8457:19;8479:10;:8;:10::i;:::-;8457:32;-1:-1:-1;8507:24:0;:7;8457:32;8507:11;:24::i;:::-;8500:31;8216:323;-1:-1:-1;;;8216:323:0:o;11527:483::-;5928:6;:13;;-1:-1:-1;;;;5928:13:0;-1:-1:-1;;;5928:13:0;;;11629:16:::1;::::0;;11643:1:::1;11629:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11629:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11629:16:0::1;11605:40;;11674:4;11656;11661:1;11656:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11656:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11700:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11700:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11656:7;;11700:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11690:4;11695:1;11690:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11690:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11765:15:::1;::::0;11733:62:::1;::::0;11750:4:::1;::::0;11765:15:::1;11783:11:::0;11733:8:::1;:62::i;:::-;11806:15;::::0;:196:::1;::::0;-1:-1:-1;;;11806:196:0;;-1:-1:-1;;;;;11806:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11887:11;;11806:15:::1;::::0;11929:4;;11956::::1;::::0;11976:15:::1;::::0;11806:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5964:6:0;:14;;-1:-1:-1;;;;5964:14:0;;;-1:-1:-1;;;;11527:483:0:o;12721:282::-;12877:7;12872:28;;12886:14;:12;:14::i;:::-;12911:44;12929:6;12937:9;12948:6;12911:17;:44::i;:::-;12971:7;12966:29;;12980:15;8830:17;;8818:9;:29;8868:15;;8858:7;:25;8774:117;15682:164;15724:7;15745:15;15762;15781:19;:17;:19::i;:::-;15744:56;;-1:-1:-1;15744:56:0;-1:-1:-1;15818:20:0;15744:56;;15818:11;:20::i;:::-;15811:27;;;;15682:164;:::o;2931:132::-;2989:7;3016:39;3020:1;3023;3016:39;;;;;;;;;;;;;;;;;:3;:39::i;8547:219::-;8594:9;;:14;:30;;;;-1:-1:-1;8612:7:0;;:12;8594:30;8590:43;;;8547:219::o;8590:43::-;8665:9;;;8645:17;:29;8703:7;;;8685:15;:25;-1:-1:-1;8723:13:0;;;;8747:11;8547:219::o;13011:610::-;13158:15;13188:23;13226:12;13253:23;13291:12;13318:13;13345:19;13356:7;13345:10;:19::i;:::-;-1:-1:-1;;;;;13393:15:0;;;;;;:7;:15;;;;;;13143:221;;-1:-1:-1;13143:221:0;;-1:-1:-1;13143:221:0;;-1:-1:-1;13143:221:0;-1:-1:-1;13143:221:0;-1:-1:-1;13143:221:0;-1:-1:-1;13393:28:0;;13143:221;13393:19;:28::i;:::-;-1:-1:-1;;;;;13375:15:0;;;;;;;:7;:15;;;;;;:46;;;;13453:18;;;;;;;:39;;13476:15;13453:22;:39::i;:::-;-1:-1:-1;;;;;13432:18:0;;;;;;:7;:18;;;;;:60;13503:16;13513:5;13503:9;:16::i;:::-;13530:23;13542:4;13548;13530:11;:23::i;:::-;13586:9;-1:-1:-1;;;;;13569:44:0;13578:6;-1:-1:-1;;;;;13569:44:0;;13597:15;13569:44;;;;9855:25:1;;9843:2;9828:18;;9709:177;13569:44:0;;;;;;;;13132:489;;;;;;13011:610;;;:::o;15854:257::-;15952:7;;15905;;;;4756:22;16020:20;15952:7;4756:22;16020:11;:20::i;:::-;16010:7;:30;16006:61;;;-1:-1:-1;;16050:7:0;;;4756:22;;-1:-1:-1;15854:257:0;-1:-1:-1;15854:257:0:o;16006:61::-;16086:7;;16095;;-1:-1:-1;15854:257:0;-1:-1:-1;15854:257:0:o;3071:223::-;3191:7;3226:12;3219:5;3211:28;;;;-1:-1:-1;;;3211:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3250:9:0;3262:5;3266:1;3262;:5;:::i;14040:615::-;14140:7;14162;14184;14206;14228;14250;14286:23;14311:12;14325:13;14355:40;14367:7;14376:9;;14387:7;;14355:11;:40::i;:::-;14285:110;;;;;;14406:19;14428:10;:8;:10::i;:::-;14406:32;;14450:15;14467:23;14492:12;14521:46;14533:7;14542:4;14548:5;14555:11;14521;:46::i;:::-;14449:118;;-1:-1:-1;14449:118:0;-1:-1:-1;14449:118:0;-1:-1:-1;14618:15:0;;-1:-1:-1;14635:4:0;;-1:-1:-1;14641:5:0;;-1:-1:-1;;;;;14040:615:0;;;;;;;:::o;2301:136::-;2359:7;2386:43;2390:1;2393;2386:43;;;;;;;;;;;;;;;;;:3;:43::i;2114:179::-;2172:7;;2204:5;2208:1;2204;:5;:::i;:::-;2192:17;;2233:1;2228;:6;;2220:46;;;;-1:-1:-1;;;2220:46:0;;7167:2:1;2220:46:0;;;7149:21:1;7206:2;7186:18;;;7179:30;7245:29;7225:18;;;7218:57;7292:18;;2220:46:0;6965:351:1;13629:211:0;13682:19;13704:10;:8;:10::i;:::-;13682:32;-1:-1:-1;13725:13:0;13741:22;:5;13682:32;13741:9;:22::i;:::-;13815:4;13799:22;;;;:7;:22;;;;;;13725:38;;-1:-1:-1;13799:33:0;;13725:38;13799:26;:33::i;:::-;13790:4;13774:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13629:211:0:o;13848:147::-;13926:7;;:17;;13938:4;13926:11;:17::i;:::-;13916:7;:27;13967:10;;:20;;13982:4;13967:14;:20::i;:::-;13954:10;:33;-1:-1:-1;;13848:147:0:o;14663:469::-;14832:7;;;;14926:30;14952:3;14926:21;:7;14938:8;14926:11;:21::i;:::-;:25;;:30::i;:::-;14911:45;-1:-1:-1;14967:13:0;14983:28;15007:3;14983:19;:7;14995:6;14983:11;:19::i;:28::-;14967:44;-1:-1:-1;15022:23:0;15048:28;14967:44;15048:17;:7;15060:4;15048:11;:17::i;:::-;:21;;:28::i;:::-;15022:54;15112:4;;-1:-1:-1;15118:5:0;;-1:-1:-1;14663:469:0;;-1:-1:-1;;;;;14663:469:0:o;15140:534::-;15334:7;;;;15431:24;:7;15443:11;15431;:24::i;:::-;15413:42;-1:-1:-1;15466:12:0;15481:21;:4;15490:11;15481:8;:21::i;:::-;15466:36;-1:-1:-1;15513:13:0;15529:22;:5;15539:11;15529:9;:22::i;:::-;15513:38;-1:-1:-1;15562:23:0;15588:28;15513:38;15588:17;:7;15600:4;15588:11;:17::i;:28::-;15635:7;;;;-1:-1:-1;15661:4:0;;-1:-1:-1;15140:534:0;;-1:-1:-1;;;;;;;15140:534:0:o;2677:246::-;2735:7;2759:6;2755:47;;-1:-1:-1;2789:1:0;2782:8;;2755:47;2812:9;2824:5;2828:1;2824;:5;:::i;:::-;2812:17;-1:-1:-1;2857:1:0;2848:5;2852:1;2812:17;2848:5;:::i;:::-;:10;2840:56;;;;-1:-1:-1;;;2840:56:0;;7523:2:1;2840:56:0;;;7505:21:1;7562:2;7542:18;;;7535:30;7601:34;7581:18;;;7574:62;-1:-1:-1;;;7652:18:1;;;7645:31;7693:19;;2840:56:0;7321:397:1;14:160;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1609:6;1617;1670:2;1658:9;1649:7;1645:23;1641:32;1638:52;;;1686:1;1683;1676:12;1638:52;1725:9;1712:23;1744:31;1769:5;1744:31;:::i;:::-;1794:5;1846:2;1831:18;;;;1818:32;;-1:-1:-1;;;1541:315:1:o;1861:689::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2078:9;2065:23;2107:18;2148:2;2140:6;2137:14;2134:34;;;2164:1;2161;2154:12;2134:34;2202:6;2191:9;2187:22;2177:32;;2247:7;2240:4;2236:2;2232:13;2228:27;2218:55;;2269:1;2266;2259:12;2218:55;2309:2;2296:16;2335:2;2327:6;2324:14;2321:34;;;2351:1;2348;2341:12;2321:34;2406:7;2399:4;2389:6;2386:1;2382:14;2378:2;2374:23;2370:34;2367:47;2364:67;;;2427:1;2424;2417:12;2364:67;2458:4;2450:13;;;;-1:-1:-1;2482:6:1;-1:-1:-1;2507:37:1;;2523:20;;;-1:-1:-1;2507:37:1;:::i;:::-;2497:47;;1861:689;;;;;:::o;2555:180::-;2611:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:52;;;2680:1;2677;2670:12;2632:52;2703:26;2719:9;2703:26;:::i;2740:180::-;2799:6;2852:2;2840:9;2831:7;2827:23;2823:32;2820:52;;;2868:1;2865;2858:12;2820:52;-1:-1:-1;2891:23:1;;2740:180;-1:-1:-1;2740:180:1:o;2925:385::-;3011:6;3019;3027;3035;3088:3;3076:9;3067:7;3063:23;3059:33;3056:53;;;3105:1;3102;3095:12;3056:53;-1:-1:-1;;3128:23:1;;;3198:2;3183:18;;3170:32;;-1:-1:-1;3249:2:1;3234:18;;3221:32;;3300:2;3285:18;3272:32;;-1:-1:-1;2925:385:1;-1:-1:-1;2925:385:1:o;3949:597::-;4061:4;4090:2;4119;4108:9;4101:21;4151:6;4145:13;4194:6;4189:2;4178:9;4174:18;4167:34;4219:1;4229:140;4243:6;4240:1;4237:13;4229:140;;;4338:14;;;4334:23;;4328:30;4304:17;;;4323:2;4300:26;4293:66;4258:10;;4229:140;;;4387:6;4384:1;4381:13;4378:91;;;4457:1;4452:2;4443:6;4432:9;4428:22;4424:31;4417:42;4378:91;-1:-1:-1;4530:2:1;4509:15;-1:-1:-1;;4505:29:1;4490:45;;;;4537:2;4486:54;;3949:597;-1:-1:-1;;;3949:597:1:o;7723:356::-;7925:2;7907:21;;;7944:18;;;7937:30;8003:34;7998:2;7983:18;;7976:62;8070:2;8055:18;;7723:356::o;9891:980::-;10153:4;10201:3;10190:9;10186:19;10232:6;10221:9;10214:25;10258:2;10296:6;10291:2;10280:9;10276:18;10269:34;10339:3;10334:2;10323:9;10319:18;10312:31;10363:6;10398;10392:13;10429:6;10421;10414:22;10467:3;10456:9;10452:19;10445:26;;10506:2;10498:6;10494:15;10480:29;;10527:1;10537:195;10551:6;10548:1;10545:13;10537:195;;;10616:13;;-1:-1:-1;;;;;10612:39:1;10600:52;;10707:15;;;;10672:12;;;;10648:1;10566:9;10537:195;;;-1:-1:-1;;;;;;;10788:32:1;;;;10783:2;10768:18;;10761:60;-1:-1:-1;;;10852:3:1;10837:19;10830:35;10749:3;9891:980;-1:-1:-1;;;9891:980:1:o;11065:128::-;11105:3;11136:1;11132:6;11129:1;11126:13;11123:39;;;11142:18;;:::i;:::-;-1:-1:-1;11178:9:1;;11065:128::o;11198:217::-;11238:1;11264;11254:132;;11308:10;11303:3;11299:20;11296:1;11289:31;11343:4;11340:1;11333:15;11371:4;11368:1;11361:15;11254:132;-1:-1:-1;11400:9:1;;11198:217::o;11420:168::-;11460:7;11526:1;11522;11518:6;11514:14;11511:1;11508:21;11503:1;11496:9;11489:17;11485:45;11482:71;;;11533:18;;:::i;:::-;-1:-1:-1;11573:9:1;;11420:168::o;11593:125::-;11633:4;11661:1;11658;11655:8;11652:34;;;11666:18;;:::i;:::-;-1:-1:-1;11703:9:1;;11593:125::o;11723:135::-;11762:3;-1:-1:-1;;11783:17:1;;11780:43;;;11803:18;;:::i;:::-;-1:-1:-1;11850:1:1;11839:13;;11723:135::o;11863:127::-;11924:10;11919:3;11915:20;11912:1;11905:31;11955:4;11952:1;11945:15;11979:4;11976:1;11969:15;11995:127;12056:10;12051:3;12047:20;12044:1;12037:31;12087:4;12084:1;12077:15;12111:4;12108:1;12101:15;12259:131;-1:-1:-1;;;;;12334:31:1;;12324:42;;12314:70;;12380:1;12377;12370:12
Swarm Source
ipfs://0a82b2eba4b23efbc11b724d3b9ed2cb97ab06170792a29005ed7fd40d5a4d59
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.