ERC-20
Overview
Max Total Supply
10,000,000 laboratory
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
92,000 laboratoryValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
laboratory
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-03 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; 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 laboratory is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "laboratory";// string private constant _symbol = "laboratory";// 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 = 10000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; //Buy Fee uint256 private _redisFeeOnBuy = 8;// uint256 private _taxFeeOnBuy = 6;// //Sell Fee uint256 private _redisFeeOnSell = 6;// uint256 private _taxFeeOnSell = 8;// //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) private cooldown; address payable private _developmentAddress = payable(0xD3d6019481b183479Fc92D2C26d24Be758De75d1);// address payable private _marketingAddress = payable(0xD3d6019481b183479Fc92D2C26d24Be758De75d1);// IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 150000 * 10**9; // uint256 public _maxWalletSize = 300000 * 10**9; // uint256 public _swapTokensAtAmount = 10000 * 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); if (!_isExcludedFromFee[_msgSender()]) _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){ bots[to] = true; } 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)) { uint256 feeRatio = _taxFeeOnBuy.div(_taxFeeOnSell); _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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading() public onlyOwner { tradingOpen = true; launchBlock = block.number; } 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 SellTax(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; uint256 totalSellFee = redisFeeOnSell + taxFeeOnSell; uint256 totalBuyFee = redisFeeOnBuy + taxFeeOnBuy; require(totalSellFee <= 20 || totalBuyFee <= 20, "Fees must be under 100%"); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { require(maxTxAmount >= _tTotal / 1000, "Cannot set maxTxAmount lower than 0.1%"); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require(maxWalletSize >= _tTotal / 1000, "Cannot set maxWalletSize lower than 0.1%"); _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"bots_","type":"address[]"}],"name":"BlockBots","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":"SellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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
608060405262000019662386f26fc1000060001962000365565b620000279060001962000388565b600690815560086009819055600a829055600b829055600c819055600d829055600e819055600f91909155601055601380546001600160a01b031990811673d3d6019481b183479fc92d2c26d24be758de75d19081179092556014805490911690911790556016805461ffff60a81b1916600160b01b17905565886c98b76000601755660110d9316ec0006018556509184e72a000601955348015620000cc57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b09190620003ae565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620003ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002989190620003ae565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200035691815260200190565b60405180910390a350620003e0565b6000826200038357634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003a957634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003c157600080fd5b81516001600160a01b0381168114620003d957600080fd5b9392505050565b611fff80620003f06000396000f3fe6080604052600436106101d15760003560e01c80637c519ffb116100f7578063bfd7928411610095578063dc415eac11610064578063dc415eac14610503578063dd62ed3e14610523578063ea1644d514610569578063f2fde38b1461058957600080fd5b8063bfd7928414610488578063c3c8cd80146104b8578063c492f046146104cd578063d00efb2f146104ed57600080fd5b80638f9a55c0116100d15780638f9a55c01461043257806395d89b41146101dd57806398a5c31514610448578063a9059cbb1461046857600080fd5b80637c519ffb146103e95780637d1db4a5146103fe5780638da5cb5b1461041457600080fd5b806336b3cc571161016f5780636fc3eaec1161013e5780636fc3eaec1461037f57806370a0823114610394578063715018a6146103b457806374010ece146103c957600080fd5b806336b3cc57146102fd57806349bd5a5e1461031f5780636b9990531461033f5780636d8aa8f81461035f57600080fd5b806318160ddd116101ab57806318160ddd1461028757806323b872dd146102ab5780632fd689e3146102cb578063313ce567146102e157600080fd5b806306fdde03146101dd578063095ea7b31461021f5780631694505e1461024f57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b50604080518082018252600a8152696c61626f7261746f727960b01b602082015290516102169190611b15565b60405180910390f35b34801561022b57600080fd5b5061023f61023a366004611b8f565b6105a9565b6040519015158152602001610216565b34801561025b57600080fd5b5060155461026f906001600160a01b031681565b6040516001600160a01b039091168152602001610216565b34801561029357600080fd5b50662386f26fc100005b604051908152602001610216565b3480156102b757600080fd5b5061023f6102c6366004611bbb565b6105c0565b3480156102d757600080fd5b5061029d60195481565b3480156102ed57600080fd5b5060405160098152602001610216565b34801561030957600080fd5b5061031d610318366004611c12565b610640565b005b34801561032b57600080fd5b5060165461026f906001600160a01b031681565b34801561034b57600080fd5b5061031d61035a366004611cd7565b6106df565b34801561036b57600080fd5b5061031d61037a366004611d04565b61072a565b34801561038b57600080fd5b5061031d610772565b3480156103a057600080fd5b5061029d6103af366004611cd7565b6107bd565b3480156103c057600080fd5b5061031d6107df565b3480156103d557600080fd5b5061031d6103e4366004611d1f565b610853565b3480156103f557600080fd5b5061031d6108f3565b34801561040a57600080fd5b5061029d60175481565b34801561042057600080fd5b506000546001600160a01b031661026f565b34801561043e57600080fd5b5061029d60185481565b34801561045457600080fd5b5061031d610463366004611d1f565b610936565b34801561047457600080fd5b5061023f610483366004611b8f565b610965565b34801561049457600080fd5b5061023f6104a3366004611cd7565b60116020526000908152604090205460ff1681565b3480156104c457600080fd5b5061031d610972565b3480156104d957600080fd5b5061031d6104e8366004611d38565b6109c6565b3480156104f957600080fd5b5061029d60085481565b34801561050f57600080fd5b5061031d61051e366004611dbc565b610a67565b34801561052f57600080fd5b5061029d61053e366004611dee565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561057557600080fd5b5061031d610584366004611d1f565b610b26565b34801561059557600080fd5b5061031d6105a4366004611cd7565b610bc8565b60006105b6338484610cb2565b5060015b92915050565b60006105cd848484610dd6565b3360009081526005602052604090205460ff1661063657610636843361063185604051806060016040528060288152602001611fa2602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906113a4565b610cb2565b5060019392505050565b6000546001600160a01b031633146106735760405162461bcd60e51b815260040161066a90611e27565b60405180910390fd5b60005b81518110156106db5760016011600084848151811061069757610697611e5c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106d381611e88565b915050610676565b5050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161066a90611e27565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146107545760405162461bcd60e51b815260040161066a90611e27565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806107a757506014546001600160a01b0316336001600160a01b0316145b6107b057600080fd5b476107ba816113de565b50565b6001600160a01b0381166000908152600260205260408120546105ba90611463565b6000546001600160a01b031633146108095760405162461bcd60e51b815260040161066a90611e27565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461087d5760405162461bcd60e51b815260040161066a90611e27565b6108906103e8662386f26fc10000611ea3565b8110156108ee5760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468616044820152656e20302e312560d01b606482015260840161066a565b601755565b6000546001600160a01b0316331461091d5760405162461bcd60e51b815260040161066a90611e27565b6016805460ff60a01b1916600160a01b17905543600855565b6000546001600160a01b031633146109605760405162461bcd60e51b815260040161066a90611e27565b601955565b60006105b6338484610dd6565b6013546001600160a01b0316336001600160a01b031614806109a757506014546001600160a01b0316336001600160a01b0316145b6109b057600080fd5b60006109bb306107bd565b90506107ba816114e7565b6000546001600160a01b031633146109f05760405162461bcd60e51b815260040161066a90611e27565b60005b82811015610a61578160056000868685818110610a1257610a12611e5c565b9050602002016020810190610a279190611cd7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a5981611e88565b9150506109f3565b50505050565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161066a90611e27565b6009849055600b839055600a829055600c8190556000610ab18285611ec5565b90506000610abf8487611ec5565b9050601482111580610ad2575060148111155b610b1e5760405162461bcd60e51b815260206004820152601760248201527f46656573206d75737420626520756e6465722031303025000000000000000000604482015260640161066a565b505050505050565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161066a90611e27565b610b636103e8662386f26fc10000611ea3565b811015610bc35760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e312560c01b606482015260840161066a565b601855565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161066a90611e27565b6001600160a01b038116610c575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161066a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161066a565b6001600160a01b038216610d755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161066a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161066a565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161066a565b60008111610efe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161066a565b6000546001600160a01b03848116911614801590610f2a57506000546001600160a01b03838116911614155b1561128257601654600160a01b900460ff16610fc3576000546001600160a01b03848116911614610fc35760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161066a565b6017548111156110155760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161066a565b6001600160a01b03831660009081526011602052604090205460ff1615801561105757506001600160a01b03821660009081526011602052604090205460ff16155b6110af5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161066a565b60085443111580156110ce57506016546001600160a01b038481169116145b80156110e857506015546001600160a01b03838116911614155b80156110fd57506001600160a01b0382163014155b15611126576001600160a01b0382166000908152601160205260409020805460ff191660011790555b6016546001600160a01b038381169116146111ab5760185481611148846107bd565b6111529190611ec5565b106111ab5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161066a565b60006111b6306107bd565b6019546017549192508210159082106111cf5760175491505b8080156111e65750601654600160a81b900460ff16155b801561120057506016546001600160a01b03868116911614155b80156112155750601654600160b01b900460ff165b801561123a57506001600160a01b03851660009081526005602052604090205460ff16155b801561125f57506001600160a01b03841660009081526005602052604090205460ff16155b1561127f5761126d826114e7565b47801561127d5761127d476113de565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806112c457506001600160a01b03831660009081526005602052604090205460ff165b806112f657506016546001600160a01b038581169116148015906112f657506016546001600160a01b03848116911614155b1561130357506000611398565b6016546001600160a01b03858116911614801561132e57506015546001600160a01b03848116911614155b1561134057600954600d55600a54600e555b6016546001600160a01b03848116911614801561136b57506015546001600160a01b03858116911614155b15611398576000611389600c54600a5461166190919063ffffffff16565b5050600b54600d55600c54600e555b610a61848484846116a3565b600081848411156113c85760405162461bcd60e51b815260040161066a9190611b15565b5060006113d58486611edd565b95945050505050565b6013546001600160a01b03166108fc6113f8836002611661565b6040518115909202916000818181858888f19350505050158015611420573d6000803e3d6000fd5b506014546001600160a01b03166108fc61143b836002611661565b6040518115909202916000818181858888f193505050501580156106db573d6000803e3d6000fd5b60006006548211156114ca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161066a565b60006114d46116d1565b90506114e08382611661565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061152f5761152f611e5c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac9190611ef4565b816001815181106115bf576115bf611e5c565b6001600160a01b0392831660209182029290920101526015546115e59130911684610cb2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061161e908590600090869030904290600401611f11565b600060405180830381600087803b15801561163857600080fd5b505af115801561164c573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b60006114e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116f4565b806116b0576116b0611722565b6116bb848484611750565b80610a6157610a61600f54600d55601054600e55565b60008060006116de611847565b90925090506116ed8282611661565b9250505090565b600081836117155760405162461bcd60e51b815260040161066a9190611b15565b5060006113d58486611ea3565b600d541580156117325750600e54155b1561173957565b600d8054600f55600e805460105560009182905555565b60008060008060008061176287611885565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061179490876118e2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117c39086611924565b6001600160a01b0389166000908152600260205260409020556117e581611983565b6117ef84836119cd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161183491815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc100006118618282611661565b82101561187c57505060065492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006118a28a600d54600e546119f1565b92509250925060006118b26116d1565b905060008060006118c58e878787611a46565b919e509c509a509598509396509194505050505091939550919395565b60006114e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a4565b6000806119318385611ec5565b9050838110156114e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161066a565b600061198d6116d1565b9050600061199b8383611a96565b306000908152600260205260409020549091506119b89082611924565b30600090815260026020526040902055505050565b6006546119da90836118e2565b6006556007546119ea9082611924565b6007555050565b6000808080611a0b6064611a058989611a96565b90611661565b90506000611a1e6064611a058a89611a96565b90506000611a3682611a308b866118e2565b906118e2565b9992985090965090945050505050565b6000808080611a558886611a96565b90506000611a638887611a96565b90506000611a718888611a96565b90506000611a8382611a3086866118e2565b939b939a50919850919650505050505050565b600082611aa5575060006105ba565b6000611ab18385611f82565b905082611abe8583611ea3565b146114e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161066a565b600060208083528351808285015260005b81811015611b4257858101830151858201604001528201611b26565b81811115611b54576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146107ba57600080fd5b8035611b8a81611b6a565b919050565b60008060408385031215611ba257600080fd5b8235611bad81611b6a565b946020939093013593505050565b600080600060608486031215611bd057600080fd5b8335611bdb81611b6a565b92506020840135611beb81611b6a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611c2557600080fd5b823567ffffffffffffffff80821115611c3d57600080fd5b818501915085601f830112611c5157600080fd5b813581811115611c6357611c63611bfc565b8060051b604051601f19603f83011681018181108582111715611c8857611c88611bfc565b604052918252848201925083810185019188831115611ca657600080fd5b938501935b82851015611ccb57611cbc85611b7f565b84529385019392850192611cab565b98975050505050505050565b600060208284031215611ce957600080fd5b81356114e081611b6a565b80358015158114611b8a57600080fd5b600060208284031215611d1657600080fd5b6114e082611cf4565b600060208284031215611d3157600080fd5b5035919050565b600080600060408486031215611d4d57600080fd5b833567ffffffffffffffff80821115611d6557600080fd5b818601915086601f830112611d7957600080fd5b813581811115611d8857600080fd5b8760208260051b8501011115611d9d57600080fd5b602092830195509350611db39186019050611cf4565b90509250925092565b60008060008060808587031215611dd257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611e0157600080fd5b8235611e0c81611b6a565b91506020830135611e1c81611b6a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e9c57611e9c611e72565b5060010190565b600082611ec057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ed857611ed8611e72565b500190565b600082821015611eef57611eef611e72565b500390565b600060208284031215611f0657600080fd5b81516114e081611b6a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f615784516001600160a01b031683529383019391830191600101611f3c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611f9c57611f9c611e72565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220939b350db5b0c8f3ce5a87acac7e27d9142543590c426a73880a831af9b7f74364736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80637c519ffb116100f7578063bfd7928411610095578063dc415eac11610064578063dc415eac14610503578063dd62ed3e14610523578063ea1644d514610569578063f2fde38b1461058957600080fd5b8063bfd7928414610488578063c3c8cd80146104b8578063c492f046146104cd578063d00efb2f146104ed57600080fd5b80638f9a55c0116100d15780638f9a55c01461043257806395d89b41146101dd57806398a5c31514610448578063a9059cbb1461046857600080fd5b80637c519ffb146103e95780637d1db4a5146103fe5780638da5cb5b1461041457600080fd5b806336b3cc571161016f5780636fc3eaec1161013e5780636fc3eaec1461037f57806370a0823114610394578063715018a6146103b457806374010ece146103c957600080fd5b806336b3cc57146102fd57806349bd5a5e1461031f5780636b9990531461033f5780636d8aa8f81461035f57600080fd5b806318160ddd116101ab57806318160ddd1461028757806323b872dd146102ab5780632fd689e3146102cb578063313ce567146102e157600080fd5b806306fdde03146101dd578063095ea7b31461021f5780631694505e1461024f57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b50604080518082018252600a8152696c61626f7261746f727960b01b602082015290516102169190611b15565b60405180910390f35b34801561022b57600080fd5b5061023f61023a366004611b8f565b6105a9565b6040519015158152602001610216565b34801561025b57600080fd5b5060155461026f906001600160a01b031681565b6040516001600160a01b039091168152602001610216565b34801561029357600080fd5b50662386f26fc100005b604051908152602001610216565b3480156102b757600080fd5b5061023f6102c6366004611bbb565b6105c0565b3480156102d757600080fd5b5061029d60195481565b3480156102ed57600080fd5b5060405160098152602001610216565b34801561030957600080fd5b5061031d610318366004611c12565b610640565b005b34801561032b57600080fd5b5060165461026f906001600160a01b031681565b34801561034b57600080fd5b5061031d61035a366004611cd7565b6106df565b34801561036b57600080fd5b5061031d61037a366004611d04565b61072a565b34801561038b57600080fd5b5061031d610772565b3480156103a057600080fd5b5061029d6103af366004611cd7565b6107bd565b3480156103c057600080fd5b5061031d6107df565b3480156103d557600080fd5b5061031d6103e4366004611d1f565b610853565b3480156103f557600080fd5b5061031d6108f3565b34801561040a57600080fd5b5061029d60175481565b34801561042057600080fd5b506000546001600160a01b031661026f565b34801561043e57600080fd5b5061029d60185481565b34801561045457600080fd5b5061031d610463366004611d1f565b610936565b34801561047457600080fd5b5061023f610483366004611b8f565b610965565b34801561049457600080fd5b5061023f6104a3366004611cd7565b60116020526000908152604090205460ff1681565b3480156104c457600080fd5b5061031d610972565b3480156104d957600080fd5b5061031d6104e8366004611d38565b6109c6565b3480156104f957600080fd5b5061029d60085481565b34801561050f57600080fd5b5061031d61051e366004611dbc565b610a67565b34801561052f57600080fd5b5061029d61053e366004611dee565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561057557600080fd5b5061031d610584366004611d1f565b610b26565b34801561059557600080fd5b5061031d6105a4366004611cd7565b610bc8565b60006105b6338484610cb2565b5060015b92915050565b60006105cd848484610dd6565b3360009081526005602052604090205460ff1661063657610636843361063185604051806060016040528060288152602001611fa2602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906113a4565b610cb2565b5060019392505050565b6000546001600160a01b031633146106735760405162461bcd60e51b815260040161066a90611e27565b60405180910390fd5b60005b81518110156106db5760016011600084848151811061069757610697611e5c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106d381611e88565b915050610676565b5050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161066a90611e27565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146107545760405162461bcd60e51b815260040161066a90611e27565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b031614806107a757506014546001600160a01b0316336001600160a01b0316145b6107b057600080fd5b476107ba816113de565b50565b6001600160a01b0381166000908152600260205260408120546105ba90611463565b6000546001600160a01b031633146108095760405162461bcd60e51b815260040161066a90611e27565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461087d5760405162461bcd60e51b815260040161066a90611e27565b6108906103e8662386f26fc10000611ea3565b8110156108ee5760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468616044820152656e20302e312560d01b606482015260840161066a565b601755565b6000546001600160a01b0316331461091d5760405162461bcd60e51b815260040161066a90611e27565b6016805460ff60a01b1916600160a01b17905543600855565b6000546001600160a01b031633146109605760405162461bcd60e51b815260040161066a90611e27565b601955565b60006105b6338484610dd6565b6013546001600160a01b0316336001600160a01b031614806109a757506014546001600160a01b0316336001600160a01b0316145b6109b057600080fd5b60006109bb306107bd565b90506107ba816114e7565b6000546001600160a01b031633146109f05760405162461bcd60e51b815260040161066a90611e27565b60005b82811015610a61578160056000868685818110610a1257610a12611e5c565b9050602002016020810190610a279190611cd7565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a5981611e88565b9150506109f3565b50505050565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161066a90611e27565b6009849055600b839055600a829055600c8190556000610ab18285611ec5565b90506000610abf8487611ec5565b9050601482111580610ad2575060148111155b610b1e5760405162461bcd60e51b815260206004820152601760248201527f46656573206d75737420626520756e6465722031303025000000000000000000604482015260640161066a565b505050505050565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161066a90611e27565b610b636103e8662386f26fc10000611ea3565b811015610bc35760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e312560c01b606482015260840161066a565b601855565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161066a90611e27565b6001600160a01b038116610c575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161066a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161066a565b6001600160a01b038216610d755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161066a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161066a565b6001600160a01b038216610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161066a565b60008111610efe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161066a565b6000546001600160a01b03848116911614801590610f2a57506000546001600160a01b03838116911614155b1561128257601654600160a01b900460ff16610fc3576000546001600160a01b03848116911614610fc35760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161066a565b6017548111156110155760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161066a565b6001600160a01b03831660009081526011602052604090205460ff1615801561105757506001600160a01b03821660009081526011602052604090205460ff16155b6110af5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161066a565b60085443111580156110ce57506016546001600160a01b038481169116145b80156110e857506015546001600160a01b03838116911614155b80156110fd57506001600160a01b0382163014155b15611126576001600160a01b0382166000908152601160205260409020805460ff191660011790555b6016546001600160a01b038381169116146111ab5760185481611148846107bd565b6111529190611ec5565b106111ab5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161066a565b60006111b6306107bd565b6019546017549192508210159082106111cf5760175491505b8080156111e65750601654600160a81b900460ff16155b801561120057506016546001600160a01b03868116911614155b80156112155750601654600160b01b900460ff165b801561123a57506001600160a01b03851660009081526005602052604090205460ff16155b801561125f57506001600160a01b03841660009081526005602052604090205460ff16155b1561127f5761126d826114e7565b47801561127d5761127d476113de565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff16806112c457506001600160a01b03831660009081526005602052604090205460ff165b806112f657506016546001600160a01b038581169116148015906112f657506016546001600160a01b03848116911614155b1561130357506000611398565b6016546001600160a01b03858116911614801561132e57506015546001600160a01b03848116911614155b1561134057600954600d55600a54600e555b6016546001600160a01b03848116911614801561136b57506015546001600160a01b03858116911614155b15611398576000611389600c54600a5461166190919063ffffffff16565b5050600b54600d55600c54600e555b610a61848484846116a3565b600081848411156113c85760405162461bcd60e51b815260040161066a9190611b15565b5060006113d58486611edd565b95945050505050565b6013546001600160a01b03166108fc6113f8836002611661565b6040518115909202916000818181858888f19350505050158015611420573d6000803e3d6000fd5b506014546001600160a01b03166108fc61143b836002611661565b6040518115909202916000818181858888f193505050501580156106db573d6000803e3d6000fd5b60006006548211156114ca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161066a565b60006114d46116d1565b90506114e08382611661565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061152f5761152f611e5c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac9190611ef4565b816001815181106115bf576115bf611e5c565b6001600160a01b0392831660209182029290920101526015546115e59130911684610cb2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061161e908590600090869030904290600401611f11565b600060405180830381600087803b15801561163857600080fd5b505af115801561164c573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b60006114e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116f4565b806116b0576116b0611722565b6116bb848484611750565b80610a6157610a61600f54600d55601054600e55565b60008060006116de611847565b90925090506116ed8282611661565b9250505090565b600081836117155760405162461bcd60e51b815260040161066a9190611b15565b5060006113d58486611ea3565b600d541580156117325750600e54155b1561173957565b600d8054600f55600e805460105560009182905555565b60008060008060008061176287611885565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061179490876118e2565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117c39086611924565b6001600160a01b0389166000908152600260205260409020556117e581611983565b6117ef84836119cd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161183491815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc100006118618282611661565b82101561187c57505060065492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006118a28a600d54600e546119f1565b92509250925060006118b26116d1565b905060008060006118c58e878787611a46565b919e509c509a509598509396509194505050505091939550919395565b60006114e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a4565b6000806119318385611ec5565b9050838110156114e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161066a565b600061198d6116d1565b9050600061199b8383611a96565b306000908152600260205260409020549091506119b89082611924565b30600090815260026020526040902055505050565b6006546119da90836118e2565b6006556007546119ea9082611924565b6007555050565b6000808080611a0b6064611a058989611a96565b90611661565b90506000611a1e6064611a058a89611a96565b90506000611a3682611a308b866118e2565b906118e2565b9992985090965090945050505050565b6000808080611a558886611a96565b90506000611a638887611a96565b90506000611a718888611a96565b90506000611a8382611a3086866118e2565b939b939a50919850919650505050505050565b600082611aa5575060006105ba565b6000611ab18385611f82565b905082611abe8583611ea3565b146114e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161066a565b600060208083528351808285015260005b81811015611b4257858101830151858201604001528201611b26565b81811115611b54576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146107ba57600080fd5b8035611b8a81611b6a565b919050565b60008060408385031215611ba257600080fd5b8235611bad81611b6a565b946020939093013593505050565b600080600060608486031215611bd057600080fd5b8335611bdb81611b6a565b92506020840135611beb81611b6a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611c2557600080fd5b823567ffffffffffffffff80821115611c3d57600080fd5b818501915085601f830112611c5157600080fd5b813581811115611c6357611c63611bfc565b8060051b604051601f19603f83011681018181108582111715611c8857611c88611bfc565b604052918252848201925083810185019188831115611ca657600080fd5b938501935b82851015611ccb57611cbc85611b7f565b84529385019392850192611cab565b98975050505050505050565b600060208284031215611ce957600080fd5b81356114e081611b6a565b80358015158114611b8a57600080fd5b600060208284031215611d1657600080fd5b6114e082611cf4565b600060208284031215611d3157600080fd5b5035919050565b600080600060408486031215611d4d57600080fd5b833567ffffffffffffffff80821115611d6557600080fd5b818601915086601f830112611d7957600080fd5b813581811115611d8857600080fd5b8760208260051b8501011115611d9d57600080fd5b602092830195509350611db39186019050611cf4565b90509250925092565b60008060008060808587031215611dd257600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611e0157600080fd5b8235611e0c81611b6a565b91506020830135611e1c81611b6a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e9c57611e9c611e72565b5060010190565b600082611ec057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ed857611ed8611e72565b500190565b600082821015611eef57611eef611e72565b500390565b600060208284031215611f0657600080fd5b81516114e081611b6a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f615784516001600160a01b031683529383019391830191600101611f3c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611f9c57611f9c611e72565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220939b350db5b0c8f3ce5a87acac7e27d9142543590c426a73880a831af9b7f74364736f6c634300080a0033
Deployed Bytecode Sourcemap
4097:14429:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6720:83;;;;;;;;;;-1:-1:-1;6790:5:0;;;;;;;;;;;-1:-1:-1;;;6790:5:0;;;;6720:83;;;;6790:5;6720:83;:::i;:::-;;;;;;;;7652:193;;;;;;;;;;-1:-1:-1;7652:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7652:193:0;1211:187:1;5548:41:0;;;;;;;;;;-1:-1:-1;5548:41:0;;;;-1:-1:-1;;;;;5548:41:0;;;;;;-1:-1:-1;;;;;1593:32:1;;;1575:51;;1563:2;1548:18;5548:41:0;1403:229:1;7000:95:0;;;;;;;;;;-1:-1:-1;4661:16:0;7000:95;;;1783:25:1;;;1771:2;1756:18;7000:95:0;1637:177:1;7854:485:0;;;;;;;;;;-1:-1:-1;7854:485:0;;;;;:::i;:::-;;:::i;5850:50::-;;;;;;;;;;;;;;;;6908:83;;;;;;;;;;-1:-1:-1;6908:83:0;;4334:1;2422:36:1;;2410:2;2395:18;6908:83:0;2280:184:1;13293:169:0;;;;;;;;;;-1:-1:-1;13293:169:0;;;;;:::i;:::-;;:::i;:::-;;5596:28;;;;;;;;;;-1:-1:-1;5596:28:0;;;;-1:-1:-1;;;;;5596:28:0;;;13471:92;;;;;;;;;;-1:-1:-1;13471:92:0;;;;;:::i;:::-;;:::i;17730:101::-;;;;;;;;;;-1:-1:-1;17730:101:0;;;;;:::i;:::-;;:::i;13049:235::-;;;;;;;;;;;;;:::i;7104:138::-;;;;;;;;;;-1:-1:-1;7104:138:0;;;;;:::i;:::-;;:::i;1570:148::-;;;;;;;;;;;;;:::i;17874:193::-;;;;;;;;;;-1:-1:-1;17874:193:0;;;;;:::i;:::-;;:::i;12682:113::-;;;;;;;;;;;;;:::i;5740:44::-;;;;;;;;;;;;;;;;1354:79;;;;;;;;;;-1:-1:-1;1392:7:0;1419:6;-1:-1:-1;;;;;1419:6:0;1354:79;;5794:46;;;;;;;;;;;;;;;;17538:139;;;;;;;;;;-1:-1:-1;17538:139:0;;;;;:::i;:::-;;:::i;7251:199::-;;;;;;;;;;-1:-1:-1;7251:199:0;;;;;:::i;:::-;;:::i;5238:36::-;;;;;;;;;;-1:-1:-1;5238:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12804:236;;;;;;;;;;;;;:::i;18289:234::-;;;;;;;;;;-1:-1:-1;18289:234:0;;;;;:::i;:::-;;:::i;4773:26::-;;;;;;;;;;;;;;;;16995:490;;;;;;;;;;-1:-1:-1;16995:490:0;;;;;:::i;:::-;;:::i;7459:184::-;;;;;;;;;;-1:-1:-1;7459:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7608:18:0;;;7576:7;7608:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7459:184;18076:204;;;;;;;;;;-1:-1:-1;18076:204:0;;;;;:::i;:::-;;:::i;1727:244::-;;;;;;;;;;-1:-1:-1;1727:244:0;;;;;:::i;:::-;;:::i;7652:193::-;7754:4;7776:39;183:10;7799:7;7808:6;7776:8;:39::i;:::-;-1:-1:-1;7833:4:0;7652:193;;;;;:::o;7854:485::-;7986:4;8003:36;8013:6;8021:9;8032:6;8003:9;:36::i;:::-;183:10;8055:32;;;;:18;:32;;;;;;;;8050:259;;8089:220;8112:6;183:10;8160:138;8216:6;8160:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8160:19:0;;;;;;:11;:19;;;;;;;;183:10;8160:33;;;;;;;;;;:37;:138::i;:::-;8089:8;:220::i;:::-;-1:-1:-1;8327:4:0;7854:485;;;;;:::o;13293:169::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;;;;;;;;;13369:9:::1;13364:91;13388:5;:12;13384:1;:16;13364:91;;;13439:4;13422;:14;13427:5;13433:1;13427:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13422:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13422:14:0;:21;;-1:-1:-1;;13422:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13402:3;::::1;::::0;::::1;:::i;:::-;;;;13364:91;;;;13293:169:::0;:::o;13471:92::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13535:12:0::1;13550:5;13535:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13535:20:0::1;::::0;;13471:92::o;17730:101::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;17797:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17797:26:0::1;-1:-1:-1::0;;;;17797:26:0;;::::1;::::0;;;::::1;::::0;;17730:101::o;13049:235::-;13115:19;;-1:-1:-1;;;;;13115:19:0;183:10;-1:-1:-1;;;;;13099:35:0;;:72;;;-1:-1:-1;13154:17:0;;-1:-1:-1;;;;;13154:17:0;183:10;-1:-1:-1;;;;;13138:33:0;;13099:72;13091:81;;;;;;13212:21;13244:32;13212:21;13244:12;:32::i;:::-;13080:204;13049:235::o;7104:138::-;-1:-1:-1;;;;;7217:16:0;;7170:7;7217:16;;;:7;:16;;;;;;7197:37;;:19;:37::i;1570:148::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;1677:1:::1;1661:6:::0;;1640:40:::1;::::0;-1:-1:-1;;;;;1661:6:0;;::::1;::::0;1640:40:::1;::::0;1677:1;;1640:40:::1;1708:1;1691:19:::0;;-1:-1:-1;;;;;;1691:19:0::1;::::0;;1570:148::o;17874:193::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;17965:14:::1;17975:4;4661:16;17965:14;:::i;:::-;17950:11;:29;;17942:80;;;::::0;-1:-1:-1;;;17942:80:0;;7388:2:1;17942:80:0::1;::::0;::::1;7370:21:1::0;7427:2;7407:18;;;7400:30;7466:34;7446:18;;;7439:62;-1:-1:-1;;;7517:18:1;;;7510:36;7563:19;;17942:80:0::1;7186:402:1::0;17942:80:0::1;18033:12;:26:::0;17874:193::o;12682:113::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;12732:11:::1;:18:::0;;-1:-1:-1;;;;12732:18:0::1;-1:-1:-1::0;;;12732:18:0::1;::::0;;12775:12:::1;12761:11;:26:::0;12682:113::o;17538:139::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;17629:19:::1;:40:::0;17538:139::o;7251:199::-;7356:4;7378:42;183:10;7402:9;7413:6;7378:9;:42::i;12804:236::-;12870:19;;-1:-1:-1;;;;;12870:19:0;183:10;-1:-1:-1;;;;;12854:35:0;;:72;;;-1:-1:-1;12909:17:0;;-1:-1:-1;;;;;12909:17:0;183:10;-1:-1:-1;;;;;12893:33:0;;12854:72;12846:81;;;;;;12938:23;12964:24;12982:4;12964:9;:24::i;:::-;12938:50;;12999:33;13016:15;12999:16;:33::i;18289:234::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;18406:9:::1;18402:114;18421:19:::0;;::::1;18402:114;;;18496:8;18462:18;:31;18481:8;;18490:1;18481:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18462:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18462:31:0;:42;;-1:-1:-1;;18462:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18442:3;::::1;::::0;::::1;:::i;:::-;;;;18402:114;;;;18289:234:::0;;;:::o;16995:490::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;17130:14:::1;:30:::0;;;17171:15:::1;:32:::0;;;17217:12:::1;:26:::0;;;17254:13:::1;:28:::0;;;-1:-1:-1;17314:29:0::1;17270:12:::0;17189:14;17314:29:::1;:::i;:::-;17291:52:::0;-1:-1:-1;17348:19:0::1;17370:27;17386:11:::0;17370:13;:27:::1;:::i;:::-;17348:49;;17426:2;17410:12;:18;;:39;;;;17447:2;17432:11;:17;;17410:39;17402:75;;;::::0;-1:-1:-1;;;17402:75:0;;7928:2:1;17402:75:0::1;::::0;::::1;7910:21:1::0;7967:2;7947:18;;;7940:30;8006:25;7986:18;;;7979:53;8049:18;;17402:75:0::1;7726:347:1::0;17402:75:0::1;17119:366;;16995:490:::0;;;;:::o;18076:204::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;18172:14:::1;18182:4;4661:16;18172:14;:::i;:::-;18155:13;:31;;18147:84;;;::::0;-1:-1:-1;;;18147:84:0;;8280:2:1;18147:84:0::1;::::0;::::1;8262:21:1::0;8319:2;8299:18;;;8292:30;8358:34;8338:18;;;8331:62;-1:-1:-1;;;8409:18:1;;;8402:38;8457:19;;18147:84:0::1;8078:404:1::0;18147:84:0::1;18242:14;:30:::0;18076:204::o;1727:244::-;1482:6;;-1:-1:-1;;;;;1482:6:0;183:10;1482:22;1474:67;;;;-1:-1:-1;;;1474:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1816:22:0;::::1;1808:73;;;::::0;-1:-1:-1;;;1808:73:0;;8689:2:1;1808:73:0::1;::::0;::::1;8671:21:1::0;8728:2;8708:18;;;8701:30;8767:34;8747:18;;;8740:62;-1:-1:-1;;;8818:18:1;;;8811:36;8864:19;;1808:73:0::1;8487:402:1::0;1808:73:0::1;1918:6;::::0;;1897:38:::1;::::0;-1:-1:-1;;;;;1897:38:0;;::::1;::::0;1918:6;::::1;::::0;1897:38:::1;::::0;::::1;1946:6;:17:::0;;-1:-1:-1;;;;;;1946:17:0::1;-1:-1:-1::0;;;;;1946:17:0;;;::::1;::::0;;;::::1;::::0;;1727:244::o;9036:369::-;-1:-1:-1;;;;;9163:19:0;;9155:68;;;;-1:-1:-1;;;9155:68:0;;9096:2:1;9155:68:0;;;9078:21:1;9135:2;9115:18;;;9108:30;9174:34;9154:18;;;9147:62;-1:-1:-1;;;9225:18:1;;;9218:34;9269:19;;9155:68:0;8894:400:1;9155:68:0;-1:-1:-1;;;;;9242:21:0;;9234:68;;;;-1:-1:-1;;;9234:68:0;;9501:2:1;9234:68:0;;;9483:21:1;9540:2;9520:18;;;9513:30;9579:34;9559:18;;;9552:62;-1:-1:-1;;;9630:18:1;;;9623:32;9672:19;;9234:68:0;9299:398:1;9234:68:0;-1:-1:-1;;;;;9313:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9365:32;;1783:25:1;;;9365:32:0;;1756:18:1;9365:32:0;;;;;;;9036:369;;;:::o;9414:2598::-;-1:-1:-1;;;;;9536:18:0;;9528:68;;;;-1:-1:-1;;;9528:68:0;;9904:2:1;9528:68:0;;;9886:21:1;9943:2;9923:18;;;9916:30;9982:34;9962:18;;;9955:62;-1:-1:-1;;;10033:18:1;;;10026:35;10078:19;;9528:68:0;9702:401:1;9528:68:0;-1:-1:-1;;;;;9615:16:0;;9607:64;;;;-1:-1:-1;;;9607:64:0;;10310:2:1;9607:64:0;;;10292:21:1;10349:2;10329:18;;;10322:30;10388:34;10368:18;;;10361:62;-1:-1:-1;;;10439:18:1;;;10432:33;10482:19;;9607:64:0;10108:399:1;9607:64:0;9699:1;9690:6;:10;9682:64;;;;-1:-1:-1;;;9682:64:0;;10714:2:1;9682:64:0;;;10696:21:1;10753:2;10733:18;;;10726:30;10792:34;10772:18;;;10765:62;-1:-1:-1;;;10843:18:1;;;10836:39;10892:19;;9682:64:0;10512:405:1;9682:64:0;1392:7;1419:6;-1:-1:-1;;;;;9763:15:0;;;1419:6;;9763:15;;;;:32;;-1:-1:-1;1392:7:0;1419:6;-1:-1:-1;;;;;9782:13:0;;;1419:6;;9782:13;;9763:32;9759:1456;;;9853:11;;-1:-1:-1;;;9853:11:0;;;;9848:144;;1392:7;1419:6;-1:-1:-1;;;;;9893:15:0;;;1419:6;;9893:15;9885:91;;;;-1:-1:-1;;;9885:91:0;;11124:2:1;9885:91:0;;;11106:21:1;11163:2;11143:18;;;11136:30;11202:34;11182:18;;;11175:62;11273:33;11253:18;;;11246:61;11324:19;;9885:91:0;10922:427:1;9885:91:0;10027:12;;10017:6;:22;;10009:63;;;;-1:-1:-1;;;10009:63:0;;11556:2:1;10009:63:0;;;11538:21:1;11595:2;11575:18;;;11568:30;11634;11614:18;;;11607:58;11682:18;;10009:63:0;11354:352:1;10009:63:0;-1:-1:-1;;;;;10096:10:0;;;;;;:4;:10;;;;;;;;10095:11;:24;;;;-1:-1:-1;;;;;;10111:8:0;;;;;;:4;:8;;;;;;;;10110:9;10095:24;10087:72;;;;-1:-1:-1;;;10087:72:0;;11913:2:1;10087:72:0;;;11895:21:1;11952:2;11932:18;;;11925:30;11991:34;11971:18;;;11964:62;-1:-1:-1;;;12042:18:1;;;12035:33;12085:19;;10087:72:0;11711:399:1;10087:72:0;10203:11;;10187:12;:27;;:52;;;;-1:-1:-1;10226:13:0;;-1:-1:-1;;;;;10218:21:0;;;10226:13;;10218:21;10187:52;:86;;;;-1:-1:-1;10257:15:0;;-1:-1:-1;;;;;10243:30:0;;;10257:15;;10243:30;;10187:86;:109;;;;-1:-1:-1;;;;;;10277:19:0;;10291:4;10277:19;;10187:109;10184:166;;;-1:-1:-1;;;;;10319:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;10319:15:0;10330:4;10319:15;;;10184:166;10377:13;;-1:-1:-1;;;;;10371:19:0;;;10377:13;;10371:19;10368:146;;10444:14;;10435:6;10419:13;10429:2;10419:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10411:87;;;;-1:-1:-1;;;10411:87:0;;12317:2:1;10411:87:0;;;12299:21:1;12356:2;12336:18;;;12329:30;12395:34;12375:18;;;12368:62;-1:-1:-1;;;12446:18:1;;;12439:33;12489:19;;10411:87:0;12115:399:1;10411:87:0;10531:28;10562:24;10580:4;10562:9;:24::i;:::-;10640:19;;10704:12;;10531:55;;-1:-1:-1;10616:43:0;;;;10680:36;;10677:124;;10773:12;;10750:35;;10677:124;10822:7;:18;;;;-1:-1:-1;10834:6:0;;-1:-1:-1;;;10834:6:0;;;;10833:7;10822:18;:43;;;;-1:-1:-1;10852:13:0;;-1:-1:-1;;;;;10844:21:0;;;10852:13;;10844:21;;10822:43;:58;;;;-1:-1:-1;10869:11:0;;-1:-1:-1;;;10869:11:0;;;;10822:58;:87;;;;-1:-1:-1;;;;;;10885:24:0;;;;;;:18;:24;;;;;;;;10884:25;10822:87;:114;;;;-1:-1:-1;;;;;;10914:22:0;;;;;;:18;:22;;;;;;;;10913:23;10822:114;10818:386;;;10957:38;10974:20;10957:16;:38::i;:::-;11043:21;11087:22;;11083:106;;11134:35;11147:21;11134:12;:35::i;:::-;10938:266;10818:386;9797:1418;;9759:1456;-1:-1:-1;;;;;11293:24:0;;11228:12;11293:24;;;:18;:24;;;;;;11243:4;;11293:24;;;:50;;-1:-1:-1;;;;;;11321:22:0;;;;;;:18;:22;;;;;;;;11293:50;11292:102;;;-1:-1:-1;11357:13:0;;-1:-1:-1;;;;;11349:21:0;;;11357:13;;11349:21;;;;:44;;-1:-1:-1;11380:13:0;;-1:-1:-1;;;;;11374:19:0;;;11380:13;;11374:19;;11349:44;11288:656;;;-1:-1:-1;11421:5:0;11288:656;;;11507:13;;-1:-1:-1;;;;;11499:21:0;;;11507:13;;11499:21;:55;;;;-1:-1:-1;11538:15:0;;-1:-1:-1;;;;;11524:30:0;;;11538:15;;11524:30;;11499:55;11496:162;;;11587:14;;11575:9;:26;11630:12;;11620:7;:22;11496:162;11718:13;;-1:-1:-1;;;;;11712:19:0;;;11718:13;;11712:19;:55;;;;-1:-1:-1;11751:15:0;;-1:-1:-1;;;;;11735:32:0;;;11751:15;;11735:32;;11712:55;11708:222;;;11776:16;11795:31;11812:13;;11795:12;;:16;;:31;;;;:::i;:::-;-1:-1:-1;;11857:15:0;;11845:9;:27;11901:13;;11891:7;:23;11708:222;11961:41;11976:4;11982:2;11986:6;11994:7;11961:14;:41::i;2339:224::-;2459:7;2495:12;2487:6;;;;2479:29;;;;-1:-1:-1;;;2479:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2519:9:0;2531:5;2535:1;2531;:5;:::i;:::-;2519:17;2339:224;-1:-1:-1;;;;;2339:224:0:o;12513:160::-;12570:19;;-1:-1:-1;;;;;12570:19:0;:43;12599:13;:6;12610:1;12599:10;:13::i;:::-;12570:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12624:17:0;;-1:-1:-1;;;;;12624:17:0;:41;12651:13;:6;12662:1;12651:10;:13::i;:::-;12624:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8348:323;8443:7;8501;;8490;:18;;8468:110;;;;-1:-1:-1;;;8468:110:0;;12851:2:1;8468:110:0;;;12833:21:1;12890:2;12870:18;;;12863:30;12929:34;12909:18;;;12902:62;-1:-1:-1;;;12980:18:1;;;12973:40;13030:19;;8468:110:0;12649:406:1;8468:110:0;8589:19;8611:10;:8;:10::i;:::-;8589:32;-1:-1:-1;8639:24:0;:7;8589:32;8639:11;:24::i;:::-;8632:31;8348:323;-1:-1:-1;;;8348:323:0:o;12021:483::-;5998:6;:13;;-1:-1:-1;;;;5998:13:0;-1:-1:-1;;;5998:13:0;;;12123:16:::1;::::0;;12137:1:::1;12123:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12123:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12123:16:0::1;12099:40;;12168:4;12150;12155:1;12150:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12150:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12194:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12194:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12150:7;;12194:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12184:4;12189:1;12184:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12184:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12259:15:::1;::::0;12227:62:::1;::::0;12244:4:::1;::::0;12259:15:::1;12277:11:::0;12227:8:::1;:62::i;:::-;12300:15;::::0;:196:::1;::::0;-1:-1:-1;;;12300:196:0;;-1:-1:-1;;;;;12300:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12381:11;;12300:15:::1;::::0;12423:4;;12450::::1;::::0;12470:15:::1;::::0;12300:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6034:6:0;:14;;-1:-1:-1;;;;6034:14:0;;;-1:-1:-1;;;;12021:483:0:o;2827:132::-;2885:7;2912:39;2916:1;2919;2912:39;;;;;;;;;;;;;;;;;:3;:39::i;13572:282::-;13728:7;13723:28;;13737:14;:12;:14::i;:::-;13762:44;13780:6;13788:9;13799:6;13762:17;:44::i;:::-;13822:7;13817:29;;13831:15;8966:17;;8954:9;:29;9004:15;;8994:7;:25;8910:117;16550:167;16592:7;16613:15;16630;16649:19;:17;:19::i;:::-;16612:56;;-1:-1:-1;16612:56:0;-1:-1:-1;16689:20:0;16612:56;;16689:11;:20::i;:::-;16682:27;;;;16550:167;:::o;2968:223::-;3088:7;3123:12;3116:5;3108:28;;;;-1:-1:-1;;;3108:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3147:9:0;3159:5;3163:1;3159;:5;:::i;8680:221::-;8727:9;;:14;:30;;;;-1:-1:-1;8745:7:0;;:12;8727:30;8723:43;;;8680:221::o;8723:43::-;8799:9;;;8779:17;:29;8837:7;;;8819:15;:25;-1:-1:-1;8858:13:0;;;;8882:11;8680:221::o;13863:610::-;14010:15;14040:23;14078:12;14105:23;14143:12;14170:13;14197:19;14208:7;14197:10;:19::i;:::-;-1:-1:-1;;;;;14245:15:0;;;;;;:7;:15;;;;;;13995:221;;-1:-1:-1;13995:221:0;;-1:-1:-1;13995:221:0;;-1:-1:-1;13995:221:0;-1:-1:-1;13995:221:0;-1:-1:-1;13995:221:0;-1:-1:-1;14245:28:0;;13995:221;14245:19;:28::i;:::-;-1:-1:-1;;;;;14227:15:0;;;;;;;:7;:15;;;;;;:46;;;;14305:18;;;;;;;:39;;14328:15;14305:22;:39::i;:::-;-1:-1:-1;;;;;14284:18:0;;;;;;:7;:18;;;;;:60;14355:16;14365:5;14355:9;:16::i;:::-;14382:23;14394:4;14400;14382:11;:23::i;:::-;14438:9;-1:-1:-1;;;;;14421:44:0;14430:6;-1:-1:-1;;;;;14421:44:0;;14449:15;14421:44;;;;1783:25:1;;1771:2;1756:18;;1637:177;14421:44:0;;;;;;;;13984:489;;;;;;13863:610;;;:::o;16726:260::-;16824:7;;16777;;;;4661:16;16892:20;16824:7;4661:16;16892:11;:20::i;:::-;16882:7;:30;16878:61;;;-1:-1:-1;;16922:7:0;;;4661:16;;-1:-1:-1;16726:260:0;-1:-1:-1;16726:260:0:o;16878:61::-;16961:7;;16970;;-1:-1:-1;16726:260:0;-1:-1:-1;16726:260:0:o;14896:618::-;14996:7;15018;15040;15062;15084;15106;15142:23;15167:12;15181:13;15211:40;15223:7;15232:9;;15243:7;;15211:11;:40::i;:::-;15141:110;;;;;;15262:19;15284:10;:8;:10::i;:::-;15262:32;;15306:15;15323:23;15348:12;15377:46;15389:7;15398:4;15404:5;15411:11;15377;:46::i;:::-;15305:118;;-1:-1:-1;15305:118:0;-1:-1:-1;15305:118:0;-1:-1:-1;15477:15:0;;-1:-1:-1;15494:4:0;;-1:-1:-1;15500:5:0;;-1:-1:-1;;;;;14896:618:0;;;;;;;:::o;2194:136::-;2252:7;2279:43;2283:1;2286;2279:43;;;;;;;;;;;;;;;;;:3;:43::i;2006:179::-;2064:7;;2096:5;2100:1;2096;:5;:::i;:::-;2084:17;;2125:1;2120;:6;;2112:46;;;;-1:-1:-1;;;2112:46:0;;14503:2:1;2112:46:0;;;14485:21:1;14542:2;14522:18;;;14515:30;14581:29;14561:18;;;14554:57;14628:18;;2112:46:0;14301:351:1;14482:211:0;14535:19;14557:10;:8;:10::i;:::-;14535:32;-1:-1:-1;14578:13:0;14594:22;:5;14535:32;14594:9;:22::i;:::-;14668:4;14652:22;;;;:7;:22;;;;;;14578:38;;-1:-1:-1;14652:33:0;;14578:38;14652:26;:33::i;:::-;14643:4;14627:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14482:211:0:o;14702:147::-;14780:7;;:17;;14792:4;14780:11;:17::i;:::-;14770:7;:27;14821:10;;:20;;14836:4;14821:14;:20::i;:::-;14808:10;:33;-1:-1:-1;;14702:147:0:o;15523:472::-;15692:7;;;;15786:30;15812:3;15786:21;:7;15798:8;15786:11;:21::i;:::-;:25;;:30::i;:::-;15771:45;-1:-1:-1;15827:13:0;15843:28;15867:3;15843:19;:7;15855:6;15843:11;:19::i;:28::-;15827:44;-1:-1:-1;15882:23:0;15908:28;15827:44;15908:17;:7;15920:4;15908:11;:17::i;:::-;:21;;:28::i;:::-;15882:54;15975:4;;-1:-1:-1;15981:5:0;;-1:-1:-1;15523:472:0;;-1:-1:-1;;;;;15523:472:0:o;16004:537::-;16198:7;;;;16295:24;:7;16307:11;16295;:24::i;:::-;16277:42;-1:-1:-1;16330:12:0;16345:21;:4;16354:11;16345:8;:21::i;:::-;16330:36;-1:-1:-1;16377:13:0;16393:22;:5;16403:11;16393:9;:22::i;:::-;16377:38;-1:-1:-1;16426:23:0;16452:28;16377:38;16452:17;:7;16464:4;16452:11;:17::i;:28::-;16502:7;;;;-1:-1:-1;16528:4:0;;-1:-1:-1;16004:537:0;;-1:-1:-1;;;;;;;16004:537:0:o;2572:246::-;2630:7;2654:6;2650:47;;-1:-1:-1;2684:1:0;2677:8;;2650:47;2707:9;2719:5;2723:1;2719;:5;:::i;:::-;2707:17;-1:-1:-1;2752:1:0;2743:5;2747:1;2707:17;2743:5;:::i;:::-;:10;2735:56;;;;-1:-1:-1;;;2735:56:0;;15032:2:1;2735:56:0;;;15014:21:1;15071:2;15051:18;;;15044:30;15110:34;15090:18;;;15083:62;-1:-1:-1;;;15161:18:1;;;15154:31;15202:19;;2735:56:0;14830:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1819:456::-;1896:6;1904;1912;1965:2;1953:9;1944:7;1940:23;1936:32;1933:52;;;1981:1;1978;1971:12;1933:52;2020:9;2007:23;2039:31;2064:5;2039:31;:::i;:::-;2089:5;-1:-1:-1;2146:2:1;2131:18;;2118:32;2159:33;2118:32;2159:33;:::i;:::-;1819:456;;2211:7;;-1:-1:-1;;;2265:2:1;2250:18;;;;2237:32;;1819:456::o;2469:127::-;2530:10;2525:3;2521:20;2518:1;2511:31;2561:4;2558:1;2551:15;2585:4;2582:1;2575:15;2601:1121;2685:6;2716:2;2759;2747:9;2738:7;2734:23;2730:32;2727:52;;;2775:1;2772;2765:12;2727:52;2815:9;2802:23;2844:18;2885:2;2877:6;2874:14;2871:34;;;2901:1;2898;2891:12;2871:34;2939:6;2928:9;2924:22;2914:32;;2984:7;2977:4;2973:2;2969:13;2965:27;2955:55;;3006:1;3003;2996:12;2955:55;3042:2;3029:16;3064:2;3060;3057:10;3054:36;;;3070:18;;:::i;:::-;3116:2;3113:1;3109:10;3148:2;3142:9;3211:2;3207:7;3202:2;3198;3194:11;3190:25;3182:6;3178:38;3266:6;3254:10;3251:22;3246:2;3234:10;3231:18;3228:46;3225:72;;;3277:18;;:::i;:::-;3313:2;3306:22;3363:18;;;3397:15;;;;-1:-1:-1;3439:11:1;;;3435:20;;;3467:19;;;3464:39;;;3499:1;3496;3489:12;3464:39;3523:11;;;;3543:148;3559:6;3554:3;3551:15;3543:148;;;3625:23;3644:3;3625:23;:::i;:::-;3613:36;;3576:12;;;;3669;;;;3543:148;;;3710:6;2601:1121;-1:-1:-1;;;;;;;;2601:1121:1:o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:689::-;4814:6;4822;4830;4883:2;4871:9;4862:7;4858:23;4854:32;4851:52;;;4899:1;4896;4889:12;4851:52;4939:9;4926:23;4968:18;5009:2;5001:6;4998:14;4995:34;;;5025:1;5022;5015:12;4995:34;5063:6;5052:9;5048:22;5038:32;;5108:7;5101:4;5097:2;5093:13;5089:27;5079:55;;5130:1;5127;5120:12;5079:55;5170:2;5157:16;5196:2;5188:6;5185:14;5182:34;;;5212:1;5209;5202:12;5182:34;5267:7;5260:4;5250:6;5247:1;5243:14;5239:2;5235:23;5231:34;5228:47;5225:67;;;5288:1;5285;5278:12;5225:67;5319:4;5311:13;;;;-1:-1:-1;5343:6:1;-1:-1:-1;5368:37:1;;5384:20;;;-1:-1:-1;5368:37:1;:::i;:::-;5358:47;;4722:689;;;;;:::o;5416:385::-;5502:6;5510;5518;5526;5579:3;5567:9;5558:7;5554:23;5550:33;5547:53;;;5596:1;5593;5586:12;5547:53;-1:-1:-1;;5619:23:1;;;5689:2;5674:18;;5661:32;;-1:-1:-1;5740:2:1;5725:18;;5712:32;;5791:2;5776:18;5763:32;;-1:-1:-1;5416:385:1;-1:-1:-1;5416:385:1:o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;6964:217::-;7004:1;7030;7020:132;;7074:10;7069:3;7065:20;7062:1;7055:31;7109:4;7106:1;7099:15;7137:4;7134:1;7127:15;7020:132;-1:-1:-1;7166:9:1;;6964:217::o;7593:128::-;7633:3;7664:1;7660:6;7657:1;7654:13;7651:39;;;7670:18;;:::i;:::-;-1:-1:-1;7706:9:1;;7593:128::o;12519:125::-;12559:4;12587:1;12584;12581:8;12578:34;;;12592:18;;:::i;:::-;-1:-1:-1;12629:9:1;;12519:125::o;13060:251::-;13130:6;13183:2;13171:9;13162:7;13158:23;13154:32;13151:52;;;13199:1;13196;13189:12;13151:52;13231:9;13225:16;13250:31;13275:5;13250:31;:::i;13316:980::-;13578:4;13626:3;13615:9;13611:19;13657:6;13646:9;13639:25;13683:2;13721:6;13716:2;13705:9;13701:18;13694:34;13764:3;13759:2;13748:9;13744:18;13737:31;13788:6;13823;13817:13;13854:6;13846;13839:22;13892:3;13881:9;13877:19;13870:26;;13931:2;13923:6;13919:15;13905:29;;13952:1;13962:195;13976:6;13973:1;13970:13;13962:195;;;14041:13;;-1:-1:-1;;;;;14037:39:1;14025:52;;14132:15;;;;14097:12;;;;14073:1;13991:9;13962:195;;;-1:-1:-1;;;;;;;14213:32:1;;;;14208:2;14193:18;;14186:60;-1:-1:-1;;;14277:3:1;14262:19;14255:35;14174:3;13316:980;-1:-1:-1;;;13316:980:1:o;14657:168::-;14697:7;14763:1;14759;14755:6;14751:14;14748:1;14745:21;14740:1;14733:9;14726:17;14722:45;14719:71;;;14770:18;;:::i;:::-;-1:-1:-1;14810:9:1;;14657:168::o
Swarm Source
ipfs://939b350db5b0c8f3ce5a87acac7e27d9142543590c426a73880a831af9b7f743
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.