ERC-20
Overview
Max Total Supply
10,000,000,000 RYOSHISWAP
Holders
69
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
89,591,502.550174483 RYOSHISWAPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RYOSHISWAP
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-04 */ // SPDX-License-Identifier: Unlicensed //https://t.me/ryoshiswap pragma solidity ^0.8.4; 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 RYOSHISWAP is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Ryoshi Swap"; string private constant _symbol = "RYOSHISWAP"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e10 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _redisFeeJeets = 2; uint256 private _taxFeeJeets = 9; uint256 private _redisFeeOnBuy = 2; uint256 private _taxFeeOnBuy = 9; uint256 private _redisFeeOnSell = 2; uint256 private _taxFeeOnSell = 9; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 0; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _marketingAddress = payable(0xbE6be10697F85da557bAb10AD08e5F2aAbC4aD43); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public timeJeets = 2 minutes; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private isMaxBuyActivated = true; uint256 public _maxTxAmount = 5e7 * 10**9; uint256 public _maxWalletSize = 15e7 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; uint256 public _minimumBuyAmount = 5e7 * 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[_marketingAddress] = true; _isExcludedFromFee[deadAddress] = 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 && _burnFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _redisFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; _burnFee = _previousburnFee; } 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"); require(!_isSniper[to], 'Stop sniping!'); require(!_isSniper[from], 'Stop sniping!'); require(!_isSniper[_msgSender()], 'Stop sniping!'); if (from != owner() && to != owner()) { if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); if (isMaxBuyActivated) { if (block.timestamp <= launchTime + 3 minutes) { require(amount <= _minimumBuyAmount, "Amount too much"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 burntAmount = 0; if (_burnFee > 0) { burntAmount = contractTokenBalance.mul(_burnFee).div(10**2); burnTokens(burntAmount); } swapTokensForEth(contractTokenBalance - burntAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; if (block.timestamp == launchTime) { _isSniper[to] = true; } } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) { _redisFee = _redisFeeJeets; _taxFee = _taxFeeJeets; } else { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } } _tokenTransfer(from, to, amount, takeFee); } function burnTokens(uint256 burntAmount) private { _transfer(address(this), deadAddress, burntAmount); } 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() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _marketingAddress); _marketingAddress = payable(marketingAddress); _isExcludedFromFee[_marketingAddress] = true; } function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner { isMaxBuyActivated = _isMaxBuyActivated; } function manualswap(uint256 amount) external { require(_msgSender() == _marketingAddress); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function addSniper(address[] memory snipers) external onlyOwner { for(uint256 i= 0; i< snipers.length; i++){ _isSniper[snipers[i]] = true; } } function removeSniper(address sniper) external onlyOwner { if (_isSniper[sniper]) { _isSniper[sniper] = false; } } function isSniper(address sniper) external view returns (bool){ return _isSniper[sniper]; } function manualsend() external { require(_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 toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner { require(maxWalletSize >= _maxWalletSize); _maxWalletSize = maxWalletSize; } function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner { _taxFeeOnBuy = amountBuy; _taxFeeOnSell = amountSell; } function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner { _redisFeeOnBuy = amountRefBuy; _redisFeeOnSell = amountRefSell; } function setBurnFee(uint256 amount) external onlyOwner { _burnFee = amount; } function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner { _redisFeeJeets = amountRedisJeets; _taxFeeJeets = amountTaxJeets; } function setTimeJeets(uint256 hoursTime) external onlyOwner { timeJeets = hoursTime * 1 hours; } }
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":"_minimumBuyAmount","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":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","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":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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
60806040526200001a678ac7230489e8000060001962000404565b6200002890600019620003de565b6007556002600b8190556009600c819055600d829055600e819055600f82905560108190556011829055601281905560006013819055601492909255601555601655601780546001600160a01b03191673be6be10697f85da557bab10ad08e5f2aabc4ad431790556078601855601a805461010160b01b62ffffff60a81b1990911617905566b1a2bc2ec50000601b819055670214e8348c4f0000601c5564e8d4a51000601d55601e55348015620000df57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200019857600080fd5b505afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d39190620003ac565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021c57600080fd5b505afa15801562000231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002579190620003ac565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002a057600080fd5b505af1158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620003ac565b601a80546001600160a01b0319166001600160a01b039283161790556000805482168152600660209081526040808320805460ff19908116600190811790925530855282852080548216831790556017549095168452818420805486168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909516179093559151678ac7230489e80000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000427565b600060208284031215620003bf57600080fd5b81516001600160a01b0381168114620003d757600080fd5b9392505050565b600082821015620003ff57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200042257634e487b7160e01b600052601260045260246000fd5b500690565b6121a080620004376000396000f3fe60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610648578063e0f9f6a01461068e578063ea1644d5146106ae578063f2fde38b146106ce578063fe72c3c1146106ee57600080fd5b806395d89b41146105955780639ec350ed146105c85780639f131571146105e8578063a9059cbb14610608578063c55284901461062857600080fd5b80637c519ffb116100f25780637c519ffb146105165780637d1db4a51461052b578063881dce60146105415780638da5cb5b146105615780638f9a55c01461057f57600080fd5b806370a08231146104ab578063715018a6146104cb57806374010ece146104e0578063790ca4131461050057600080fd5b8063313ce567116101a65780634bf2c7c9116101755780634bf2c7c9146104205780635d098b38146104405780636b9cf534146104605780636d8aa8f8146104765780636fc3eaec1461049657600080fd5b8063313ce567146103a457806333251a0b146103c057806338eea22d146103e057806349bd5a5e1461040057600080fd5b806318160ddd116101ed57806318160ddd1461031157806323b872dd1461033657806327c8f8351461035657806328bb665a1461036c5780632fd689e31461038e57600080fd5b806306fdde031461022a578063095ea7b3146102705780630f3a325f146102a05780631694505e146102d957600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600b81526a052796f73686920537761760ac1b60208201525b6040516102679190611f3e565b60405180910390f35b34801561027c57600080fd5b5061029061028b366004611de9565b610704565b6040519015158152602001610267565b3480156102ac57600080fd5b506102906102bb366004611d35565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102e557600080fd5b506019546102f9906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b34801561031d57600080fd5b50678ac7230489e800005b604051908152602001610267565b34801561034257600080fd5b50610290610351366004611da8565b61071b565b34801561036257600080fd5b506102f961dead81565b34801561037857600080fd5b5061038c610387366004611e15565b610784565b005b34801561039a57600080fd5b50610328601d5481565b3480156103b057600080fd5b5060405160098152602001610267565b3480156103cc57600080fd5b5061038c6103db366004611d35565b610823565b3480156103ec57600080fd5b5061038c6103fb366004611f1c565b610892565b34801561040c57600080fd5b50601a546102f9906001600160a01b031681565b34801561042c57600080fd5b5061038c61043b366004611f03565b6108c7565b34801561044c57600080fd5b5061038c61045b366004611d35565b6108f6565b34801561046c57600080fd5b50610328601e5481565b34801561048257600080fd5b5061038c610491366004611ee1565b610950565b3480156104a257600080fd5b5061038c610998565b3480156104b757600080fd5b506103286104c6366004611d35565b6109c2565b3480156104d757600080fd5b5061038c6109e4565b3480156104ec57600080fd5b5061038c6104fb366004611f03565b610a58565b34801561050c57600080fd5b50610328600a5481565b34801561052257600080fd5b5061038c610a87565b34801561053757600080fd5b50610328601b5481565b34801561054d57600080fd5b5061038c61055c366004611f03565b610ae1565b34801561056d57600080fd5b506000546001600160a01b03166102f9565b34801561058b57600080fd5b50610328601c5481565b3480156105a157600080fd5b5060408051808201909152600a815269052594f534849535741560b41b602082015261025a565b3480156105d457600080fd5b5061038c6105e3366004611f1c565b610b5d565b3480156105f457600080fd5b5061038c610603366004611ee1565b610b92565b34801561061457600080fd5b50610290610623366004611de9565b610bda565b34801561063457600080fd5b5061038c610643366004611f1c565b610be7565b34801561065457600080fd5b50610328610663366004611d6f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561069a57600080fd5b5061038c6106a9366004611f03565b610c1c565b3480156106ba57600080fd5b5061038c6106c9366004611f03565b610c58565b3480156106da57600080fd5b5061038c6106e9366004611d35565b610c96565b3480156106fa57600080fd5b5061032860185481565b6000610711338484610d80565b5060015b92915050565b6000610728848484610ea4565b61077a843361077585604051806060016040528060288152602001612143602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906115ca565b610d80565b5060019392505050565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611f93565b60405180910390fd5b60005b815181101561081f576001600960008484815181106107db576107db612101565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610817816120d0565b9150506107ba565b5050565b6000546001600160a01b0316331461084d5760405162461bcd60e51b81526004016107ae90611f93565b6001600160a01b03811660009081526009602052604090205460ff161561088f576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108bc5760405162461bcd60e51b81526004016107ae90611f93565b600d91909155600f55565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016107ae90611f93565b601355565b6017546001600160a01b0316336001600160a01b03161461091657600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461097a5760405162461bcd60e51b81526004016107ae90611f93565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b0316146109b857600080fd5b4761088f81611604565b6001600160a01b0381166000908152600260205260408120546107159061163e565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b81526004016107ae90611f93565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a825760405162461bcd60e51b81526004016107ae90611f93565b601b55565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016107ae90611f93565b601a54600160a01b900460ff1615610ac857600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610b0157600080fd5b610b0a306109c2565b8111158015610b195750600081115b610b545760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016107ae565b61088f816116c2565b6000546001600160a01b03163314610b875760405162461bcd60e51b81526004016107ae90611f93565b600b91909155600c55565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b81526004016107ae90611f93565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b6000610711338484610ea4565b6000546001600160a01b03163314610c115760405162461bcd60e51b81526004016107ae90611f93565b600e91909155601055565b6000546001600160a01b03163314610c465760405162461bcd60e51b81526004016107ae90611f93565b610c5281610e1061209a565b60185550565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016107ae90611f93565b601c54811015610c9157600080fd5b601c55565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016107ae90611f93565b6001600160a01b038116610d255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610de25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ae565b6001600160a01b038216610e435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ae565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ae565b6001600160a01b038216610f6a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ae565b60008111610fcc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ae565b6001600160a01b03821660009081526009602052604090205460ff16156110055760405162461bcd60e51b81526004016107ae90611fc8565b6001600160a01b03831660009081526009602052604090205460ff161561103e5760405162461bcd60e51b81526004016107ae90611fc8565b3360009081526009602052604090205460ff161561106e5760405162461bcd60e51b81526004016107ae90611fc8565b6000546001600160a01b0384811691161480159061109a57506000546001600160a01b03838116911614155b1561141257601a54600160a01b900460ff166110f85760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107ae565b601a546001600160a01b03838116911614801561112357506019546001600160a01b03848116911614155b156111d5576001600160a01b038216301480159061114a57506001600160a01b0383163014155b801561116457506017546001600160a01b03838116911614155b801561117e57506017546001600160a01b03848116911614155b156111d557601b548111156111d55760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107ae565b601a546001600160a01b0383811691161480159061120157506017546001600160a01b03838116911614155b801561121657506001600160a01b0382163014155b801561122d57506001600160a01b03821661dead14155b1561130c57601c548161123f846109c2565b6112499190612060565b106112a25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107ae565b601a54600160b81b900460ff161561130c57600a546112c29060b4612060565b421161130c57601e5481111561130c5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b60448201526064016107ae565b6000611317306109c2565b601d5490915081118080156113365750601a54600160a81b900460ff16155b80156113505750601a546001600160a01b03868116911614155b80156113655750601a54600160b01b900460ff165b801561138a57506001600160a01b03851660009081526006602052604090205460ff16155b80156113af57506001600160a01b03841660009081526006602052604090205460ff16155b1561140f57601354600090156113ea576113df60646113d96013548661184b90919063ffffffff16565b906118ca565b90506113ea8161190c565b6113fc6113f782856120b9565b6116c2565b47801561140c5761140c47611604565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061145457506001600160a01b03831660009081526006602052604090205460ff165b806114865750601a546001600160a01b038581169116148015906114865750601a546001600160a01b03848116911614155b15611493575060006115b8565b601a546001600160a01b0385811691161480156114be57506019546001600160a01b03848116911614155b15611519576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a541415611519576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b03848116911614801561154457506019546001600160a01b03858116911614155b156115b8576001600160a01b0384166000908152600460205260409020541580159061159557506018546001600160a01b038516600090815260046020526040902054429161159291612060565b10155b156115ab57600b54601155600c546012556115b8565b600f546011556010546012555b6115c484848484611919565b50505050565b600081848411156115ee5760405162461bcd60e51b81526004016107ae9190611f3e565b5060006115fb84866120b9565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561081f573d6000803e3d6000fd5b60006007548211156116a55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107ae565b60006116af61194d565b90506116bb83826118ca565b9392505050565b601a805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170a5761170a612101565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175e57600080fd5b505afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190611d52565b816001815181106117a9576117a9612101565b6001600160a01b0392831660209182029290920101526019546117cf9130911684610d80565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611808908590600090869030904290600401611fef565b600060405180830381600087803b15801561182257600080fd5b505af1158015611836573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b60008261185a57506000610715565b6000611866838561209a565b9050826118738583612078565b146116bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ae565b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611970565b61088f3061dead83610ea4565b806119265761192661199e565b6119318484846119e3565b806115c4576115c4601454601155601554601255601654601355565b600080600061195a611ada565b909250905061196982826118ca565b9250505090565b600081836119915760405162461bcd60e51b81526004016107ae9190611f3e565b5060006115fb8486612078565b6011541580156119ae5750601254155b80156119ba5750601354155b156119c157565b6011805460145560128054601555601380546016556000928390559082905555565b6000806000806000806119f587611b1a565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a279087611b77565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a569086611bb9565b6001600160a01b038916600090815260026020526040902055611a7881611c18565b611a828483611c62565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac791815260200190565b60405180910390a3505050505050505050565b6007546000908190678ac7230489e80000611af582826118ca565b821015611b1157505060075492678ac7230489e8000092509050565b90939092509050565b6000806000806000806000806000611b378a601154601254611c86565b9250925092506000611b4761194d565b90506000806000611b5a8e878787611cd5565b919e509c509a509598509396509194505050505091939550919395565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ca565b600080611bc68385612060565b9050838110156116bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ae565b6000611c2261194d565b90506000611c30838361184b565b30600090815260026020526040902054909150611c4d9082611bb9565b30600090815260026020526040902055505050565b600754611c6f9083611b77565b600755600854611c7f9082611bb9565b6008555050565b6000808080611c9a60646113d9898961184b565b90506000611cad60646113d98a8961184b565b90506000611cc582611cbf8b86611b77565b90611b77565b9992985090965090945050505050565b6000808080611ce4888661184b565b90506000611cf2888761184b565b90506000611d00888861184b565b90506000611d1282611cbf8686611b77565b939b939a50919850919650505050505050565b8035611d308161212d565b919050565b600060208284031215611d4757600080fd5b81356116bb8161212d565b600060208284031215611d6457600080fd5b81516116bb8161212d565b60008060408385031215611d8257600080fd5b8235611d8d8161212d565b91506020830135611d9d8161212d565b809150509250929050565b600080600060608486031215611dbd57600080fd5b8335611dc88161212d565b92506020840135611dd88161212d565b929592945050506040919091013590565b60008060408385031215611dfc57600080fd5b8235611e078161212d565b946020939093013593505050565b60006020808385031215611e2857600080fd5b823567ffffffffffffffff80821115611e4057600080fd5b818501915085601f830112611e5457600080fd5b813581811115611e6657611e66612117565b8060051b604051601f19603f83011681018181108582111715611e8b57611e8b612117565b604052828152858101935084860182860187018a1015611eaa57600080fd5b600095505b83861015611ed457611ec081611d25565b855260019590950194938601938601611eaf565b5098975050505050505050565b600060208284031215611ef357600080fd5b813580151581146116bb57600080fd5b600060208284031215611f1557600080fd5b5035919050565b60008060408385031215611f2f57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611f6b57858101830151858201604001528201611f4f565b81811115611f7d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203f5784516001600160a01b03168352938301939183019160010161201a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612073576120736120eb565b500190565b60008261209557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120b4576120b46120eb565b500290565b6000828210156120cb576120cb6120eb565b500390565b60006000198214156120e4576120e46120eb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205bcd9454105e0d617afc0af1979da2e0d3933d651b0000251dd363639a49ec3964736f6c63430008070033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610648578063e0f9f6a01461068e578063ea1644d5146106ae578063f2fde38b146106ce578063fe72c3c1146106ee57600080fd5b806395d89b41146105955780639ec350ed146105c85780639f131571146105e8578063a9059cbb14610608578063c55284901461062857600080fd5b80637c519ffb116100f25780637c519ffb146105165780637d1db4a51461052b578063881dce60146105415780638da5cb5b146105615780638f9a55c01461057f57600080fd5b806370a08231146104ab578063715018a6146104cb57806374010ece146104e0578063790ca4131461050057600080fd5b8063313ce567116101a65780634bf2c7c9116101755780634bf2c7c9146104205780635d098b38146104405780636b9cf534146104605780636d8aa8f8146104765780636fc3eaec1461049657600080fd5b8063313ce567146103a457806333251a0b146103c057806338eea22d146103e057806349bd5a5e1461040057600080fd5b806318160ddd116101ed57806318160ddd1461031157806323b872dd1461033657806327c8f8351461035657806328bb665a1461036c5780632fd689e31461038e57600080fd5b806306fdde031461022a578063095ea7b3146102705780630f3a325f146102a05780631694505e146102d957600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600b81526a052796f73686920537761760ac1b60208201525b6040516102679190611f3e565b60405180910390f35b34801561027c57600080fd5b5061029061028b366004611de9565b610704565b6040519015158152602001610267565b3480156102ac57600080fd5b506102906102bb366004611d35565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102e557600080fd5b506019546102f9906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b34801561031d57600080fd5b50678ac7230489e800005b604051908152602001610267565b34801561034257600080fd5b50610290610351366004611da8565b61071b565b34801561036257600080fd5b506102f961dead81565b34801561037857600080fd5b5061038c610387366004611e15565b610784565b005b34801561039a57600080fd5b50610328601d5481565b3480156103b057600080fd5b5060405160098152602001610267565b3480156103cc57600080fd5b5061038c6103db366004611d35565b610823565b3480156103ec57600080fd5b5061038c6103fb366004611f1c565b610892565b34801561040c57600080fd5b50601a546102f9906001600160a01b031681565b34801561042c57600080fd5b5061038c61043b366004611f03565b6108c7565b34801561044c57600080fd5b5061038c61045b366004611d35565b6108f6565b34801561046c57600080fd5b50610328601e5481565b34801561048257600080fd5b5061038c610491366004611ee1565b610950565b3480156104a257600080fd5b5061038c610998565b3480156104b757600080fd5b506103286104c6366004611d35565b6109c2565b3480156104d757600080fd5b5061038c6109e4565b3480156104ec57600080fd5b5061038c6104fb366004611f03565b610a58565b34801561050c57600080fd5b50610328600a5481565b34801561052257600080fd5b5061038c610a87565b34801561053757600080fd5b50610328601b5481565b34801561054d57600080fd5b5061038c61055c366004611f03565b610ae1565b34801561056d57600080fd5b506000546001600160a01b03166102f9565b34801561058b57600080fd5b50610328601c5481565b3480156105a157600080fd5b5060408051808201909152600a815269052594f534849535741560b41b602082015261025a565b3480156105d457600080fd5b5061038c6105e3366004611f1c565b610b5d565b3480156105f457600080fd5b5061038c610603366004611ee1565b610b92565b34801561061457600080fd5b50610290610623366004611de9565b610bda565b34801561063457600080fd5b5061038c610643366004611f1c565b610be7565b34801561065457600080fd5b50610328610663366004611d6f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561069a57600080fd5b5061038c6106a9366004611f03565b610c1c565b3480156106ba57600080fd5b5061038c6106c9366004611f03565b610c58565b3480156106da57600080fd5b5061038c6106e9366004611d35565b610c96565b3480156106fa57600080fd5b5061032860185481565b6000610711338484610d80565b5060015b92915050565b6000610728848484610ea4565b61077a843361077585604051806060016040528060288152602001612143602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906115ca565b610d80565b5060019392505050565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611f93565b60405180910390fd5b60005b815181101561081f576001600960008484815181106107db576107db612101565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610817816120d0565b9150506107ba565b5050565b6000546001600160a01b0316331461084d5760405162461bcd60e51b81526004016107ae90611f93565b6001600160a01b03811660009081526009602052604090205460ff161561088f576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108bc5760405162461bcd60e51b81526004016107ae90611f93565b600d91909155600f55565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016107ae90611f93565b601355565b6017546001600160a01b0316336001600160a01b03161461091657600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461097a5760405162461bcd60e51b81526004016107ae90611f93565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b0316146109b857600080fd5b4761088f81611604565b6001600160a01b0381166000908152600260205260408120546107159061163e565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b81526004016107ae90611f93565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a825760405162461bcd60e51b81526004016107ae90611f93565b601b55565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016107ae90611f93565b601a54600160a01b900460ff1615610ac857600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610b0157600080fd5b610b0a306109c2565b8111158015610b195750600081115b610b545760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016107ae565b61088f816116c2565b6000546001600160a01b03163314610b875760405162461bcd60e51b81526004016107ae90611f93565b600b91909155600c55565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b81526004016107ae90611f93565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b6000610711338484610ea4565b6000546001600160a01b03163314610c115760405162461bcd60e51b81526004016107ae90611f93565b600e91909155601055565b6000546001600160a01b03163314610c465760405162461bcd60e51b81526004016107ae90611f93565b610c5281610e1061209a565b60185550565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016107ae90611f93565b601c54811015610c9157600080fd5b601c55565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016107ae90611f93565b6001600160a01b038116610d255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610de25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ae565b6001600160a01b038216610e435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ae565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ae565b6001600160a01b038216610f6a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ae565b60008111610fcc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ae565b6001600160a01b03821660009081526009602052604090205460ff16156110055760405162461bcd60e51b81526004016107ae90611fc8565b6001600160a01b03831660009081526009602052604090205460ff161561103e5760405162461bcd60e51b81526004016107ae90611fc8565b3360009081526009602052604090205460ff161561106e5760405162461bcd60e51b81526004016107ae90611fc8565b6000546001600160a01b0384811691161480159061109a57506000546001600160a01b03838116911614155b1561141257601a54600160a01b900460ff166110f85760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107ae565b601a546001600160a01b03838116911614801561112357506019546001600160a01b03848116911614155b156111d5576001600160a01b038216301480159061114a57506001600160a01b0383163014155b801561116457506017546001600160a01b03838116911614155b801561117e57506017546001600160a01b03848116911614155b156111d557601b548111156111d55760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107ae565b601a546001600160a01b0383811691161480159061120157506017546001600160a01b03838116911614155b801561121657506001600160a01b0382163014155b801561122d57506001600160a01b03821661dead14155b1561130c57601c548161123f846109c2565b6112499190612060565b106112a25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107ae565b601a54600160b81b900460ff161561130c57600a546112c29060b4612060565b421161130c57601e5481111561130c5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b60448201526064016107ae565b6000611317306109c2565b601d5490915081118080156113365750601a54600160a81b900460ff16155b80156113505750601a546001600160a01b03868116911614155b80156113655750601a54600160b01b900460ff165b801561138a57506001600160a01b03851660009081526006602052604090205460ff16155b80156113af57506001600160a01b03841660009081526006602052604090205460ff16155b1561140f57601354600090156113ea576113df60646113d96013548661184b90919063ffffffff16565b906118ca565b90506113ea8161190c565b6113fc6113f782856120b9565b6116c2565b47801561140c5761140c47611604565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061145457506001600160a01b03831660009081526006602052604090205460ff165b806114865750601a546001600160a01b038581169116148015906114865750601a546001600160a01b03848116911614155b15611493575060006115b8565b601a546001600160a01b0385811691161480156114be57506019546001600160a01b03848116911614155b15611519576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a541415611519576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b03848116911614801561154457506019546001600160a01b03858116911614155b156115b8576001600160a01b0384166000908152600460205260409020541580159061159557506018546001600160a01b038516600090815260046020526040902054429161159291612060565b10155b156115ab57600b54601155600c546012556115b8565b600f546011556010546012555b6115c484848484611919565b50505050565b600081848411156115ee5760405162461bcd60e51b81526004016107ae9190611f3e565b5060006115fb84866120b9565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561081f573d6000803e3d6000fd5b60006007548211156116a55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107ae565b60006116af61194d565b90506116bb83826118ca565b9392505050565b601a805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170a5761170a612101565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175e57600080fd5b505afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190611d52565b816001815181106117a9576117a9612101565b6001600160a01b0392831660209182029290920101526019546117cf9130911684610d80565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611808908590600090869030904290600401611fef565b600060405180830381600087803b15801561182257600080fd5b505af1158015611836573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b60008261185a57506000610715565b6000611866838561209a565b9050826118738583612078565b146116bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ae565b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611970565b61088f3061dead83610ea4565b806119265761192661199e565b6119318484846119e3565b806115c4576115c4601454601155601554601255601654601355565b600080600061195a611ada565b909250905061196982826118ca565b9250505090565b600081836119915760405162461bcd60e51b81526004016107ae9190611f3e565b5060006115fb8486612078565b6011541580156119ae5750601254155b80156119ba5750601354155b156119c157565b6011805460145560128054601555601380546016556000928390559082905555565b6000806000806000806119f587611b1a565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a279087611b77565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a569086611bb9565b6001600160a01b038916600090815260026020526040902055611a7881611c18565b611a828483611c62565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac791815260200190565b60405180910390a3505050505050505050565b6007546000908190678ac7230489e80000611af582826118ca565b821015611b1157505060075492678ac7230489e8000092509050565b90939092509050565b6000806000806000806000806000611b378a601154601254611c86565b9250925092506000611b4761194d565b90506000806000611b5a8e878787611cd5565b919e509c509a509598509396509194505050505091939550919395565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ca565b600080611bc68385612060565b9050838110156116bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ae565b6000611c2261194d565b90506000611c30838361184b565b30600090815260026020526040902054909150611c4d9082611bb9565b30600090815260026020526040902055505050565b600754611c6f9083611b77565b600755600854611c7f9082611bb9565b6008555050565b6000808080611c9a60646113d9898961184b565b90506000611cad60646113d98a8961184b565b90506000611cc582611cbf8b86611b77565b90611b77565b9992985090965090945050505050565b6000808080611ce4888661184b565b90506000611cf2888761184b565b90506000611d00888861184b565b90506000611d1282611cbf8686611b77565b939b939a50919850919650505050505050565b8035611d308161212d565b919050565b600060208284031215611d4757600080fd5b81356116bb8161212d565b600060208284031215611d6457600080fd5b81516116bb8161212d565b60008060408385031215611d8257600080fd5b8235611d8d8161212d565b91506020830135611d9d8161212d565b809150509250929050565b600080600060608486031215611dbd57600080fd5b8335611dc88161212d565b92506020840135611dd88161212d565b929592945050506040919091013590565b60008060408385031215611dfc57600080fd5b8235611e078161212d565b946020939093013593505050565b60006020808385031215611e2857600080fd5b823567ffffffffffffffff80821115611e4057600080fd5b818501915085601f830112611e5457600080fd5b813581811115611e6657611e66612117565b8060051b604051601f19603f83011681018181108582111715611e8b57611e8b612117565b604052828152858101935084860182860187018a1015611eaa57600080fd5b600095505b83861015611ed457611ec081611d25565b855260019590950194938601938601611eaf565b5098975050505050505050565b600060208284031215611ef357600080fd5b813580151581146116bb57600080fd5b600060208284031215611f1557600080fd5b5035919050565b60008060408385031215611f2f57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611f6b57858101830151858201604001528201611f4f565b81811115611f7d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203f5784516001600160a01b03168352938301939183019160010161201a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612073576120736120eb565b500190565b60008261209557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120b4576120b46120eb565b500290565b6000828210156120cb576120cb6120eb565b500390565b60006000198214156120e4576120e46120eb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205bcd9454105e0d617afc0af1979da2e0d3933d651b0000251dd363639a49ec3964736f6c63430008070033
Deployed Bytecode Sourcemap
4107:15740:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6957:83;;;;;;;;;;-1:-1:-1;7027:5:0;;;;;;;;;;;;-1:-1:-1;;;7027:5:0;;;;6957:83;;;;;;;:::i;:::-;;;;;;;;7882:193;;;;;;;;;;-1:-1:-1;7882:193:0;;;;;:::i;:::-;;:::i;:::-;;;4061:14:1;;4054:22;4036:41;;4024:2;4009:18;7882:193:0;3896:187:1;14949:105:0;;;;;;;;;;-1:-1:-1;14949:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15029:17:0;15006:4;15029:17;;;:9;:17;;;;;;;;;14949:105;5694:41;;;;;;;;;;-1:-1:-1;5694:41:0;;;;-1:-1:-1;;;;;5694:41:0;;;;;;-1:-1:-1;;;;;3852:32:1;;;3834:51;;3822:2;3807:18;5694:41:0;3688:203:1;7234:95:0;;;;;;;;;;-1:-1:-1;4720:12:0;7234:95;;;11176:25:1;;;11164:2;11149:18;7234:95:0;11030:177:1;8083:446:0;;;;;;;;;;-1:-1:-1;8083:446:0;;;;;:::i;:::-;;:::i;5562:80::-;;;;;;;;;;;;5600:42;5562:80;;14591:192;;;;;;;;;;-1:-1:-1;14591:192:0;;;;;:::i;:::-;;:::i;:::-;;6036:49;;;;;;;;;;;;;;;;7143:83;;;;;;;;;;-1:-1:-1;7143:83:0;;4343:1;12339:36:1;;12327:2;12312:18;7143:83:0;12197:184:1;14791:150:0;;;;;;;;;;-1:-1:-1;14791:150:0;;;;;:::i;:::-;;:::i;19262:173::-;;;;;;;;;;-1:-1:-1;19262:173:0;;;;;:::i;:::-;;:::i;5742:28::-;;;;;;;;;;-1:-1:-1;5742:28:0;;;;-1:-1:-1;;;;;5742:28:0;;;19443:91;;;;;;;;;;-1:-1:-1;19443:91:0;;;;;:::i;:::-;;:::i;13978:235::-;;;;;;;;;;-1:-1:-1;13978:235:0;;;;;:::i;:::-;;:::i;6092:46::-;;;;;;;;;;;;;;;;18686:101;;;;;;;;;;-1:-1:-1;18686:101:0;;;;;:::i;:::-;;:::i;15062:196::-;;;;;;;;;;;;;:::i;7337:138::-;;;;;;;;;;-1:-1:-1;7337:138:0;;;;;:::i;:::-;;:::i;1586:148::-;;;;;;;;;;;;;:::i;18799:110::-;;;;;;;;;;-1:-1:-1;18799:110:0;;;;;:::i;:::-;;:::i;4877:25::-;;;;;;;;;;;;;;;;13823:147;;;;;;;;;;;;;:::i;5936:41::-;;;;;;;;;;;;;;;;14358:225;;;;;;;;;;-1:-1:-1;14358:225:0;;;;;:::i;:::-;;:::i;1372:79::-;;;;;;;;;;-1:-1:-1;1410:7:0;1437:6;-1:-1:-1;;;;;1437:6:0;1372:79;;5985:44;;;;;;;;;;;;;;;;7048:87;;;;;;;;;;-1:-1:-1;7120:7:0;;;;;;;;;;;;-1:-1:-1;;;7120:7:0;;;;7048:87;;19542:182;;;;;;;;;;-1:-1:-1;19542:182:0;;;;;:::i;:::-;;:::i;14221:129::-;;;;;;;;;;-1:-1:-1;14221:129:0;;;;;:::i;:::-;;:::i;7483:199::-;;;;;;;;;;-1:-1:-1;7483:199:0;;;;;:::i;:::-;;:::i;19097:157::-;;;;;;;;;;-1:-1:-1;19097:157:0;;;;;:::i;:::-;;:::i;7690:184::-;;;;;;;;;;-1:-1:-1;7690:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7839:18:0;;;7807:7;7839:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7690:184;19732:110;;;;;;;;;;-1:-1:-1;19732:110:0;;;;;:::i;:::-;;:::i;18921:168::-;;;;;;;;;;-1:-1:-1;18921:168:0;;;;;:::i;:::-;;:::i;1746:244::-;;;;;;;;;;-1:-1:-1;1746:244:0;;;;;:::i;:::-;;:::i;5651:36::-;;;;;;;;;;;;;;;;7882:193;7984:4;8006:39;211:10;8029:7;8038:6;8006:8;:39::i;:::-;-1:-1:-1;8063:4:0;7882:193;;;;;:::o;8083:446::-;8215:4;8232:36;8242:6;8250:9;8261:6;8232:9;:36::i;:::-;8279:220;8302:6;211:10;8350:138;8406:6;8350:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8350:19:0;;;;;;:11;:19;;;;;;;;211:10;8350:33;;;;;;;;;;:37;:138::i;:::-;8279:8;:220::i;:::-;-1:-1:-1;8517:4:0;8083:446;;;;;:::o;14591:192::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;;;;;;;;;14670:9:::1;14666:110;14687:7;:14;14684:1;:17;14666:110;;;14746:4;14722:9;:21;14732:7;14740:1;14732:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14722:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14722:21:0;:28;;-1:-1:-1;;14722:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14703:3;::::1;::::0;::::1;:::i;:::-;;;;14666:110;;;;14591:192:::0;:::o;14791:150::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14863:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14859:75;;;-1:-1:-1::0;;;;;14897:17:0;::::1;14917:5;14897:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14897:25:0::1;::::0;;14859:75:::1;14791:150:::0;:::o;19262:173::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19356:14:::1;:29:::0;;;;19396:15:::1;:31:::0;19262:173::o;19443:91::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19509:8:::1;:17:::0;19443:91::o;13978:235::-;14076:17;;-1:-1:-1;;;;;14076:17:0;211:10;-1:-1:-1;;;;;14060:33:0;;14052:42;;;;;;14105:17;:45;;-1:-1:-1;;;;;14105:45:0;;;-1:-1:-1;;;;;;14105:45:0;;;;;;;:17;14161:37;;;:18;:37;;;;;:44;;-1:-1:-1;;14161:44:0;14105:45;14161:44;;;13978:235::o;18686:101::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;18753:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18753:26:0::1;-1:-1:-1::0;;;;18753:26:0;;::::1;::::0;;;::::1;::::0;;18686:101::o;15062:196::-;15128:17;;-1:-1:-1;;;;;15128:17:0;211:10;-1:-1:-1;;;;;15112:33:0;;15104:42;;;;;;15186:21;15218:32;15186:21;15218:12;:32::i;7337:138::-;-1:-1:-1;;;;;7450:16:0;;7403:7;7450:16;;;:7;:16;;;;;;7430:37;;:19;:37::i;1586:148::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;1693:1:::1;1677:6:::0;;1656:40:::1;::::0;-1:-1:-1;;;;;1677:6:0;;::::1;::::0;1656:40:::1;::::0;1693:1;;1656:40:::1;1724:1;1707:19:::0;;-1:-1:-1;;;;;;1707:19:0::1;::::0;;1586:148::o;18799:110::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;18875:12:::1;:26:::0;18799:110::o;13823:147::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;13882:11:::1;::::0;-1:-1:-1;;;13882:11:0;::::1;;;13881:12;13873:21;;;::::0;::::1;;13905:11;:18:::0;;-1:-1:-1;;;;13905:18:0::1;-1:-1:-1::0;;;13905:18:0::1;::::0;;13947:15:::1;13934:10;:28:::0;13823:147::o;14358:225::-;14438:17;;-1:-1:-1;;;;;14438:17:0;211:10;-1:-1:-1;;;;;14422:33:0;;14414:42;;;;;;14485:24;14503:4;14485:9;:24::i;:::-;14475:6;:34;;:48;;;;;14522:1;14513:6;:10;14475:48;14467:73;;;;-1:-1:-1;;;14467:73:0;;10891:2:1;14467:73:0;;;10873:21:1;10930:2;10910:18;;;10903:30;-1:-1:-1;;;10949:18:1;;;10942:42;11001:18;;14467:73:0;10689:336:1;14467:73:0;14551:24;14568:6;14551:16;:24::i;19542:182::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19643:14:::1;:33:::0;;;;19687:12:::1;:29:::0;19542:182::o;14221:129::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;14304:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;14304:38:0::1;-1:-1:-1::0;;;;14304:38:0;;::::1;::::0;;;::::1;::::0;;14221:129::o;7483:199::-;7588:4;7610:42;211:10;7634:9;7645:6;7610:9;:42::i;19097:157::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19185:12:::1;:24:::0;;;;19220:13:::1;:26:::0;19097:157::o;19732:110::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19815:19:::1;:9:::0;19827:7:::1;19815:19;:::i;:::-;19803:9;:31:::0;-1:-1:-1;19732:110:0:o;18921:168::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;19025:14:::1;;19008:13;:31;;19000:40;;;::::0;::::1;;19051:14;:30:::0;18921:168::o;1746:244::-;1499:6;;-1:-1:-1;;;;;1499:6:0;211:10;1499:22;1491:67;;;;-1:-1:-1;;;1491:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1835:22:0;::::1;1827:73;;;::::0;-1:-1:-1;;;1827:73:0;;6651:2:1;1827:73:0::1;::::0;::::1;6633:21:1::0;6690:2;6670:18;;;6663:30;6729:34;6709:18;;;6702:62;-1:-1:-1;;;6780:18:1;;;6773:36;6826:19;;1827:73:0::1;6449:402:1::0;1827:73:0::1;1937:6;::::0;;1916:38:::1;::::0;-1:-1:-1;;;;;1916:38:0;;::::1;::::0;1937:6;::::1;::::0;1916:38:::1;::::0;::::1;1965:6;:17:::0;;-1:-1:-1;;;;;;1965:17:0::1;-1:-1:-1::0;;;;;1965:17:0;;;::::1;::::0;;;::::1;::::0;;1746:244::o;9348:369::-;-1:-1:-1;;;;;9475:19:0;;9467:68;;;;-1:-1:-1;;;9467:68:0;;10486:2:1;9467:68:0;;;10468:21:1;10525:2;10505:18;;;10498:30;10564:34;10544:18;;;10537:62;-1:-1:-1;;;10615:18:1;;;10608:34;10659:19;;9467:68:0;10284:400:1;9467:68:0;-1:-1:-1;;;;;9554:21:0;;9546:68;;;;-1:-1:-1;;;9546:68:0;;7058:2:1;9546:68:0;;;7040:21:1;7097:2;7077:18;;;7070:30;7136:34;7116:18;;;7109:62;-1:-1:-1;;;7187:18:1;;;7180:32;7229:19;;9546:68:0;6856:398:1;9546:68:0;-1:-1:-1;;;;;9625:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9677:32;;11176:25:1;;;9677:32:0;;11149:18:1;9677:32:0;;;;;;;9348:369;;;:::o;9725:3360::-;-1:-1:-1;;;;;9847:18:0;;9839:68;;;;-1:-1:-1;;;9839:68:0;;9334:2:1;9839:68:0;;;9316:21:1;9373:2;9353:18;;;9346:30;9412:34;9392:18;;;9385:62;-1:-1:-1;;;9463:18:1;;;9456:35;9508:19;;9839:68:0;9132:401:1;9839:68:0;-1:-1:-1;;;;;9926:16:0;;9918:64;;;;-1:-1:-1;;;9918:64:0;;5126:2:1;9918:64:0;;;5108:21:1;5165:2;5145:18;;;5138:30;5204:34;5184:18;;;5177:62;-1:-1:-1;;;5255:18:1;;;5248:33;5298:19;;9918:64:0;4924:399:1;9918:64:0;10010:1;10001:6;:10;9993:64;;;;-1:-1:-1;;;9993:64:0;;8924:2:1;9993:64:0;;;8906:21:1;8963:2;8943:18;;;8936:30;9002:34;8982:18;;;8975:62;-1:-1:-1;;;9053:18:1;;;9046:39;9102:19;;9993:64:0;8722:405:1;9993:64:0;-1:-1:-1;;;;;10077:13:0;;;;;;:9;:13;;;;;;;;10076:14;10068:40;;;;-1:-1:-1;;;10068:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10128:15:0;;;;;;:9;:15;;;;;;;;10127:16;10119:42;;;;-1:-1:-1;;;10119:42:0;;;;;;;:::i;:::-;211:10;10181:23;;;;:9;:23;;;;;;;;10180:24;10172:50;;;;-1:-1:-1;;;10172:50:0;;;;;;;:::i;:::-;1410:7;1437:6;-1:-1:-1;;;;;10239:15:0;;;1437:6;;10239:15;;;;:32;;-1:-1:-1;1410:7:0;1437:6;-1:-1:-1;;;;;10258:13:0;;;1437:6;;10258:13;;10239:32;10235:1780;;;10307:11;;-1:-1:-1;;;10307:11:0;;;;10302:87;;10339:34;;-1:-1:-1;;;10339:34:0;;5530:2:1;10339:34:0;;;5512:21:1;5569:2;5549:18;;;5542:30;5608:26;5588:18;;;5581:54;5652:18;;10339:34:0;5328:348:1;10302:87:0;10427:13;;-1:-1:-1;;;;;10421:19:0;;;10427:13;;10421:19;:55;;;;-1:-1:-1;10460:15:0;;-1:-1:-1;;;;;10444:32:0;;;10460:15;;10444:32;;10421:55;10417:307;;;-1:-1:-1;;;;;10501:19:0;;10515:4;10501:19;;;;:44;;-1:-1:-1;;;;;;10524:21:0;;10540:4;10524:21;;10501:44;:71;;;;-1:-1:-1;10555:17:0;;-1:-1:-1;;;;;10549:23:0;;;10555:17;;10549:23;;10501:71;:100;;;;-1:-1:-1;10584:17:0;;-1:-1:-1;;;;;10576:25:0;;;10584:17;;10576:25;;10501:100;10497:212;;;10644:12;;10634:6;:22;;10626:63;;;;-1:-1:-1;;;10626:63:0;;6294:2:1;10626:63:0;;;6276:21:1;6333:2;6313:18;;;6306:30;6372;6352:18;;;6345:58;6420:18;;10626:63:0;6092:352:1;10626:63:0;10750:13;;-1:-1:-1;;;;;10744:19:0;;;10750:13;;10744:19;;;;:46;;-1:-1:-1;10773:17:0;;-1:-1:-1;;;;;10767:23:0;;;10773:17;;10767:23;;10744:46;:69;;;;-1:-1:-1;;;;;;10794:19:0;;10808:4;10794:19;;10744:69;:90;;;;-1:-1:-1;;;;;;10817:17:0;;5600:42;10817:17;;10744:90;10740:454;;;10888:14;;10879:6;10863:13;10873:2;10863:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10855:87;;;;-1:-1:-1;;;10855:87:0;;9740:2:1;10855:87:0;;;9722:21:1;9779:2;9759:18;;;9752:30;9818:34;9798:18;;;9791:62;-1:-1:-1;;;9869:18:1;;;9862:33;9912:19;;10855:87:0;9538:399:1;10855:87:0;10965:17;;-1:-1:-1;;;10965:17:0;;;;10961:218;;;11030:10;;:22;;11043:9;11030:22;:::i;:::-;11011:15;:41;11007:153;;11099:17;;11089:6;:27;;11081:55;;;;-1:-1:-1;;;11081:55:0;;7461:2:1;11081:55:0;;;7443:21:1;7500:2;7480:18;;;7473:30;-1:-1:-1;;;7519:18:1;;;7512:45;7574:18;;11081:55:0;7259:339:1;11081:55:0;11222:28;11253:24;11271:4;11253:9;:24::i;:::-;11330:19;;11222:55;;-1:-1:-1;11307:42:0;;;11382:18;;;;-1:-1:-1;11394:6:0;;-1:-1:-1;;;11394:6:0;;;;11393:7;11382:18;:43;;;;-1:-1:-1;11412:13:0;;-1:-1:-1;;;;;11404:21:0;;;11412:13;;11404:21;;11382:43;:58;;;;-1:-1:-1;11429:11:0;;-1:-1:-1;;;11429:11:0;;;;11382:58;:87;;;;-1:-1:-1;;;;;;11445:24:0;;;;;;:18;:24;;;;;;;;11444:25;11382:87;:114;;;;-1:-1:-1;;;;;;11474:22:0;;;;;;:18;:22;;;;;;;;11473:23;11382:114;11378:626;;;11563:8;;11517:19;;11563:12;11559:166;;11614:45;11653:5;11614:34;11639:8;;11614:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11600:59;;11682:23;11693:11;11682:10;:23::i;:::-;11743:52;11760:34;11783:11;11760:20;:34;:::i;:::-;11743:16;:52::i;:::-;11843:21;11887:22;;11883:106;;11934:35;11947:21;11934:12;:35::i;:::-;11498:506;;11378:626;10273:1742;;10235:1780;-1:-1:-1;;;;;12072:24:0;;12035:12;12072:24;;;:18;:24;;;;;;12050:4;;12072:24;;;:50;;-1:-1:-1;;;;;;12100:22:0;;;;;;:18;:22;;;;;;;;12072:50;12071:102;;;-1:-1:-1;12136:13:0;;-1:-1:-1;;;;;12128:21:0;;;12136:13;;12128:21;;;;:44;;-1:-1:-1;12159:13:0;;-1:-1:-1;;;;;12153:19:0;;;12159:13;;12153:19;;12128:44;12067:957;;;-1:-1:-1;12200:5:0;12067:957;;;12249:13;;-1:-1:-1;;;;;12241:21:0;;;12249:13;;12241:21;:55;;;;-1:-1:-1;12280:15:0;;-1:-1:-1;;;;;12266:30:0;;;12280:15;;12266:30;;12241:55;12238:350;;;-1:-1:-1;;;;;12321:11:0;;;;;;:7;:11;;;;;12335:15;12321:29;;;;12385:14;;12373:9;:26;12432:12;;12422:7;:22;12490:10;;12471:29;12467:106;;;-1:-1:-1;;;;;12529:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12529:20:0;12545:4;12529:20;;;12467:106;12618:13;;-1:-1:-1;;;;;12612:19:0;;;12618:13;;12612:19;:55;;;;-1:-1:-1;12651:15:0;;-1:-1:-1;;;;;12635:32:0;;;12651:15;;12635:32;;12612:55;12608:405;;;-1:-1:-1;;;;;12692:13:0;;;;;;:7;:13;;;;;;:18;;;;:68;;-1:-1:-1;12731:9:0;;-1:-1:-1;;;;;12715:13:0;;;;;;:7;:13;;;;;;12744:15;;12715:25;;;:::i;:::-;:44;;12692:68;12688:310;;;12797:14;;12785:9;:26;12844:12;;12834:7;:22;12688:310;;;12917:15;;12905:9;:27;12965:13;;12955:7;:23;12688:310;13036:41;13051:4;13057:2;13061:6;13069:7;13036:14;:41::i;:::-;9828:3257;9725:3360;;;:::o;2358:224::-;2478:7;2514:12;2506:6;;;;2498:29;;;;-1:-1:-1;;;2498:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2538:9:0;2550:5;2554:1;2550;:5;:::i;:::-;2538:17;2358:224;-1:-1:-1;;;;;2358:224:0:o;13716:99::-;13773:17;;:34;;-1:-1:-1;;;;;13773:17:0;;;;:34;;;;;13800:6;;13773:17;:34;:17;:34;13800:6;13773:17;:34;;;;;;;;;;;;;;;;;;;8537:323;8632:7;8690;;8679;:18;;8657:110;;;;-1:-1:-1;;;8657:110:0;;5883:2:1;8657:110:0;;;5865:21:1;5922:2;5902:18;;;5895:30;5961:34;5941:18;;;5934:62;-1:-1:-1;;;6012:18:1;;;6005:40;6062:19;;8657:110:0;5681:406:1;8657:110:0;8778:19;8800:10;:8;:10::i;:::-;8778:32;-1:-1:-1;8828:24:0;:7;8778:32;8828:11;:24::i;:::-;8821:31;8537:323;-1:-1:-1;;;8537:323:0:o;13225:483::-;6233:6;:13;;-1:-1:-1;;;;6233:13:0;-1:-1:-1;;;6233:13:0;;;13327:16:::1;::::0;;13341:1:::1;13327:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13327:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13327:16:0::1;13303:40;;13372:4;13354;13359:1;13354:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13354:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13398:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13398:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13354:7;;13398:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13388:4;13393:1;13388:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13388:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13463:15:::1;::::0;13431:62:::1;::::0;13448:4:::1;::::0;13463:15:::1;13481:11:::0;13431:8:::1;:62::i;:::-;13504:15;::::0;:196:::1;::::0;-1:-1:-1;;;13504:196:0;;-1:-1:-1;;;;;13504:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13585:11;;13504:15:::1;::::0;13627:4;;13654::::1;::::0;13674:15:::1;::::0;13504:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6269:6:0;:14;;-1:-1:-1;;;;6269:14:0;;;-1:-1:-1;;;;13225:483:0:o;2590:246::-;2648:7;2672:6;2668:47;;-1:-1:-1;2702:1:0;2695:8;;2668:47;2725:9;2737:5;2741:1;2737;:5;:::i;:::-;2725:17;-1:-1:-1;2770:1:0;2761:5;2765:1;2725:17;2761:5;:::i;:::-;:10;2753:56;;;;-1:-1:-1;;;2753:56:0;;8161:2:1;2753:56:0;;;8143:21:1;8200:2;8180:18;;;8173:30;8239:34;8219:18;;;8212:62;-1:-1:-1;;;8290:18:1;;;8283:31;8331:19;;2753:56:0;7959:397:1;2844:132:0;2902:7;2929:39;2933:1;2936;2929:39;;;;;;;;;;;;;;;;;:3;:39::i;13099:118::-;13159:50;13177:4;5600:42;13197:11;13159:9;:50::i;15266:282::-;15422:7;15417:28;;15431:14;:12;:14::i;:::-;15456:44;15474:6;15482:9;15493:6;15456:17;:44::i;:::-;15516:7;15511:29;;15525:15;9241:17;;9229:9;:29;9279:15;;9269:7;:25;9316:16;;9305:8;:27;9185:155;18241:166;18283:7;18304:15;18321;18340:19;:17;:19::i;:::-;18303:56;;-1:-1:-1;18303:56:0;-1:-1:-1;18379:20:0;18303:56;;18379:11;:20::i;:::-;18372:27;;;;18241:166;:::o;2984:223::-;3104:7;3139:12;3132:5;3124:28;;;;-1:-1:-1;;;3124:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3163:9:0;3175:5;3179:1;3175;:5;:::i;8868:309::-;8915:9;;:14;:30;;;;-1:-1:-1;8933:7:0;;:12;8915:30;:47;;;;-1:-1:-1;8949:8:0;;:13;8915:47;8911:60;;;8868:309::o;8911:60::-;9007:9;;;8987:17;:29;9045:7;;;9027:15;:25;9082:8;;;9063:16;:27;-1:-1:-1;9111:13:0;;;;9135:11;;;;9157:12;8868:309::o;15556:610::-;15703:15;15733:23;15771:12;15798:23;15836:12;15863:13;15890:19;15901:7;15890:10;:19::i;:::-;-1:-1:-1;;;;;15938:15:0;;;;;;:7;:15;;;;;;15688:221;;-1:-1:-1;15688:221:0;;-1:-1:-1;15688:221:0;;-1:-1:-1;15688:221:0;-1:-1:-1;15688:221:0;-1:-1:-1;15688:221:0;-1:-1:-1;15938:28:0;;15688:221;15938:19;:28::i;:::-;-1:-1:-1;;;;;15920:15:0;;;;;;;:7;:15;;;;;;:46;;;;15998:18;;;;;;;:39;;16021:15;15998:22;:39::i;:::-;-1:-1:-1;;;;;15977:18:0;;;;;;:7;:18;;;;;:60;16048:16;16058:5;16048:9;:16::i;:::-;16075:23;16087:4;16093;16075:11;:23::i;:::-;16131:9;-1:-1:-1;;;;;16114:44:0;16123:6;-1:-1:-1;;;;;16114:44:0;;16142:15;16114:44;;;;11176:25:1;;11164:2;11149:18;;11030:177;16114:44:0;;;;;;;;15677:489;;;;;;15556:610;;;:::o;18415:263::-;18513:7;;18466;;;;4720:12;18581:20;18513:7;4720:12;18581:11;:20::i;:::-;18571:7;:30;18567:61;;;-1:-1:-1;;18611:7:0;;;4720:12;;-1:-1:-1;18415:263:0;-1:-1:-1;18415:263:0:o;18567:61::-;18653:7;;18662;;-1:-1:-1;18415:263:0;-1:-1:-1;18415:263:0:o;16585:625::-;16685:7;16707;16729;16751;16773;16795;16831:23;16856:12;16870:13;16900:40;16912:7;16921:9;;16932:7;;16900:11;:40::i;:::-;16830:110;;;;;;16951:19;16973:10;:8;:10::i;:::-;16951:32;;16995:15;17012:23;17037:12;17066:46;17078:7;17087:4;17093:5;17100:11;17066;:46::i;:::-;16994:118;;-1:-1:-1;16994:118:0;-1:-1:-1;16994:118:0;-1:-1:-1;17173:15:0;;-1:-1:-1;17190:4:0;;-1:-1:-1;17196:5:0;;-1:-1:-1;;;;;16585:625:0;;;;;;;:::o;2214:136::-;2272:7;2299:43;2303:1;2306;2299:43;;;;;;;;;;;;;;;;;:3;:43::i;2027:179::-;2085:7;;2117:5;2121:1;2117;:5;:::i;:::-;2105:17;;2146:1;2141;:6;;2133:46;;;;-1:-1:-1;;;2133:46:0;;7805:2:1;2133:46:0;;;7787:21:1;7844:2;7824:18;;;7817:30;7883:29;7863:18;;;7856:57;7930:18;;2133:46:0;7603:351:1;16174:211:0;16227:19;16249:10;:8;:10::i;:::-;16227:32;-1:-1:-1;16270:13:0;16286:22;:5;16227:32;16286:9;:22::i;:::-;16360:4;16344:22;;;;:7;:22;;;;;;16270:38;;-1:-1:-1;16344:33:0;;16270:38;16344:26;:33::i;:::-;16335:4;16319:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16174:211:0:o;16393:147::-;16471:7;;:17;;16483:4;16471:11;:17::i;:::-;16461:7;:27;16512:10;;:20;;16527:4;16512:14;:20::i;:::-;16499:10;:33;-1:-1:-1;;16393:147:0:o;17218:471::-;17387:7;;;;17481:30;17507:3;17481:21;:7;17493:8;17481:11;:21::i;:30::-;17466:45;-1:-1:-1;17522:13:0;17538:28;17562:3;17538:19;:7;17550:6;17538:11;:19::i;:28::-;17522:44;-1:-1:-1;17577:23:0;17603:28;17522:44;17603:17;:7;17615:4;17603:11;:17::i;:::-;:21;;:28::i;:::-;17577:54;17669:4;;-1:-1:-1;17675:5:0;;-1:-1:-1;17218:471:0;;-1:-1:-1;;;;;17218:471:0:o;17697:536::-;17891:7;;;;17988:24;:7;18000:11;17988;:24::i;:::-;17970:42;-1:-1:-1;18023:12:0;18038:21;:4;18047:11;18038:8;:21::i;:::-;18023:36;-1:-1:-1;18070:13:0;18086:22;:5;18096:11;18086:9;:22::i;:::-;18070:38;-1:-1:-1;18119:23:0;18145:28;18070:38;18145:17;:7;18157:4;18145:11;:17::i;:28::-;18194:7;;;;-1:-1:-1;18220:4:0;;-1:-1:-1;17697:536:0;;-1:-1:-1;;;;;;;17697:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:273::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3189:5;3182:13;3175:21;3168:5;3165:32;3155:60;;3211:1;3208;3201:12;3250:180;3309:6;3362:2;3350:9;3341:7;3337:23;3333:32;3330:52;;;3378:1;3375;3368:12;3330:52;-1:-1:-1;3401:23:1;;3250:180;-1:-1:-1;3250:180:1:o;3435:248::-;3503:6;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;-1:-1:-1;;3603:23:1;;;3673:2;3658:18;;;3645:32;;-1:-1:-1;3435:248:1:o;4322:597::-;4434:4;4463:2;4492;4481:9;4474:21;4524:6;4518:13;4567:6;4562:2;4551:9;4547:18;4540:34;4592:1;4602:140;4616:6;4613:1;4610:13;4602:140;;;4711:14;;;4707:23;;4701:30;4677:17;;;4696:2;4673:26;4666:66;4631:10;;4602:140;;;4760:6;4757:1;4754:13;4751:91;;;4830:1;4825:2;4816:6;4805:9;4801:22;4797:31;4790:42;4751:91;-1:-1:-1;4903:2:1;4882:15;-1:-1:-1;;4878:29:1;4863:45;;;;4910:2;4859:54;;4322:597;-1:-1:-1;;;4322:597:1:o;8361:356::-;8563:2;8545:21;;;8582:18;;;8575:30;8641:34;8636:2;8621:18;;8614:62;8708:2;8693:18;;8361:356::o;9942:337::-;10144:2;10126:21;;;10183:2;10163:18;;;10156:30;-1:-1:-1;;;10217:2:1;10202:18;;10195:43;10270:2;10255:18;;9942:337::o;11212:980::-;11474:4;11522:3;11511:9;11507:19;11553:6;11542:9;11535:25;11579:2;11617:6;11612:2;11601:9;11597:18;11590:34;11660:3;11655:2;11644:9;11640:18;11633:31;11684:6;11719;11713:13;11750:6;11742;11735:22;11788:3;11777:9;11773:19;11766:26;;11827:2;11819:6;11815:15;11801:29;;11848:1;11858:195;11872:6;11869:1;11866:13;11858:195;;;11937:13;;-1:-1:-1;;;;;11933:39:1;11921:52;;12028:15;;;;11993:12;;;;11969:1;11887:9;11858:195;;;-1:-1:-1;;;;;;;12109:32:1;;;;12104:2;12089:18;;12082:60;-1:-1:-1;;;12173:3:1;12158:19;12151:35;12070:3;11212:980;-1:-1:-1;;;11212:980:1:o;12386:128::-;12426:3;12457:1;12453:6;12450:1;12447:13;12444:39;;;12463:18;;:::i;:::-;-1:-1:-1;12499:9:1;;12386:128::o;12519:217::-;12559:1;12585;12575:132;;12629:10;12624:3;12620:20;12617:1;12610:31;12664:4;12661:1;12654:15;12692:4;12689:1;12682:15;12575:132;-1:-1:-1;12721:9:1;;12519:217::o;12741:168::-;12781:7;12847:1;12843;12839:6;12835:14;12832:1;12829:21;12824:1;12817:9;12810:17;12806:45;12803:71;;;12854:18;;:::i;:::-;-1:-1:-1;12894:9:1;;12741:168::o;12914:125::-;12954:4;12982:1;12979;12976:8;12973:34;;;12987:18;;:::i;:::-;-1:-1:-1;13024:9:1;;12914:125::o;13044:135::-;13083:3;-1:-1:-1;;13104:17:1;;13101:43;;;13124:18;;:::i;:::-;-1:-1:-1;13171:1:1;13160:13;;13044:135::o;13184:127::-;13245:10;13240:3;13236:20;13233:1;13226:31;13276:4;13273:1;13266:15;13300:4;13297:1;13290:15;13316:127;13377:10;13372:3;13368:20;13365:1;13358:31;13408:4;13405:1;13398:15;13432:4;13429:1;13422:15;13448:127;13509:10;13504:3;13500:20;13497:1;13490:31;13540:4;13537:1;13530:15;13564:4;13561:1;13554:15;13580:131;-1:-1:-1;;;;;13655:31:1;;13645:42;;13635:70;;13701:1;13698;13691:12
Swarm Source
ipfs://5bcd9454105e0d617afc0af1979da2e0d3933d651b0000251dd363639a49ec39
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.