Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 NeiroJR
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,799,100.642685184 NeiroJRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
NeiroJR
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-31 */ /** $NEIROJR 🐶 Community - https://t.me/NeiroJrETH X Account - https://x.com/neiro_jr Website - https://neirojr.com */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.14; 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 NeiroJR is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "NeiroJR"; string private constant _symbol = "NeiroJR"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //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(0xF1a65A61c952C8fb36B134aF8D1cD676F6E2672A); address payable private _marketingAddress = payable(0xF1a65A61c952C8fb36B134aF8D1cD676F6E2672A); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2000000 * 10**9; uint256 public _maxWalletSize = 2000000 * 10**9; uint256 public _swapTokensAtAmount = 50000 * 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 { (bool success,) = _marketingAddress.call{value:amount}(""); require(success, "failed to send eth to marketing address"); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function swap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } 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":"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":"swap","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
608060405261001767016345785d8a00005f1961033f565b610022905f1961035e565b6006555f6008819055600a60098190558190556014600b819055600c829055600d819055600e91909155600f819055601380546001600160a01b031990811673f1a65a61c952c8fb36b134af8d1cd676f6e2672a9081179092558254161790556016805461ffff60a81b1916600160b01b17905566071afd498d00006017819055601855652d79883d20006019553480156100bb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015610174573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101989190610383565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102079190610383565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102759190610383565b601680546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405161033191815260200190565b60405180910390a3506103b0565b5f8261035957634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561037d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215610393575f80fd5b81516001600160a01b03811681146103a9575f80fd5b9392505050565b611f8e806103bd5f395ff3fe6080604052600436106101e8575f3560e01c80637d1db4a511610108578063a2a957bb1161009d578063bfd792841161006d578063bfd792841461055b578063c492f04614610589578063dd62ed3e146105a8578063ea1644d5146105ec578063f2fde38b1461060b575f80fd5b8063a2a957bb146104d0578063a9059cbb146104ef578063b5a652231461050e578063bdd795ef1461052d575f80fd5b80638f70ccf7116100d85780638f70ccf71461047d5780638f9a55c01461049c57806395d89b411461021457806398a5c315146104b1575f80fd5b80637d1db4a51461040d5780637f2feddc146104225780638119c0651461044d5780638da5cb5b14610461575f80fd5b806349bd5a5e1161017e5780636fc3eaec1161014e5780636fc3eaec146103a757806370a08231146103bb578063715018a6146103da57806374010ece146103ee575f80fd5b806349bd5a5e1461032b57806367aadb7e1461034a5780636b999053146103695780636d8aa8f814610388575f80fd5b806318160ddd116101b957806318160ddd146102b857806323b872dd146102dc5780632fd689e3146102fb578063313ce56714610310575f80fd5b8062b8cf2a146101f357806306fdde0314610214578063095ea7b3146102525780631694505e14610281575f80fd5b366101ef57005b5f80fd5b3480156101fe575f80fd5b5061021261020d366004611aed565b61062a565b005b34801561021f575f80fd5b5060408051808201825260078152662732b4b937a52960c91b602082015290516102499190611bb8565b60405180910390f35b34801561025d575f80fd5b5061027161026c366004611bed565b6106bb565b6040519015158152602001610249565b34801561028c575f80fd5b506015546102a0906001600160a01b031681565b6040516001600160a01b039091168152602001610249565b3480156102c3575f80fd5b5067016345785d8a00005b604051908152602001610249565b3480156102e7575f80fd5b506102716102f6366004611c17565b6106d1565b348015610306575f80fd5b506102ce60195481565b34801561031b575f80fd5b5060405160098152602001610249565b348015610336575f80fd5b506016546102a0906001600160a01b031681565b348015610355575f80fd5b50610212610364366004611c9d565b610738565b348015610374575f80fd5b50610212610383366004611cdc565b6107c2565b348015610393575f80fd5b506102126103a2366004611d06565b61080b565b3480156103b2575f80fd5b50610212610852565b3480156103c6575f80fd5b506102ce6103d5366004611cdc565b61089c565b3480156103e5575f80fd5b506102126108bd565b3480156103f9575f80fd5b50610212610408366004611d1f565b61092e565b348015610418575f80fd5b506102ce60175481565b34801561042d575f80fd5b506102ce61043c366004611cdc565b60116020525f908152604090205481565b348015610458575f80fd5b5061021261095c565b34801561046c575f80fd5b505f546001600160a01b03166102a0565b348015610488575f80fd5b50610212610497366004611d06565b6109ae565b3480156104a7575f80fd5b506102ce60185481565b3480156104bc575f80fd5b506102126104cb366004611d1f565b6109f5565b3480156104db575f80fd5b506102126104ea366004611d36565b610a23565b3480156104fa575f80fd5b50610271610509366004611bed565b610a60565b348015610519575f80fd5b50610212610528366004611c9d565b610a6c565b348015610538575f80fd5b50610271610547366004611cdc565b60126020525f908152604090205460ff1681565b348015610566575f80fd5b50610271610575366004611cdc565b60106020525f908152604090205460ff1681565b348015610594575f80fd5b506102126105a3366004611d65565b610afa565b3480156105b3575f80fd5b506102ce6105c2366004611db5565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105f7575f80fd5b50610212610606366004611d1f565b610b8d565b348015610616575f80fd5b50610212610625366004611cdc565b610bbb565b5f546001600160a01b0316331461065c5760405162461bcd60e51b815260040161065390611dec565b60405180910390fd5b5f5b81518110156106b757600160105f84848151811061067e5761067e611e21565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161065e565b5050565b5f6106c7338484610ca2565b5060015b92915050565b5f6106dd848484610dc5565b61072e843361072985604051806060016040528060288152602001611f31602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611348565b610ca2565b5060019392505050565b5f546001600160a01b031633146107615760405162461bcd60e51b815260040161065390611dec565b5f5b818110156107bd5760125f84848481811061078057610780611e21565b90506020020160208101906107959190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101610763565b505050565b5f546001600160a01b031633146107eb5760405162461bcd60e51b815260040161065390611dec565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108345760405162461bcd60e51b815260040161065390611dec565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061088757506014546001600160a01b0316336001600160a01b0316145b61088f575f80fd5b4761089981611380565b50565b6001600160a01b0381165f908152600260205260408120546106cb90611430565b5f546001600160a01b031633146108e65760405162461bcd60e51b815260040161065390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109575760405162461bcd60e51b815260040161065390611dec565b601755565b6013546001600160a01b0316336001600160a01b0316148061099157506014546001600160a01b0316336001600160a01b0316145b610999575f80fd5b5f6109a33061089c565b9050610899816114b2565b5f546001600160a01b031633146109d75760405162461bcd60e51b815260040161065390611dec565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a1e5760405162461bcd60e51b815260040161065390611dec565b601955565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161065390611dec565b600893909355600a91909155600955600b55565b5f6106c7338484610dc5565b5f546001600160a01b03163314610a955760405162461bcd60e51b815260040161065390611dec565b5f5b818110156107bd57600160125f858585818110610ab657610ab6611e21565b9050602002016020810190610acb9190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a97565b5f546001600160a01b03163314610b235760405162461bcd60e51b815260040161065390611dec565b5f5b82811015610b87578160055f868685818110610b4357610b43611e21565b9050602002016020810190610b589190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b25565b50505050565b5f546001600160a01b03163314610bb65760405162461bcd60e51b815260040161065390611dec565b601855565b5f546001600160a01b03163314610be45760405162461bcd60e51b815260040161065390611dec565b6001600160a01b038116610c495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610653565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610653565b6001600160a01b038216610d655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610653565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610653565b6001600160a01b038216610e8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610653565b5f8111610eec5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610653565b5f546001600160a01b03848116911614801590610f1657505f546001600160a01b03838116911614155b8015610f3a57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f5e57506001600160a01b0382165f9081526012602052604090205460ff16155b1561124457601654600160a01b900460ff16611001576001600160a01b0383165f9081526012602052604090205460ff166110015760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610653565b6017548111156110535760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610653565b6001600160a01b0383165f9081526010602052604090205460ff1615801561109357506001600160a01b0382165f9081526010602052604090205460ff16155b6110eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610653565b6016546001600160a01b03838116911614611170576018548161110d8461089c565b6111179190611e49565b106111705760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610653565b5f61117a3061089c565b6019546017549192508210159082106111935760175491505b8080156111aa5750601654600160a81b900460ff16155b80156111c457506016546001600160a01b03868116911614155b80156111d95750601654600160b01b900460ff165b80156111fd57506001600160a01b0385165f9081526005602052604090205460ff16155b801561122157506001600160a01b0384165f9081526005602052604090205460ff16155b156112415761122f826114b2565b47801561123f5761123f47611380565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061128457506001600160a01b0383165f9081526005602052604090205460ff165b806112b657506016546001600160a01b038581169116148015906112b657506016546001600160a01b03848116911614155b156112c257505f61133c565b6016546001600160a01b0385811691161480156112ed57506015546001600160a01b03848116911614155b156112ff57600854600c55600954600d555b6016546001600160a01b03848116911614801561132a57506015546001600160a01b03858116911614155b1561133c57600a54600c55600b54600d555b610b8784848484611622565b5f818484111561136b5760405162461bcd60e51b81526004016106539190611bb8565b505f6113778486611e5c565b95945050505050565b6014546040515f916001600160a01b03169083908381818185875af1925050503d805f81146113ca576040519150601f19603f3d011682016040523d82523d5f602084013e6113cf565b606091505b50509050806106b75760405162461bcd60e51b815260206004820152602760248201527f6661696c656420746f2073656e642065746820746f206d61726b6574696e67206044820152666164647265737360c81b6064820152608401610653565b5f6006548211156114965760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610653565b5f61149f611650565b90506114ab8382611671565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114f8576114f8611e21565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561154f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115739190611e6f565b8160018151811061158657611586611e21565b6001600160a01b0392831660209182029290920101526015546115ac9130911684610ca2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115e49085905f90869030904290600401611e8a565b5f604051808303815f87803b1580156115fb575f80fd5b505af115801561160d573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b8061162f5761162f6116b2565b61163a8484846116df565b80610b8757610b87600e54600c55600f54600d55565b5f805f61165b6117d0565b909250905061166a8282611671565b9250505090565b5f6114ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061180f565b600c541580156116c25750600d54155b156116c957565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116ee8761183b565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061171f9087611890565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461174d90866118d1565b6001600160a01b0389165f9081526002602052604090205561176e8161192f565b6117788483611975565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117bd91815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a00006117ea8282611671565b8210156118065750506006549267016345785d8a000092509050565b90939092509050565b5f818361182f5760405162461bcd60e51b81526004016106539190611bb8565b505f6113778486611efa565b5f805f805f805f805f6118538a600c54600d54611999565b9250925092505f611862611650565b90505f805f6118738e8787876119eb565b919e509c509a509598509396509194505050505091939550919395565b5f6114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611348565b5f806118dd8385611e49565b9050838110156114ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610653565b5f611938611650565b90505f6119458383611a37565b305f9081526002602052604090205490915061196190826118d1565b305f90815260026020526040902055505050565b6006546119829083611890565b60065560075461199290826118d1565b6007555050565b5f8080806119b260646119ac8989611a37565b90611671565b90505f6119c460646119ac8a89611a37565b90505f6119db826119d58b86611890565b90611890565b9992985090965090945050505050565b5f8080806119f98886611a37565b90505f611a068887611a37565b90505f611a138888611a37565b90505f611a24826119d58686611890565b939b939a50919850919650505050505050565b5f825f03611a4657505f6106cb565b5f611a518385611f19565b905082611a5e8583611efa565b146114ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610653565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610899575f80fd5b8035611ae881611ac9565b919050565b5f60208284031215611afd575f80fd5b813567ffffffffffffffff811115611b13575f80fd5b8201601f81018413611b23575f80fd5b803567ffffffffffffffff811115611b3d57611b3d611ab5565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611b6a57611b6a611ab5565b604052918252602081840181019290810187841115611b87575f80fd5b6020850194505b83851015611bad57611b9f85611add565b815260209485019401611b8e565b509695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611bfe575f80fd5b8235611c0981611ac9565b946020939093013593505050565b5f805f60608486031215611c29575f80fd5b8335611c3481611ac9565b92506020840135611c4481611ac9565b929592945050506040919091013590565b5f8083601f840112611c65575f80fd5b50813567ffffffffffffffff811115611c7c575f80fd5b6020830191508360208260051b8501011115611c96575f80fd5b9250929050565b5f8060208385031215611cae575f80fd5b823567ffffffffffffffff811115611cc4575f80fd5b611cd085828601611c55565b90969095509350505050565b5f60208284031215611cec575f80fd5b81356114ab81611ac9565b80358015158114611ae8575f80fd5b5f60208284031215611d16575f80fd5b6114ab82611cf7565b5f60208284031215611d2f575f80fd5b5035919050565b5f805f8060808587031215611d49575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d77575f80fd5b833567ffffffffffffffff811115611d8d575f80fd5b611d9986828701611c55565b9094509250611dac905060208501611cf7565b90509250925092565b5f8060408385031215611dc6575f80fd5b8235611dd181611ac9565b91506020830135611de181611ac9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106cb576106cb611e35565b818103818111156106cb576106cb611e35565b5f60208284031215611e7f575f80fd5b81516114ab81611ac9565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611eda5783516001600160a01b0316835260209384019390920191600101611eb3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611f1457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106cb576106cb611e3556fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220701a333cd03485e02bc1fda77efc98dbacc1a392d0a01888795bf969002cbd2764736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101e8575f3560e01c80637d1db4a511610108578063a2a957bb1161009d578063bfd792841161006d578063bfd792841461055b578063c492f04614610589578063dd62ed3e146105a8578063ea1644d5146105ec578063f2fde38b1461060b575f80fd5b8063a2a957bb146104d0578063a9059cbb146104ef578063b5a652231461050e578063bdd795ef1461052d575f80fd5b80638f70ccf7116100d85780638f70ccf71461047d5780638f9a55c01461049c57806395d89b411461021457806398a5c315146104b1575f80fd5b80637d1db4a51461040d5780637f2feddc146104225780638119c0651461044d5780638da5cb5b14610461575f80fd5b806349bd5a5e1161017e5780636fc3eaec1161014e5780636fc3eaec146103a757806370a08231146103bb578063715018a6146103da57806374010ece146103ee575f80fd5b806349bd5a5e1461032b57806367aadb7e1461034a5780636b999053146103695780636d8aa8f814610388575f80fd5b806318160ddd116101b957806318160ddd146102b857806323b872dd146102dc5780632fd689e3146102fb578063313ce56714610310575f80fd5b8062b8cf2a146101f357806306fdde0314610214578063095ea7b3146102525780631694505e14610281575f80fd5b366101ef57005b5f80fd5b3480156101fe575f80fd5b5061021261020d366004611aed565b61062a565b005b34801561021f575f80fd5b5060408051808201825260078152662732b4b937a52960c91b602082015290516102499190611bb8565b60405180910390f35b34801561025d575f80fd5b5061027161026c366004611bed565b6106bb565b6040519015158152602001610249565b34801561028c575f80fd5b506015546102a0906001600160a01b031681565b6040516001600160a01b039091168152602001610249565b3480156102c3575f80fd5b5067016345785d8a00005b604051908152602001610249565b3480156102e7575f80fd5b506102716102f6366004611c17565b6106d1565b348015610306575f80fd5b506102ce60195481565b34801561031b575f80fd5b5060405160098152602001610249565b348015610336575f80fd5b506016546102a0906001600160a01b031681565b348015610355575f80fd5b50610212610364366004611c9d565b610738565b348015610374575f80fd5b50610212610383366004611cdc565b6107c2565b348015610393575f80fd5b506102126103a2366004611d06565b61080b565b3480156103b2575f80fd5b50610212610852565b3480156103c6575f80fd5b506102ce6103d5366004611cdc565b61089c565b3480156103e5575f80fd5b506102126108bd565b3480156103f9575f80fd5b50610212610408366004611d1f565b61092e565b348015610418575f80fd5b506102ce60175481565b34801561042d575f80fd5b506102ce61043c366004611cdc565b60116020525f908152604090205481565b348015610458575f80fd5b5061021261095c565b34801561046c575f80fd5b505f546001600160a01b03166102a0565b348015610488575f80fd5b50610212610497366004611d06565b6109ae565b3480156104a7575f80fd5b506102ce60185481565b3480156104bc575f80fd5b506102126104cb366004611d1f565b6109f5565b3480156104db575f80fd5b506102126104ea366004611d36565b610a23565b3480156104fa575f80fd5b50610271610509366004611bed565b610a60565b348015610519575f80fd5b50610212610528366004611c9d565b610a6c565b348015610538575f80fd5b50610271610547366004611cdc565b60126020525f908152604090205460ff1681565b348015610566575f80fd5b50610271610575366004611cdc565b60106020525f908152604090205460ff1681565b348015610594575f80fd5b506102126105a3366004611d65565b610afa565b3480156105b3575f80fd5b506102ce6105c2366004611db5565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105f7575f80fd5b50610212610606366004611d1f565b610b8d565b348015610616575f80fd5b50610212610625366004611cdc565b610bbb565b5f546001600160a01b0316331461065c5760405162461bcd60e51b815260040161065390611dec565b60405180910390fd5b5f5b81518110156106b757600160105f84848151811061067e5761067e611e21565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161065e565b5050565b5f6106c7338484610ca2565b5060015b92915050565b5f6106dd848484610dc5565b61072e843361072985604051806060016040528060288152602001611f31602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611348565b610ca2565b5060019392505050565b5f546001600160a01b031633146107615760405162461bcd60e51b815260040161065390611dec565b5f5b818110156107bd5760125f84848481811061078057610780611e21565b90506020020160208101906107959190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff19169055600101610763565b505050565b5f546001600160a01b031633146107eb5760405162461bcd60e51b815260040161065390611dec565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108345760405162461bcd60e51b815260040161065390611dec565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061088757506014546001600160a01b0316336001600160a01b0316145b61088f575f80fd5b4761089981611380565b50565b6001600160a01b0381165f908152600260205260408120546106cb90611430565b5f546001600160a01b031633146108e65760405162461bcd60e51b815260040161065390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109575760405162461bcd60e51b815260040161065390611dec565b601755565b6013546001600160a01b0316336001600160a01b0316148061099157506014546001600160a01b0316336001600160a01b0316145b610999575f80fd5b5f6109a33061089c565b9050610899816114b2565b5f546001600160a01b031633146109d75760405162461bcd60e51b815260040161065390611dec565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a1e5760405162461bcd60e51b815260040161065390611dec565b601955565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161065390611dec565b600893909355600a91909155600955600b55565b5f6106c7338484610dc5565b5f546001600160a01b03163314610a955760405162461bcd60e51b815260040161065390611dec565b5f5b818110156107bd57600160125f858585818110610ab657610ab6611e21565b9050602002016020810190610acb9190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a97565b5f546001600160a01b03163314610b235760405162461bcd60e51b815260040161065390611dec565b5f5b82811015610b87578160055f868685818110610b4357610b43611e21565b9050602002016020810190610b589190611cdc565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b25565b50505050565b5f546001600160a01b03163314610bb65760405162461bcd60e51b815260040161065390611dec565b601855565b5f546001600160a01b03163314610be45760405162461bcd60e51b815260040161065390611dec565b6001600160a01b038116610c495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610653565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610653565b6001600160a01b038216610d655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610653565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610653565b6001600160a01b038216610e8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610653565b5f8111610eec5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610653565b5f546001600160a01b03848116911614801590610f1657505f546001600160a01b03838116911614155b8015610f3a57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610f5e57506001600160a01b0382165f9081526012602052604090205460ff16155b1561124457601654600160a01b900460ff16611001576001600160a01b0383165f9081526012602052604090205460ff166110015760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610653565b6017548111156110535760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610653565b6001600160a01b0383165f9081526010602052604090205460ff1615801561109357506001600160a01b0382165f9081526010602052604090205460ff16155b6110eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610653565b6016546001600160a01b03838116911614611170576018548161110d8461089c565b6111179190611e49565b106111705760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610653565b5f61117a3061089c565b6019546017549192508210159082106111935760175491505b8080156111aa5750601654600160a81b900460ff16155b80156111c457506016546001600160a01b03868116911614155b80156111d95750601654600160b01b900460ff165b80156111fd57506001600160a01b0385165f9081526005602052604090205460ff16155b801561122157506001600160a01b0384165f9081526005602052604090205460ff16155b156112415761122f826114b2565b47801561123f5761123f47611380565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061128457506001600160a01b0383165f9081526005602052604090205460ff165b806112b657506016546001600160a01b038581169116148015906112b657506016546001600160a01b03848116911614155b156112c257505f61133c565b6016546001600160a01b0385811691161480156112ed57506015546001600160a01b03848116911614155b156112ff57600854600c55600954600d555b6016546001600160a01b03848116911614801561132a57506015546001600160a01b03858116911614155b1561133c57600a54600c55600b54600d555b610b8784848484611622565b5f818484111561136b5760405162461bcd60e51b81526004016106539190611bb8565b505f6113778486611e5c565b95945050505050565b6014546040515f916001600160a01b03169083908381818185875af1925050503d805f81146113ca576040519150601f19603f3d011682016040523d82523d5f602084013e6113cf565b606091505b50509050806106b75760405162461bcd60e51b815260206004820152602760248201527f6661696c656420746f2073656e642065746820746f206d61726b6574696e67206044820152666164647265737360c81b6064820152608401610653565b5f6006548211156114965760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610653565b5f61149f611650565b90506114ab8382611671565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114f8576114f8611e21565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561154f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115739190611e6f565b8160018151811061158657611586611e21565b6001600160a01b0392831660209182029290920101526015546115ac9130911684610ca2565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115e49085905f90869030904290600401611e8a565b5f604051808303815f87803b1580156115fb575f80fd5b505af115801561160d573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b8061162f5761162f6116b2565b61163a8484846116df565b80610b8757610b87600e54600c55600f54600d55565b5f805f61165b6117d0565b909250905061166a8282611671565b9250505090565b5f6114ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061180f565b600c541580156116c25750600d54155b156116c957565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116ee8761183b565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061171f9087611890565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461174d90866118d1565b6001600160a01b0389165f9081526002602052604090205561176e8161192f565b6117788483611975565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117bd91815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a00006117ea8282611671565b8210156118065750506006549267016345785d8a000092509050565b90939092509050565b5f818361182f5760405162461bcd60e51b81526004016106539190611bb8565b505f6113778486611efa565b5f805f805f805f805f6118538a600c54600d54611999565b9250925092505f611862611650565b90505f805f6118738e8787876119eb565b919e509c509a509598509396509194505050505091939550919395565b5f6114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611348565b5f806118dd8385611e49565b9050838110156114ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610653565b5f611938611650565b90505f6119458383611a37565b305f9081526002602052604090205490915061196190826118d1565b305f90815260026020526040902055505050565b6006546119829083611890565b60065560075461199290826118d1565b6007555050565b5f8080806119b260646119ac8989611a37565b90611671565b90505f6119c460646119ac8a89611a37565b90505f6119db826119d58b86611890565b90611890565b9992985090965090945050505050565b5f8080806119f98886611a37565b90505f611a068887611a37565b90505f611a138888611a37565b90505f611a24826119d58686611890565b939b939a50919850919650505050505050565b5f825f03611a4657505f6106cb565b5f611a518385611f19565b905082611a5e8583611efa565b146114ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610653565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381168114610899575f80fd5b8035611ae881611ac9565b919050565b5f60208284031215611afd575f80fd5b813567ffffffffffffffff811115611b13575f80fd5b8201601f81018413611b23575f80fd5b803567ffffffffffffffff811115611b3d57611b3d611ab5565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611b6a57611b6a611ab5565b604052918252602081840181019290810187841115611b87575f80fd5b6020850194505b83851015611bad57611b9f85611add565b815260209485019401611b8e565b509695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611bfe575f80fd5b8235611c0981611ac9565b946020939093013593505050565b5f805f60608486031215611c29575f80fd5b8335611c3481611ac9565b92506020840135611c4481611ac9565b929592945050506040919091013590565b5f8083601f840112611c65575f80fd5b50813567ffffffffffffffff811115611c7c575f80fd5b6020830191508360208260051b8501011115611c96575f80fd5b9250929050565b5f8060208385031215611cae575f80fd5b823567ffffffffffffffff811115611cc4575f80fd5b611cd085828601611c55565b90969095509350505050565b5f60208284031215611cec575f80fd5b81356114ab81611ac9565b80358015158114611ae8575f80fd5b5f60208284031215611d16575f80fd5b6114ab82611cf7565b5f60208284031215611d2f575f80fd5b5035919050565b5f805f8060808587031215611d49575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611d77575f80fd5b833567ffffffffffffffff811115611d8d575f80fd5b611d9986828701611c55565b9094509250611dac905060208501611cf7565b90509250925092565b5f8060408385031215611dc6575f80fd5b8235611dd181611ac9565b91506020830135611de181611ac9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106cb576106cb611e35565b818103818111156106cb576106cb611e35565b5f60208284031215611e7f575f80fd5b81516114ab81611ac9565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611eda5783516001600160a01b0316835260209384019390920191600101611eb3565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611f1457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106cb576106cb611e3556fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220701a333cd03485e02bc1fda77efc98dbacc1a392d0a01888795bf969002cbd2764736f6c634300081a0033
Deployed Bytecode Sourcemap
4208:14071:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13047:169;;;;;;;;;;-1:-1:-1;13047:169:0;;;;;:::i;:::-;;:::i;:::-;;6748:83;;;;;;;;;;-1:-1:-1;6818:5:0;;;;;;;;;;;-1:-1:-1;;;6818:5:0;;;;6748:83;;;;6818:5;6748:83;:::i;:::-;;;;;;;;7673:193;;;;;;;;;;-1:-1:-1;7673:193:0;;;;;:::i;:::-;;:::i;:::-;;;2513:14:1;;2506:22;2488:41;;2476:2;2461:18;7673:193:0;2348:187:1;5600:41:0;;;;;;;;;;-1:-1:-1;5600:41:0;;;;-1:-1:-1;;;;;5600:41:0;;;;;;-1:-1:-1;;;;;2730:32:1;;;2712:51;;2700:2;2685:18;5600:41:0;2540:229:1;7025:95:0;;;;;;;;;;-1:-1:-1;4756:17:0;7025:95;;;2920:25:1;;;2908:2;2893:18;7025:95:0;2774:177:1;7874:446:0;;;;;;;;;;-1:-1:-1;7874:446:0;;;;;:::i;:::-;;:::i;5896:50::-;;;;;;;;;;;;;;;;6934:83;;;;;;;;;;-1:-1:-1;6934:83:0;;4430:1;3611:36:1;;3599:2;3584:18;6934:83:0;3469:184:1;5648:28:0;;;;;;;;;;-1:-1:-1;5648:28:0;;;;-1:-1:-1;;;;;5648:28:0;;;18080:196;;;;;;;;;;-1:-1:-1;18080:196:0;;;;;:::i;:::-;;:::i;13224:92::-;;;;;;;;;;-1:-1:-1;13224:92:0;;;;;:::i;:::-;;:::i;17256:101::-;;;;;;;;;;-1:-1:-1;17256:101:0;;;;;:::i;:::-;;:::i;12804:235::-;;;;;;;;;;;;;:::i;7128:138::-;;;;;;;;;;-1:-1:-1;7128:138:0;;;;;:::i;:::-;;:::i;1695:148::-;;;;;;;;;;;;;:::i;17396:108::-;;;;;;;;;;-1:-1:-1;17396:108:0;;;;;:::i;:::-;;:::i;5790:45::-;;;;;;;;;;;;;;;;5293:43;;;;;;;;;;-1:-1:-1;5293:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;12566:230;;;;;;;;;;;;;:::i;1481:79::-;;;;;;;;;;-1:-1:-1;1519:7:0;1546:6;-1:-1:-1;;;;;1546:6:0;1481:79;;12457:101;;;;;;;;;;-1:-1:-1;12457:101:0;;;;;:::i;:::-;;:::i;5842:47::-;;;;;;;;;;;;;;;;17065:139;;;;;;;;;;-1:-1:-1;17065:139:0;;;;;:::i;:::-;;:::i;16722:291::-;;;;;;;;;;-1:-1:-1;16722:291:0;;;;;:::i;:::-;;:::i;7274:199::-;;;;;;;;;;-1:-1:-1;7274:199:0;;;;;:::i;:::-;;:::i;17877:195::-;;;;;;;;;;-1:-1:-1;17877:195:0;;;;;:::i;:::-;;:::i;5343:42::-;;;;;;;;;;-1:-1:-1;5343:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5255:36;;;;;;;;;;-1:-1:-1;5255:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17635:234;;;;;;;;;;-1:-1:-1;17635:234:0;;;;;:::i;:::-;;:::i;7481:184::-;;;;;;;;;;-1:-1:-1;7481:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7630:18:0;;;7598:7;7630:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7481:184;17512:115;;;;;;;;;;-1:-1:-1;17512:115:0;;;;;:::i;:::-;;:::i;1851:244::-;;;;;;;;;;-1:-1:-1;1851:244:0;;;;;:::i;:::-;;:::i;13047:169::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;;;;;;;;;13123:9:::1;13118:91;13142:5;:12;13138:1;:16;13118:91;;;13193:4;13176;:14;13181:5;13187:1;13181:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13176:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13176:14:0;:21;;-1:-1:-1;;13176:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13156:3:0::1;13118:91;;;;13047:169:::0;:::o;7673:193::-;7775:4;7797:39;320:10;7820:7;7829:6;7797:8;:39::i;:::-;-1:-1:-1;7854:4:0;7673:193;;;;;:::o;7874:446::-;8006:4;8023:36;8033:6;8041:9;8052:6;8023:9;:36::i;:::-;8070:220;8093:6;320:10;8141:138;8197:6;8141:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8141:19:0;;;;;;:11;:19;;;;;;;;320:10;8141:33;;;;;;;;;;:37;:138::i;:::-;8070:8;:220::i;:::-;-1:-1:-1;8308:4:0;7874:446;;;;;:::o;18080:196::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;18167:9:::1;18163:106;18182:19:::0;;::::1;18163:106;;;18235:9;:22;18245:8;;18254:1;18245:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18235:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18235:22:0;18228:29;;-1:-1:-1;;18228:29:0::1;::::0;;;18203:3:::1;18163:106;;;;18080:196:::0;;:::o;13224:92::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13288:12:0::1;13303:5;13288:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13288:20:0::1;::::0;;13224:92::o;17256:101::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17323:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17323:26:0::1;-1:-1:-1::0;;;;17323:26:0;;::::1;::::0;;;::::1;::::0;;17256:101::o;12804:235::-;12870:19;;-1:-1:-1;;;;;12870:19:0;320:10;-1:-1:-1;;;;;12854:35:0;;:72;;;-1:-1:-1;12909:17:0;;-1:-1:-1;;;;;12909:17:0;320:10;-1:-1:-1;;;;;12893:33:0;;12854:72;12846:81;;;;;;12967:21;12999:32;12967:21;12999:12;:32::i;:::-;12835:204;12804:235::o;7128:138::-;-1:-1:-1;;;;;7241:16:0;;7194:7;7241:16;;;:7;:16;;;;;;7221:37;;:19;:37::i;1695:148::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;1802:1:::1;1786:6:::0;;1765:40:::1;::::0;-1:-1:-1;;;;;1786:6:0;;::::1;::::0;1765:40:::1;::::0;1802:1;;1765:40:::1;1833:1;1816:19:::0;;-1:-1:-1;;;;;;1816:19:0::1;::::0;;1695:148::o;17396:108::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17470:12:::1;:26:::0;17396:108::o;12566:230::-;12626:19;;-1:-1:-1;;;;;12626:19:0;320:10;-1:-1:-1;;;;;12610:35:0;;:72;;;-1:-1:-1;12665:17:0;;-1:-1:-1;;;;;12665:17:0;320:10;-1:-1:-1;;;;;12649:33:0;;12610:72;12602:81;;;;;;12694:23;12720:24;12738:4;12720:9;:24::i;:::-;12694:50;;12755:33;12772:15;12755:16;:33::i;12457:101::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;12524:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12524:26:0::1;-1:-1:-1::0;;;;12524:26:0;;::::1;::::0;;;::::1;::::0;;12457:101::o;17065:139::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17156:19:::1;:40:::0;17065:139::o;16722:291::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;16856:14:::1;:30:::0;;;;16897:15:::1;:32:::0;;;;16940:12:::1;:26:::0;16977:13:::1;:28:::0;16722:291::o;7274:199::-;7379:4;7401:42;320:10;7425:9;7436:6;7401:9;:42::i;17877:195::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17963:9:::1;17959:106;17978:19:::0;;::::1;17959:106;;;18049:4;18024:9;:22;18034:8;;18043:1;18034:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18024:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18024:22:0;:29;;-1:-1:-1;;18024:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17999:3:0::1;17959:106;;17635:234:::0;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17752:9:::1;17748:114;17767:19:::0;;::::1;17748:114;;;17842:8;17808:18;:31;17827:8;;17836:1;17827:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17808:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17808:31:0;:42;;-1:-1:-1;;17808:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17788:3:0::1;17748:114;;;;17635:234:::0;;;:::o;17512:115::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;17589:14:::1;:30:::0;17512:115::o;1851:244::-;1608:6;;-1:-1:-1;;;;;1608:6:0;320:10;1608:22;1600:67;;;;-1:-1:-1;;;1600:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1940:22:0;::::1;1932:73;;;::::0;-1:-1:-1;;;1932:73:0;;7703:2:1;1932:73:0::1;::::0;::::1;7685:21:1::0;7742:2;7722:18;;;7715:30;7781:34;7761:18;;;7754:62;-1:-1:-1;;;7832:18:1;;;7825:36;7878:19;;1932:73:0::1;7501:402:1::0;1932:73:0::1;2042:6;::::0;;2021:38:::1;::::0;-1:-1:-1;;;;;2021:38:0;;::::1;::::0;2042:6;::::1;::::0;2021:38:::1;::::0;::::1;2070:6;:17:::0;;-1:-1:-1;;;;;;2070:17:0::1;-1:-1:-1::0;;;;;2070:17:0;;;::::1;::::0;;;::::1;::::0;;1851:244::o;9011:369::-;-1:-1:-1;;;;;9138:19:0;;9130:68;;;;-1:-1:-1;;;9130:68:0;;8110:2:1;9130:68:0;;;8092:21:1;8149:2;8129:18;;;8122:30;8188:34;8168:18;;;8161:62;-1:-1:-1;;;8239:18:1;;;8232:34;8283:19;;9130:68:0;7908:400:1;9130:68:0;-1:-1:-1;;;;;9217:21:0;;9209:68;;;;-1:-1:-1;;;9209:68:0;;8515:2:1;9209:68:0;;;8497:21:1;8554:2;8534:18;;;8527:30;8593:34;8573:18;;;8566:62;-1:-1:-1;;;8644:18:1;;;8637:32;8686:19;;9209:68:0;8313:398:1;9209:68:0;-1:-1:-1;;;;;9288:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9340:32;;2920:25:1;;;9340:32:0;;2893:18:1;9340:32:0;;;;;;;9011:369;;;:::o;9388:2369::-;-1:-1:-1;;;;;9510:18:0;;9502:68;;;;-1:-1:-1;;;9502:68:0;;8918:2:1;9502:68:0;;;8900:21:1;8957:2;8937:18;;;8930:30;8996:34;8976:18;;;8969:62;-1:-1:-1;;;9047:18:1;;;9040:35;9092:19;;9502:68:0;8716:401:1;9502:68:0;-1:-1:-1;;;;;9589:16:0;;9581:64;;;;-1:-1:-1;;;9581:64:0;;9324:2:1;9581:64:0;;;9306:21:1;9363:2;9343:18;;;9336:30;9402:34;9382:18;;;9375:62;-1:-1:-1;;;9453:18:1;;;9446:33;9496:19;;9581:64:0;9122:399:1;9581:64:0;9673:1;9664:6;:10;9656:64;;;;-1:-1:-1;;;9656:64:0;;9728:2:1;9656:64:0;;;9710:21:1;9767:2;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;-1:-1:-1;;;9857:18:1;;;9850:39;9906:19;;9656:64:0;9526:405:1;9656:64:0;1519:7;1546:6;-1:-1:-1;;;;;9738:15:0;;;1546:6;;9738:15;;;;:32;;-1:-1:-1;1519:7:0;1546:6;-1:-1:-1;;;;;9757:13:0;;;1546:6;;9757:13;;9738:32;:52;;;;-1:-1:-1;;;;;;9775:15:0;;;;;;:9;:15;;;;;;;;9774:16;9738:52;:70;;;;-1:-1:-1;;;;;;9795:13:0;;;;;;:9;:13;;;;;;;;9794:14;9738:70;9734:1297;;;9865:11;;-1:-1:-1;;;9865:11:0;;;;9860:144;;-1:-1:-1;;;;;9905:15:0;;;;;;:9;:15;;;;;;;;9897:91;;;;-1:-1:-1;;;9897:91:0;;10138:2:1;9897:91:0;;;10120:21:1;10177:2;10157:18;;;10150:30;10216:34;10196:18;;;10189:62;10287:33;10267:18;;;10260:61;10338:19;;9897:91:0;9936:427:1;9897:91:0;10038:12;;10028:6;:22;;10020:63;;;;-1:-1:-1;;;10020:63:0;;10570:2:1;10020:63:0;;;10552:21:1;10609:2;10589:18;;;10582:30;10648;10628:18;;;10621:58;10696:18;;10020:63:0;10368:352:1;10020:63:0;-1:-1:-1;;;;;10107:10:0;;;;;;:4;:10;;;;;;;;10106:11;:24;;;;-1:-1:-1;;;;;;10122:8:0;;;;;;:4;:8;;;;;;;;10121:9;10106:24;10098:72;;;;-1:-1:-1;;;10098:72:0;;10927:2:1;10098:72:0;;;10909:21:1;10966:2;10946:18;;;10939:30;11005:34;10985:18;;;10978:62;-1:-1:-1;;;11056:18:1;;;11049:33;11099:19;;10098:72:0;10725:399:1;10098:72:0;10196:13;;-1:-1:-1;;;;;10190:19:0;;;10196:13;;10190:19;10187:146;;10263:14;;10254:6;10238:13;10248:2;10238:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10230:87;;;;-1:-1:-1;;;10230:87:0;;11593:2:1;10230:87:0;;;11575:21:1;11632:2;11612:18;;;11605:30;11671:34;11651:18;;;11644:62;-1:-1:-1;;;11722:18:1;;;11715:33;11765:19;;10230:87:0;11391:399:1;10230:87:0;10349:28;10380:24;10398:4;10380:9;:24::i;:::-;10458:19;;10521:12;;10349:55;;-1:-1:-1;10434:43:0;;;;10497:36;;10494:124;;10590:12;;10567:35;;10494:124;10638:7;:18;;;;-1:-1:-1;10650:6:0;;-1:-1:-1;;;10650:6:0;;;;10649:7;10638:18;:43;;;;-1:-1:-1;10668:13:0;;-1:-1:-1;;;;;10660:21:0;;;10668:13;;10660:21;;10638:43;:58;;;;-1:-1:-1;10685:11:0;;-1:-1:-1;;;10685:11:0;;;;10638:58;:87;;;;-1:-1:-1;;;;;;10701:24:0;;;;;;:18;:24;;;;;;;;10700:25;10638:87;:114;;;;-1:-1:-1;;;;;;10730:22:0;;;;;;:18;:22;;;;;;;;10729:23;10638:114;10634:386;;;10773:38;10790:20;10773:16;:38::i;:::-;10859:21;10903:22;;10899:106;;10950:35;10963:21;10950:12;:35::i;:::-;10754:266;10634:386;9810:1221;;9734:1297;-1:-1:-1;;;;;11107:24:0;;11043:12;11107:24;;;:18;:24;;;;;;11058:4;;11107:24;;;:50;;-1:-1:-1;;;;;;11135:22:0;;;;;;:18;:22;;;;;;;;11107:50;11106:102;;;-1:-1:-1;11171:13:0;;-1:-1:-1;;;;;11163:21:0;;;11171:13;;11163:21;;;;:44;;-1:-1:-1;11194:13:0;;-1:-1:-1;;;;;11188:19:0;;;11194:13;;11188:19;;11163:44;11102:594;;;-1:-1:-1;11235:5:0;11102:594;;;11318:13;;-1:-1:-1;;;;;11310:21:0;;;11318:13;;11310:21;:55;;;;-1:-1:-1;11349:15:0;;-1:-1:-1;;;;;11335:30:0;;;11349:15;;11335:30;;11310:55;11307:162;;;11398:14;;11386:9;:26;11441:12;;11431:7;:22;11307:162;11528:13;;-1:-1:-1;;;;;11522:19:0;;;11528:13;;11522:19;:55;;;;-1:-1:-1;11561:15:0;;-1:-1:-1;;;;;11545:32:0;;;11561:15;;11545:32;;11522:55;11518:165;;;11610:15;;11598:9;:27;11654:13;;11644:7;:23;11518:165;11708:41;11723:4;11729:2;11733:6;11741:7;11708:14;:41::i;2459:224::-;2579:7;2615:12;2607:6;;;;2599:29;;;;-1:-1:-1;;;2599:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2639:9:0;2651:5;2655:1;2651;:5;:::i;:::-;2639:17;2459:224;-1:-1:-1;;;;;2459:224:0:o;12256:193::-;12331:17;;:40;;12314:12;;-1:-1:-1;;;;;12331:17:0;;12360:6;;12314:12;12331:40;12314:12;12331:40;12360:6;12331:17;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12313:58;;;12390:7;12382:59;;;;-1:-1:-1;;;12382:59:0;;12340:2:1;12382:59:0;;;12322:21:1;12379:2;12359:18;;;12352:30;12418:34;12398:18;;;12391:62;-1:-1:-1;;;12469:18:1;;;12462:37;12516:19;;12382:59:0;12138:403:1;8328:323:0;8423:7;8481;;8470;:18;;8448:110;;;;-1:-1:-1;;;8448:110:0;;12748:2:1;8448:110:0;;;12730:21:1;12787:2;12767:18;;;12760:30;12826:34;12806:18;;;12799:62;-1:-1:-1;;;12877:18:1;;;12870:40;12927:19;;8448:110:0;12546:406:1;8448:110:0;8569:19;8591:10;:8;:10::i;:::-;8569:32;-1:-1:-1;8619:24:0;:7;8569:32;8619:11;:24::i;:::-;8612:31;8328:323;-1:-1:-1;;;8328:323:0:o;11765:483::-;6040:6;:13;;-1:-1:-1;;;;6040:13:0;-1:-1:-1;;;6040:13:0;;;11867:16:::1;::::0;;11881:1:::1;11867:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11867:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11867:16:0::1;11843:40;;11912:4;11894;11899:1;11894:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11894:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11938:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11938:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11894:7;;11938:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11928:4;11933:1;11928:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11928:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12003:15:::1;::::0;11971:62:::1;::::0;11988:4:::1;::::0;12003:15:::1;12021:11:::0;11971:8:::1;:62::i;:::-;12044:15;::::0;:196:::1;::::0;-1:-1:-1;;;12044:196:0;;-1:-1:-1;;;;;12044:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12125:11;;12044:15:::1;::::0;12167:4;;12194::::1;::::0;12214:15:::1;::::0;12044:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6076:6:0;:14;;-1:-1:-1;;;;6076:14:0;;;-1:-1:-1;;;;11765:483:0:o;13324:282::-;13480:7;13475:28;;13489:14;:12;:14::i;:::-;13514:44;13532:6;13540:9;13551:6;13514:17;:44::i;:::-;13574:7;13569:29;;13583:15;8942:17;;8930:9;:29;8980:15;;8970:7;:25;8886:117;16285:164;16327:7;16348:15;16365;16384:19;:17;:19::i;:::-;16347:56;;-1:-1:-1;16347:56:0;-1:-1:-1;16421:20:0;16347:56;;16421:11;:20::i;:::-;16414:27;;;;16285:164;:::o;2945:132::-;3003:7;3030:39;3034:1;3037;3030:39;;;;;;;;;;;;;;;;;:3;:39::i;8659:219::-;8706:9;;:14;:30;;;;-1:-1:-1;8724:7:0;;:12;8706:30;8702:43;;;8659:219::o;8702:43::-;8777:9;;;8757:17;:29;8815:7;;;8797:15;:25;-1:-1:-1;8835:13:0;;;;8859:11;8659:219::o;13614:610::-;13761:15;13791:23;13829:12;13856:23;13894:12;13921:13;13948:19;13959:7;13948:10;:19::i;:::-;-1:-1:-1;;;;;13996:15:0;;;;;;:7;:15;;;;;;13746:221;;-1:-1:-1;13746:221:0;;-1:-1:-1;13746:221:0;;-1:-1:-1;13746:221:0;-1:-1:-1;13746:221:0;-1:-1:-1;13746:221:0;-1:-1:-1;13996:28:0;;13746:221;13996:19;:28::i;:::-;-1:-1:-1;;;;;13978:15:0;;;;;;;:7;:15;;;;;;:46;;;;14056:18;;;;;;;:39;;14079:15;14056:22;:39::i;:::-;-1:-1:-1;;;;;14035:18:0;;;;;;:7;:18;;;;;:60;14106:16;14116:5;14106:9;:16::i;:::-;14133:23;14145:4;14151;14133:11;:23::i;:::-;14189:9;-1:-1:-1;;;;;14172:44:0;14181:6;-1:-1:-1;;;;;14172:44:0;;14200:15;14172:44;;;;2920:25:1;;2908:2;2893:18;;2774:177;14172:44:0;;;;;;;;13735:489;;;;;;13614:610;;;:::o;16457:257::-;16555:7;;16508;;;;4756:17;16623:20;16555:7;4756:17;16623:11;:20::i;:::-;16613:7;:30;16609:61;;;-1:-1:-1;;16653:7:0;;;4756:17;;-1:-1:-1;16457:257:0;-1:-1:-1;16457:257:0:o;16609:61::-;16689:7;;16698;;-1:-1:-1;16457:257:0;-1:-1:-1;16457:257:0:o;3085:223::-;3205:7;3240:12;3233:5;3225:28;;;;-1:-1:-1;;;3225:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3264:9:0;3276:5;3280:1;3276;:5;:::i;14643:615::-;14743:7;14765;14787;14809;14831;14853;14889:23;14914:12;14928:13;14958:40;14970:7;14979:9;;14990:7;;14958:11;:40::i;:::-;14888:110;;;;;;15009:19;15031:10;:8;:10::i;:::-;15009:32;;15053:15;15070:23;15095:12;15124:46;15136:7;15145:4;15151:5;15158:11;15124;:46::i;:::-;15052:118;;-1:-1:-1;15052:118:0;-1:-1:-1;15052:118:0;-1:-1:-1;15221:15:0;;-1:-1:-1;15238:4:0;;-1:-1:-1;15244:5:0;;-1:-1:-1;;;;;14643:615:0;;;;;;;:::o;2315:136::-;2373:7;2400:43;2404:1;2407;2400:43;;;;;;;;;;;;;;;;;:3;:43::i;2128:179::-;2186:7;;2218:5;2222:1;2218;:5;:::i;:::-;2206:17;;2247:1;2242;:6;;2234:46;;;;-1:-1:-1;;;2234:46:0;;14601:2:1;2234:46:0;;;14583:21:1;14640:2;14620:18;;;14613:30;14679:29;14659:18;;;14652:57;14726:18;;2234:46:0;14399:351:1;14232:211:0;14285:19;14307:10;:8;:10::i;:::-;14285:32;-1:-1:-1;14328:13:0;14344:22;:5;14285:32;14344:9;:22::i;:::-;14418:4;14402:22;;;;:7;:22;;;;;;14328:38;;-1:-1:-1;14402:33:0;;14328:38;14402:26;:33::i;:::-;14393:4;14377:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14232:211:0:o;14451:147::-;14529:7;;:17;;14541:4;14529:11;:17::i;:::-;14519:7;:27;14570:10;;:20;;14585:4;14570:14;:20::i;:::-;14557:10;:33;-1:-1:-1;;14451:147:0:o;15266:469::-;15435:7;;;;15529:30;15555:3;15529:21;:7;15541:8;15529:11;:21::i;:::-;:25;;:30::i;:::-;15514:45;-1:-1:-1;15570:13:0;15586:28;15610:3;15586:19;:7;15598:6;15586:11;:19::i;:28::-;15570:44;-1:-1:-1;15625:23:0;15651:28;15570:44;15651:17;:7;15663:4;15651:11;:17::i;:::-;:21;;:28::i;:::-;15625:54;15715:4;;-1:-1:-1;15721:5:0;;-1:-1:-1;15266:469:0;;-1:-1:-1;;;;;15266:469:0:o;15743:534::-;15937:7;;;;16034:24;:7;16046:11;16034;:24::i;:::-;16016:42;-1:-1:-1;16069:12:0;16084:21;:4;16093:11;16084:8;:21::i;:::-;16069:36;-1:-1:-1;16116:13:0;16132:22;:5;16142:11;16132:9;:22::i;:::-;16116:38;-1:-1:-1;16165:23:0;16191:28;16116:38;16191:17;:7;16203:4;16191:11;:17::i;:28::-;16238:7;;;;-1:-1:-1;16264:4:0;;-1:-1:-1;15743:534:0;;-1:-1:-1;;;;;;;15743:534:0:o;2691:246::-;2749:7;2773:1;2778;2773:6;2769:47;;-1:-1:-1;2803:1:0;2796:8;;2769:47;2826:9;2838:5;2842:1;2838;:5;:::i;:::-;2826:17;-1:-1:-1;2871:1:0;2862:5;2866:1;2826:17;2862:5;:::i;:::-;:10;2854:56;;;;-1:-1:-1;;;2854:56:0;;15130:2:1;2854:56:0;;;15112:21:1;15169:2;15149:18;;;15142:30;15208:34;15188:18;;;15181:62;-1:-1:-1;;;15259:18:1;;;15252:31;15300:19;;2854:56:0;14928: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:1127::-;505:6;558:2;546:9;537:7;533:23;529:32;526:52;;;574:1;571;564:12;526:52;614:9;601:23;647:18;639:6;636:30;633:50;;;679:1;676;669:12;633:50;702:22;;755:4;747:13;;743:27;-1:-1:-1;733:55:1;;784:1;781;774:12;733:55;824:2;811:16;850:18;842:6;839:30;836:56;;;872:18;;:::i;:::-;918:6;915:1;911:14;954:2;948:9;1017:2;1013:7;1008:2;1004;1000:11;996:25;988:6;984:38;1088:6;1076:10;1073:22;1052:18;1040:10;1037:34;1034:62;1031:88;;;1099:18;;:::i;:::-;1135:2;1128:22;1185;;;1235:2;1265:11;;;1261:20;;;1185:22;1223:15;;1293:19;;;1290:39;;;1325:1;1322;1315:12;1290:39;1357:2;1353;1349:11;1338:22;;1369:148;1385:6;1380:3;1377:15;1369:148;;;1451:23;1470:3;1451:23;:::i;:::-;1439:36;;1504:2;1402:12;;;;1495;1369:148;;;-1:-1:-1;1536:6:1;421:1127;-1:-1:-1;;;;;;421:1127:1:o;1553:418::-;1702:2;1691:9;1684:21;1665:4;1734:6;1728:13;1777:6;1772:2;1761:9;1757:18;1750:34;1836:6;1831:2;1823:6;1819:15;1814:2;1803:9;1799:18;1793:50;1892:1;1887:2;1878:6;1867:9;1863:22;1859:31;1852:42;1962:2;1955;1951:7;1946:2;1938:6;1934:15;1930:29;1919:9;1915:45;1911:54;1903:62;;;1553:418;;;;:::o;1976:367::-;2044:6;2052;2105:2;2093:9;2084:7;2080:23;2076:32;2073:52;;;2121:1;2118;2111:12;2073:52;2160:9;2147:23;2179:31;2204:5;2179:31;:::i;:::-;2229:5;2307:2;2292:18;;;;2279:32;;-1:-1:-1;;;1976:367:1:o;2956:508::-;3033:6;3041;3049;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;3157:9;3144:23;3176:31;3201:5;3176:31;:::i;:::-;3226:5;-1:-1:-1;3283:2:1;3268:18;;3255:32;3296:33;3255:32;3296:33;:::i;:::-;2956:508;;3348:7;;-1:-1:-1;;;3428:2:1;3413:18;;;;3400:32;;2956:508::o;3866:367::-;3929:8;3939:6;3993:3;3986:4;3978:6;3974:17;3970:27;3960:55;;4011:1;4008;4001:12;3960:55;-1:-1:-1;4034:20:1;;4077:18;4066:30;;4063:50;;;4109:1;4106;4099:12;4063:50;4146:4;4138:6;4134:17;4122:29;;4206:3;4199:4;4189:6;4186:1;4182:14;4174:6;4170:27;4166:38;4163:47;4160:67;;;4223:1;4220;4213:12;4160:67;3866:367;;;;;:::o;4238:437::-;4324:6;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4441:9;4428:23;4474:18;4466:6;4463:30;4460:50;;;4506:1;4503;4496:12;4460:50;4545:70;4607:7;4598:6;4587:9;4583:22;4545:70;:::i;:::-;4634:8;;4519:96;;-1:-1:-1;4238:437:1;-1:-1:-1;;;;4238:437:1:o;4680:247::-;4739:6;4792:2;4780:9;4771:7;4767:23;4763:32;4760:52;;;4808:1;4805;4798:12;4760:52;4847:9;4834:23;4866:31;4891:5;4866:31;:::i;4932:160::-;4997:20;;5053:13;;5046:21;5036:32;;5026:60;;5082:1;5079;5072:12;5097:180;5153:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:52;;;5222:1;5219;5212:12;5174:52;5245:26;5261:9;5245:26;:::i;5282:226::-;5341:6;5394:2;5382:9;5373:7;5369:23;5365:32;5362:52;;;5410:1;5407;5400:12;5362:52;-1:-1:-1;5455:23:1;;5282:226;-1:-1:-1;5282:226:1:o;5513:587::-;5599:6;5607;5615;5623;5676:3;5664:9;5655:7;5651:23;5647:33;5644:53;;;5693:1;5690;5683:12;5644:53;-1:-1:-1;;5738:23:1;;;5858:2;5843:18;;5830:32;;-1:-1:-1;5961:2:1;5946:18;;5933:32;;6064:2;6049:18;6036:32;;-1:-1:-1;5513:587:1;-1:-1:-1;5513:587:1:o;6105:505::-;6197:6;6205;6213;6266:2;6254:9;6245:7;6241:23;6237:32;6234:52;;;6282:1;6279;6272:12;6234:52;6322:9;6309:23;6355:18;6347:6;6344:30;6341:50;;;6387:1;6384;6377:12;6341:50;6426:70;6488:7;6479:6;6468:9;6464:22;6426:70;:::i;:::-;6515:8;;-1:-1:-1;6400:96:1;-1:-1:-1;6569:35:1;;-1:-1:-1;6600:2:1;6585:18;;6569:35;:::i;:::-;6559:45;;6105:505;;;;;:::o;6615:388::-;6683:6;6691;6744:2;6732:9;6723:7;6719:23;6715:32;6712:52;;;6760:1;6757;6750:12;6712:52;6799:9;6786:23;6818:31;6843:5;6818:31;:::i;:::-;6868:5;-1:-1:-1;6925:2:1;6910:18;;6897:32;6938:33;6897:32;6938:33;:::i;:::-;6990:7;6980:17;;;6615:388;;;;;:::o;7008:356::-;7210:2;7192:21;;;7229:18;;;7222:30;7288:34;7283:2;7268:18;;7261:62;7355:2;7340:18;;7008:356::o;7369:127::-;7430:10;7425:3;7421:20;7418:1;7411:31;7461:4;7458:1;7451:15;7485:4;7482:1;7475:15;11129:127;11190:10;11185:3;11181:20;11178:1;11171:31;11221:4;11218:1;11211:15;11245:4;11242:1;11235:15;11261:125;11326:9;;;11347:10;;;11344:36;;;11360:18;;:::i;11795:128::-;11862:9;;;11883:11;;;11880:37;;;11897:18;;:::i;12957:251::-;13027:6;13080:2;13068:9;13059:7;13055:23;13051:32;13048:52;;;13096:1;13093;13086:12;13048:52;13128:9;13122:16;13147:31;13172:5;13147:31;:::i;13213:959::-;13475:4;13523:3;13512:9;13508:19;13554:6;13543:9;13536:25;13597:6;13592:2;13581:9;13577:18;13570:34;13640:3;13635:2;13624:9;13620:18;13613:31;13664:6;13699;13693:13;13730:6;13722;13715:22;13768:3;13757:9;13753:19;13746:26;;13807:2;13799:6;13795:15;13781:29;;13828:1;13838:195;13852:6;13849:1;13846:13;13838:195;;;13917:13;;-1:-1:-1;;;;;13913:39:1;13901:52;;13982:2;14008:15;;;;13973:12;;;;13949:1;13867:9;13838:195;;;-1:-1:-1;;;;;;;14089:32:1;;;;14084:2;14069:18;;14062:60;-1:-1:-1;;14153:3:1;14138:19;14131:35;14050:3;13213:959;-1:-1:-1;;;13213:959:1:o;14177:217::-;14217:1;14243;14233:132;;14287:10;14282:3;14278:20;14275:1;14268:31;14322:4;14319:1;14312:15;14350:4;14347:1;14340:15;14233:132;-1:-1:-1;14379:9:1;;14177:217::o;14755:168::-;14828:9;;;14859;;14876:15;;;14870:22;;14856:37;14846:71;;14897:18;;:::i
Swarm Source
ipfs://701a333cd03485e02bc1fda77efc98dbacc1a392d0a01888795bf969002cbd27
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.