ERC-20
Overview
Max Total Supply
666,666,666,666,666 HATIB
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
8,779,746,507,634.740535694 HATIBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HatiBurn
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-23 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable is Context { address private _owner; mapping(address => bool) internal authorizations; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); authorizations[_owner] = true; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require( owner() == _msgSender() || isAuthorized(_msgSender()), "Ownable: caller is not allowed" ); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } } 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; 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 HatiBurn is Context, IERC20, Ownable { using SafeMath for uint256; uint256 MAX_INT = 115792089237316195423570985008687907853269984665640564039457584007913129639935; string private constant _name = "Hati Burn"; string private constant _symbol = "HATIB"; uint8 private constant _decimals = 9; address[] private _sniipers; mapping(address => uint256) _balances; mapping(address => uint256) _lastTX; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isSniiper; mapping(address => bool) private _liquidityHolders; mapping(address => bool) private bots; uint256 _totalSupply = 666666666666666 * 10**9; //Buy Fee uint256 private _taxFeeOnBuy = 8; //Sell Fee uint256 private _taxFeeOnSell = 8; //Original Fee uint256 private _taxFee = _taxFeeOnSell; uint256 private _previoustaxFee = _taxFee; address payable private _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; bool private transferDelay = true; bool sniiperProtection = true; uint256 private wipeBlocks = 0; uint256 private launchedAt; uint256 public _maxTxAmount = 9999999999999 * 10**9; // 1.5% MAX TX uint256 public _maxWalletSize = 19999999999999 * 10**9; // 3% MAX WALLET uint256 public _swapTokensAtAmount = 666666666666 * 10**9; // 0.1% SWAPBACK event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _balances[_msgSender()] = _totalSupply; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _approve(address(this), address(uniswapV2Router), MAX_INT); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _liquidityHolders[msg.sender] = true; _marketingAddress = payable(msg.sender); emit Transfer(address(0), _msgSender(), _totalSupply); } 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 view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 setWipeBlocks(uint256 newWipeBlocks) public onlyOwner { wipeBlocks = newWipeBlocks; } function setSniiperProtection(bool _sniiperProtection) public onlyOwner { sniiperProtection = _sniiperProtection; } function AntiSnipe() public onlyOwner lockTheSwap { if (_sniipers.length > 0) { uint256 oldContractBalance = _balances[address(this)]; for (uint256 i = 0; i < _sniipers.length; i++) { _balances[address(this)] = _balances[address(this)].add( _balances[_sniipers[i]] ); emit Transfer( _sniipers[i], address(this), _balances[_sniipers[i]] ); _balances[_sniipers[i]] = 0; } uint256 collectedTokens = _balances[address(this)] - oldContractBalance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( collectedTokens, 0, path, _marketingAddress, block.timestamp ); } } 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 (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) { require(tradingOpen, "TOKEN: Trading not yet started"); require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require( !bots[from] && !bots[to], "TOKEN: Your account is blacklisted!" ); if (sniiperProtection) { if ( launchedAt > 0 && from == uniswapV2Pair && !_liquidityHolders[from] && !_liquidityHolders[to] ) { if (block.number - launchedAt <= wipeBlocks) { if (!_isSniiper[to]) { _sniipers.push(to); } _isSniiper[to] = true; } } } if (to != uniswapV2Pair) { if (from == uniswapV2Pair && transferDelay) { require( _lastTX[tx.origin] + 3 minutes < block.timestamp && _lastTX[to] + 3 minutes < block.timestamp, "TOKEN: 3 minutes cooldown between buys" ); } require( balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!" ); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (contractTokenBalance >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0 ether) { 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)) { _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _taxFee = _taxFeeOnSell; } } _lastTX[tx.origin] = block.timestamp; _lastTX[to] = block.timestamp; _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { uint256 ethAmt = tokenAmount.mul(85).div(100); uint256 liqAmt = tokenAmount - ethAmt; uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( ethAmt, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); addLiquidity(liqAmt, amountETH.mul(15).div(100)); } function sendETHToFee(uint256 amount) private { (bool success, ) = _marketingAddress.call{value: amount}(""); require(success); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0), block.timestamp ); } function openTrading() public onlyOwner { tradingOpen = true; sniiperProtection = true; launchedAt = block.number; } function manualswap() external onlyOwner { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } 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) { _transferNoTax(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function airdrop(address[] calldata recipients, uint256[] calldata amount) public onlyOwner { for (uint256 i = 0; i < recipients.length; i++) { _transferNoTax(msg.sender, recipients[i], amount[i]); } } function _transferStandard( address sender, address recipient, uint256 amount ) private { uint256 amountReceived = takeFees(sender, amount); _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function _transferNoTax( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFees(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(_taxFee).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } receive() external payable {} function transferOwnership(address newOwner) public override onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _isExcludedFromFee[owner()] = false; _transferOwnership(newOwner); _isExcludedFromFee[owner()] = true; } function setFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function setIsFeeExempt(address holder, bool exempt) public onlyOwner { _isExcludedFromFee[holder] = exempt; } function toggleTransferDelay() public onlyOwner { transferDelay = !transferDelay; } function recoverLosteth() external onlyOwner { (bool success, ) = address(payable(msg.sender)).call{ value: address(this).balance }(""); require(success); } function recoverLostTokens(address _token, uint256 _amount) external onlyOwner { IERC20(_token).transfer(msg.sender, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AntiSnipe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","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":"_sniiperProtection","type":"bool"}],"name":"setSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWipeBlocks","type":"uint256"}],"name":"setWipeBlocks","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":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"adr","type":"address"}],"name":"unauthorize","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
6080604052600019600255698d2c1289ddf398ee2400600b556008600c819055600d819055600e819055600f556012805464ffffffffff60a01b19166201010160b01b179055600060135569021e19e0c9ba76a5360060155569043c33c1937528e53600601655682423dbc92e6cae24006017553480156200008057600080fd5b506200008c336200036c565b600080546001600160a01b03168152600160208181526040808420805460ff1916909317909255600b5433845260048083529383902055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519093849363c45a01559381830193909290918290030181865afa15801562000126573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014c9190620004e8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c09190620004e8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200020e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002349190620004e8565b601280546001600160a01b0319166001600160a01b03928316179055601154600254620002659230921690620003bc565b6001600760006200027e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560108054841683528483208054881683179055805490931682528382208054871682179055338083526009909552929020805490941690911790925581546001600160a01b031916179055620003153390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200035d91815260200190565b60405180910390a3506200051a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200041b565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620004fb57600080fd5b81516001600160a01b03811681146200051357600080fd5b9392505050565b612854806200052a6000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065a578063ea1644d51461067a578063f0b37c041461069a578063f2fde38b146106ba578063fe9fbb80146106da57600080fd5b8063a9059cbb146105aa578063b6a5d7de146105ca578063c3c8cd80146105ea578063c9567bf9146105ff578063dd62ed3e1461061457600080fd5b80638da5cb5b116100f25780638da5cb5b146105135780638eb59a5f146105315780638f9a55c01461054657806395d89b411461055c57806398a5c3151461058a57600080fd5b806370a0823114610492578063715018a6146104c857806374010ece146104dd5780637d1db4a5146104fd57600080fd5b8063313ce567116101a6578063658d4b7f11610175578063658d4b7f146103fd578063672434821461041d5780636b9990531461043d5780636d8aa8f81461045d5780636faadd2b1461047d57600080fd5b8063313ce5671461038c57806333596f50146103a857806349bd5a5e146103bd5780634ef1e040146103dd57600080fd5b80631694505e116101ed5780631694505e146102df57806318160ddd1461031757806323b872dd146103365780632f21411a146103565780632fd689e31461037657600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028f5780630b78f9c0146102bf57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122d9565b610713565b005b34801561025757600080fd5b506040805180820190915260098152682430ba3490213ab93760b91b60208201525b604051610286919061239e565b60405180910390f35b34801561029b57600080fd5b506102af6102aa3660046123f3565b6107c1565b6040519015158152602001610286565b3480156102cb57600080fd5b506102496102da36600461241f565b6107d8565b3480156102eb57600080fd5b506011546102ff906001600160a01b031681565b6040516001600160a01b039091168152602001610286565b34801561032357600080fd5b50600b545b604051908152602001610286565b34801561034257600080fd5b506102af610351366004612441565b61081c565b34801561036257600080fd5b50610249610371366004612490565b610885565b34801561038257600080fd5b5061032860175481565b34801561039857600080fd5b5060405160098152602001610286565b3480156103b457600080fd5b506102496108dc565b3480156103c957600080fd5b506012546102ff906001600160a01b031681565b3480156103e957600080fd5b506102496103f83660046124ad565b61096d565b34801561040957600080fd5b506102496104183660046124c6565b6109ab565b34801561042957600080fd5b5061024961043836600461254b565b610a0f565b34801561044957600080fd5b506102496104583660046125b7565b610ab6565b34801561046957600080fd5b50610249610478366004612490565b610b10565b34801561048957600080fd5b50610249610b67565b34801561049e57600080fd5b506103286104ad3660046125b7565b6001600160a01b031660009081526004602052604090205490565b3480156104d457600080fd5b50610249610e8d565b3480156104e957600080fd5b506102496104f83660046124ad565b610ed2565b34801561050957600080fd5b5061032860155481565b34801561051f57600080fd5b506000546001600160a01b03166102ff565b34801561053d57600080fd5b50610249610f10565b34801561055257600080fd5b5061032860165481565b34801561056857600080fd5b506040805180820190915260058152642420aa24a160d91b6020820152610279565b34801561059657600080fd5b506102496105a53660046124ad565b610f6a565b3480156105b657600080fd5b506102af6105c53660046123f3565b610fa8565b3480156105d657600080fd5b506102496105e53660046125b7565b610fb5565b3480156105f657600080fd5b50610249611015565b34801561060b57600080fd5b50610249611067565b34801561062057600080fd5b5061032861062f3660046125d4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066657600080fd5b506102496106753660046123f3565b6110c1565b34801561068657600080fd5b506102496106953660046124ad565b611170565b3480156106a657600080fd5b506102496106b53660046125b7565b6111ae565b3480156106c657600080fd5b506102496106d53660046125b7565b611208565b3480156106e657600080fd5b506102af6106f53660046125b7565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107305750610730336106f5565b6107555760405162461bcd60e51b815260040161074c90612602565b60405180910390fd5b60005b81518110156107bd576001600a600084848151811061077957610779612639565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b581612665565b915050610758565b5050565b60006107ce338484611332565b5060015b92915050565b6000546001600160a01b03163314806107f557506107f5336106f5565b6108115760405162461bcd60e51b815260040161074c90612602565b600c91909155600d55565b6000610829848484611456565b61087b8433610876856040518060600160405280602881526020016127d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b4d565b611332565b5060019392505050565b6000546001600160a01b03163314806108a257506108a2336106f5565b6108be5760405162461bcd60e51b815260040161074c90612602565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108f957506108f9336106f5565b6109155760405162461bcd60e51b815260040161074c90612602565b604051600090339047908381818185875af1925050503d8060008114610957576040519150601f19603f3d011682016040523d82523d6000602084013e61095c565b606091505b505090508061096a57600080fd5b50565b6000546001600160a01b031633148061098a575061098a336106f5565b6109a65760405162461bcd60e51b815260040161074c90612602565b601355565b6000546001600160a01b03163314806109c857506109c8336106f5565b6109e45760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610a2c5750610a2c336106f5565b610a485760405162461bcd60e51b815260040161074c90612602565b60005b83811015610aaf57610a9c33868684818110610a6957610a69612639565b9050602002016020810190610a7e91906125b7565b858585818110610a9057610a90612639565b90506020020135611b87565b5080610aa781612665565b915050610a4b565b5050505050565b6000546001600160a01b0316331480610ad35750610ad3336106f5565b610aef5760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610b2d5750610b2d336106f5565b610b495760405162461bcd60e51b815260040161074c90612602565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610b845750610b84336106f5565b610ba05760405162461bcd60e51b815260040161074c90612602565b6012805460ff60a81b1916600160a81b17905560035415610e7e5730600090815260046020526040812054905b600354811015610d1657610c296004600060038481548110610bf157610bf1612639565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611c5b565b306000818152600460205260409020919091556003805483908110610c5057610c50612639565b6000918252602082200154600380546001600160a01b03909216926000805160206127ff833981519152926004929087908110610c8f57610c8f612639565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610cdf57610cdf612639565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610d0e81612665565b915050610bcd565b5030600090815260046020526040812054610d3290839061267e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d6c57610d6c612639565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190612695565b81600181518110610dfc57610dfc612639565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610e4892879260009288929091169042906004016126f6565b600060405180830381600087803b158015610e6257600080fd5b505af1158015610e76573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610eaa5750610eaa336106f5565b610ec65760405162461bcd60e51b815260040161074c90612602565b610ed06000611cc1565b565b6000546001600160a01b0316331480610eef5750610eef336106f5565b610f0b5760405162461bcd60e51b815260040161074c90612602565b601555565b6000546001600160a01b0316331480610f2d5750610f2d336106f5565b610f495760405162461bcd60e51b815260040161074c90612602565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f875750610f87336106f5565b610fa35760405162461bcd60e51b815260040161074c90612602565b601755565b60006107ce338484611456565b6000546001600160a01b0316331480610fd25750610fd2336106f5565b610fee5760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110325750611032336106f5565b61104e5760405162461bcd60e51b815260040161074c90612602565b3060009081526004602052604090205461096a81611d11565b6000546001600160a01b03163314806110845750611084336106f5565b6110a05760405162461bcd60e51b815260040161074c90612602565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110de57506110de336106f5565b6110fa5760405162461bcd60e51b815260040161074c90612602565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612732565b505050565b6000546001600160a01b031633148061118d575061118d336106f5565b6111a95760405162461bcd60e51b815260040161074c90612602565b601655565b6000546001600160a01b03163314806111cb57506111cb336106f5565b6111e75760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112255750611225336106f5565b6112415760405162461bcd60e51b815260040161074c90612602565b6001600160a01b0381166112a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b6000600760006112be6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112ef81611cc1565b6001600760006113076000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6000811161157e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074c565b6001600160a01b03821660009081526007602052604090205460ff161580156115c057506001600160a01b03831660009081526007602052604090205460ff16155b15611a2857601254600160a01b900460ff1661161e5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074c565b6015548111156116705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074c565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b257506001600160a01b0382166000908152600a602052604090205460ff16155b61170a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074c565b601254600160c01b900460ff161561182f57600060145411801561173b57506012546001600160a01b038481169116145b801561176057506001600160a01b03831660009081526009602052604090205460ff16155b801561178557506001600160a01b03821660009081526009602052604090205460ff16155b1561182f5760135460145461179a904361267e565b1161182f576001600160a01b03821660009081526008602052604090205460ff1661180b57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461199d576012546001600160a01b03848116911614801561186a5750601254600160b81b900460ff165b156119175732600090815260056020526040902054429061188c9060b461274f565b1080156118bc57506001600160a01b03821660009081526005602052604090205442906118ba9060b461274f565b105b6119175760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074c565b6016548161193a846001600160a01b031660009081526004602052604090205490565b611944919061274f565b1061199d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074c565b3060009081526004602052604090205460175481108015906119bf5760175491505b8080156119d65750601254600160a81b900460ff16155b80156119f057506012546001600160a01b03868116911614155b8015611a055750601254600160b01b900460ff165b15611a2557611a1382611d11565b478015611a2357611a2347611ed1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6a57506001600160a01b03831660009081526007602052604090205460ff165b80611a9c57506012546001600160a01b03858116911614801590611a9c57506012546001600160a01b03848116911614155b15611aa957506000611b17565b6012546001600160a01b038581169116148015611ad457506011546001600160a01b03848116911614155b15611ae057600c54600e555b6012546001600160a01b038481169116148015611b0b57506011546001600160a01b03858116911614155b15611b1757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4784848484611f31565b50505050565b60008184841115611b715760405162461bcd60e51b815260040161074c919061239e565b506000611b7e848661267e565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611bd8918490611b4d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c079083611c5b565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ff83398151915290611c499086815260200190565b60405180910390a35060019392505050565b600080611c68838561274f565b905083811015611cba5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3c6064611d36846055611f52565b90611fd4565b90506000611d4a828461267e565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8457611d84612639565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190612695565b81600181518110611e1457611e14612639565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5a9087906000908690309042906004016126f6565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506000611ea1834761201690919063ffffffff16565b9050611ebc84611eb76064611d3685600f611f52565b612058565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50509050806107bd57600080fd5b80611f4757611f41848484611b87565b50611b47565b611b478484846120ea565b600082600003611f64575060006107d2565b6000611f708385612767565b905082611f7d8583612786565b14611cba5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b6000611cba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dd565b6000611cba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaf91906127a8565b60006120f6848361220b565b905061215e8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b4d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461218d9082611c5b565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ff833981519152906121cf9085815260200190565b60405180910390a350505050565b600081836121fe5760405162461bcd60e51b815260040161074c919061239e565b506000611b7e8486612786565b6000806122286064611d36600e5486611f5290919063ffffffff16565b306000908152600460205260409020549091506122459082611c5b565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127ff833981519152906122849085815260200190565b60405180910390a36122968382612016565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096a57600080fd5b80356122d4816122b4565b919050565b600060208083850312156122ec57600080fd5b823567ffffffffffffffff8082111561230457600080fd5b818501915085601f83011261231857600080fd5b81358181111561232a5761232a61229e565b8060051b604051601f19603f8301168101818110858211171561234f5761234f61229e565b60405291825284820192508381018501918883111561236d57600080fd5b938501935b8285101561239257612383856122c9565b84529385019392850192612372565b98975050505050505050565b600060208083528351808285015260005b818110156123cb578581018301518582016040015282016123af565b818111156123dd576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561240657600080fd5b8235612411816122b4565b946020939093013593505050565b6000806040838503121561243257600080fd5b50508035926020909101359150565b60008060006060848603121561245657600080fd5b8335612461816122b4565b92506020840135612471816122b4565b929592945050506040919091013590565b801515811461096a57600080fd5b6000602082840312156124a257600080fd5b8135611cba81612482565b6000602082840312156124bf57600080fd5b5035919050565b600080604083850312156124d957600080fd5b82356124e4816122b4565b915060208301356124f481612482565b809150509250929050565b60008083601f84011261251157600080fd5b50813567ffffffffffffffff81111561252957600080fd5b6020830191508360208260051b850101111561254457600080fd5b9250929050565b6000806000806040858703121561256157600080fd5b843567ffffffffffffffff8082111561257957600080fd5b612585888389016124ff565b9096509450602087013591508082111561259e57600080fd5b506125ab878288016124ff565b95989497509550505050565b6000602082840312156125c957600080fd5b8135611cba816122b4565b600080604083850312156125e757600080fd5b82356125f2816122b4565b915060208301356124f4816122b4565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016126775761267761264f565b5060010190565b6000828210156126905761269061264f565b500390565b6000602082840312156126a757600080fd5b8151611cba816122b4565b600081518084526020808501945080840160005b838110156126eb5781516001600160a01b0316875295820195908201906001016126c6565b509495945050505050565b85815284602082015260a06040820152600061271560a08301866126b2565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561274457600080fd5b8151611cba81612482565b600082198211156127625761276261264f565b500190565b60008160001904831182151516156127815761278161264f565b500290565b6000826127a357634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203b0176fbfb801c5a6c317a6132390387be46e1a0fb19f9154b130dcf220183d364736f6c634300080d0033
Deployed Bytecode
0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065a578063ea1644d51461067a578063f0b37c041461069a578063f2fde38b146106ba578063fe9fbb80146106da57600080fd5b8063a9059cbb146105aa578063b6a5d7de146105ca578063c3c8cd80146105ea578063c9567bf9146105ff578063dd62ed3e1461061457600080fd5b80638da5cb5b116100f25780638da5cb5b146105135780638eb59a5f146105315780638f9a55c01461054657806395d89b411461055c57806398a5c3151461058a57600080fd5b806370a0823114610492578063715018a6146104c857806374010ece146104dd5780637d1db4a5146104fd57600080fd5b8063313ce567116101a6578063658d4b7f11610175578063658d4b7f146103fd578063672434821461041d5780636b9990531461043d5780636d8aa8f81461045d5780636faadd2b1461047d57600080fd5b8063313ce5671461038c57806333596f50146103a857806349bd5a5e146103bd5780634ef1e040146103dd57600080fd5b80631694505e116101ed5780631694505e146102df57806318160ddd1461031757806323b872dd146103365780632f21411a146103565780632fd689e31461037657600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028f5780630b78f9c0146102bf57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122d9565b610713565b005b34801561025757600080fd5b506040805180820190915260098152682430ba3490213ab93760b91b60208201525b604051610286919061239e565b60405180910390f35b34801561029b57600080fd5b506102af6102aa3660046123f3565b6107c1565b6040519015158152602001610286565b3480156102cb57600080fd5b506102496102da36600461241f565b6107d8565b3480156102eb57600080fd5b506011546102ff906001600160a01b031681565b6040516001600160a01b039091168152602001610286565b34801561032357600080fd5b50600b545b604051908152602001610286565b34801561034257600080fd5b506102af610351366004612441565b61081c565b34801561036257600080fd5b50610249610371366004612490565b610885565b34801561038257600080fd5b5061032860175481565b34801561039857600080fd5b5060405160098152602001610286565b3480156103b457600080fd5b506102496108dc565b3480156103c957600080fd5b506012546102ff906001600160a01b031681565b3480156103e957600080fd5b506102496103f83660046124ad565b61096d565b34801561040957600080fd5b506102496104183660046124c6565b6109ab565b34801561042957600080fd5b5061024961043836600461254b565b610a0f565b34801561044957600080fd5b506102496104583660046125b7565b610ab6565b34801561046957600080fd5b50610249610478366004612490565b610b10565b34801561048957600080fd5b50610249610b67565b34801561049e57600080fd5b506103286104ad3660046125b7565b6001600160a01b031660009081526004602052604090205490565b3480156104d457600080fd5b50610249610e8d565b3480156104e957600080fd5b506102496104f83660046124ad565b610ed2565b34801561050957600080fd5b5061032860155481565b34801561051f57600080fd5b506000546001600160a01b03166102ff565b34801561053d57600080fd5b50610249610f10565b34801561055257600080fd5b5061032860165481565b34801561056857600080fd5b506040805180820190915260058152642420aa24a160d91b6020820152610279565b34801561059657600080fd5b506102496105a53660046124ad565b610f6a565b3480156105b657600080fd5b506102af6105c53660046123f3565b610fa8565b3480156105d657600080fd5b506102496105e53660046125b7565b610fb5565b3480156105f657600080fd5b50610249611015565b34801561060b57600080fd5b50610249611067565b34801561062057600080fd5b5061032861062f3660046125d4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066657600080fd5b506102496106753660046123f3565b6110c1565b34801561068657600080fd5b506102496106953660046124ad565b611170565b3480156106a657600080fd5b506102496106b53660046125b7565b6111ae565b3480156106c657600080fd5b506102496106d53660046125b7565b611208565b3480156106e657600080fd5b506102af6106f53660046125b7565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107305750610730336106f5565b6107555760405162461bcd60e51b815260040161074c90612602565b60405180910390fd5b60005b81518110156107bd576001600a600084848151811061077957610779612639565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b581612665565b915050610758565b5050565b60006107ce338484611332565b5060015b92915050565b6000546001600160a01b03163314806107f557506107f5336106f5565b6108115760405162461bcd60e51b815260040161074c90612602565b600c91909155600d55565b6000610829848484611456565b61087b8433610876856040518060600160405280602881526020016127d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b4d565b611332565b5060019392505050565b6000546001600160a01b03163314806108a257506108a2336106f5565b6108be5760405162461bcd60e51b815260040161074c90612602565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108f957506108f9336106f5565b6109155760405162461bcd60e51b815260040161074c90612602565b604051600090339047908381818185875af1925050503d8060008114610957576040519150601f19603f3d011682016040523d82523d6000602084013e61095c565b606091505b505090508061096a57600080fd5b50565b6000546001600160a01b031633148061098a575061098a336106f5565b6109a65760405162461bcd60e51b815260040161074c90612602565b601355565b6000546001600160a01b03163314806109c857506109c8336106f5565b6109e45760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610a2c5750610a2c336106f5565b610a485760405162461bcd60e51b815260040161074c90612602565b60005b83811015610aaf57610a9c33868684818110610a6957610a69612639565b9050602002016020810190610a7e91906125b7565b858585818110610a9057610a90612639565b90506020020135611b87565b5080610aa781612665565b915050610a4b565b5050505050565b6000546001600160a01b0316331480610ad35750610ad3336106f5565b610aef5760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610b2d5750610b2d336106f5565b610b495760405162461bcd60e51b815260040161074c90612602565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610b845750610b84336106f5565b610ba05760405162461bcd60e51b815260040161074c90612602565b6012805460ff60a81b1916600160a81b17905560035415610e7e5730600090815260046020526040812054905b600354811015610d1657610c296004600060038481548110610bf157610bf1612639565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611c5b565b306000818152600460205260409020919091556003805483908110610c5057610c50612639565b6000918252602082200154600380546001600160a01b03909216926000805160206127ff833981519152926004929087908110610c8f57610c8f612639565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610cdf57610cdf612639565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610d0e81612665565b915050610bcd565b5030600090815260046020526040812054610d3290839061267e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610d6c57610d6c612639565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190612695565b81600181518110610dfc57610dfc612639565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610e4892879260009288929091169042906004016126f6565b600060405180830381600087803b158015610e6257600080fd5b505af1158015610e76573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610eaa5750610eaa336106f5565b610ec65760405162461bcd60e51b815260040161074c90612602565b610ed06000611cc1565b565b6000546001600160a01b0316331480610eef5750610eef336106f5565b610f0b5760405162461bcd60e51b815260040161074c90612602565b601555565b6000546001600160a01b0316331480610f2d5750610f2d336106f5565b610f495760405162461bcd60e51b815260040161074c90612602565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f875750610f87336106f5565b610fa35760405162461bcd60e51b815260040161074c90612602565b601755565b60006107ce338484611456565b6000546001600160a01b0316331480610fd25750610fd2336106f5565b610fee5760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110325750611032336106f5565b61104e5760405162461bcd60e51b815260040161074c90612602565b3060009081526004602052604090205461096a81611d11565b6000546001600160a01b03163314806110845750611084336106f5565b6110a05760405162461bcd60e51b815260040161074c90612602565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110de57506110de336106f5565b6110fa5760405162461bcd60e51b815260040161074c90612602565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612732565b505050565b6000546001600160a01b031633148061118d575061118d336106f5565b6111a95760405162461bcd60e51b815260040161074c90612602565b601655565b6000546001600160a01b03163314806111cb57506111cb336106f5565b6111e75760405162461bcd60e51b815260040161074c90612602565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112255750611225336106f5565b6112415760405162461bcd60e51b815260040161074c90612602565b6001600160a01b0381166112a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b6000600760006112be6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112ef81611cc1565b6001600760006113076000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6000811161157e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074c565b6001600160a01b03821660009081526007602052604090205460ff161580156115c057506001600160a01b03831660009081526007602052604090205460ff16155b15611a2857601254600160a01b900460ff1661161e5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074c565b6015548111156116705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074c565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b257506001600160a01b0382166000908152600a602052604090205460ff16155b61170a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074c565b601254600160c01b900460ff161561182f57600060145411801561173b57506012546001600160a01b038481169116145b801561176057506001600160a01b03831660009081526009602052604090205460ff16155b801561178557506001600160a01b03821660009081526009602052604090205460ff16155b1561182f5760135460145461179a904361267e565b1161182f576001600160a01b03821660009081526008602052604090205460ff1661180b57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461199d576012546001600160a01b03848116911614801561186a5750601254600160b81b900460ff165b156119175732600090815260056020526040902054429061188c9060b461274f565b1080156118bc57506001600160a01b03821660009081526005602052604090205442906118ba9060b461274f565b105b6119175760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074c565b6016548161193a846001600160a01b031660009081526004602052604090205490565b611944919061274f565b1061199d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074c565b3060009081526004602052604090205460175481108015906119bf5760175491505b8080156119d65750601254600160a81b900460ff16155b80156119f057506012546001600160a01b03868116911614155b8015611a055750601254600160b01b900460ff165b15611a2557611a1382611d11565b478015611a2357611a2347611ed1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6a57506001600160a01b03831660009081526007602052604090205460ff165b80611a9c57506012546001600160a01b03858116911614801590611a9c57506012546001600160a01b03848116911614155b15611aa957506000611b17565b6012546001600160a01b038581169116148015611ad457506011546001600160a01b03848116911614155b15611ae057600c54600e555b6012546001600160a01b038481169116148015611b0b57506011546001600160a01b03858116911614155b15611b1757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4784848484611f31565b50505050565b60008184841115611b715760405162461bcd60e51b815260040161074c919061239e565b506000611b7e848661267e565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611bd8918490611b4d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c079083611c5b565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ff83398151915290611c499086815260200190565b60405180910390a35060019392505050565b600080611c68838561274f565b905083811015611cba5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3c6064611d36846055611f52565b90611fd4565b90506000611d4a828461267e565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8457611d84612639565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190612695565b81600181518110611e1457611e14612639565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5a9087906000908690309042906004016126f6565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506000611ea1834761201690919063ffffffff16565b9050611ebc84611eb76064611d3685600f611f52565b612058565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50509050806107bd57600080fd5b80611f4757611f41848484611b87565b50611b47565b611b478484846120ea565b600082600003611f64575060006107d2565b6000611f708385612767565b905082611f7d8583612786565b14611cba5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b6000611cba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dd565b6000611cba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaf91906127a8565b60006120f6848361220b565b905061215e8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b4d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461218d9082611c5b565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127ff833981519152906121cf9085815260200190565b60405180910390a350505050565b600081836121fe5760405162461bcd60e51b815260040161074c919061239e565b506000611b7e8486612786565b6000806122286064611d36600e5486611f5290919063ffffffff16565b306000908152600460205260409020549091506122459082611c5b565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127ff833981519152906122849085815260200190565b60405180910390a36122968382612016565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096a57600080fd5b80356122d4816122b4565b919050565b600060208083850312156122ec57600080fd5b823567ffffffffffffffff8082111561230457600080fd5b818501915085601f83011261231857600080fd5b81358181111561232a5761232a61229e565b8060051b604051601f19603f8301168101818110858211171561234f5761234f61229e565b60405291825284820192508381018501918883111561236d57600080fd5b938501935b8285101561239257612383856122c9565b84529385019392850192612372565b98975050505050505050565b600060208083528351808285015260005b818110156123cb578581018301518582016040015282016123af565b818111156123dd576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561240657600080fd5b8235612411816122b4565b946020939093013593505050565b6000806040838503121561243257600080fd5b50508035926020909101359150565b60008060006060848603121561245657600080fd5b8335612461816122b4565b92506020840135612471816122b4565b929592945050506040919091013590565b801515811461096a57600080fd5b6000602082840312156124a257600080fd5b8135611cba81612482565b6000602082840312156124bf57600080fd5b5035919050565b600080604083850312156124d957600080fd5b82356124e4816122b4565b915060208301356124f481612482565b809150509250929050565b60008083601f84011261251157600080fd5b50813567ffffffffffffffff81111561252957600080fd5b6020830191508360208260051b850101111561254457600080fd5b9250929050565b6000806000806040858703121561256157600080fd5b843567ffffffffffffffff8082111561257957600080fd5b612585888389016124ff565b9096509450602087013591508082111561259e57600080fd5b506125ab878288016124ff565b95989497509550505050565b6000602082840312156125c957600080fd5b8135611cba816122b4565b600080604083850312156125e757600080fd5b82356125f2816122b4565b915060208301356124f4816122b4565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016126775761267761264f565b5060010190565b6000828210156126905761269061264f565b500390565b6000602082840312156126a757600080fd5b8151611cba816122b4565b600081518084526020808501945080840160005b838110156126eb5781516001600160a01b0316875295820195908201906001016126c6565b509495945050505050565b85815284602082015260a06040820152600061271560a08301866126b2565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561274457600080fd5b8151611cba81612482565b600082198211156127625761276261264f565b500190565b60008160001904831182151516156127815761278161264f565b500290565b6000826127a357634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203b0176fbfb801c5a6c317a6132390387be46e1a0fb19f9154b130dcf220183d364736f6c634300080d0033
Deployed Bytecode Sourcemap
4844:14565:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15632:169;;;;;;;;;;-1:-1:-1;15632:169:0;;;;;:::i;:::-;;:::i;:::-;;7495:83;;;;;;;;;;-1:-1:-1;7565:5:0;;;;;;;;;;;;-1:-1:-1;;;7565:5:0;;;;7495:83;;;;;;;:::i;:::-;;;;;;;;8406:193;;;;;;;;;;-1:-1:-1;8406:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;8406:193:0;2469:187:1;18085:184:0;;;;;;;;;;-1:-1:-1;18085:184:0;;;;;:::i;:::-;;:::i;5925:41::-;;;;;;;;;;-1:-1:-1;5925:41:0;;;;-1:-1:-1;;;;;5925:41:0;;;;;;-1:-1:-1;;;;;3104:32:1;;;3086:51;;3074:2;3059:18;5925:41:0;2914:229:1;7772:100:0;;;;;;;;;;-1:-1:-1;7852:12:0;;7772:100;;;3294:25:1;;;3282:2;3267:18;7772:100:0;3148:177:1;8607:446:0;;;;;;;;;;-1:-1:-1;8607:446:0;;;;;:::i;:::-;;:::i;9177:129::-;;;;;;;;;;-1:-1:-1;9177:129:0;;;;;:::i;:::-;;:::i;6420:57::-;;;;;;;;;;;;;;;;7681:83;;;;;;;;;;-1:-1:-1;7681:83:0;;5177:1;4302:36:1;;4290:2;4275:18;7681:83:0;4160:184:1;19032:201:0;;;;;;;;;;;;;:::i;5973:28::-;;;;;;;;;;-1:-1:-1;5973:28:0;;;;-1:-1:-1;;;;;5973:28:0;;;9061:108;;;;;;;;;;-1:-1:-1;9061:108:0;;;;;:::i;:::-;;:::i;18795:124::-;;;;;;;;;;-1:-1:-1;18795:124:0;;;;;:::i;:::-;;:::i;16234:260::-;;;;;;;;;;-1:-1:-1;16234:260:0;;;;;:::i;:::-;;:::i;15809:92::-;;;;;;;;;;-1:-1:-1;15809:92:0;;;;;:::i;:::-;;:::i;18447:101::-;;;;;;;;;;-1:-1:-1;18447:101:0;;;;;:::i;:::-;;:::i;9314:1092::-;;;;;;;;;;;;;:::i;7880:119::-;;;;;;;;;;-1:-1:-1;7880:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7973:18:0;7946:7;7973:18;;;:9;:18;;;;;;;7880:119;1658:103;;;;;;;;;;;;;:::i;18556:108::-;;;;;;;;;;-1:-1:-1;18556:108:0;;;;;:::i;:::-;;:::i;6269:51::-;;;;;;;;;;;;;;;;1370:87;;;;;;;;;;-1:-1:-1;1416:7:0;1443:6;-1:-1:-1;;;;;1443:6:0;1370:87;;18927:97;;;;;;;;;;;;;:::i;6342:54::-;;;;;;;;;;;;;;;;7586:87;;;;;;;;;;-1:-1:-1;7658:7:0;;;;;;;;;;;;-1:-1:-1;;;7658:7:0;;;;7586:87;;18277:162;;;;;;;;;;-1:-1:-1;18277:162:0;;;;;:::i;:::-;;:::i;8007:199::-;;;;;;;;;;-1:-1:-1;8007:199:0;;;;;:::i;:::-;;:::i;2214:94::-;;;;;;;;;;-1:-1:-1;2214:94:0;;;;;:::i;:::-;;:::i;15470:154::-;;;;;;;;;;;;;:::i;15314:148::-;;;;;;;;;;;;;:::i;8214:184::-;;;;;;;;;;-1:-1:-1;8214:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8363:18:0;;;8331:7;8363:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8214:184;19241:165;;;;;;;;;;-1:-1:-1;19241:165:0;;;;;:::i;:::-;;:::i;18672:115::-;;;;;;;;;;-1:-1:-1;18672:115:0;;;;;:::i;:::-;;:::i;2316:97::-;;;;;;;;;;-1:-1:-1;2316:97:0;;;;;:::i;:::-;;:::i;17747:330::-;;;;;;;;;;-1:-1:-1;17747:330:0;;;;;:::i;:::-;;:::i;2421:107::-;;;;;;;;;;-1:-1:-1;2421:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2501:19:0;2477:4;2501:19;;;:14;:19;;;;;;;;;2421:107;15632:169;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;;;;;;;;;15708:9:::1;15703:91;15727:5;:12;15723:1;:16;15703:91;;;15778:4;15761;:14;15766:5;15772:1;15766:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15761:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15761:14:0;:21;;-1:-1:-1;;15761:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15741:3;::::1;::::0;::::1;:::i;:::-;;;;15703:91;;;;15632:169:::0;:::o;8406:193::-;8508:4;8530:39;183:10;8553:7;8562:6;8530:8;:39::i;:::-;-1:-1:-1;8587:4:0;8406:193;;;;;:::o;18085:184::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;18196:12:::1;:26:::0;;;;18233:13:::1;:28:::0;18085:184::o;8607:446::-;8739:4;8756:36;8766:6;8774:9;8785:6;8756:9;:36::i;:::-;8803:220;8826:6;183:10;8874:138;8930:6;8874:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8874:19:0;;;;;;:11;:19;;;;;;;;183:10;8874:33;;;;;;;;;;:37;:138::i;:::-;8803:8;:220::i;:::-;-1:-1:-1;9041:4:0;8607:446;;;;;:::o;9177:129::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;9260:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;9260:38:0::1;-1:-1:-1::0;;;;9260:38:0;;::::1;::::0;;;::::1;::::0;;9177:129::o;19032:201::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;19107:91:::1;::::0;19089:12:::1;::::0;19123:10:::1;::::0;19162:21:::1;::::0;19089:12;19107:91;19089:12;19107:91;19162:21;19123:10;19107:91:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19088:110;;;19217:7;19209:16;;;::::0;::::1;;19077:156;19032:201::o:0;9061:108::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;9135:10:::1;:26:::0;9061:108::o;18795:124::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18876:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;18876:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18795:124::o;16234:260::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;16365:9:::1;16360:127;16380:21:::0;;::::1;16360:127;;;16423:52;16438:10;16450;;16461:1;16450:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16465:6;;16472:1;16465:9;;;;;;;:::i;:::-;;;;;;;16423:14;:52::i;:::-;-1:-1:-1::0;16403:3:0;::::1;::::0;::::1;:::i;:::-;;;;16360:127;;;;16234:260:::0;;;;:::o;15809:92::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15873:12:0::1;15888:5;15873:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15873:20:0::1;::::0;;15809:92::o;18447:101::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;18514:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18514:26:0::1;-1:-1:-1::0;;;;18514:26:0;;::::1;::::0;;;::::1;::::0;;18447:101::o;9314:1092::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;6590:6:::1;:13:::0;;-1:-1:-1;;;;6590:13:0::1;-1:-1:-1::0;;;6590:13:0::1;::::0;;9379:9:::2;:16:::0;:20;9375:1024:::2;;9463:4;9416:26;9445:24:::0;;;:9:::2;:24;::::0;;;;;;9484:416:::2;9508:9;:16:::0;9504:20;::::2;9484:416;;;9577:93;9628:9;:23;9638:9;9648:1;9638:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;9638:12:0::2;9628:23:::0;;;;::::2;::::0;;;;;;;;;;;9595:4:::2;9577:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:93::i;:::-;9568:4;9550:24;::::0;;;:9:::2;:24;::::0;;;;:120;;;;9725:9:::2;:12:::0;;9735:1;;9725:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;9806:9:::2;:12:::0;;-1:-1:-1;;;;;9725:12:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;9694:144:0;9796:9:::2;::::0;9806;9816:1;;9806:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;::::2;::::0;-1:-1:-1;;;;;9806:12:0::2;9796:23:::0;;;;::::2;::::0;;;;;;;;;;;9694:144;;3294:25:1;;;3267:18;9694:144:0::2;;;;;;;9883:1;9857:9;:23;9867:9;9877:1;9867:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;9867:12:0::2;9857:23:::0;;;::::2;::::0;;;;;;;;:27;9526:3;::::2;::::0;::::2;:::i;:::-;;;;9484:416;;;-1:-1:-1::0;9958:4:0::2;9914:23;9940:24:::0;;;:9:::2;:24;::::0;;;;;:62:::2;::::0;9984:18;;9940:62:::2;:::i;:::-;10041:16;::::0;;10055:1:::2;10041:16:::0;;;;;::::2;::::0;;9914:88;;-1:-1:-1;10017:21:0::2;::::0;10041:16;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;10041:16:0::2;10017:40;;10090:4;10072;10077:1;10072:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10072:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;10120:15:::2;::::0;:22:::2;::::0;;-1:-1:-1;;;10120:22:0;;;;:15;;;::::2;::::0;:20:::2;::::0;:22:::2;::::0;;::::2;::::0;10072:7;;10120:22;;;;;:15;:22:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10110:4;10115:1;10110:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10110:32:0;;::::2;:7;::::0;;::::2;::::0;;;;;:32;10159:15:::2;::::0;10321:17:::2;::::0;10159:228:::2;::::0;-1:-1:-1;;;10159:228:0;;:15;;::::2;::::0;:66:::2;::::0;:228:::2;::::0;10244:15;;10159::::2;::::0;10298:4;;10321:17;;::::2;::::0;10357:15:::2;::::0;10159:228:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9401:998;;;9375:1024;6626:6:::1;:14:::0;;-1:-1:-1;;;;6626:14:0::1;::::0;;9314:1092::o;1658:103::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;1723:30:::1;1750:1;1723:18;:30::i;:::-;1658:103::o:0;18556:108::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;18630:12:::1;:26:::0;18556:108::o;18927:97::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;19003:13:::1;::::0;;-1:-1:-1;;;;18986:30:0;::::1;-1:-1:-1::0;;;19003:13:0;;;::::1;;;19002:14;18986:30:::0;;::::1;;::::0;;18927:97::o;18277:162::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;18391:19:::1;:40:::0;18277:162::o;8007:199::-;8112:4;8134:42;183:10;8158:9;8169:6;8134:9;:42::i;2214:94::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2274:19:0::1;;::::0;;;2296:4:::1;2274:19;::::0;;;;;;;:26;;-1:-1:-1;;2274:26:0::1;::::0;;::::1;::::0;;2214:94::o;15470:154::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;15566:4:::1;15522:23;7973:18:::0;;;:9;:18;;;;;;15583:33:::1;7973:18:::0;15583:16:::1;:33::i;15314:148::-:0;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;15365:11:::1;:18:::0;;-1:-1:-1;;;;15394:24:0;-1:-1:-1;;;15394:24:0;;;15442:12:::1;15365:11;15429:25:::0;15314:148::o;19241:165::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;19354:44:::1;::::0;-1:-1:-1;;;19354:44:0;;19378:10:::1;19354:44;::::0;::::1;9518:51:1::0;9585:18;;;9578:34;;;-1:-1:-1;;;;;19354:23:0;::::1;::::0;::::1;::::0;9491:18:1;;19354:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19241:165:::0;;:::o;18672:115::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;18749:14:::1;:30:::0;18672:115::o;2316:97::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2378:19:0::1;2400:5;2378:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2378:27:0::1;::::0;;2316:97::o;17747:330::-;1416:7;1443:6;-1:-1:-1;;;;;1443:6:0;183:10;1519:23;;:53;;-1:-1:-1;1546:26:0;183:10;2421:107;:::i;1546:26::-;1497:133;;;;-1:-1:-1;;;1497:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17851:22:0;::::1;17829:110;;;::::0;-1:-1:-1;;;17829:110:0;;10075:2:1;17829:110:0::1;::::0;::::1;10057:21:1::0;10114:2;10094:18;;;10087:30;10153:34;10133:18;;;10126:62;-1:-1:-1;;;10204:18:1;;;10197:36;10250:19;;17829:110:0::1;9873:402:1::0;17829:110:0::1;17980:5;17950:18;:27;17969:7;1416::::0;1443:6;-1:-1:-1;;;;;1443:6:0;;1370:87;17969:7:::1;-1:-1:-1::0;;;;;17950:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17950:27:0;:35;;-1:-1:-1;;17950:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17996:28:::1;18015:8:::0;17996:18:::1;:28::i;:::-;18065:4;18035:18;:27;18054:7;1416::::0;1443:6;-1:-1:-1;;;;;1443:6:0;;1370:87;18054:7:::1;-1:-1:-1::0;;;;;18035:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18035:27:0;:34;;-1:-1:-1;;18035:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17747:330:0:o;10414:369::-;-1:-1:-1;;;;;10541:19:0;;10533:68;;;;-1:-1:-1;;;10533:68:0;;10482:2:1;10533:68:0;;;10464:21:1;10521:2;10501:18;;;10494:30;10560:34;10540:18;;;10533:62;-1:-1:-1;;;10611:18:1;;;10604:34;10655:19;;10533:68:0;10280:400:1;10533:68:0;-1:-1:-1;;;;;10620:21:0;;10612:68;;;;-1:-1:-1;;;10612:68:0;;10887:2:1;10612:68:0;;;10869:21:1;10926:2;10906:18;;;10899:30;10965:34;10945:18;;;10938:62;-1:-1:-1;;;11016:18:1;;;11009:32;11058:19;;10612:68:0;10685:398:1;10612:68:0;-1:-1:-1;;;;;10691:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10743:32;;3294:25:1;;;10743:32:0;;3267:18:1;10743:32:0;;;;;;;10414:369;;;:::o;10791:3266::-;-1:-1:-1;;;;;10913:18:0;;10905:68;;;;-1:-1:-1;;;10905:68:0;;11290:2:1;10905:68:0;;;11272:21:1;11329:2;11309:18;;;11302:30;11368:34;11348:18;;;11341:62;-1:-1:-1;;;11419:18:1;;;11412:35;11464:19;;10905:68:0;11088:401:1;10905:68:0;-1:-1:-1;;;;;10992:16:0;;10984:64;;;;-1:-1:-1;;;10984:64:0;;11696:2:1;10984:64:0;;;11678:21:1;11735:2;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;-1:-1:-1;;;11825:18:1;;;11818:33;11868:19;;10984:64:0;11494:399:1;10984:64:0;11076:1;11067:6;:10;11059:64;;;;-1:-1:-1;;;11059:64:0;;12100:2:1;11059:64:0;;;12082:21:1;12139:2;12119:18;;;12112:30;12178:34;12158:18;;;12151:62;-1:-1:-1;;;12229:18:1;;;12222:39;12278:19;;11059:64:0;11898:405:1;11059:64:0;-1:-1:-1;;;;;11141:22:0;;;;;;:18;:22;;;;;;;;11140:23;:52;;;;-1:-1:-1;;;;;;11168:24:0;;;;;;:18;:24;;;;;;;;11167:25;11140:52;11136:2167;;;11217:11;;-1:-1:-1;;;11217:11:0;;;;11209:54;;;;-1:-1:-1;;;11209:54:0;;12510:2:1;11209:54:0;;;12492:21:1;12549:2;12529:18;;;12522:30;12588:32;12568:18;;;12561:60;12638:18;;11209:54:0;12308:354:1;11209:54:0;11296:12;;11286:6;:22;;11278:63;;;;-1:-1:-1;;;11278:63:0;;12869:2:1;11278:63:0;;;12851:21:1;12908:2;12888:18;;;12881:30;12947;12927:18;;;12920:58;12995:18;;11278:63:0;12667:352:1;11278:63:0;-1:-1:-1;;;;;11383:10:0;;;;;;:4;:10;;;;;;;;11382:11;:24;;;;-1:-1:-1;;;;;;11398:8:0;;;;;;:4;:8;;;;;;;;11397:9;11382:24;11356:121;;;;-1:-1:-1;;;11356:121:0;;13226:2:1;11356:121:0;;;13208:21:1;13265:2;13245:18;;;13238:30;13304:34;13284:18;;;13277:62;-1:-1:-1;;;13355:18:1;;;13348:33;13398:19;;11356:121:0;13024:399:1;11356:121:0;11498:17;;-1:-1:-1;;;11498:17:0;;;;11494:542;;;11575:1;11562:10;;:14;:60;;;;-1:-1:-1;11609:13:0;;-1:-1:-1;;;;;11601:21:0;;;11609:13;;11601:21;11562:60;:109;;;;-1:-1:-1;;;;;;11648:23:0;;;;;;:17;:23;;;;;;;;11647:24;11562:109;:156;;;;-1:-1:-1;;;;;;11697:21:0;;;;;;:17;:21;;;;;;;;11696:22;11562:156;11536:485;;;11794:10;;11780;;11765:25;;:12;:25;:::i;:::-;:39;11761:241;;-1:-1:-1;;;;;11838:14:0;;;;;;:10;:14;;;;;;;;11833:98;;11885:9;:18;;;;;;;-1:-1:-1;11885:18:0;;;;;;;;-1:-1:-1;;;;;;11885:18:0;-1:-1:-1;;;;;11885:18:0;;;;;11833:98;-1:-1:-1;;;;;11957:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;11957:21:0;11974:4;11957:21;;;11761:241;12062:13;;-1:-1:-1;;;;;12056:19:0;;;12062:13;;12056:19;12052:559;;12108:13;;-1:-1:-1;;;;;12100:21:0;;;12108:13;;12100:21;:38;;;;-1:-1:-1;12125:13:0;;-1:-1:-1;;;12125:13:0;;;;12100:38;12096:333;;;12205:9;12197:18;;;;:7;:18;;;;;;12230:15;;12197:30;;12218:9;12197:30;:::i;:::-;:48;:122;;;;-1:-1:-1;;;;;;12278:11:0;;;;;;:7;:11;;;;;;12304:15;;12278:23;;12292:9;12278:23;:::i;:::-;:41;12197:122;12163:246;;;;-1:-1:-1;;;12163:246:0;;13763:2:1;12163:246:0;;;13745:21:1;13802:2;13782:18;;;13775:30;13841:34;13821:18;;;13814:62;-1:-1:-1;;;13892:18:1;;;13885:36;13938:19;;12163:246:0;13561:402:1;12163:246:0;12502:14;;12493:6;12477:13;12487:2;-1:-1:-1;;;;;7973:18:0;7946:7;7973:18;;;:9;:18;;;;;;;7880:119;12477:13;:22;;;;:::i;:::-;:39;12447:148;;;;-1:-1:-1;;;12447:148:0;;14170:2:1;12447:148:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:33;14342:19;;12447:148:0;13968:399:1;12447:148:0;12676:4;12627:28;7973:18;;;:9;:18;;;;;;12736:19;;12712:43;;;;;12772:126;;12863:19;;12840:42;;12772:126;12918:7;:18;;;;-1:-1:-1;12930:6:0;;-1:-1:-1;;;12930:6:0;;;;12929:7;12918:18;:43;;;;-1:-1:-1;12948:13:0;;-1:-1:-1;;;;;12940:21:0;;;12948:13;;12940:21;;12918:43;:58;;;;-1:-1:-1;12965:11:0;;-1:-1:-1;;;12965:11:0;;;;12918:58;12914:378;;;12997:38;13014:20;12997:16;:38::i;:::-;13125:21;13169:28;;13165:112;;13222:35;13235:21;13222:12;:35::i;:::-;12978:314;12914:378;11194:2109;;11136:2167;-1:-1:-1;;;;;13393:24:0;;13315:12;13393:24;;;:18;:24;;;;;;13330:4;;13393:24;;;:50;;-1:-1:-1;;;;;;13421:22:0;;;;;;:18;:22;;;;;;;;13393:50;13392:115;;;-1:-1:-1;13470:13:0;;-1:-1:-1;;;;;13462:21:0;;;13470:13;;13462:21;;;;:44;;-1:-1:-1;13493:13:0;;-1:-1:-1;;;;;13487:19:0;;;13493:13;;13487:19;;13462:44;13374:537;;;-1:-1:-1;13544:5:0;13374:537;;;13626:13;;-1:-1:-1;;;;;13618:21:0;;;13626:13;;13618:21;:55;;;;-1:-1:-1;13657:15:0;;-1:-1:-1;;;;;13643:30:0;;;13657:15;;13643:30;;13618:55;13614:118;;;13704:12;;13694:7;:22;13614:118;13791:13;;-1:-1:-1;;;;;13785:19:0;;;13791:13;;13785:19;:55;;;;-1:-1:-1;13824:15:0;;-1:-1:-1;;;;;13808:32:0;;;13824:15;;13808:32;;13785:55;13781:119;;;13871:13;;13861:7;:23;13781:119;13929:9;13921:18;;;;:7;:18;;;;;;13942:15;13921:36;;;;-1:-1:-1;;;;;13968:11:0;;;;;;:29;14008:41;14023:4;13976:2;14033:6;14041:7;14008:14;:41::i;:::-;10894:3163;10791:3266;;;:::o;2890:224::-;3010:7;3046:12;3038:6;;;;3030:29;;;;-1:-1:-1;;;3030:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3070:9:0;3082:5;3086:1;3082;:5;:::i;:::-;3070:17;2890:224;-1:-1:-1;;;;;2890:224:0:o;16952:401::-;17116:90;;;;;;;;;;;-1:-1:-1;;;17116:90:0;;;;;;;;-1:-1:-1;;;;;17116:17:0;;17079:4;17116:17;;;:9;:17;;;;;;;:90;;17152:6;;17116:21;:90::i;:::-;-1:-1:-1;;;;;17096:17:0;;;;;;;:9;:17;;;;;;:110;;;;17240:20;;;;;;;:32;;17265:6;17240:24;:32::i;:::-;-1:-1:-1;;;;;17217:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17288:35;;;;;;-1:-1:-1;;;;;;;;;;;17288:35:0;;;17316:6;3294:25:1;;3282:2;3267:18;;3148:177;17288:35:0;;;;;;;;-1:-1:-1;17341:4:0;16952:401;;;;;:::o;2559:179::-;2617:7;;2649:5;2653:1;2649;:5;:::i;:::-;2637:17;;2678:1;2673;:6;;2665:46;;;;-1:-1:-1;;;2665:46:0;;14574:2:1;2665:46:0;;;14556:21:1;14613:2;14593:18;;;14586:30;14652:29;14632:18;;;14625:57;14699:18;;2665:46:0;14372:351:1;2665:46:0;2729:1;2559:179;-1:-1:-1;;;2559:179:0:o;2015:191::-;2089:16;2108:6;;-1:-1:-1;;;;;2125:17:0;;;-1:-1:-1;;;;;;2125:17:0;;;;;;2158:40;;2108:6;;;;;;;2158:40;;2089:16;2158:40;2078:128;2015:191;:::o;14065:699::-;6590:6;:13;;-1:-1:-1;;;;6590:13:0;-1:-1:-1;;;6590:13:0;;;;14160:28:::1;14184:3;14160:19;:11:::0;14176:2:::1;14160:15;:19::i;:::-;:23:::0;::::1;:28::i;:::-;14143:45:::0;-1:-1:-1;14199:14:0::1;14216:20;14143:45:::0;14216:11;:20:::1;:::i;:::-;14329:16;::::0;;14343:1:::1;14329:16:::0;;;;;::::1;::::0;;14199:37;;-1:-1:-1;14271:21:0::1;::::0;14247::::1;::::0;14329:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14329:16:0::1;14305:40;;14374:4;14356;14361:1;14356:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14356:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14400:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14400:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14356:7;;14400:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14390:4;14395:1;14390:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14390:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14433:15:::1;::::0;:191:::1;::::0;-1:-1:-1;;;14433:191:0;;:15;::::1;::::0;:66:::1;::::0;:191:::1;::::0;14514:6;;14433:15:::1;::::0;14551:4;;14578::::1;::::0;14598:15:::1;::::0;14433:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14635:17;14655:40;14681:13;14655:21;:25;;:40;;;;:::i;:::-;14635:60:::0;-1:-1:-1;14708:48:0::1;14721:6:::0;14729:26:::1;14751:3;14729:17;14635:60:::0;14743:2:::1;14729:13;:17::i;:26::-;14708:12;:48::i;:::-;-1:-1:-1::0;;6626:6:0;:14;;-1:-1:-1;;;;6626:14:0;;;-1:-1:-1;;;;14065:699:0:o;14772:152::-;14848:17;;:41;;14830:12;;-1:-1:-1;;;;;14848:17:0;;14878:6;;14830:12;14848:41;14830:12;14848:41;14878:6;14848:17;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14829:60;;;14908:7;14900:16;;;;;15909:317;16065:7;16060:159;;16089:41;16104:6;16112:9;16123:6;16089:14;:41::i;:::-;;16060:159;;;16163:44;16181:6;16189:9;16200:6;16163:17;:44::i;3122:246::-;3180:7;3204:1;3209;3204:6;3200:47;;-1:-1:-1;3234:1:0;3227:8;;3200:47;3257:9;3269:5;3273:1;3269;:5;:::i;:::-;3257:17;-1:-1:-1;3302:1:0;3293:5;3297:1;3257:17;3293:5;:::i;:::-;:10;3285:56;;;;-1:-1:-1;;;3285:56:0;;15912:2:1;3285:56:0;;;15894:21:1;15951:2;15931:18;;;15924:30;15990:34;15970:18;;;15963:62;-1:-1:-1;;;16041:18:1;;;16034:31;16082:19;;3285:56:0;15710:397:1;3376:132:0;3434:7;3461:39;3465:1;3468;3461:39;;;;;;;;;;;;;;;;;:3;:39::i;2746:136::-;2804:7;2831:43;2835:1;2838;2831:43;;;;;;;;;;;;;;;;;:3;:43::i;14932:374::-;15043:15;;:255;;-1:-1:-1;;;15043:255:0;;15115:4;15043:255;;;16453:34:1;16503:18;;;16496:34;;;15043:15:0;16546:18:1;;;16539:34;;;16589:18;;;16582:34;;;16632:19;;;16625:44;15272:15:0;16685:19:1;;;16678:35;-1:-1:-1;;;;;15043:15:0;;;;:31;;15082:9;;16387:19:1;;15043:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16502:442::-;16633:22;16658:24;16667:6;16675;16658:8;:24::i;:::-;16633:49;;16713:90;16749:6;16713:90;;;;;;;;;;;;;-1:-1:-1;;;16713:90:0;;;:9;:17;16723:6;-1:-1:-1;;;;;16713:17:0;-1:-1:-1;;;;;16713:17:0;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;-1:-1:-1;;;;;16693:17:0;;;;;;;:9;:17;;;;;;:110;;;;16837:20;;;;;;;:40;;16862:14;16837:24;:40::i;:::-;-1:-1:-1;;;;;16814:20:0;;;;;;;:9;:20;;;;;;;:63;;;;16893:43;;;;;;-1:-1:-1;;;;;;;;;;;16893:43:0;;;16921:14;3294:25:1;;3282:2;3267:18;;3148:177;16893:43:0;;;;;;;;16622:322;16502:442;;;:::o;3516:223::-;3636:7;3671:12;3664:5;3656:28;;;;-1:-1:-1;;;3656:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3695:9:0;3707:5;3711:1;3707;:5;:::i;17361:341::-;17447:7;17472:17;17492:28;17516:3;17492:19;17503:7;;17492:6;:10;;:19;;;;:::i;:28::-;17576:4;17558:24;;;;:9;:24;;;;;;17472:48;;-1:-1:-1;17558:39:0;;17472:48;17558:28;:39::i;:::-;17549:4;17531:24;;;;:9;:24;;;;;;;:66;;;;17613:42;;-1:-1:-1;;;;;17613:42:0;;;-1:-1:-1;;;;;;;;;;;17613:42:0;;;17645:9;3294:25:1;;3282:2;3267:18;;3148:177;17613:42:0;;;;;;;;17673:21;:6;17684:9;17673:10;:21::i;:::-;17666:28;17361:341;-1:-1:-1;;;;17361:341:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;2661:248::-;2729:6;2737;2790:2;2778:9;2769:7;2765:23;2761:32;2758:52;;;2806:1;2803;2796:12;2758:52;-1:-1:-1;;2829:23:1;;;2899:2;2884:18;;;2871:32;;-1:-1:-1;2661:248:1:o;3330:456::-;3407:6;3415;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3550:31;3575:5;3550:31;:::i;:::-;3600:5;-1:-1:-1;3657:2:1;3642:18;;3629:32;3670:33;3629:32;3670:33;:::i;:::-;3330:456;;3722:7;;-1:-1:-1;;;3776:2:1;3761:18;;;;3748:32;;3330:456::o;3791:118::-;3877:5;3870:13;3863:21;3856:5;3853:32;3843:60;;3899:1;3896;3889:12;3914:241;3970:6;4023:2;4011:9;4002:7;3998:23;3994:32;3991:52;;;4039:1;4036;4029:12;3991:52;4078:9;4065:23;4097:28;4119:5;4097:28;:::i;4557:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;-1:-1:-1;4708:23:1;;4557:180;-1:-1:-1;4557:180:1:o;4742:382::-;4807:6;4815;4868:2;4856:9;4847:7;4843:23;4839:32;4836:52;;;4884:1;4881;4874:12;4836:52;4923:9;4910:23;4942:31;4967:5;4942:31;:::i;:::-;4992:5;-1:-1:-1;5049:2:1;5034:18;;5021:32;5062:30;5021:32;5062:30;:::i;:::-;5111:7;5101:17;;;4742:382;;;;;:::o;5129:367::-;5192:8;5202:6;5256:3;5249:4;5241:6;5237:17;5233:27;5223:55;;5274:1;5271;5264:12;5223:55;-1:-1:-1;5297:20:1;;5340:18;5329:30;;5326:50;;;5372:1;5369;5362:12;5326:50;5409:4;5401:6;5397:17;5385:29;;5469:3;5462:4;5452:6;5449:1;5445:14;5437:6;5433:27;5429:38;5426:47;5423:67;;;5486:1;5483;5476:12;5423:67;5129:367;;;;;:::o;5501:773::-;5623:6;5631;5639;5647;5700:2;5688:9;5679:7;5675:23;5671:32;5668:52;;;5716:1;5713;5706:12;5668:52;5756:9;5743:23;5785:18;5826:2;5818:6;5815:14;5812:34;;;5842:1;5839;5832:12;5812:34;5881:70;5943:7;5934:6;5923:9;5919:22;5881:70;:::i;:::-;5970:8;;-1:-1:-1;5855:96:1;-1:-1:-1;6058:2:1;6043:18;;6030:32;;-1:-1:-1;6074:16:1;;;6071:36;;;6103:1;6100;6093:12;6071:36;;6142:72;6206:7;6195:8;6184:9;6180:24;6142:72;:::i;:::-;5501:773;;;;-1:-1:-1;6233:8:1;-1:-1:-1;;;;5501:773:1:o;6279:247::-;6338:6;6391:2;6379:9;6370:7;6366:23;6362:32;6359:52;;;6407:1;6404;6397:12;6359:52;6446:9;6433:23;6465:31;6490:5;6465:31;:::i;6531:388::-;6599:6;6607;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;6715:9;6702:23;6734:31;6759:5;6734:31;:::i;:::-;6784:5;-1:-1:-1;6841:2:1;6826:18;;6813:32;6854:33;6813:32;6854:33;:::i;6924:354::-;7126:2;7108:21;;;7165:2;7145:18;;;7138:30;7204:32;7199:2;7184:18;;7177:60;7269:2;7254:18;;6924:354::o;7283:127::-;7344:10;7339:3;7335:20;7332:1;7325:31;7375:4;7372:1;7365:15;7399:4;7396:1;7389:15;7415:127;7476:10;7471:3;7467:20;7464:1;7457:31;7507:4;7504:1;7497:15;7531:4;7528:1;7521:15;7547:135;7586:3;7607:17;;;7604:43;;7627:18;;:::i;:::-;-1:-1:-1;7674:1:1;7663:13;;7547:135::o;7897:125::-;7937:4;7965:1;7962;7959:8;7956:34;;;7970:18;;:::i;:::-;-1:-1:-1;8007:9:1;;7897:125::o;8027:251::-;8097:6;8150:2;8138:9;8129:7;8125:23;8121:32;8118:52;;;8166:1;8163;8156:12;8118:52;8198:9;8192:16;8217:31;8242:5;8217:31;:::i;8283:461::-;8336:3;8374:5;8368:12;8401:6;8396:3;8389:19;8427:4;8456:2;8451:3;8447:12;8440:19;;8493:2;8486:5;8482:14;8514:1;8524:195;8538:6;8535:1;8532:13;8524:195;;;8603:13;;-1:-1:-1;;;;;8599:39:1;8587:52;;8659:12;;;;8694:15;;;;8635:1;8553:9;8524:195;;;-1:-1:-1;8735:3:1;;8283:461;-1:-1:-1;;;;;8283:461:1:o;8749:590::-;9056:6;9045:9;9038:25;9099:6;9094:2;9083:9;9079:18;9072:34;9142:3;9137:2;9126:9;9122:18;9115:31;9019:4;9163:57;9215:3;9204:9;9200:19;9192:6;9163:57;:::i;:::-;-1:-1:-1;;;;;9256:32:1;;;;9251:2;9236:18;;9229:60;-1:-1:-1;9320:3:1;9305:19;9298:35;9155:65;8749:590;-1:-1:-1;;;8749:590:1:o;9623:245::-;9690:6;9743:2;9731:9;9722:7;9718:23;9714:32;9711:52;;;9759:1;9756;9749:12;9711:52;9791:9;9785:16;9810:28;9832:5;9810:28;:::i;13428:128::-;13468:3;13499:1;13495:6;13492:1;13489:13;13486:39;;;13505:18;;:::i;:::-;-1:-1:-1;13541:9:1;;13428:128::o;15315:168::-;15355:7;15421:1;15417;15413:6;15409:14;15406:1;15403:21;15398:1;15391:9;15384:17;15380:45;15377:71;;;15428:18;;:::i;:::-;-1:-1:-1;15468:9:1;;15315:168::o;15488:217::-;15528:1;15554;15544:132;;15598:10;15593:3;15589:20;15586:1;15579:31;15633:4;15630:1;15623:15;15661:4;15658:1;15651:15;15544:132;-1:-1:-1;15690:9:1;;15488:217::o;16724:306::-;16812:6;16820;16828;16881:2;16869:9;16860:7;16856:23;16852:32;16849:52;;;16897:1;16894;16887:12;16849:52;16926:9;16920:16;16910:26;;16976:2;16965:9;16961:18;16955:25;16945:35;;17020:2;17009:9;17005:18;16999:25;16989:35;;16724:306;;;;;:::o
Swarm Source
ipfs://3b0176fbfb801c5a6c317a6132390387be46e1a0fb19f9154b130dcf220183d3
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.