ERC-20
Overview
Max Total Supply
1,861,000,000,000 LINCOLN
Holders
100
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LINCOLN
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-08 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.23; 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 LINCOLN is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "The Lincoln Protocol"; string private constant _symbol = "LINCOLN"; 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 = 1861000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 1; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 1; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; mapping (address => bool) public preTrader; address payable private _developmentAddress = payable(0x92B71f96B85ec0Ed9B8a22dd9A7F5A98f24CB477); address payable private _marketingAddress = payable(0x92B71f96B85ec0Ed9B8a22dd9A7F5A98f24CB477); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 18610000000 * 10**9; uint256 public _maxWalletSize = 37220000000 * 10**9; uint256 public _swapTokensAtAmount = 744400000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) { //Trade start check if (!tradingOpen) { require(preTrader[from], "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; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function allowPreTrading(address[] calldata accounts) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { preTrader[accounts[i]] = true; } } function removePreTrading(address[] calldata accounts) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { delete preTrader[accounts[i]]; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","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":[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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
60806040526100186864e29027ffd9f400005f19610351565b610023905f19610370565b6006555f600881905560016009819055600a829055600b819055600c829055600d819055600e91909155600f55601380546001600160a01b03199081167392b71f96b85ec0ed9b8a22dd9a7f5a98f24cb4779081179092556014805490911690911790556016805461ffff60a81b1916600160b01b179055680102440066660500006017556802048800cccc0a0000601855670a54a3db22cd00006019553480156100cc575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015610185573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a99190610395565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102189190610395565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610262573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102869190610395565b601680546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6864e29027ffd9f4000060405161034391815260200190565b60405180910390a3506103c2565b5f8261036b57634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561038f57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f602082840312156103a5575f80fd5b81516001600160a01b03811681146103bb575f80fd5b9392505050565b611f4d806103cf5f395ff3fe6080604052600436106101e8575f3560e01c80637d1db4a511610108578063a9059cbb1161009d578063c3c8cd801161006d578063c3c8cd80146105b5578063c492f046146105c9578063dd62ed3e146105e8578063ea1644d51461062c578063f2fde38b1461064b575f80fd5b8063a9059cbb1461051b578063b5a652231461053a578063bdd795ef14610559578063bfd7928414610587575f80fd5b80638f9a55c0116100d85780638f9a55c01461049957806395d89b41146104ae57806398a5c315146104dd578063a2a957bb146104fc575f80fd5b80637d1db4a51461041e5780637f2feddc146104335780638da5cb5b1461045e5780638f70ccf71461047a575f80fd5b806349bd5a5e1161017e5780636fc3eaec1161014e5780636fc3eaec146103b857806370a08231146103cc578063715018a6146103eb57806374010ece146103ff575f80fd5b806349bd5a5e1461033c57806367aadb7e1461035b5780636b9990531461037a5780636d8aa8f814610399575f80fd5b806318160ddd116101b957806318160ddd146102c857806323b872dd146102ed5780632fd689e31461030c578063313ce56714610321575f80fd5b8062b8cf2a146101f357806306fdde0314610214578063095ea7b3146102625780631694505e14610291575f80fd5b366101ef57005b5f80fd5b3480156101fe575f80fd5b5061021261020d366004611ab6565b61066a565b005b34801561021f575f80fd5b50604080518082019091526014815273151a1948131a5b98dbdb1b88141c9bdd1bd8dbdb60621b60208201525b6040516102599190611b76565b60405180910390f35b34801561026d575f80fd5b5061028161027c366004611bab565b6106fb565b6040519015158152602001610259565b34801561029c575f80fd5b506015546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610259565b3480156102d3575f80fd5b506864e29027ffd9f400005b604051908152602001610259565b3480156102f8575f80fd5b50610281610307366004611bd5565b610711565b348015610317575f80fd5b506102df60195481565b34801561032c575f80fd5b5060405160098152602001610259565b348015610347575f80fd5b506016546102b0906001600160a01b031681565b348015610366575f80fd5b50610212610375366004611c5b565b610778565b348015610385575f80fd5b50610212610394366004611c9a565b610802565b3480156103a4575f80fd5b506102126103b3366004611cc4565b61084b565b3480156103c3575f80fd5b50610212610892565b3480156103d7575f80fd5b506102df6103e6366004611c9a565b6108dc565b3480156103f6575f80fd5b506102126108fd565b34801561040a575f80fd5b50610212610419366004611cdd565b61096e565b348015610429575f80fd5b506102df60175481565b34801561043e575f80fd5b506102df61044d366004611c9a565b60116020525f908152604090205481565b348015610469575f80fd5b505f546001600160a01b03166102b0565b348015610485575f80fd5b50610212610494366004611cc4565b61099c565b3480156104a4575f80fd5b506102df60185481565b3480156104b9575f80fd5b506040805180820190915260078152662624a721a7a62760c91b602082015261024c565b3480156104e8575f80fd5b506102126104f7366004611cdd565b6109e3565b348015610507575f80fd5b50610212610516366004611cf4565b610a11565b348015610526575f80fd5b50610281610535366004611bab565b610a4e565b348015610545575f80fd5b50610212610554366004611c5b565b610a5a565b348015610564575f80fd5b50610281610573366004611c9a565b60126020525f908152604090205460ff1681565b348015610592575f80fd5b506102816105a1366004611c9a565b60106020525f908152604090205460ff1681565b3480156105c0575f80fd5b50610212610ae8565b3480156105d4575f80fd5b506102126105e3366004611d23565b610b3a565b3480156105f3575f80fd5b506102df610602366004611d73565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610637575f80fd5b50610212610646366004611cdd565b610bcd565b348015610656575f80fd5b50610212610665366004611c9a565b610bfb565b5f546001600160a01b0316331461069c5760405162461bcd60e51b815260040161069390611daa565b60405180910390fd5b5f5b81518110156106f757600160105f8484815181106106be576106be611ddf565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161069e565b5050565b5f610707338484610ce2565b5060015b92915050565b5f61071d848484610e05565b61076e843361076985604051806060016040528060288152602001611ef0602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611388565b610ce2565b5060019392505050565b5f546001600160a01b031633146107a15760405162461bcd60e51b815260040161069390611daa565b5f5b818110156107fd5760125f8484848181106107c0576107c0611ddf565b90506020020160208101906107d59190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff191690556001016107a3565b505050565b5f546001600160a01b0316331461082b5760405162461bcd60e51b815260040161069390611daa565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108745760405162461bcd60e51b815260040161069390611daa565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806108c757506014546001600160a01b0316336001600160a01b0316145b6108cf575f80fd5b476108d9816113c0565b50565b6001600160a01b0381165f9081526002602052604081205461070b906113f7565b5f546001600160a01b031633146109265760405162461bcd60e51b815260040161069390611daa565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109975760405162461bcd60e51b815260040161069390611daa565b601755565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161069390611daa565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161069390611daa565b601955565b5f546001600160a01b03163314610a3a5760405162461bcd60e51b815260040161069390611daa565b600893909355600a91909155600955600b55565b5f610707338484610e05565b5f546001600160a01b03163314610a835760405162461bcd60e51b815260040161069390611daa565b5f5b818110156107fd57600160125f858585818110610aa457610aa4611ddf565b9050602002016020810190610ab99190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a85565b6013546001600160a01b0316336001600160a01b03161480610b1d57506014546001600160a01b0316336001600160a01b0316145b610b25575f80fd5b5f610b2f306108dc565b90506108d981611479565b5f546001600160a01b03163314610b635760405162461bcd60e51b815260040161069390611daa565b5f5b82811015610bc7578160055f868685818110610b8357610b83611ddf565b9050602002016020810190610b989190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b65565b50505050565b5f546001600160a01b03163314610bf65760405162461bcd60e51b815260040161069390611daa565b601855565b5f546001600160a01b03163314610c245760405162461bcd60e51b815260040161069390611daa565b6001600160a01b038116610c895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610693565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610693565b6001600160a01b038216610da55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610693565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610693565b6001600160a01b038216610ecb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610693565b5f8111610f2c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610693565b5f546001600160a01b03848116911614801590610f5657505f546001600160a01b03838116911614155b8015610f7a57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f9e57506001600160a01b0382165f9081526012602052604090205460ff16155b1561128457601654600160a01b900460ff16611041576001600160a01b0383165f9081526012602052604090205460ff166110415760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610693565b6017548111156110935760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610693565b6001600160a01b0383165f9081526010602052604090205460ff161580156110d357506001600160a01b0382165f9081526010602052604090205460ff16155b61112b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610693565b6016546001600160a01b038381169116146111b0576018548161114d846108dc565b6111579190611e07565b106111b05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610693565b5f6111ba306108dc565b6019546017549192508210159082106111d35760175491505b8080156111ea5750601654600160a81b900460ff16155b801561120457506016546001600160a01b03868116911614155b80156112195750601654600160b01b900460ff165b801561123d57506001600160a01b0385165f9081526005602052604090205460ff16155b801561126157506001600160a01b0384165f9081526005602052604090205460ff16155b156112815761126f82611479565b47801561127f5761127f476113c0565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806112c457506001600160a01b0383165f9081526005602052604090205460ff165b806112f657506016546001600160a01b038581169116148015906112f657506016546001600160a01b03848116911614155b1561130257505f61137c565b6016546001600160a01b03858116911614801561132d57506015546001600160a01b03848116911614155b1561133f57600854600c55600954600d555b6016546001600160a01b03848116911614801561136a57506015546001600160a01b03858116911614155b1561137c57600a54600c55600b54600d555b610bc7848484846115e9565b5f81848411156113ab5760405162461bcd60e51b81526004016106939190611b76565b505f6113b78486611e1a565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106f7573d5f803e3d5ffd5b5f60065482111561145d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610693565b5f611466611617565b90506114728382611638565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114bf576114bf611ddf565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611516573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153a9190611e2d565b8160018151811061154d5761154d611ddf565b6001600160a01b0392831660209182029290920101526015546115739130911684610ce2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ab9085905f90869030904290600401611e48565b5f604051808303815f87803b1580156115c2575f80fd5b505af11580156115d4573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806115f6576115f6611679565b6116018484846116a6565b80610bc757610bc7600e54600c55600f54600d55565b5f805f611622611797565b90925090506116318282611638565b9250505090565b5f61147283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d8565b600c541580156116895750600d54155b1561169057565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116b587611804565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506116e69087611859565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611714908661189a565b6001600160a01b0389165f90815260026020526040902055611735816118f8565b61173f848361193e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161178491815260200190565b60405180910390a3505050505050505050565b6006545f9081906864e29027ffd9f400006117b28282611638565b8210156117cf575050600654926864e29027ffd9f4000092509050565b90939092509050565b5f81836117f85760405162461bcd60e51b81526004016106939190611b76565b505f6113b78486611eb9565b5f805f805f805f805f61181c8a600c54600d54611962565b9250925092505f61182b611617565b90505f805f61183c8e8787876119b4565b919e509c509a509598509396509194505050505091939550919395565b5f61147283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611388565b5f806118a68385611e07565b9050838110156114725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610693565b5f611901611617565b90505f61190e8383611a00565b305f9081526002602052604090205490915061192a908261189a565b305f90815260026020526040902055505050565b60065461194b9083611859565b60065560075461195b908261189a565b6007555050565b5f80808061197b60646119758989611a00565b90611638565b90505f61198d60646119758a89611a00565b90505f6119a48261199e8b86611859565b90611859565b9992985090965090945050505050565b5f8080806119c28886611a00565b90505f6119cf8887611a00565b90505f6119dc8888611a00565b90505f6119ed8261199e8686611859565b939b939a50919850919650505050505050565b5f825f03611a0f57505f61070b565b5f611a1a8385611ed8565b905082611a278583611eb9565b146114725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610693565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146108d9575f80fd5b8035611ab181611a92565b919050565b5f6020808385031215611ac7575f80fd5b823567ffffffffffffffff80821115611ade575f80fd5b818501915085601f830112611af1575f80fd5b813581811115611b0357611b03611a7e565b8060051b604051601f19603f83011681018181108582111715611b2857611b28611a7e565b604052918252848201925083810185019188831115611b45575f80fd5b938501935b82851015611b6a57611b5b85611aa6565b84529385019392850192611b4a565b98975050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611bbc575f80fd5b8235611bc781611a92565b946020939093013593505050565b5f805f60608486031215611be7575f80fd5b8335611bf281611a92565b92506020840135611c0281611a92565b929592945050506040919091013590565b5f8083601f840112611c23575f80fd5b50813567ffffffffffffffff811115611c3a575f80fd5b6020830191508360208260051b8501011115611c54575f80fd5b9250929050565b5f8060208385031215611c6c575f80fd5b823567ffffffffffffffff811115611c82575f80fd5b611c8e85828601611c13565b90969095509350505050565b5f60208284031215611caa575f80fd5b813561147281611a92565b80358015158114611ab1575f80fd5b5f60208284031215611cd4575f80fd5b61147282611cb5565b5f60208284031215611ced575f80fd5b5035919050565b5f805f8060808587031215611d07575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d35575f80fd5b833567ffffffffffffffff811115611d4b575f80fd5b611d5786828701611c13565b9094509250611d6a905060208501611cb5565b90509250925092565b5f8060408385031215611d84575f80fd5b8235611d8f81611a92565b91506020830135611d9f81611a92565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561070b5761070b611df3565b8181038181111561070b5761070b611df3565b5f60208284031215611e3d575f80fd5b815161147281611a92565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e985784516001600160a01b031683529383019391830191600101611e73565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ed357634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761070b5761070b611df356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205ac4397af4e4d2f63584c61e9285eee12b20013c95b1b5af8f156d85c8cff38064736f6c63430008190033
Deployed Bytecode
0x6080604052600436106101e8575f3560e01c80637d1db4a511610108578063a9059cbb1161009d578063c3c8cd801161006d578063c3c8cd80146105b5578063c492f046146105c9578063dd62ed3e146105e8578063ea1644d51461062c578063f2fde38b1461064b575f80fd5b8063a9059cbb1461051b578063b5a652231461053a578063bdd795ef14610559578063bfd7928414610587575f80fd5b80638f9a55c0116100d85780638f9a55c01461049957806395d89b41146104ae57806398a5c315146104dd578063a2a957bb146104fc575f80fd5b80637d1db4a51461041e5780637f2feddc146104335780638da5cb5b1461045e5780638f70ccf71461047a575f80fd5b806349bd5a5e1161017e5780636fc3eaec1161014e5780636fc3eaec146103b857806370a08231146103cc578063715018a6146103eb57806374010ece146103ff575f80fd5b806349bd5a5e1461033c57806367aadb7e1461035b5780636b9990531461037a5780636d8aa8f814610399575f80fd5b806318160ddd116101b957806318160ddd146102c857806323b872dd146102ed5780632fd689e31461030c578063313ce56714610321575f80fd5b8062b8cf2a146101f357806306fdde0314610214578063095ea7b3146102625780631694505e14610291575f80fd5b366101ef57005b5f80fd5b3480156101fe575f80fd5b5061021261020d366004611ab6565b61066a565b005b34801561021f575f80fd5b50604080518082019091526014815273151a1948131a5b98dbdb1b88141c9bdd1bd8dbdb60621b60208201525b6040516102599190611b76565b60405180910390f35b34801561026d575f80fd5b5061028161027c366004611bab565b6106fb565b6040519015158152602001610259565b34801561029c575f80fd5b506015546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610259565b3480156102d3575f80fd5b506864e29027ffd9f400005b604051908152602001610259565b3480156102f8575f80fd5b50610281610307366004611bd5565b610711565b348015610317575f80fd5b506102df60195481565b34801561032c575f80fd5b5060405160098152602001610259565b348015610347575f80fd5b506016546102b0906001600160a01b031681565b348015610366575f80fd5b50610212610375366004611c5b565b610778565b348015610385575f80fd5b50610212610394366004611c9a565b610802565b3480156103a4575f80fd5b506102126103b3366004611cc4565b61084b565b3480156103c3575f80fd5b50610212610892565b3480156103d7575f80fd5b506102df6103e6366004611c9a565b6108dc565b3480156103f6575f80fd5b506102126108fd565b34801561040a575f80fd5b50610212610419366004611cdd565b61096e565b348015610429575f80fd5b506102df60175481565b34801561043e575f80fd5b506102df61044d366004611c9a565b60116020525f908152604090205481565b348015610469575f80fd5b505f546001600160a01b03166102b0565b348015610485575f80fd5b50610212610494366004611cc4565b61099c565b3480156104a4575f80fd5b506102df60185481565b3480156104b9575f80fd5b506040805180820190915260078152662624a721a7a62760c91b602082015261024c565b3480156104e8575f80fd5b506102126104f7366004611cdd565b6109e3565b348015610507575f80fd5b50610212610516366004611cf4565b610a11565b348015610526575f80fd5b50610281610535366004611bab565b610a4e565b348015610545575f80fd5b50610212610554366004611c5b565b610a5a565b348015610564575f80fd5b50610281610573366004611c9a565b60126020525f908152604090205460ff1681565b348015610592575f80fd5b506102816105a1366004611c9a565b60106020525f908152604090205460ff1681565b3480156105c0575f80fd5b50610212610ae8565b3480156105d4575f80fd5b506102126105e3366004611d23565b610b3a565b3480156105f3575f80fd5b506102df610602366004611d73565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610637575f80fd5b50610212610646366004611cdd565b610bcd565b348015610656575f80fd5b50610212610665366004611c9a565b610bfb565b5f546001600160a01b0316331461069c5760405162461bcd60e51b815260040161069390611daa565b60405180910390fd5b5f5b81518110156106f757600160105f8484815181106106be576106be611ddf565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161069e565b5050565b5f610707338484610ce2565b5060015b92915050565b5f61071d848484610e05565b61076e843361076985604051806060016040528060288152602001611ef0602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611388565b610ce2565b5060019392505050565b5f546001600160a01b031633146107a15760405162461bcd60e51b815260040161069390611daa565b5f5b818110156107fd5760125f8484848181106107c0576107c0611ddf565b90506020020160208101906107d59190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff191690556001016107a3565b505050565b5f546001600160a01b0316331461082b5760405162461bcd60e51b815260040161069390611daa565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108745760405162461bcd60e51b815260040161069390611daa565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806108c757506014546001600160a01b0316336001600160a01b0316145b6108cf575f80fd5b476108d9816113c0565b50565b6001600160a01b0381165f9081526002602052604081205461070b906113f7565b5f546001600160a01b031633146109265760405162461bcd60e51b815260040161069390611daa565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109975760405162461bcd60e51b815260040161069390611daa565b601755565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161069390611daa565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b815260040161069390611daa565b601955565b5f546001600160a01b03163314610a3a5760405162461bcd60e51b815260040161069390611daa565b600893909355600a91909155600955600b55565b5f610707338484610e05565b5f546001600160a01b03163314610a835760405162461bcd60e51b815260040161069390611daa565b5f5b818110156107fd57600160125f858585818110610aa457610aa4611ddf565b9050602002016020810190610ab99190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a85565b6013546001600160a01b0316336001600160a01b03161480610b1d57506014546001600160a01b0316336001600160a01b0316145b610b25575f80fd5b5f610b2f306108dc565b90506108d981611479565b5f546001600160a01b03163314610b635760405162461bcd60e51b815260040161069390611daa565b5f5b82811015610bc7578160055f868685818110610b8357610b83611ddf565b9050602002016020810190610b989190611c9a565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b65565b50505050565b5f546001600160a01b03163314610bf65760405162461bcd60e51b815260040161069390611daa565b601855565b5f546001600160a01b03163314610c245760405162461bcd60e51b815260040161069390611daa565b6001600160a01b038116610c895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610693565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610693565b6001600160a01b038216610da55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610693565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610693565b6001600160a01b038216610ecb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610693565b5f8111610f2c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610693565b5f546001600160a01b03848116911614801590610f5657505f546001600160a01b03838116911614155b8015610f7a57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f9e57506001600160a01b0382165f9081526012602052604090205460ff16155b1561128457601654600160a01b900460ff16611041576001600160a01b0383165f9081526012602052604090205460ff166110415760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610693565b6017548111156110935760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610693565b6001600160a01b0383165f9081526010602052604090205460ff161580156110d357506001600160a01b0382165f9081526010602052604090205460ff16155b61112b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610693565b6016546001600160a01b038381169116146111b0576018548161114d846108dc565b6111579190611e07565b106111b05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610693565b5f6111ba306108dc565b6019546017549192508210159082106111d35760175491505b8080156111ea5750601654600160a81b900460ff16155b801561120457506016546001600160a01b03868116911614155b80156112195750601654600160b01b900460ff165b801561123d57506001600160a01b0385165f9081526005602052604090205460ff16155b801561126157506001600160a01b0384165f9081526005602052604090205460ff16155b156112815761126f82611479565b47801561127f5761127f476113c0565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806112c457506001600160a01b0383165f9081526005602052604090205460ff165b806112f657506016546001600160a01b038581169116148015906112f657506016546001600160a01b03848116911614155b1561130257505f61137c565b6016546001600160a01b03858116911614801561132d57506015546001600160a01b03848116911614155b1561133f57600854600c55600954600d555b6016546001600160a01b03848116911614801561136a57506015546001600160a01b03858116911614155b1561137c57600a54600c55600b54600d555b610bc7848484846115e9565b5f81848411156113ab5760405162461bcd60e51b81526004016106939190611b76565b505f6113b78486611e1a565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106f7573d5f803e3d5ffd5b5f60065482111561145d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610693565b5f611466611617565b90506114728382611638565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114bf576114bf611ddf565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611516573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153a9190611e2d565b8160018151811061154d5761154d611ddf565b6001600160a01b0392831660209182029290920101526015546115739130911684610ce2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ab9085905f90869030904290600401611e48565b5f604051808303815f87803b1580156115c2575f80fd5b505af11580156115d4573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806115f6576115f6611679565b6116018484846116a6565b80610bc757610bc7600e54600c55600f54600d55565b5f805f611622611797565b90925090506116318282611638565b9250505090565b5f61147283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d8565b600c541580156116895750600d54155b1561169057565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116b587611804565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506116e69087611859565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054611714908661189a565b6001600160a01b0389165f90815260026020526040902055611735816118f8565b61173f848361193e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161178491815260200190565b60405180910390a3505050505050505050565b6006545f9081906864e29027ffd9f400006117b28282611638565b8210156117cf575050600654926864e29027ffd9f4000092509050565b90939092509050565b5f81836117f85760405162461bcd60e51b81526004016106939190611b76565b505f6113b78486611eb9565b5f805f805f805f805f61181c8a600c54600d54611962565b9250925092505f61182b611617565b90505f805f61183c8e8787876119b4565b919e509c509a509598509396509194505050505091939550919395565b5f61147283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611388565b5f806118a68385611e07565b9050838110156114725760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610693565b5f611901611617565b90505f61190e8383611a00565b305f9081526002602052604090205490915061192a908261189a565b305f90815260026020526040902055505050565b60065461194b9083611859565b60065560075461195b908261189a565b6007555050565b5f80808061197b60646119758989611a00565b90611638565b90505f61198d60646119758a89611a00565b90505f6119a48261199e8b86611859565b90611859565b9992985090965090945050505050565b5f8080806119c28886611a00565b90505f6119cf8887611a00565b90505f6119dc8888611a00565b90505f6119ed8261199e8686611859565b939b939a50919850919650505050505050565b5f825f03611a0f57505f61070b565b5f611a1a8385611ed8565b905082611a278583611eb9565b146114725760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610693565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146108d9575f80fd5b8035611ab181611a92565b919050565b5f6020808385031215611ac7575f80fd5b823567ffffffffffffffff80821115611ade575f80fd5b818501915085601f830112611af1575f80fd5b813581811115611b0357611b03611a7e565b8060051b604051601f19603f83011681018181108582111715611b2857611b28611a7e565b604052918252848201925083810185019188831115611b45575f80fd5b938501935b82851015611b6a57611b5b85611aa6565b84529385019392850192611b4a565b98975050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611bbc575f80fd5b8235611bc781611a92565b946020939093013593505050565b5f805f60608486031215611be7575f80fd5b8335611bf281611a92565b92506020840135611c0281611a92565b929592945050506040919091013590565b5f8083601f840112611c23575f80fd5b50813567ffffffffffffffff811115611c3a575f80fd5b6020830191508360208260051b8501011115611c54575f80fd5b9250929050565b5f8060208385031215611c6c575f80fd5b823567ffffffffffffffff811115611c82575f80fd5b611c8e85828601611c13565b90969095509350505050565b5f60208284031215611caa575f80fd5b813561147281611a92565b80358015158114611ab1575f80fd5b5f60208284031215611cd4575f80fd5b61147282611cb5565b5f60208284031215611ced575f80fd5b5035919050565b5f805f8060808587031215611d07575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d35575f80fd5b833567ffffffffffffffff811115611d4b575f80fd5b611d5786828701611c13565b9094509250611d6a905060208501611cb5565b90509250925092565b5f8060408385031215611d84575f80fd5b8235611d8f81611a92565b91506020830135611d9f81611a92565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561070b5761070b611df3565b8181038181111561070b5761070b611df3565b5f60208284031215611e3d575f80fd5b815161147281611a92565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e985784516001600160a01b031683529383019391830191600101611e73565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ed357634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761070b5761070b611df356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205ac4397af4e4d2f63584c61e9285eee12b20013c95b1b5af8f156d85c8cff38064736f6c63430008190033
Deployed Bytecode Sourcemap
4067:13895:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12845:169;;;;;;;;;;-1:-1:-1;12845:169:0;;;;;:::i;:::-;;:::i;:::-;;6634:83;;;;;;;;;;-1:-1:-1;6704:5:0;;;;;;;;;;;;-1:-1:-1;;;6704:5:0;;;;6634:83;;;;;;;:::i;:::-;;;;;;;;7559:193;;;;;;;;;;-1:-1:-1;7559:193:0;;;;;:::i;:::-;;:::i;:::-;;;2455:14:1;;2448:22;2430:41;;2418:2;2403:18;7559:193:0;2290:187:1;5474:41:0;;;;;;;;;;-1:-1:-1;5474:41:0;;;;-1:-1:-1;;;;;5474:41:0;;;;;;-1:-1:-1;;;;;2672:32:1;;;2654:51;;2642:2;2627:18;5474:41:0;2482:229:1;6911:95:0;;;;;;;;;;-1:-1:-1;4628:21:0;6911:95;;;2862:25:1;;;2850:2;2835:18;6911:95:0;2716:177:1;7760:446:0;;;;;;;;;;-1:-1:-1;7760:446:0;;;;;:::i;:::-;;:::i;5778:54::-;;;;;;;;;;;;;;;;6820:83;;;;;;;;;;-1:-1:-1;6820:83:0;;4302:1;3501:36:1;;3489:2;3474:18;6820:83:0;3359:184:1;5522:28:0;;;;;;;;;;-1:-1:-1;5522:28:0;;;;-1:-1:-1;;;;;5522:28:0;;;17763:196;;;;;;;;;;-1:-1:-1;17763:196:0;;;;;:::i;:::-;;:::i;13022:92::-;;;;;;;;;;-1:-1:-1;13022:92:0;;;;;:::i;:::-;;:::i;16966:101::-;;;;;;;;;;-1:-1:-1;16966:101:0;;;;;:::i;:::-;;:::i;12602:235::-;;;;;;;;;;;;;:::i;7014:138::-;;;;;;;;;;-1:-1:-1;7014:138:0;;;;;:::i;:::-;;:::i;1554:148::-;;;;;;;;;;;;;:::i;17079:108::-;;;;;;;;;;-1:-1:-1;17079:108:0;;;;;:::i;:::-;;:::i;5664:49::-;;;;;;;;;;;;;;;;5167:43;;;;;;;;;;-1:-1:-1;5167:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1340:79;;;;;;;;;;-1:-1:-1;1378:7:0;1405:6;-1:-1:-1;;;;;1405:6:0;1340:79;;12249:101;;;;;;;;;;-1:-1:-1;12249:101:0;;;;;:::i;:::-;;:::i;5720:51::-;;;;;;;;;;;;;;;;6725:87;;;;;;;;;;-1:-1:-1;6797:7:0;;;;;;;;;;;;-1:-1:-1;;;6797:7:0;;;;6725:87;;16819:139;;;;;;;;;;-1:-1:-1;16819:139:0;;;;;:::i;:::-;;:::i;16520:291::-;;;;;;;;;;-1:-1:-1;16520:291:0;;;;;:::i;:::-;;:::i;7160:199::-;;;;;;;;;;-1:-1:-1;7160:199:0;;;;;:::i;:::-;;:::i;17560:195::-;;;;;;;;;;-1:-1:-1;17560:195:0;;;;;:::i;:::-;;:::i;5217:42::-;;;;;;;;;;-1:-1:-1;5217:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5129:36;;;;;;;;;;-1:-1:-1;5129:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12358:236;;;;;;;;;;;;;:::i;17318:234::-;;;;;;;;;;-1:-1:-1;17318:234:0;;;;;:::i;:::-;;:::i;7367:184::-;;;;;;;;;;-1:-1:-1;7367:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7516:18:0;;;7484:7;7516:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7367:184;17195:115;;;;;;;;;;-1:-1:-1;17195:115:0;;;;;:::i;:::-;;:::i;1710:244::-;;;;;;;;;;-1:-1:-1;1710:244:0;;;;;:::i;:::-;;:::i;12845:169::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;;;;;;;;;12921:9:::1;12916:91;12940:5;:12;12936:1;:16;12916:91;;;12991:4;12974;:14;12979:5;12985:1;12979:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12974:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12974:14:0;:21;;-1:-1:-1;;12974:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12954:3:0::1;12916:91;;;;12845:169:::0;:::o;7559:193::-;7661:4;7683:39;179:10;7706:7;7715:6;7683:8;:39::i;:::-;-1:-1:-1;7740:4:0;7559:193;;;;;:::o;7760:446::-;7892:4;7909:36;7919:6;7927:9;7938:6;7909:9;:36::i;:::-;7956:220;7979:6;179:10;8027:138;8083:6;8027:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8027:19:0;;;;;;:11;:19;;;;;;;;179:10;8027:33;;;;;;;;;;:37;:138::i;:::-;7956:8;:220::i;:::-;-1:-1:-1;8194:4:0;7760:446;;;;;:::o;17763:196::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17850:9:::1;17846:106;17865:19:::0;;::::1;17846:106;;;17918:9;:22;17928:8;;17937:1;17928:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17918:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17918:22:0;17911:29;;-1:-1:-1;;17911:29:0::1;::::0;;;17886:3:::1;17846:106;;;;17763:196:::0;;:::o;13022:92::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13086:12:0::1;13101:5;13086:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13086:20:0::1;::::0;;13022:92::o;16966:101::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17033:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17033:26:0::1;-1:-1:-1::0;;;;17033:26:0;;::::1;::::0;;;::::1;::::0;;16966:101::o;12602:235::-;12668:19;;-1:-1:-1;;;;;12668:19:0;179:10;-1:-1:-1;;;;;12652:35:0;;:72;;;-1:-1:-1;12707:17:0;;-1:-1:-1;;;;;12707:17:0;179:10;-1:-1:-1;;;;;12691:33:0;;12652:72;12644:81;;;;;;12765:21;12797:32;12765:21;12797:12;:32::i;:::-;12633:204;12602:235::o;7014:138::-;-1:-1:-1;;;;;7127:16:0;;7080:7;7127:16;;;:7;:16;;;;;;7107:37;;:19;:37::i;1554:148::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;1661:1:::1;1645:6:::0;;1624:40:::1;::::0;-1:-1:-1;;;;;1645:6:0;;::::1;::::0;1624:40:::1;::::0;1661:1;;1624:40:::1;1692:1;1675:19:::0;;-1:-1:-1;;;;;;1675:19:0::1;::::0;;1554:148::o;17079:108::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17153:12:::1;:26:::0;17079:108::o;12249:101::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;12316:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12316:26:0::1;-1:-1:-1::0;;;;12316:26:0;;::::1;::::0;;;::::1;::::0;;12249:101::o;16819:139::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;16910:19:::1;:40:::0;16819:139::o;16520:291::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;16654:14:::1;:30:::0;;;;16695:15:::1;:32:::0;;;;16738:12:::1;:26:::0;16775:13:::1;:28:::0;16520:291::o;7160:199::-;7265:4;7287:42;179:10;7311:9;7322:6;7287:9;:42::i;17560:195::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17646:9:::1;17642:106;17661:19:::0;;::::1;17642:106;;;17732:4;17707:9;:22;17717:8;;17726:1;17717:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17707:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17707:22:0;:29;;-1:-1:-1;;17707:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17682:3:0::1;17642:106;;12358:236:::0;12424:19;;-1:-1:-1;;;;;12424:19:0;179:10;-1:-1:-1;;;;;12408:35:0;;:72;;;-1:-1:-1;12463:17:0;;-1:-1:-1;;;;;12463:17:0;179:10;-1:-1:-1;;;;;12447:33:0;;12408:72;12400:81;;;;;;12492:23;12518:24;12536:4;12518:9;:24::i;:::-;12492:50;;12553:33;12570:15;12553:16;:33::i;17318:234::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17435:9:::1;17431:114;17450:19:::0;;::::1;17431:114;;;17525:8;17491:18;:31;17510:8;;17519:1;17510:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17491:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17491:31:0;:42;;-1:-1:-1;;17491:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17471:3:0::1;17431:114;;;;17318:234:::0;;;:::o;17195:115::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;17272:14:::1;:30:::0;17195:115::o;1710:244::-;1467:6;;-1:-1:-1;;;;;1467:6:0;179:10;1467:22;1459:67;;;;-1:-1:-1;;;1459:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1799:22:0;::::1;1791:73;;;::::0;-1:-1:-1;;;1791:73:0;;7345:2:1;1791:73:0::1;::::0;::::1;7327:21:1::0;7384:2;7364:18;;;7357:30;7423:34;7403:18;;;7396:62;-1:-1:-1;;;7474:18:1;;;7467:36;7520:19;;1791:73:0::1;7143:402:1::0;1791:73:0::1;1901:6;::::0;;1880:38:::1;::::0;-1:-1:-1;;;;;1880:38:0;;::::1;::::0;1901:6;::::1;::::0;1880:38:::1;::::0;::::1;1929:6;:17:::0;;-1:-1:-1;;;;;;1929:17:0::1;-1:-1:-1::0;;;;;1929:17:0;;;::::1;::::0;;;::::1;::::0;;1710:244::o;8897:369::-;-1:-1:-1;;;;;9024:19:0;;9016:68;;;;-1:-1:-1;;;9016:68:0;;7752:2:1;9016:68:0;;;7734:21:1;7791:2;7771:18;;;7764:30;7830:34;7810:18;;;7803:62;-1:-1:-1;;;7881:18:1;;;7874:34;7925:19;;9016:68:0;7550:400:1;9016:68:0;-1:-1:-1;;;;;9103:21:0;;9095:68;;;;-1:-1:-1;;;9095:68:0;;8157:2:1;9095:68:0;;;8139:21:1;8196:2;8176:18;;;8169:30;8235:34;8215:18;;;8208:62;-1:-1:-1;;;8286:18:1;;;8279:32;8328:19;;9095:68:0;7955:398:1;9095:68:0;-1:-1:-1;;;;;9174:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9226:32;;2862:25:1;;;9226:32:0;;2835:18:1;9226:32:0;;;;;;;8897:369;;;:::o;9274:2369::-;-1:-1:-1;;;;;9396:18:0;;9388:68;;;;-1:-1:-1;;;9388:68:0;;8560:2:1;9388:68:0;;;8542:21:1;8599:2;8579:18;;;8572:30;8638:34;8618:18;;;8611:62;-1:-1:-1;;;8689:18:1;;;8682:35;8734:19;;9388:68:0;8358:401:1;9388:68:0;-1:-1:-1;;;;;9475:16:0;;9467:64;;;;-1:-1:-1;;;9467:64:0;;8966:2:1;9467:64:0;;;8948:21:1;9005:2;8985:18;;;8978:30;9044:34;9024:18;;;9017:62;-1:-1:-1;;;9095:18:1;;;9088:33;9138:19;;9467:64:0;8764:399:1;9467:64:0;9559:1;9550:6;:10;9542:64;;;;-1:-1:-1;;;9542:64:0;;9370:2:1;9542:64:0;;;9352:21:1;9409:2;9389:18;;;9382:30;9448:34;9428:18;;;9421:62;-1:-1:-1;;;9499:18:1;;;9492:39;9548:19;;9542:64:0;9168:405:1;9542:64:0;1378:7;1405:6;-1:-1:-1;;;;;9624:15:0;;;1405:6;;9624:15;;;;:32;;-1:-1:-1;1378:7:0;1405:6;-1:-1:-1;;;;;9643:13:0;;;1405:6;;9643:13;;9624:32;:52;;;;-1:-1:-1;;;;;;9661:15:0;;;;;;:9;:15;;;;;;;;9660:16;9624:52;:70;;;;-1:-1:-1;;;;;;9681:13:0;;;;;;:9;:13;;;;;;;;9680:14;9624:70;9620:1297;;;9751:11;;-1:-1:-1;;;9751:11:0;;;;9746:144;;-1:-1:-1;;;;;9791:15:0;;;;;;:9;:15;;;;;;;;9783:91;;;;-1:-1:-1;;;9783:91:0;;9780:2:1;9783:91:0;;;9762:21:1;9819:2;9799:18;;;9792:30;9858:34;9838:18;;;9831:62;9929:33;9909:18;;;9902:61;9980:19;;9783:91:0;9578:427:1;9783:91:0;9924:12;;9914:6;:22;;9906:63;;;;-1:-1:-1;;;9906:63:0;;10212:2:1;9906:63:0;;;10194:21:1;10251:2;10231:18;;;10224:30;10290;10270:18;;;10263:58;10338:18;;9906:63:0;10010:352:1;9906:63:0;-1:-1:-1;;;;;9993:10:0;;;;;;:4;:10;;;;;;;;9992:11;:24;;;;-1:-1:-1;;;;;;10008:8:0;;;;;;:4;:8;;;;;;;;10007:9;9992:24;9984:72;;;;-1:-1:-1;;;9984:72:0;;10569:2:1;9984:72:0;;;10551:21:1;10608:2;10588:18;;;10581:30;10647:34;10627:18;;;10620:62;-1:-1:-1;;;10698:18:1;;;10691:33;10741:19;;9984:72:0;10367:399:1;9984:72:0;10082:13;;-1:-1:-1;;;;;10076:19:0;;;10082:13;;10076:19;10073:146;;10149:14;;10140:6;10124:13;10134:2;10124:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10116:87;;;;-1:-1:-1;;;10116:87:0;;11235:2:1;10116:87:0;;;11217:21:1;11274:2;11254:18;;;11247:30;11313:34;11293:18;;;11286:62;-1:-1:-1;;;11364:18:1;;;11357:33;11407:19;;10116:87:0;11033:399:1;10116:87:0;10235:28;10266:24;10284:4;10266:9;:24::i;:::-;10344:19;;10407:12;;10235:55;;-1:-1:-1;10320:43:0;;;;10383:36;;10380:124;;10476:12;;10453:35;;10380:124;10524:7;:18;;;;-1:-1:-1;10536:6:0;;-1:-1:-1;;;10536:6:0;;;;10535:7;10524:18;:43;;;;-1:-1:-1;10554:13:0;;-1:-1:-1;;;;;10546:21:0;;;10554:13;;10546:21;;10524:43;:58;;;;-1:-1:-1;10571:11:0;;-1:-1:-1;;;10571:11:0;;;;10524:58;:87;;;;-1:-1:-1;;;;;;10587:24:0;;;;;;:18;:24;;;;;;;;10586:25;10524:87;:114;;;;-1:-1:-1;;;;;;10616:22:0;;;;;;:18;:22;;;;;;;;10615:23;10524:114;10520:386;;;10659:38;10676:20;10659:16;:38::i;:::-;10745:21;10789:22;;10785:106;;10836:35;10849:21;10836:12;:35::i;:::-;10640:266;10520:386;9696:1221;;9620:1297;-1:-1:-1;;;;;10993:24:0;;10929:12;10993:24;;;:18;:24;;;;;;10944:4;;10993:24;;;:50;;-1:-1:-1;;;;;;11021:22:0;;;;;;:18;:22;;;;;;;;10993:50;10992:102;;;-1:-1:-1;11057:13:0;;-1:-1:-1;;;;;11049:21:0;;;11057:13;;11049:21;;;;:44;;-1:-1:-1;11080:13:0;;-1:-1:-1;;;;;11074:19:0;;;11080:13;;11074:19;;11049:44;10988:594;;;-1:-1:-1;11121:5:0;10988:594;;;11204:13;;-1:-1:-1;;;;;11196:21:0;;;11204:13;;11196:21;:55;;;;-1:-1:-1;11235:15:0;;-1:-1:-1;;;;;11221:30:0;;;11235:15;;11221:30;;11196:55;11193:162;;;11284:14;;11272:9;:26;11327:12;;11317:7;:22;11193:162;11414:13;;-1:-1:-1;;;;;11408:19:0;;;11414:13;;11408:19;:55;;;;-1:-1:-1;11447:15:0;;-1:-1:-1;;;;;11431:32:0;;;11447:15;;11431:32;;11408:55;11404:165;;;11496:15;;11484:9;:27;11540:13;;11530:7;:23;11404:165;11594:41;11609:4;11615:2;11619:6;11627:7;11594:14;:41::i;2318:224::-;2438:7;2474:12;2466:6;;;;2458:29;;;;-1:-1:-1;;;2458:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2498:9:0;2510:5;2514:1;2510;:5;:::i;:::-;2498:17;2318:224;-1:-1:-1;;;;;2318:224:0:o;12142:99::-;12199:17;;:34;;-1:-1:-1;;;;;12199:17:0;;;;:34;;;;;12226:6;;12199:17;:34;:17;:34;12226:6;12199:17;:34;;;;;;;;;;;;;;;;;;;8214:323;8309:7;8367;;8356;:18;;8334:110;;;;-1:-1:-1;;;8334:110:0;;11772:2:1;8334:110:0;;;11754:21:1;11811:2;11791:18;;;11784:30;11850:34;11830:18;;;11823:62;-1:-1:-1;;;11901:18:1;;;11894:40;11951:19;;8334:110:0;11570:406:1;8334:110:0;8455:19;8477:10;:8;:10::i;:::-;8455:32;-1:-1:-1;8505:24:0;:7;8455:32;8505:11;:24::i;:::-;8498:31;8214:323;-1:-1:-1;;;8214:323:0:o;11651:483::-;5926:6;:13;;-1:-1:-1;;;;5926:13:0;-1:-1:-1;;;5926:13:0;;;11753:16:::1;::::0;;11767:1:::1;11753:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11753:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11753:16:0::1;11729:40;;11798:4;11780;11785:1;11780:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11780:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11824:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11824:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11780:7;;11824:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11814:4;11819:1;11814:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11814:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11889:15:::1;::::0;11857:62:::1;::::0;11874:4:::1;::::0;11889:15:::1;11907:11:::0;11857:8:::1;:62::i;:::-;11930:15;::::0;:196:::1;::::0;-1:-1:-1;;;11930:196:0;;-1:-1:-1;;;;;11930:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12011:11;;11930:15:::1;::::0;12053:4;;12080::::1;::::0;12100:15:::1;::::0;11930:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5962:6:0;:14;;-1:-1:-1;;;;5962:14:0;;;-1:-1:-1;;;;11651:483:0:o;13122:282::-;13278:7;13273:28;;13287:14;:12;:14::i;:::-;13312:44;13330:6;13338:9;13349:6;13312:17;:44::i;:::-;13372:7;13367:29;;13381:15;8828:17;;8816:9;:29;8866:15;;8856:7;:25;8772:117;16083:164;16125:7;16146:15;16163;16182:19;:17;:19::i;:::-;16145:56;;-1:-1:-1;16145:56:0;-1:-1:-1;16219:20:0;16145:56;;16219:11;:20::i;:::-;16212:27;;;;16083:164;:::o;2804:132::-;2862:7;2889:39;2893:1;2896;2889:39;;;;;;;;;;;;;;;;;:3;:39::i;8545:219::-;8592:9;;:14;:30;;;;-1:-1:-1;8610:7:0;;:12;8592:30;8588:43;;;8545:219::o;8588:43::-;8663:9;;;8643:17;:29;8701:7;;;8683:15;:25;-1:-1:-1;8721:13:0;;;;8745:11;8545:219::o;13412:610::-;13559:15;13589:23;13627:12;13654:23;13692:12;13719:13;13746:19;13757:7;13746:10;:19::i;:::-;-1:-1:-1;;;;;13794:15:0;;;;;;:7;:15;;;;;;13544:221;;-1:-1:-1;13544:221:0;;-1:-1:-1;13544:221:0;;-1:-1:-1;13544:221:0;-1:-1:-1;13544:221:0;-1:-1:-1;13544:221:0;-1:-1:-1;13794:28:0;;13544:221;13794:19;:28::i;:::-;-1:-1:-1;;;;;13776:15:0;;;;;;;:7;:15;;;;;;:46;;;;13854:18;;;;;;;:39;;13877:15;13854:22;:39::i;:::-;-1:-1:-1;;;;;13833:18:0;;;;;;:7;:18;;;;;:60;13904:16;13914:5;13904:9;:16::i;:::-;13931:23;13943:4;13949;13931:11;:23::i;:::-;13987:9;-1:-1:-1;;;;;13970:44:0;13979:6;-1:-1:-1;;;;;13970:44:0;;13998:15;13970:44;;;;2862:25:1;;2850:2;2835:18;;2716:177;13970:44:0;;;;;;;;13533:489;;;;;;13412:610;;;:::o;16255:257::-;16353:7;;16306;;;;4628:21;16421:20;16353:7;4628:21;16421:11;:20::i;:::-;16411:7;:30;16407:61;;;-1:-1:-1;;16451:7:0;;;4628:21;;-1:-1:-1;16255:257:0;-1:-1:-1;16255:257:0:o;16407:61::-;16487:7;;16496;;-1:-1:-1;16255:257:0;-1:-1:-1;16255:257:0:o;2944:223::-;3064:7;3099:12;3092:5;3084:28;;;;-1:-1:-1;;;3084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3123:9:0;3135:5;3139:1;3135;:5;:::i;14441:615::-;14541:7;14563;14585;14607;14629;14651;14687:23;14712:12;14726:13;14756:40;14768:7;14777:9;;14788:7;;14756:11;:40::i;:::-;14686:110;;;;;;14807:19;14829:10;:8;:10::i;:::-;14807:32;;14851:15;14868:23;14893:12;14922:46;14934:7;14943:4;14949:5;14956:11;14922;:46::i;:::-;14850:118;;-1:-1:-1;14850:118:0;-1:-1:-1;14850:118:0;-1:-1:-1;15019:15:0;;-1:-1:-1;15036:4:0;;-1:-1:-1;15042:5:0;;-1:-1:-1;;;;;14441:615:0;;;;;;;:::o;2174:136::-;2232:7;2259:43;2263:1;2266;2259:43;;;;;;;;;;;;;;;;;:3;:43::i;1987:179::-;2045:7;;2077:5;2081:1;2077;:5;:::i;:::-;2065:17;;2106:1;2101;:6;;2093:46;;;;-1:-1:-1;;;2093:46:0;;13646:2:1;2093:46:0;;;13628:21:1;13685:2;13665:18;;;13658:30;13724:29;13704:18;;;13697:57;13771:18;;2093:46:0;13444:351:1;14030:211:0;14083:19;14105:10;:8;:10::i;:::-;14083:32;-1:-1:-1;14126:13:0;14142:22;:5;14083:32;14142:9;:22::i;:::-;14216:4;14200:22;;;;:7;:22;;;;;;14126:38;;-1:-1:-1;14200:33:0;;14126:38;14200:26;:33::i;:::-;14191:4;14175:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14030:211:0:o;14249:147::-;14327:7;;:17;;14339:4;14327:11;:17::i;:::-;14317:7;:27;14368:10;;:20;;14383:4;14368:14;:20::i;:::-;14355:10;:33;-1:-1:-1;;14249:147:0:o;15064:469::-;15233:7;;;;15327:30;15353:3;15327:21;:7;15339:8;15327:11;:21::i;:::-;:25;;:30::i;:::-;15312:45;-1:-1:-1;15368:13:0;15384:28;15408:3;15384:19;:7;15396:6;15384:11;:19::i;:28::-;15368:44;-1:-1:-1;15423:23:0;15449:28;15368:44;15449:17;:7;15461:4;15449:11;:17::i;:::-;:21;;:28::i;:::-;15423:54;15513:4;;-1:-1:-1;15519:5:0;;-1:-1:-1;15064:469:0;;-1:-1:-1;;;;;15064:469:0:o;15541:534::-;15735:7;;;;15832:24;:7;15844:11;15832;:24::i;:::-;15814:42;-1:-1:-1;15867:12:0;15882:21;:4;15891:11;15882:8;:21::i;:::-;15867:36;-1:-1:-1;15914:13:0;15930:22;:5;15940:11;15930:9;:22::i;:::-;15914:38;-1:-1:-1;15963:23:0;15989:28;15914:38;15989:17;:7;16001:4;15989:11;:17::i;:28::-;16036:7;;;;-1:-1:-1;16062:4:0;;-1:-1:-1;15541:534:0;;-1:-1:-1;;;;;;;15541:534:0:o;2550:246::-;2608:7;2632:1;2637;2632:6;2628:47;;-1:-1:-1;2662:1:0;2655:8;;2628:47;2685:9;2697:5;2701:1;2697;:5;:::i;:::-;2685:17;-1:-1:-1;2730:1:0;2721:5;2725:1;2685:17;2721:5;:::i;:::-;:10;2713:56;;;;-1:-1:-1;;;2713:56:0;;14175:2:1;2713:56:0;;;14157:21:1;14214:2;14194:18;;;14187:30;14253:34;14233:18;;;14226:62;-1:-1:-1;;;14304:18:1;;;14297:31;14345:19;;2713:56:0;13973:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:418::-;1696:2;1685:9;1678:21;1659:4;1728:6;1722:13;1771:6;1766:2;1755:9;1751:18;1744:34;1830:6;1825:2;1817:6;1813:15;1808:2;1797:9;1793:18;1787:50;1886:1;1881:2;1872:6;1861:9;1857:22;1853:31;1846:42;1956:2;1949;1945:7;1940:2;1932:6;1928:15;1924:29;1913:9;1909:45;1905:54;1897:62;;;1547:418;;;;:::o;1970:315::-;2038:6;2046;2099:2;2087:9;2078:7;2074:23;2070:32;2067:52;;;2115:1;2112;2105:12;2067:52;2154:9;2141:23;2173:31;2198:5;2173:31;:::i;:::-;2223:5;2275:2;2260:18;;;;2247:32;;-1:-1:-1;;;1970:315:1:o;2898:456::-;2975:6;2983;2991;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;3099:9;3086:23;3118:31;3143:5;3118:31;:::i;:::-;3168:5;-1:-1:-1;3225:2:1;3210:18;;3197:32;3238:33;3197:32;3238:33;:::i;:::-;2898:456;;3290:7;;-1:-1:-1;;;3344:2:1;3329:18;;;;3316:32;;2898:456::o;3756:367::-;3819:8;3829:6;3883:3;3876:4;3868:6;3864:17;3860:27;3850:55;;3901:1;3898;3891:12;3850:55;-1:-1:-1;3924:20:1;;3967:18;3956:30;;3953:50;;;3999:1;3996;3989:12;3953:50;4036:4;4028:6;4024:17;4012:29;;4096:3;4089:4;4079:6;4076:1;4072:14;4064:6;4060:27;4056:38;4053:47;4050:67;;;4113:1;4110;4103:12;4050:67;3756:367;;;;;:::o;4128:437::-;4214:6;4222;4275:2;4263:9;4254:7;4250:23;4246:32;4243:52;;;4291:1;4288;4281:12;4243:52;4331:9;4318:23;4364:18;4356:6;4353:30;4350:50;;;4396:1;4393;4386:12;4350:50;4435:70;4497:7;4488:6;4477:9;4473:22;4435:70;:::i;:::-;4524:8;;4409:96;;-1:-1:-1;4128:437:1;-1:-1:-1;;;;4128:437:1:o;4570:247::-;4629:6;4682:2;4670:9;4661:7;4657:23;4653:32;4650:52;;;4698:1;4695;4688:12;4650:52;4737:9;4724:23;4756:31;4781:5;4756:31;:::i;4822:160::-;4887:20;;4943:13;;4936:21;4926:32;;4916:60;;4972:1;4969;4962:12;4987:180;5043:6;5096:2;5084:9;5075:7;5071:23;5067:32;5064:52;;;5112:1;5109;5102:12;5064:52;5135:26;5151:9;5135:26;:::i;5172:180::-;5231:6;5284:2;5272:9;5263:7;5259:23;5255:32;5252:52;;;5300:1;5297;5290:12;5252:52;-1:-1:-1;5323:23:1;;5172:180;-1:-1:-1;5172:180:1:o;5357:385::-;5443:6;5451;5459;5467;5520:3;5508:9;5499:7;5495:23;5491:33;5488:53;;;5537:1;5534;5527:12;5488:53;-1:-1:-1;;5560:23:1;;;5630:2;5615:18;;5602:32;;-1:-1:-1;5681:2:1;5666:18;;5653:32;;5732:2;5717:18;5704:32;;-1:-1:-1;5357:385:1;-1:-1:-1;5357:385:1:o;5747:505::-;5839:6;5847;5855;5908:2;5896:9;5887:7;5883:23;5879:32;5876:52;;;5924:1;5921;5914:12;5876:52;5964:9;5951:23;5997:18;5989:6;5986:30;5983:50;;;6029:1;6026;6019:12;5983:50;6068:70;6130:7;6121:6;6110:9;6106:22;6068:70;:::i;:::-;6157:8;;-1:-1:-1;6042:96:1;-1:-1:-1;6211:35:1;;-1:-1:-1;6242:2:1;6227:18;;6211:35;:::i;:::-;6201:45;;5747:505;;;;;:::o;6257:388::-;6325:6;6333;6386:2;6374:9;6365:7;6361:23;6357:32;6354:52;;;6402:1;6399;6392:12;6354:52;6441:9;6428:23;6460:31;6485:5;6460:31;:::i;:::-;6510:5;-1:-1:-1;6567:2:1;6552:18;;6539:32;6580:33;6539:32;6580:33;:::i;:::-;6632:7;6622:17;;;6257:388;;;;;:::o;6650:356::-;6852:2;6834:21;;;6871:18;;;6864:30;6930:34;6925:2;6910:18;;6903:62;6997:2;6982:18;;6650:356::o;7011:127::-;7072:10;7067:3;7063:20;7060:1;7053:31;7103:4;7100:1;7093:15;7127:4;7124:1;7117:15;10771:127;10832:10;10827:3;10823:20;10820:1;10813:31;10863:4;10860:1;10853:15;10887:4;10884:1;10877:15;10903:125;10968:9;;;10989:10;;;10986:36;;;11002:18;;:::i;11437:128::-;11504:9;;;11525:11;;;11522:37;;;11539:18;;:::i;11981:251::-;12051:6;12104:2;12092:9;12083:7;12079:23;12075:32;12072:52;;;12120:1;12117;12110:12;12072:52;12152:9;12146:16;12171:31;12196:5;12171:31;:::i;12237:980::-;12499:4;12547:3;12536:9;12532:19;12578:6;12567:9;12560:25;12604:2;12642:6;12637:2;12626:9;12622:18;12615:34;12685:3;12680:2;12669:9;12665:18;12658:31;12709:6;12744;12738:13;12775:6;12767;12760:22;12813:3;12802:9;12798:19;12791:26;;12852:2;12844:6;12840:15;12826:29;;12873:1;12883:195;12897:6;12894:1;12891:13;12883:195;;;12962:13;;-1:-1:-1;;;;;12958:39:1;12946:52;;13053:15;;;;13018:12;;;;12994:1;12912:9;12883:195;;;-1:-1:-1;;;;;;;13134:32:1;;;;13129:2;13114:18;;13107:60;-1:-1:-1;;;13198:3:1;13183:19;13176:35;13095:3;12237:980;-1:-1:-1;;;12237:980:1:o;13222:217::-;13262:1;13288;13278:132;;13332:10;13327:3;13323:20;13320:1;13313:31;13367:4;13364:1;13357:15;13395:4;13392:1;13385:15;13278:132;-1:-1:-1;13424:9:1;;13222:217::o;13800:168::-;13873:9;;;13904;;13921:15;;;13915:22;;13901:37;13891:71;;13942:18;;:::i
Swarm Source
ipfs://5ac4397af4e4d2f63584c61e9285eee12b20013c95b1b5af8f156d85c8cff380
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.