ERC-20
Overview
Max Total Supply
1,000,000,000,000 RETARD
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
11,712,468,925.619246347 RETARDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RETARD
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-19 */ // SPDX-License-Identifier: Unlicensed /* https://twitter.com/RetardTokenERC */ pragma solidity ^0.8.9; 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 RETARD is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Retard"; string private constant _symbol = "RETARD"; 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 = 100000000 * 10**13; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 15; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 60; //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; address payable private _developmentAddress = payable(0x3eb01C9bfb748073ae8aE03E71e3b51Cd0ec0E99); address payable private _marketingAddress = payable(0x3eb01C9bfb748073ae8aE03E71e3b51Cd0ec0E99); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2000000 * 10**13; uint256 public _maxWalletSize = 2000000 * 10**13; uint256 public _swapTokensAtAmount = 10000 * 10**13 ; 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"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); 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 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; } } }
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":"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":[{"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
60806040526200001b683635c9adc5dea0000060001962000369565b62000029906000196200038c565b60065560006008819055600f6009819055600a829055603c600b819055600c839055600d819055600e9290925555601280546001600160a01b0319908116733eb01c9bfb748073ae8ae03e71e3b51cd0ec0e999081179092556013805490911690911790556015805462ffffff60a01b1916600160b01b1790556801158e460913d00000601681905560175567016345785d8a0000601855348015620000ce57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b29190620003b2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002269190620003b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a9190620003b2565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200035a91815260200190565b60405180910390a350620003e4565b6000826200038757634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003ad57634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003c557600080fd5b81516001600160a01b0381168114620003dd57600080fd5b9392505050565b61236b80620003f46000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610582578063dd62ed3e146105a2578063ea1644d5146105e8578063f2fde38b1461060857600080fd5b8063a2a957bb146104fd578063a9059cbb1461051d578063bfd792841461053d578063c3c8cd801461056d57600080fd5b80638f70ccf7116100d15780638f70ccf7146104615780638f9a55c01461048157806395d89b411461049757806398a5c315146104dd57600080fd5b80637d1db4a5146104005780637f2feddc146104165780638da5cb5b1461044357600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461039657806370a08231146103ab578063715018a6146103cb57806374010ece146103e057600080fd5b8063313ce5671461031a57806349bd5a5e146103365780636b999053146103565780636d8aa8f81461037657600080fd5b80631694505e116101ab5780631694505e1461028657806318160ddd146102be57806323b872dd146102e45780632fd689e31461030457600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461025657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611e2f565b610628565b005b34801561020a57600080fd5b5060408051808201909152600681527f526574617264000000000000000000000000000000000000000000000000000060208201525b60405161024d9190611f12565b60405180910390f35b34801561026257600080fd5b50610276610271366004611f85565b610711565b604051901515815260200161024d565b34801561029257600080fd5b506014546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102ca57600080fd5b50683635c9adc5dea000005b60405190815260200161024d565b3480156102f057600080fd5b506102766102ff366004611fb1565b610728565b34801561031057600080fd5b506102d660185481565b34801561032657600080fd5b506040516009815260200161024d565b34801561034257600080fd5b506015546102a6906001600160a01b031681565b34801561036257600080fd5b506101fc610371366004611ff2565b610791565b34801561038257600080fd5b506101fc61039136600461201f565b61082a565b3480156103a257600080fd5b506101fc6108d0565b3480156103b757600080fd5b506102d66103c6366004611ff2565b61091b565b3480156103d757600080fd5b506101fc61093d565b3480156103ec57600080fd5b506101fc6103fb36600461203a565b6109f9565b34801561040c57600080fd5b506102d660165481565b34801561042257600080fd5b506102d6610431366004611ff2565b60116020526000908152604090205481565b34801561044f57600080fd5b506000546001600160a01b03166102a6565b34801561046d57600080fd5b506101fc61047c36600461201f565b610a58565b34801561048d57600080fd5b506102d660175481565b3480156104a357600080fd5b5060408051808201909152600681527f52455441524400000000000000000000000000000000000000000000000000006020820152610240565b3480156104e957600080fd5b506101fc6104f836600461203a565b610afc565b34801561050957600080fd5b506101fc610518366004612053565b610b5b565b34801561052957600080fd5b50610276610538366004611f85565b610bc9565b34801561054957600080fd5b50610276610558366004611ff2565b60106020526000908152604090205460ff1681565b34801561057957600080fd5b506101fc610bd6565b34801561058e57600080fd5b506101fc61059d366004612085565b610c2a565b3480156105ae57600080fd5b506102d66105bd366004612109565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f457600080fd5b506101fc61060336600461203a565b610d19565b34801561061457600080fd5b506101fc610623366004611ff2565b610d78565b6000546001600160a01b031633146106875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b815181101561070d576001601060008484815181106106ab576106ab612142565b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610705816121a0565b91505061068a565b5050565b600061071e338484610ec1565b5060015b92915050565b6000610735848484611019565b61078784336107828560405180606001604052806028815260200161230e602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611605565b610ec1565b5060019392505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b0316600090815260106020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000546001600160a01b031633146108845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60158054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061090557506013546001600160a01b0316336001600160a01b0316145b61090e57600080fd5b476109188161163f565b50565b6001600160a01b03811660009081526002602052604081205461072290611679565b6000546001600160a01b031633146109975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b03163314610a535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601655565b6000546001600160a01b03163314610ab25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6015805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601855565b6000546001600160a01b03163314610bb55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600893909355600a91909155600955600b55565b600061071e338484611019565b6012546001600160a01b0316336001600160a01b03161480610c0b57506013546001600160a01b0316336001600160a01b0316145b610c1457600080fd5b6000610c1f3061091b565b905061091881611710565b6000546001600160a01b03163314610c845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60005b82811015610d13578160056000868685818110610ca657610ca6612142565b9050602002016020810190610cbb9190611ff2565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610d0b816121a0565b915050610c87565b50505050565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601755565b6000546001600160a01b03163314610dd25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b038116610e4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038316610f3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b038216610fb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110955760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0382166111115760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600081116111875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161067e565b6000546001600160a01b038481169116148015906111b357506000546001600160a01b03838116911614155b156114fe5760155474010000000000000000000000000000000000000000900460ff1661125d576000546001600160a01b0384811691161461125d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067e565b6016548111156112af5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067e565b6001600160a01b03831660009081526010602052604090205460ff161580156112f157506001600160a01b03821660009081526010602052604090205460ff16155b6113635760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f6564210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6015546001600160a01b0383811691161461140257601754816113858461091b565b61138f91906121d8565b106114025760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a65210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600061140d3061091b565b6018546016549192508210159082106114265760165491505b80801561144f57506015547501000000000000000000000000000000000000000000900460ff16155b801561146957506015546001600160a01b03868116911614155b80156114915750601554760100000000000000000000000000000000000000000000900460ff165b80156114b657506001600160a01b03851660009081526005602052604090205460ff16155b80156114db57506001600160a01b03841660009081526005602052604090205460ff16155b156114fb576114e982611710565b4780156114f9576114f94761163f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061154057506001600160a01b03831660009081526005602052604090205460ff165b8061157257506015546001600160a01b0385811691161480159061157257506015546001600160a01b03848116911614155b1561157f575060006115f9565b6015546001600160a01b0385811691161480156115aa57506014546001600160a01b03848116911614155b156115bc57600854600c55600954600d555b6015546001600160a01b0384811691161480156115e757506014546001600160a01b03858116911614155b156115f957600a54600c55600b54600d555b610d1384848484611904565b600081848411156116295760405162461bcd60e51b815260040161067e9190611f12565b50600061163684866121f0565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561070d573d6000803e3d6000fd5b60006006548211156116f35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161067e565b60006116fd611932565b90506117098382611955565b9392505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178557611785612142565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190612207565b8160018151811061182e5761182e612142565b6001600160a01b0392831660209182029290920101526014546118549130911684610ec1565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118a6908590600090869030904290600401612224565b600060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b8061191157611911611997565b61191c8484846119c5565b80610d1357610d13600e54600c55600f54600d55565b600080600061193f611abc565b909250905061194e8282611955565b9250505090565b600061170983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611afe565b600c541580156119a75750600d54155b156119ae57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806119d787611b2c565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a099087611b89565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a389086611bcb565b6001600160a01b038916600090815260026020526040902055611a5a81611c2a565b611a648483611c74565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611aa991815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea00000611ad88282611955565b821015611af557505060065492683635c9adc5dea0000092509050565b90939092509050565b60008183611b1f5760405162461bcd60e51b815260040161067e9190611f12565b5060006116368486612295565b6000806000806000806000806000611b498a600c54600d54611c98565b9250925092506000611b59611932565b90506000806000611b6c8e878787611ced565b919e509c509a509598509396509194505050505091939550919395565b600061170983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611605565b600080611bd883856121d8565b9050838110156117095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067e565b6000611c34611932565b90506000611c428383611d3d565b30600090815260026020526040902054909150611c5f9082611bcb565b30600090815260026020526040902055505050565b600654611c819083611b89565b600655600754611c919082611bcb565b6007555050565b6000808080611cb26064611cac8989611d3d565b90611955565b90506000611cc56064611cac8a89611d3d565b90506000611cdd82611cd78b86611b89565b90611b89565b9992985090965090945050505050565b6000808080611cfc8886611d3d565b90506000611d0a8887611d3d565b90506000611d188888611d3d565b90506000611d2a82611cd78686611b89565b939b939a50919850919650505050505050565b600082600003611d4f57506000610722565b6000611d5b83856122d0565b905082611d688583612295565b146117095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b038116811461091857600080fd5b8035611e2a81611e0a565b919050565b60006020808385031215611e4257600080fd5b823567ffffffffffffffff80821115611e5a57600080fd5b818501915085601f830112611e6e57600080fd5b813581811115611e8057611e80611ddb565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611ec357611ec3611ddb565b604052918252848201925083810185019188831115611ee157600080fd5b938501935b82851015611f0657611ef785611e1f565b84529385019392850192611ee6565b98975050505050505050565b600060208083528351808285015260005b81811015611f3f57858101830151858201604001528201611f23565b81811115611f51576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008060408385031215611f9857600080fd5b8235611fa381611e0a565b946020939093013593505050565b600080600060608486031215611fc657600080fd5b8335611fd181611e0a565b92506020840135611fe181611e0a565b929592945050506040919091013590565b60006020828403121561200457600080fd5b813561170981611e0a565b80358015158114611e2a57600080fd5b60006020828403121561203157600080fd5b6117098261200f565b60006020828403121561204c57600080fd5b5035919050565b6000806000806080858703121561206957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561209a57600080fd5b833567ffffffffffffffff808211156120b257600080fd5b818601915086601f8301126120c657600080fd5b8135818111156120d557600080fd5b8760208260051b85010111156120ea57600080fd5b602092830195509350612100918601905061200f565b90509250925092565b6000806040838503121561211c57600080fd5b823561212781611e0a565b9150602083013561213781611e0a565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d1576121d1612171565b5060010190565b600082198211156121eb576121eb612171565b500190565b60008282101561220257612202612171565b500390565b60006020828403121561221957600080fd5b815161170981611e0a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122745784516001600160a01b03168352938301939183019160010161224f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826122cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561230857612308612171565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041f7b9193682232f94f2fa8821ede9b4a2d149986929f5c8a551929b1745488964736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f04614610582578063dd62ed3e146105a2578063ea1644d5146105e8578063f2fde38b1461060857600080fd5b8063a2a957bb146104fd578063a9059cbb1461051d578063bfd792841461053d578063c3c8cd801461056d57600080fd5b80638f70ccf7116100d15780638f70ccf7146104615780638f9a55c01461048157806395d89b411461049757806398a5c315146104dd57600080fd5b80637d1db4a5146104005780637f2feddc146104165780638da5cb5b1461044357600080fd5b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec1461039657806370a08231146103ab578063715018a6146103cb57806374010ece146103e057600080fd5b8063313ce5671461031a57806349bd5a5e146103365780636b999053146103565780636d8aa8f81461037657600080fd5b80631694505e116101ab5780631694505e1461028657806318160ddd146102be57806323b872dd146102e45780632fd689e31461030457600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461025657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611e2f565b610628565b005b34801561020a57600080fd5b5060408051808201909152600681527f526574617264000000000000000000000000000000000000000000000000000060208201525b60405161024d9190611f12565b60405180910390f35b34801561026257600080fd5b50610276610271366004611f85565b610711565b604051901515815260200161024d565b34801561029257600080fd5b506014546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102ca57600080fd5b50683635c9adc5dea000005b60405190815260200161024d565b3480156102f057600080fd5b506102766102ff366004611fb1565b610728565b34801561031057600080fd5b506102d660185481565b34801561032657600080fd5b506040516009815260200161024d565b34801561034257600080fd5b506015546102a6906001600160a01b031681565b34801561036257600080fd5b506101fc610371366004611ff2565b610791565b34801561038257600080fd5b506101fc61039136600461201f565b61082a565b3480156103a257600080fd5b506101fc6108d0565b3480156103b757600080fd5b506102d66103c6366004611ff2565b61091b565b3480156103d757600080fd5b506101fc61093d565b3480156103ec57600080fd5b506101fc6103fb36600461203a565b6109f9565b34801561040c57600080fd5b506102d660165481565b34801561042257600080fd5b506102d6610431366004611ff2565b60116020526000908152604090205481565b34801561044f57600080fd5b506000546001600160a01b03166102a6565b34801561046d57600080fd5b506101fc61047c36600461201f565b610a58565b34801561048d57600080fd5b506102d660175481565b3480156104a357600080fd5b5060408051808201909152600681527f52455441524400000000000000000000000000000000000000000000000000006020820152610240565b3480156104e957600080fd5b506101fc6104f836600461203a565b610afc565b34801561050957600080fd5b506101fc610518366004612053565b610b5b565b34801561052957600080fd5b50610276610538366004611f85565b610bc9565b34801561054957600080fd5b50610276610558366004611ff2565b60106020526000908152604090205460ff1681565b34801561057957600080fd5b506101fc610bd6565b34801561058e57600080fd5b506101fc61059d366004612085565b610c2a565b3480156105ae57600080fd5b506102d66105bd366004612109565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105f457600080fd5b506101fc61060336600461203a565b610d19565b34801561061457600080fd5b506101fc610623366004611ff2565b610d78565b6000546001600160a01b031633146106875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b815181101561070d576001601060008484815181106106ab576106ab612142565b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610705816121a0565b91505061068a565b5050565b600061071e338484610ec1565b5060015b92915050565b6000610735848484611019565b61078784336107828560405180606001604052806028815260200161230e602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611605565b610ec1565b5060019392505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b0316600090815260106020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000546001600160a01b031633146108845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60158054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061090557506013546001600160a01b0316336001600160a01b0316145b61090e57600080fd5b476109188161163f565b50565b6001600160a01b03811660009081526002602052604081205461072290611679565b6000546001600160a01b031633146109975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b03163314610a535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601655565b6000546001600160a01b03163314610ab25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6015805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601855565b6000546001600160a01b03163314610bb55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b600893909355600a91909155600955600b55565b600061071e338484611019565b6012546001600160a01b0316336001600160a01b03161480610c0b57506013546001600160a01b0316336001600160a01b0316145b610c1457600080fd5b6000610c1f3061091b565b905061091881611710565b6000546001600160a01b03163314610c845760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b60005b82811015610d13578160056000868685818110610ca657610ca6612142565b9050602002016020810190610cbb9190611ff2565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610d0b816121a0565b915050610c87565b50505050565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b601755565b6000546001600160a01b03163314610dd25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067e565b6001600160a01b038116610e4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038316610f3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b038216610fb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110955760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161067e565b6001600160a01b0382166111115760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600081116111875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161067e565b6000546001600160a01b038481169116148015906111b357506000546001600160a01b03838116911614155b156114fe5760155474010000000000000000000000000000000000000000900460ff1661125d576000546001600160a01b0384811691161461125d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067e565b6016548111156112af5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067e565b6001600160a01b03831660009081526010602052604090205460ff161580156112f157506001600160a01b03821660009081526010602052604090205460ff16155b6113635760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f6564210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b6015546001600160a01b0383811691161461140257601754816113858461091b565b61138f91906121d8565b106114025760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a65210000000000000000000000000000000000000000000000000000000000606482015260840161067e565b600061140d3061091b565b6018546016549192508210159082106114265760165491505b80801561144f57506015547501000000000000000000000000000000000000000000900460ff16155b801561146957506015546001600160a01b03868116911614155b80156114915750601554760100000000000000000000000000000000000000000000900460ff165b80156114b657506001600160a01b03851660009081526005602052604090205460ff16155b80156114db57506001600160a01b03841660009081526005602052604090205460ff16155b156114fb576114e982611710565b4780156114f9576114f94761163f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061154057506001600160a01b03831660009081526005602052604090205460ff165b8061157257506015546001600160a01b0385811691161480159061157257506015546001600160a01b03848116911614155b1561157f575060006115f9565b6015546001600160a01b0385811691161480156115aa57506014546001600160a01b03848116911614155b156115bc57600854600c55600954600d555b6015546001600160a01b0384811691161480156115e757506014546001600160a01b03858116911614155b156115f957600a54600c55600b54600d555b610d1384848484611904565b600081848411156116295760405162461bcd60e51b815260040161067e9190611f12565b50600061163684866121f0565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561070d573d6000803e3d6000fd5b60006006548211156116f35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161067e565b60006116fd611932565b90506117098382611955565b9392505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178557611785612142565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156117f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181b9190612207565b8160018151811061182e5761182e612142565b6001600160a01b0392831660209182029290920101526014546118549130911684610ec1565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118a6908590600090869030904290600401612224565b600060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b8061191157611911611997565b61191c8484846119c5565b80610d1357610d13600e54600c55600f54600d55565b600080600061193f611abc565b909250905061194e8282611955565b9250505090565b600061170983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611afe565b600c541580156119a75750600d54155b156119ae57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806119d787611b2c565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a099087611b89565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a389086611bcb565b6001600160a01b038916600090815260026020526040902055611a5a81611c2a565b611a648483611c74565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611aa991815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea00000611ad88282611955565b821015611af557505060065492683635c9adc5dea0000092509050565b90939092509050565b60008183611b1f5760405162461bcd60e51b815260040161067e9190611f12565b5060006116368486612295565b6000806000806000806000806000611b498a600c54600d54611c98565b9250925092506000611b59611932565b90506000806000611b6c8e878787611ced565b919e509c509a509598509396509194505050505091939550919395565b600061170983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611605565b600080611bd883856121d8565b9050838110156117095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067e565b6000611c34611932565b90506000611c428383611d3d565b30600090815260026020526040902054909150611c5f9082611bcb565b30600090815260026020526040902055505050565b600654611c819083611b89565b600655600754611c919082611bcb565b6007555050565b6000808080611cb26064611cac8989611d3d565b90611955565b90506000611cc56064611cac8a89611d3d565b90506000611cdd82611cd78b86611b89565b90611b89565b9992985090965090945050505050565b6000808080611cfc8886611d3d565b90506000611d0a8887611d3d565b90506000611d188888611d3d565b90506000611d2a82611cd78686611b89565b939b939a50919850919650505050505050565b600082600003611d4f57506000610722565b6000611d5b83856122d0565b905082611d688583612295565b146117095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161067e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b038116811461091857600080fd5b8035611e2a81611e0a565b919050565b60006020808385031215611e4257600080fd5b823567ffffffffffffffff80821115611e5a57600080fd5b818501915085601f830112611e6e57600080fd5b813581811115611e8057611e80611ddb565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611ec357611ec3611ddb565b604052918252848201925083810185019188831115611ee157600080fd5b938501935b82851015611f0657611ef785611e1f565b84529385019392850192611ee6565b98975050505050505050565b600060208083528351808285015260005b81811015611f3f57858101830151858201604001528201611f23565b81811115611f51576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008060408385031215611f9857600080fd5b8235611fa381611e0a565b946020939093013593505050565b600080600060608486031215611fc657600080fd5b8335611fd181611e0a565b92506020840135611fe181611e0a565b929592945050506040919091013590565b60006020828403121561200457600080fd5b813561170981611e0a565b80358015158114611e2a57600080fd5b60006020828403121561203157600080fd5b6117098261200f565b60006020828403121561204c57600080fd5b5035919050565b6000806000806080858703121561206957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561209a57600080fd5b833567ffffffffffffffff808211156120b257600080fd5b818601915086601f8301126120c657600080fd5b8135818111156120d557600080fd5b8760208260051b85010111156120ea57600080fd5b602092830195509350612100918601905061200f565b90509250925092565b6000806040838503121561211c57600080fd5b823561212781611e0a565b9150602083013561213781611e0a565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d1576121d1612171565b5060010190565b600082198211156121eb576121eb612171565b500190565b60008282101561220257612202612171565b500390565b60006020828403121561221957600080fd5b815161170981611e0a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122745784516001600160a01b03168352938301939183019160010161224f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826122cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561230857612308612171565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041f7b9193682232f94f2fa8821ede9b4a2d149986929f5c8a551929b1745488964736f6c634300080f0033
Deployed Bytecode Sourcemap
4120:13500:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12793:169;;;;;;;;;;-1:-1:-1;12793:169:0;;;;;:::i;:::-;;:::i;:::-;;6621:83;;;;;;;;;;-1:-1:-1;6691:5:0;;;;;;;;;;;;;;;;;6621:83;;;;;;;:::i;:::-;;;;;;;;7546:193;;;;;;;;;;-1:-1:-1;7546:193:0;;;;;:::i;:::-;;:::i;:::-;;;2832:14:1;;2825:22;2807:41;;2795:2;2780:18;7546:193:0;2667:187:1;5461:41:0;;;;;;;;;;-1:-1:-1;5461:41:0;;;;-1:-1:-1;;;;;5461:41:0;;;;;;-1:-1:-1;;;;;3049:55:1;;;3031:74;;3019:2;3004:18;5461:41:0;2859:252:1;6898:95:0;;;;;;;;;;-1:-1:-1;4665:18:0;6898:95;;;3262:25:1;;;3250:2;3235:18;6898:95:0;3116:177:1;7747:446:0;;;;;;;;;;-1:-1:-1;7747:446:0;;;;;:::i;:::-;;:::i;5767:51::-;;;;;;;;;;;;;;;;6807:83;;;;;;;;;;-1:-1:-1;6807:83:0;;4339:1;3901:36:1;;3889:2;3874:18;6807:83:0;3759:184:1;5509:28:0;;;;;;;;;;-1:-1:-1;5509:28:0;;;;-1:-1:-1;;;;;5509:28:0;;;12970:92;;;;;;;;;;-1:-1:-1;12970:92:0;;;;;:::i;:::-;;:::i;17002:101::-;;;;;;;;;;-1:-1:-1;17002:101:0;;;;;:::i;:::-;;:::i;12550:235::-;;;;;;;;;;;;;:::i;7001:138::-;;;;;;;;;;-1:-1:-1;7001:138:0;;;;;:::i;:::-;;:::i;1607:148::-;;;;;;;;;;;;;:::i;17142:108::-;;;;;;;;;;-1:-1:-1;17142:108:0;;;;;:::i;:::-;;:::i;5659:46::-;;;;;;;;;;;;;;;;5203:43;;;;;;;;;;-1:-1:-1;5203:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1393:79;;;;;;;;;;-1:-1:-1;1431:7:0;1458:6;-1:-1:-1;;;;;1458:6:0;1393:79;;12197:101;;;;;;;;;;-1:-1:-1;12197:101:0;;;;;:::i;:::-;;:::i;5712:48::-;;;;;;;;;;;;;;;;6712:87;;;;;;;;;;-1:-1:-1;6784:7:0;;;;;;;;;;;;;;;;;6712:87;;16811:139;;;;;;;;;;-1:-1:-1;16811:139:0;;;;;:::i;:::-;;:::i;16468:291::-;;;;;;;;;;-1:-1:-1;16468:291:0;;;;;:::i;:::-;;:::i;7147:199::-;;;;;;;;;;-1:-1:-1;7147:199:0;;;;;:::i;:::-;;:::i;5165:36::-;;;;;;;;;;-1:-1:-1;5165:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12306:236;;;;;;;;;;;;;:::i;17381:234::-;;;;;;;;;;-1:-1:-1;17381:234:0;;;;;:::i;:::-;;:::i;7354:184::-;;;;;;;;;;-1:-1:-1;7354:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7503:18:0;;;7471:7;7503:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7354:184;17258:115;;;;;;;;;;-1:-1:-1;17258:115:0;;;;;:::i;:::-;;:::i;1763:244::-;;;;;;;;;;-1:-1:-1;1763:244:0;;;;;:::i;:::-;;:::i;12793:169::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;;;;;;;;;12869:9:::1;12864:91;12888:5;:12;12884:1;:16;12864:91;;;12939:4;12922;:14;12927:5;12933:1;12927:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12922:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12922:14:0;:21;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;12902:3;::::1;::::0;::::1;:::i;:::-;;;;12864:91;;;;12793:169:::0;:::o;7546:193::-;7648:4;7670:39;232:10;7693:7;7702:6;7670:8;:39::i;:::-;-1:-1:-1;7727:4:0;7546:193;;;;;:::o;7747:446::-;7879:4;7896:36;7906:6;7914:9;7925:6;7896:9;:36::i;:::-;7943:220;7966:6;232:10;8014:138;8070:6;8014:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8014:19:0;;;;;;:11;:19;;;;;;;;232:10;8014:33;;;;;;;;;;:37;:138::i;:::-;7943:8;:220::i;:::-;-1:-1:-1;8181:4:0;7747:446;;;;;:::o;12970:92::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;-1:-1:-1;;;;;13034:12:0::1;13049:5;13034:12:::0;;;:4:::1;:12;::::0;;;;:20;;;::::1;::::0;;12970:92::o;17002:101::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;17069:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17002:101::o;12550:235::-;12616:19;;-1:-1:-1;;;;;12616:19:0;232:10;-1:-1:-1;;;;;12600:35:0;;:72;;;-1:-1:-1;12655:17:0;;-1:-1:-1;;;;;12655:17:0;232:10;-1:-1:-1;;;;;12639:33:0;;12600:72;12592:81;;;;;;12713:21;12745:32;12713:21;12745:12;:32::i;:::-;12581:204;12550:235::o;7001:138::-;-1:-1:-1;;;;;7114:16:0;;7067:7;7114:16;;;:7;:16;;;;;;7094:37;;:19;:37::i;1607:148::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;1714:1:::1;1698:6:::0;;1677:40:::1;::::0;-1:-1:-1;;;;;1698:6:0;;::::1;::::0;1677:40:::1;::::0;1714:1;;1677:40:::1;1745:1;1728:19:::0;;;::::1;::::0;;1607:148::o;17142:108::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;17216:12:::1;:26:::0;17142:108::o;12197:101::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;12264:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12197:101::o;16811:139::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;16902:19:::1;:40:::0;16811:139::o;16468:291::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;16602:14:::1;:30:::0;;;;16643:15:::1;:32:::0;;;;16686:12:::1;:26:::0;16723:13:::1;:28:::0;16468:291::o;7147:199::-;7252:4;7274:42;232:10;7298:9;7309:6;7274:9;:42::i;12306:236::-;12372:19;;-1:-1:-1;;;;;12372:19:0;232:10;-1:-1:-1;;;;;12356:35:0;;:72;;;-1:-1:-1;12411:17:0;;-1:-1:-1;;;;;12411:17:0;232:10;-1:-1:-1;;;;;12395:33:0;;12356:72;12348:81;;;;;;12440:23;12466:24;12484:4;12466:9;:24::i;:::-;12440:50;;12501:33;12518:15;12501:16;:33::i;17381:234::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;17498:9:::1;17494:114;17513:19:::0;;::::1;17494:114;;;17588:8;17554:18;:31;17573:8;;17582:1;17573:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17554:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17554:31:0;:42;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;17534:3;::::1;::::0;::::1;:::i;:::-;;;;17494:114;;;;17381:234:::0;;;:::o;17258:115::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;17335:14:::1;:30:::0;17258:115::o;1763:244::-;1520:6;;-1:-1:-1;;;;;1520:6:0;232:10;1520:22;1512:67;;;;-1:-1:-1;;;1512:67:0;;6645:2:1;1512:67:0;;;6627:21:1;;;6664:18;;;6657:30;6723:34;6703:18;;;6696:62;6775:18;;1512:67:0;6443:356:1;1512:67:0;-1:-1:-1;;;;;1852:22:0;::::1;1844:73;;;::::0;-1:-1:-1;;;1844:73:0;;7584:2:1;1844:73:0::1;::::0;::::1;7566:21:1::0;7623:2;7603:18;;;7596:30;7662:34;7642:18;;;7635:62;7733:8;7713:18;;;7706:36;7759:19;;1844:73:0::1;7382:402:1::0;1844:73:0::1;1954:6;::::0;;1933:38:::1;::::0;-1:-1:-1;;;;;1933:38:0;;::::1;::::0;1954:6;::::1;::::0;1933:38:::1;::::0;::::1;1982:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;1982:17:0;;;::::1;::::0;;;::::1;::::0;;1763:244::o;8884:369::-;-1:-1:-1;;;;;9011:19:0;;9003:68;;;;-1:-1:-1;;;9003:68:0;;7991:2:1;9003:68:0;;;7973:21:1;8030:2;8010:18;;;8003:30;8069:34;8049:18;;;8042:62;8140:6;8120:18;;;8113:34;8164:19;;9003:68:0;7789:400:1;9003:68:0;-1:-1:-1;;;;;9090:21:0;;9082:68;;;;-1:-1:-1;;;9082:68:0;;8396:2:1;9082:68:0;;;8378:21:1;8435:2;8415:18;;;8408:30;8474:34;8454:18;;;8447:62;8545:4;8525:18;;;8518:32;8567:19;;9082:68:0;8194:398:1;9082:68:0;-1:-1:-1;;;;;9161:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9213:32;;3262:25:1;;;9213:32:0;;3235:18:1;9213:32:0;;;;;;;8884:369;;;:::o;9261:2330::-;-1:-1:-1;;;;;9383:18:0;;9375:68;;;;-1:-1:-1;;;9375:68:0;;8799:2:1;9375:68:0;;;8781:21:1;8838:2;8818:18;;;8811:30;8877:34;8857:18;;;8850:62;8948:7;8928:18;;;8921:35;8973:19;;9375:68:0;8597:401:1;9375:68:0;-1:-1:-1;;;;;9462:16:0;;9454:64;;;;-1:-1:-1;;;9454:64:0;;9205:2:1;9454:64:0;;;9187:21:1;9244:2;9224:18;;;9217:30;9283:34;9263:18;;;9256:62;9354:5;9334:18;;;9327:33;9377:19;;9454:64:0;9003:399:1;9454:64:0;9546:1;9537:6;:10;9529:64;;;;-1:-1:-1;;;9529:64:0;;9609:2:1;9529:64:0;;;9591:21:1;9648:2;9628:18;;;9621:30;9687:34;9667:18;;;9660:62;9758:11;9738:18;;;9731:39;9787:19;;9529:64:0;9407:405:1;9529:64:0;1431:7;1458:6;-1:-1:-1;;;;;9610:15:0;;;1458:6;;9610:15;;;;:32;;-1:-1:-1;1431:7:0;1458:6;-1:-1:-1;;;;;9629:13:0;;;1458:6;;9629:13;;9610:32;9606:1259;;;9699:11;;;;;;;9694:144;;1431:7;1458:6;-1:-1:-1;;;;;9739:15:0;;;1458:6;;9739:15;9731:91;;;;-1:-1:-1;;;9731:91:0;;10019:2:1;9731:91:0;;;10001:21:1;10058:2;10038:18;;;10031:30;10097:34;10077:18;;;10070:62;10168:33;10148:18;;;10141:61;10219:19;;9731:91:0;9817:427:1;9731:91:0;9872:12;;9862:6;:22;;9854:63;;;;-1:-1:-1;;;9854:63:0;;10451:2:1;9854:63:0;;;10433:21:1;10490:2;10470:18;;;10463:30;10529;10509:18;;;10502:58;10577:18;;9854:63:0;10249:352:1;9854:63:0;-1:-1:-1;;;;;9941:10:0;;;;;;:4;:10;;;;;;;;9940:11;:24;;;;-1:-1:-1;;;;;;9956:8:0;;;;;;:4;:8;;;;;;;;9955:9;9940:24;9932:72;;;;-1:-1:-1;;;9932:72:0;;10808:2:1;9932:72:0;;;10790:21:1;10847:2;10827:18;;;10820:30;10886:34;10866:18;;;10859:62;10957:5;10937:18;;;10930:33;10980:19;;9932:72:0;10606:399:1;9932:72:0;10030:13;;-1:-1:-1;;;;;10024:19:0;;;10030:13;;10024:19;10021:146;;10097:14;;10088:6;10072:13;10082:2;10072:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10064:87;;;;-1:-1:-1;;;10064:87:0;;11345:2:1;10064:87:0;;;11327:21:1;11384:2;11364:18;;;11357:30;11423:34;11403:18;;;11396:62;11494:5;11474:18;;;11467:33;11517:19;;10064:87:0;11143:399:1;10064:87:0;10183:28;10214:24;10232:4;10214:9;:24::i;:::-;10292:19;;10355:12;;10183:55;;-1:-1:-1;10268:43:0;;;;10331:36;;10328:124;;10424:12;;10401:35;;10328:124;10472:7;:18;;;;-1:-1:-1;10484:6:0;;;;;;;10483:7;10472:18;:43;;;;-1:-1:-1;10502:13:0;;-1:-1:-1;;;;;10494:21:0;;;10502:13;;10494:21;;10472:43;:58;;;;-1:-1:-1;10519:11:0;;;;;;;10472:58;:87;;;;-1:-1:-1;;;;;;10535:24:0;;;;;;:18;:24;;;;;;;;10534:25;10472:87;:114;;;;-1:-1:-1;;;;;;10564:22:0;;;;;;:18;:22;;;;;;;;10563:23;10472:114;10468:386;;;10607:38;10624:20;10607:16;:38::i;:::-;10693:21;10737:22;;10733:106;;10784:35;10797:21;10784:12;:35::i;:::-;10588:266;10468:386;9644:1221;;9606:1259;-1:-1:-1;;;;;10941:24:0;;10877:12;10941:24;;;:18;:24;;;;;;10892:4;;10941:24;;;:50;;-1:-1:-1;;;;;;10969:22:0;;;;;;:18;:22;;;;;;;;10941:50;10940:102;;;-1:-1:-1;11005:13:0;;-1:-1:-1;;;;;10997:21:0;;;11005:13;;10997:21;;;;:44;;-1:-1:-1;11028:13:0;;-1:-1:-1;;;;;11022:19:0;;;11028:13;;11022:19;;10997:44;10936:594;;;-1:-1:-1;11069:5:0;10936:594;;;11152:13;;-1:-1:-1;;;;;11144:21:0;;;11152:13;;11144:21;:55;;;;-1:-1:-1;11183:15:0;;-1:-1:-1;;;;;11169:30:0;;;11183:15;;11169:30;;11144:55;11141:162;;;11232:14;;11220:9;:26;11275:12;;11265:7;:22;11141:162;11362:13;;-1:-1:-1;;;;;11356:19:0;;;11362:13;;11356:19;:55;;;;-1:-1:-1;11395:15:0;;-1:-1:-1;;;;;11379:32:0;;;11395:15;;11379:32;;11356:55;11352:165;;;11444:15;;11432:9;:27;11488:13;;11478:7;:23;11352:165;11542:41;11557:4;11563:2;11567:6;11575:7;11542:14;:41::i;2371:224::-;2491:7;2527:12;2519:6;;;;2511:29;;;;-1:-1:-1;;;2511:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2551:9:0;2563:5;2567:1;2563;:5;:::i;:::-;2551:17;2371:224;-1:-1:-1;;;;;2371:224:0:o;12090:99::-;12147:17;;:34;;-1:-1:-1;;;;;12147:17:0;;;;:34;;;;;12174:6;;12147:17;:34;:17;:34;12174:6;12147:17;:34;;;;;;;;;;;;;;;;;;;8201:323;8296:7;8354;;8343;:18;;8321:110;;;;-1:-1:-1;;;8321:110:0;;11879:2:1;8321:110:0;;;11861:21:1;11918:2;11898:18;;;11891:30;11957:34;11937:18;;;11930:62;12028:12;12008:18;;;12001:40;12058:19;;8321:110:0;11677:406:1;8321:110:0;8442:19;8464:10;:8;:10::i;:::-;8442:32;-1:-1:-1;8492:24:0;:7;8442:32;8492:11;:24::i;:::-;8485:31;8201:323;-1:-1:-1;;;8201:323:0:o;11599:483::-;5913:6;:13;;;;;;;;11701:16:::1;::::0;;11715:1:::1;11701:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11701:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11701:16:0::1;11677:40;;11746:4;11728;11733:1;11728:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11728:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11772:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11728:7;;11772:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11762:4;11767:1;11762:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11762:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11837:15:::1;::::0;11805:62:::1;::::0;11822:4:::1;::::0;11837:15:::1;11855:11:::0;11805:8:::1;:62::i;:::-;11878:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;11878:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11959:11;;11878:15:::1;::::0;12001:4;;12028::::1;::::0;12048:15:::1;::::0;11878:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5949:6:0;:14;;;;;;-1:-1:-1;;;;11599:483:0:o;13070:282::-;13226:7;13221:28;;13235:14;:12;:14::i;:::-;13260:44;13278:6;13286:9;13297:6;13260:17;:44::i;:::-;13320:7;13315:29;;13329:15;8815:17;;8803:9;:29;8853:15;;8843:7;:25;8759:117;16031:164;16073:7;16094:15;16111;16130:19;:17;:19::i;:::-;16093:56;;-1:-1:-1;16093:56:0;-1:-1:-1;16167:20:0;16093:56;;16167:11;:20::i;:::-;16160:27;;;;16031:164;:::o;2857:132::-;2915:7;2942:39;2946:1;2949;2942:39;;;;;;;;;;;;;;;;;:3;:39::i;8532:219::-;8579:9;;:14;:30;;;;-1:-1:-1;8597:7:0;;:12;8579:30;8575:43;;;8532:219::o;8575:43::-;8650:9;;;8630:17;:29;8688:7;;;8670:15;:25;-1:-1:-1;8708:13:0;;;;8732:11;8532:219::o;13360:610::-;13507:15;13537:23;13575:12;13602:23;13640:12;13667:13;13694:19;13705:7;13694:10;:19::i;:::-;-1:-1:-1;;;;;13742:15:0;;;;;;:7;:15;;;;;;13492:221;;-1:-1:-1;13492:221:0;;-1:-1:-1;13492:221:0;;-1:-1:-1;13492:221:0;-1:-1:-1;13492:221:0;-1:-1:-1;13492:221:0;-1:-1:-1;13742:28:0;;13492:221;13742:19;:28::i;:::-;-1:-1:-1;;;;;13724:15:0;;;;;;;:7;:15;;;;;;:46;;;;13802:18;;;;;;;:39;;13825:15;13802:22;:39::i;:::-;-1:-1:-1;;;;;13781:18:0;;;;;;:7;:18;;;;;:60;13852:16;13862:5;13852:9;:16::i;:::-;13879:23;13891:4;13897;13879:11;:23::i;:::-;13935:9;-1:-1:-1;;;;;13918:44:0;13927:6;-1:-1:-1;;;;;13918:44:0;;13946:15;13918:44;;;;3262:25:1;;3250:2;3235:18;;3116:177;13918:44:0;;;;;;;;13481:489;;;;;;13360:610;;;:::o;16203:257::-;16301:7;;16254;;;;4665:18;16369:20;16301:7;4665:18;16369:11;:20::i;:::-;16359:7;:30;16355:61;;;-1:-1:-1;;16399:7:0;;;4665:18;;-1:-1:-1;16203:257:0;-1:-1:-1;16203:257:0:o;16355:61::-;16435:7;;16444;;-1:-1:-1;16203:257:0;-1:-1:-1;16203:257:0:o;2997:223::-;3117:7;3152:12;3145:5;3137:28;;;;-1:-1:-1;;;3137:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3176:9:0;3188:5;3192:1;3188;:5;:::i;14389:615::-;14489:7;14511;14533;14555;14577;14599;14635:23;14660:12;14674:13;14704:40;14716:7;14725:9;;14736:7;;14704:11;:40::i;:::-;14634:110;;;;;;14755:19;14777:10;:8;:10::i;:::-;14755:32;;14799:15;14816:23;14841:12;14870:46;14882:7;14891:4;14897:5;14904:11;14870;:46::i;:::-;14798:118;;-1:-1:-1;14798:118:0;-1:-1:-1;14798:118:0;-1:-1:-1;14967:15:0;;-1:-1:-1;14984:4:0;;-1:-1:-1;14990:5:0;;-1:-1:-1;;;;;14389:615:0;;;;;;;:::o;2227:136::-;2285:7;2312:43;2316:1;2319;2312:43;;;;;;;;;;;;;;;;;:3;:43::i;2040:179::-;2098:7;;2130:5;2134:1;2130;:5;:::i;:::-;2118:17;;2159:1;2154;:6;;2146:46;;;;-1:-1:-1;;;2146:46:0;;13856:2:1;2146:46:0;;;13838:21:1;13895:2;13875:18;;;13868:30;13934:29;13914:18;;;13907:57;13981:18;;2146:46:0;13654:351:1;13978:211:0;14031:19;14053:10;:8;:10::i;:::-;14031:32;-1:-1:-1;14074:13:0;14090:22;:5;14031:32;14090:9;:22::i;:::-;14164:4;14148:22;;;;:7;:22;;;;;;14074:38;;-1:-1:-1;14148:33:0;;14074:38;14148:26;:33::i;:::-;14139:4;14123:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13978:211:0:o;14197:147::-;14275:7;;:17;;14287:4;14275:11;:17::i;:::-;14265:7;:27;14316:10;;:20;;14331:4;14316:14;:20::i;:::-;14303:10;:33;-1:-1:-1;;14197:147:0:o;15012:469::-;15181:7;;;;15275:30;15301:3;15275:21;:7;15287:8;15275:11;:21::i;:::-;:25;;:30::i;:::-;15260:45;-1:-1:-1;15316:13:0;15332:28;15356:3;15332:19;:7;15344:6;15332:11;:19::i;:28::-;15316:44;-1:-1:-1;15371:23:0;15397:28;15316:44;15397:17;:7;15409:4;15397:11;:17::i;:::-;:21;;:28::i;:::-;15371:54;15461:4;;-1:-1:-1;15467:5:0;;-1:-1:-1;15012:469:0;;-1:-1:-1;;;;;15012:469:0:o;15489:534::-;15683:7;;;;15780:24;:7;15792:11;15780;:24::i;:::-;15762:42;-1:-1:-1;15815:12:0;15830:21;:4;15839:11;15830:8;:21::i;:::-;15815:36;-1:-1:-1;15862:13:0;15878:22;:5;15888:11;15878:9;:22::i;:::-;15862:38;-1:-1:-1;15911:23:0;15937:28;15862:38;15937:17;:7;15949:4;15937:11;:17::i;:28::-;15984:7;;;;-1:-1:-1;16010:4:0;;-1:-1:-1;15489:534:0;;-1:-1:-1;;;;;;;15489:534:0:o;2603:246::-;2661:7;2685:1;2690;2685:6;2681:47;;-1:-1:-1;2715:1:0;2708:8;;2681:47;2738:9;2750:5;2754:1;2750;:5;:::i;:::-;2738:17;-1:-1:-1;2783:1:0;2774:5;2778:1;2738:17;2774:5;:::i;:::-;:10;2766:56;;;;-1:-1:-1;;;2766:56:0;;14445:2:1;2766:56:0;;;14427:21:1;14484:2;14464:18;;;14457:30;14523:34;14503:18;;;14496:62;14594:3;14574:18;;;14567:31;14615:19;;2766:56:0;14243:397:1;14:184;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:154;-1:-1:-1;;;;;282:5:1;278:54;271:5;268:65;258:93;;347:1;344;337:12;362:134;430:20;;459:31;430:20;459:31;:::i;:::-;362:134;;;:::o;501:1180::-;585:6;616:2;659;647:9;638:7;634:23;630:32;627:52;;;675:1;672;665:12;627:52;715:9;702:23;744:18;785:2;777:6;774:14;771:34;;;801:1;798;791:12;771:34;839:6;828:9;824:22;814:32;;884:7;877:4;873:2;869:13;865:27;855:55;;906:1;903;896:12;855:55;942:2;929:16;964:2;960;957:10;954:36;;;970:18;;:::i;:::-;1016:2;1013:1;1009:10;1048:2;1042:9;1107:66;1102:2;1098;1094:11;1090:84;1082:6;1078:97;1225:6;1213:10;1210:22;1205:2;1193:10;1190:18;1187:46;1184:72;;;1236:18;;:::i;:::-;1272:2;1265:22;1322:18;;;1356:15;;;;-1:-1:-1;1398:11:1;;;1394:20;;;1426:19;;;1423:39;;;1458:1;1455;1448:12;1423:39;1482:11;;;;1502:148;1518:6;1513:3;1510:15;1502:148;;;1584:23;1603:3;1584:23;:::i;:::-;1572:36;;1535:12;;;;1628;;;;1502:148;;;1669:6;501:1180;-1:-1:-1;;;;;;;;501:1180:1:o;1686:656::-;1798:4;1827:2;1856;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1956:1;1966:140;1980:6;1977:1;1974:13;1966:140;;;2075:14;;;2071:23;;2065:30;2041:17;;;2060:2;2037:26;2030:66;1995:10;;1966:140;;;2124:6;2121:1;2118:13;2115:91;;;2194:1;2189:2;2180:6;2169:9;2165:22;2161:31;2154:42;2115:91;-1:-1:-1;2258:2:1;2246:15;2263:66;2242:88;2227:104;;;;2333:2;2223:113;;1686:656;-1:-1:-1;;;1686:656:1:o;2347:315::-;2415:6;2423;2476:2;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2531:9;2518:23;2550:31;2575:5;2550:31;:::i;:::-;2600:5;2652:2;2637:18;;;;2624:32;;-1:-1:-1;;;2347:315:1:o;3298:456::-;3375:6;3383;3391;3444:2;3432:9;3423:7;3419:23;3415:32;3412:52;;;3460:1;3457;3450:12;3412:52;3499:9;3486:23;3518:31;3543:5;3518:31;:::i;:::-;3568:5;-1:-1:-1;3625:2:1;3610:18;;3597:32;3638:33;3597:32;3638:33;:::i;:::-;3298:456;;3690:7;;-1:-1:-1;;;3744:2:1;3729:18;;;;3716:32;;3298:456::o;4179:247::-;4238:6;4291:2;4279:9;4270:7;4266:23;4262:32;4259:52;;;4307:1;4304;4297:12;4259:52;4346:9;4333:23;4365:31;4390:5;4365:31;:::i;4431:160::-;4496:20;;4552:13;;4545:21;4535:32;;4525:60;;4581:1;4578;4571:12;4596:180;4652:6;4705:2;4693:9;4684:7;4680:23;4676:32;4673:52;;;4721:1;4718;4711:12;4673:52;4744:26;4760:9;4744:26;:::i;4781:180::-;4840:6;4893:2;4881:9;4872:7;4868:23;4864:32;4861:52;;;4909:1;4906;4899:12;4861:52;-1:-1:-1;4932:23:1;;4781:180;-1:-1:-1;4781:180:1:o;4966:385::-;5052:6;5060;5068;5076;5129:3;5117:9;5108:7;5104:23;5100:33;5097:53;;;5146:1;5143;5136:12;5097:53;-1:-1:-1;;5169:23:1;;;5239:2;5224:18;;5211:32;;-1:-1:-1;5290:2:1;5275:18;;5262:32;;5341:2;5326:18;5313:32;;-1:-1:-1;4966:385:1;-1:-1:-1;4966:385:1:o;5356:689::-;5448:6;5456;5464;5517:2;5505:9;5496:7;5492:23;5488:32;5485:52;;;5533:1;5530;5523:12;5485:52;5573:9;5560:23;5602:18;5643:2;5635:6;5632:14;5629:34;;;5659:1;5656;5649:12;5629:34;5697:6;5686:9;5682:22;5672:32;;5742:7;5735:4;5731:2;5727:13;5723:27;5713:55;;5764:1;5761;5754:12;5713:55;5804:2;5791:16;5830:2;5822:6;5819:14;5816:34;;;5846:1;5843;5836:12;5816:34;5901:7;5894:4;5884:6;5881:1;5877:14;5873:2;5869:23;5865:34;5862:47;5859:67;;;5922:1;5919;5912:12;5859:67;5953:4;5945:13;;;;-1:-1:-1;5977:6:1;-1:-1:-1;6002:37:1;;6018:20;;;-1:-1:-1;6002:37:1;:::i;:::-;5992:47;;5356:689;;;;;:::o;6050:388::-;6118:6;6126;6179:2;6167:9;6158:7;6154:23;6150:32;6147:52;;;6195:1;6192;6185:12;6147:52;6234:9;6221:23;6253:31;6278:5;6253:31;:::i;:::-;6303:5;-1:-1:-1;6360:2:1;6345:18;;6332:32;6373:33;6332:32;6373:33;:::i;:::-;6425:7;6415:17;;;6050:388;;;;;:::o;6804:184::-;6856:77;6853:1;6846:88;6953:4;6950:1;6943:15;6977:4;6974:1;6967:15;6993:184;7045:77;7042:1;7035:88;7142:4;7139:1;7132:15;7166:4;7163:1;7156:15;7182:195;7221:3;7252:66;7245:5;7242:77;7239:103;;7322:18;;:::i;:::-;-1:-1:-1;7369:1:1;7358:13;;7182:195::o;11010:128::-;11050:3;11081:1;11077:6;11074:1;11071:13;11068:39;;;11087:18;;:::i;:::-;-1:-1:-1;11123:9:1;;11010:128::o;11547:125::-;11587:4;11615:1;11612;11609:8;11606:34;;;11620:18;;:::i;:::-;-1:-1:-1;11657:9:1;;11547:125::o;12088:251::-;12158:6;12211:2;12199:9;12190:7;12186:23;12182:32;12179:52;;;12227:1;12224;12217:12;12179:52;12259:9;12253:16;12278:31;12303:5;12278:31;:::i;12344:1026::-;12606:4;12654:3;12643:9;12639:19;12685:6;12674:9;12667:25;12711:2;12749:6;12744:2;12733:9;12729:18;12722:34;12792:3;12787:2;12776:9;12772:18;12765:31;12816:6;12851;12845:13;12882:6;12874;12867:22;12920:3;12909:9;12905:19;12898:26;;12959:2;12951:6;12947:15;12933:29;;12980:1;12990:218;13004:6;13001:1;12998:13;12990:218;;;13069:13;;-1:-1:-1;;;;;13065:62:1;13053:75;;13183:15;;;;13148:12;;;;13026:1;13019:9;12990:218;;;-1:-1:-1;;;;;;;13264:55:1;;;;13259:2;13244:18;;13237:83;-1:-1:-1;;;13351:3:1;13336:19;13329:35;13225:3;12344:1026;-1:-1:-1;;;12344:1026:1:o;13375:274::-;13415:1;13441;13431:189;;13476:77;13473:1;13466:88;13577:4;13574:1;13567:15;13605:4;13602:1;13595:15;13431:189;-1:-1:-1;13634:9:1;;13375:274::o;14010:228::-;14050:7;14176:1;14108:66;14104:74;14101:1;14098:81;14093:1;14086:9;14079:17;14075:105;14072:131;;;14183:18;;:::i;:::-;-1:-1:-1;14223:9:1;;14010:228::o
Swarm Source
ipfs://41f7b9193682232f94f2fa8821ede9b4a2d149986929f5c8a551929b17454889
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.