Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 DROGE
Holders
18
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
15,920,000 DROGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Droge
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-27 */ /* $$$$$$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$ _____| $$ | $$ |$$ | $$ |$$ / $$ |$$ / \__|$$ | $$ | $$ |$$$$$$$ |$$ | $$ |$$ |$$$$\ $$$$$\ $$ | $$ |$$ __$$< $$ | $$ |$$ |\_$$ |$$ __| $$ | $$ |$$ | $$ |$$ | $$ |$$ | $$ |$$ | $$$$$$$ |$$ | $$ | $$$$$$ |\$$$$$$ |$$$$$$$$\ \_______/ \__| \__| \______/ \______/ \________| Website : http://www.drogecoin.com/ Telegram : https://t.me/drogeportal X/Twitter: https://twitter.com/DrogeETH */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; //GAS OPTIMIZED ERROR MESSAGES error ERC20InvalidSender(address sender); error ERC20InvalidReceiver(address receiver); error ERC20InvalidApprover(address approver); error ERC20InvalidSpender(address spender); error ERC20TransferFailed(); error ERC20ZeroTransfer(); error PaymentFailed(); 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; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IDexSwapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexSwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Droge is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Droge"; string private _symbol = "DROGE"; uint8 private _decimals = 9; uint256 public buyTax; uint256 public sellTax; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWlAddress; uint256 private _totalSupply = 1_000_000_000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _walletMax = _totalSupply.mul(3).div(100); uint256 public swapThreshold = _totalSupply.mul(1).div(100); address public marketingWallet; bool public swapEnabled = true; bool public swapbylimit = true; bool public EnableTxLimit = true; bool public EnableWalletLimit = true; IDexSwapRouter public dexRouter; address public dexPair; bool public tradingEnable; bool public transferSniperProtection; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event SwapTokensForETH( uint256 amountIn, address[] path ); constructor() { marketingWallet = msg.sender; IDexSwapRouter _dexRouter = IDexSwapRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexPair = IDexSwapFactory(_dexRouter.factory()) .createPair(address(this), _dexRouter.WETH()); dexRouter = _dexRouter; isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[address(0xdead)] = true; isWalletLimitExempt[address(dexPair)] = true; isWlAddress[address(msg.sender)] = true; isWlAddress[address(this)] = true; isTxLimitExempt[address(0xdead)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(dexPair)] = true; buyTax = 30; sellTax = 30; transferSniperProtection = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view 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 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 _approve(address owner, address spender, uint256 amount) private { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } //to recieve ETH from Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, 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: Exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { if (sender == address(0)) { revert ERC20InvalidSender(address(0)); } if (recipient == address(0)) { revert ERC20InvalidReceiver(address(0)); } if(amount == 0) { revert ERC20ZeroTransfer(); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } else { if (!isWlAddress[sender] && !isWlAddress[recipient]) { if(!tradingEnable) { revert ERC20TransferFailed(); } } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold; if ( overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled && !isExcludedFromFee[sender] && !isExcludedFromFee[recipient] ) { swapBack(contractTokenBalance); } if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) { require(amount <= _maxTxAmount, "Exceeds maxTxAmount"); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(EnableWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(isMarketPair[sender]) { feeAmount = amount.mul(buyTax).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(sellTax).div(100); } else if (transferSniperProtection) { feeAmount = amount.mul(99).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } function swapBack(uint contractBalance) internal swapping { if(swapbylimit) contractBalance = swapThreshold; uint256 initialBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 amountReceived = address(this).balance.sub(initialBalance); if(amountReceived > 0) payable(marketingWallet).transfer(amountReceived); } function enableTrading() external onlyOwner { require(!tradingEnable, "Trade Enabled!"); tradingEnable = true; } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function rescueFunds() external { require(msg.sender == marketingWallet,"Unauthorized"); (bool os,) = payable(marketingWallet).call{value: address(this).balance}(""); require(os,"Transaction Failed!!"); } function rescueTokens(address _token,uint _amount) external { require(msg.sender == marketingWallet,"Unauthorized"); (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)', marketingWallet, _amount)); require(success, 'Token payment failed'); } function setBuyFee(uint _buySide, uint _sellSide) external onlyOwner { buyTax = _buySide; sellTax = _sellSide; } function removeLimits() external onlyOwner { EnableTxLimit = false; EnableWalletLimit = false; } function transferProtection(bool _status) external onlyOwner { transferSniperProtection = _status; } function updateSetting(address[] calldata _adr, bool _status) external onlyOwner { for(uint i = 0; i < _adr.length; i++){ isWlAddress[_adr[i]] = _status; } } function excludeFromFee(address _adr,bool _status) external onlyOwner { isExcludedFromFee[_adr] = _status; } function excludeWalletLimit(address _adr,bool _status) external onlyOwner { isWalletLimitExempt[_adr] = _status; } function excludeTxLimit(address _adr,bool _status) external onlyOwner { isTxLimitExempt[_adr] = _status; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setTxLimit(uint256 newLimit) external onlyOwner() { _maxTxAmount = newLimit; } function setMarketingWallet(address _newWallet) external onlyOwner { marketingWallet = _newWallet; } function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited) external onlyOwner { swapEnabled = _enabled; swapbylimit = _limited; swapThreshold = _threshold; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20TransferFailed","type":"error"},{"inputs":[],"name":"ERC20ZeroTransfer","type":"error"},{"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWlAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buySide","type":"uint256"},{"internalType":"uint256","name":"_sellSide","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bool","name":"_status","type":"bool"}],"name":"transferProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferSniperProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600560809081526444726f676560d81b60a05260019062000026908262000616565b5060408051808201909152600581526444524f474560d81b602082015260029062000052908262000616565b506003805460ff191660099081179091556200007090600a620007ef565b6200008090633b9aca00620007ff565b600d819055620000a1906064906200009a90600262000413565b90620004a6565b600e55600d54620000bc906064906200009a90600362000413565b600f55600d54620000d7906064906200009a90600162000413565b6010556011805463ffffffff60a01b1916630101010160a01b179055348015620000ff575f80fd5b506200010b33620004ef565b601180546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200016f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000195919062000819565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000207919062000819565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000252573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000278919062000819565b601380546001600160a01b03199081166001600160a01b0393841617825560128054909116848416179055305f818152600860209081526040808320805460ff199081166001908117909255338086528386208054831684179055600a8552838620805483168417905586865283862080548316841790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548316841790558754891686528386208054831684179055808652600c855283862080548316841790558686528386208054831684179055600b85527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34158054831684179055808652838620805483168417905595855282852080548216831790558654909716845260098352818420805490971617909555601e60048190556005558354600160a81b60ff60a81b1990911617909355600d54828252600684528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620008af565b5f825f036200042457505f620004a0565b5f620004318385620007ff565b90508262000440858362000841565b146200049d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200049d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200053e60201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620005615760405162461bcd60e51b815260040162000494919062000861565b505f6200056f848662000841565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005a157607f821691505b602082108103620005c057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200061157805f5260205f20601f840160051c81016020851015620005ed5750805b601f840160051c820191505b818110156200060e575f8155600101620005f9565b50505b505050565b81516001600160401b0381111562000632576200063262000578565b6200064a816200064384546200058c565b84620005c6565b602080601f83116001811462000680575f8415620006685750858301515b5f19600386901b1c1916600185901b178555620006da565b5f85815260208120601f198616915b82811015620006b0578886015182559484019460019091019084016200068f565b5085821015620006ce57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200073657815f19048211156200071a576200071a620006e2565b808516156200072857918102915b93841c9390800290620006fb565b509250929050565b5f826200074e57506001620004a0565b816200075c57505f620004a0565b81600181146200077557600281146200078057620007a0565b6001915050620004a0565b60ff841115620007945762000794620006e2565b50506001821b620004a0565b5060208310610133831016604e8410600b8410161715620007c5575081810a620004a0565b620007d18383620006f6565b805f1904821115620007e757620007e7620006e2565b029392505050565b5f6200049d60ff8416836200073e565b8082028115828204841417620004a057620004a0620006e2565b5f602082840312156200082a575f80fd5b81516001600160a01b03811681146200049d575f80fd5b5f826200085c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b818110156200088f5785810183015185820160400152820162000871565b505f604082860101526040601f19601f8301168501019250505092915050565b61205a80620008bd5f395ff3fe60806040526004361061026d575f3560e01c8063751039fc1161014a578063ae85ade6116100be578063e6b2603b11610078578063e6b2603b1461078f578063e9fd3394146107a3578063ea1ce5a8146107c3578063f242ab41146107e3578063f2fde38b14610802578063fb0ecfa414610821575f80fd5b8063ae85ade6146106ab578063b94b0aef146106ca578063c867d60b146106e9578063cc1776d314610717578063dd62ed3e1461072c578063df8408fe14610770575f80fd5b80638b42507f1161010f5780638b42507f146105ef5780638da5cb5b1461061d57806395d89b411461063957806395fc8fdf1461064d5780639a2129431461066c578063a9059cbb1461068c575f80fd5b8063751039fc1461057e57806375f0a874146105925780637d1db4a5146105b1578063807c2d9c146105c65780638a8c523c146105db575f80fd5b80635342acb4116101e15780635e42358c116101a65780635e42358c146104b8578063651a8987146104d85780636ddd1713146104f757806370a0823114610517578063715018a61461054b578063728d41c91461055f575f80fd5b80635342acb4146103ff578063573761981461042d5780635c85974f1461044c5780635d098b381461046b5780635da0a4671461048a575f80fd5b806318160ddd1161023257806318160ddd14610347578063230358521461035b57806323b872dd1461037c578063313ce5671461039b5780633ecad271146103bc5780634f7041a5146103ea575f80fd5b80630445b6671461027857806306fdde03146102a05780630758d924146102c1578063095ea7b3146102f85780631693e8d414610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60105481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b4610840565b6040516102979190611c1b565b3480156102cc575f80fd5b506012546102e0906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610303575f80fd5b50610317610312366004611c61565b6108d0565b6040519015158152602001610297565b348015610332575f80fd5b5060135461031790600160a01b900460ff1681565b348015610352575f80fd5b50600d5461028d565b348015610366575f80fd5b5061037a610375366004611c9f565b6108e6565b005b348015610387575f80fd5b50610317610396366004611cb8565b610936565b3480156103a6575f80fd5b5060035460405160ff9091168152602001610297565b3480156103c7575f80fd5b506103176103d6366004611cf6565b60096020525f908152604090205460ff1681565b3480156103f5575f80fd5b5061028d60045481565b34801561040a575f80fd5b50610317610419366004611cf6565b60086020525f908152604090205460ff1681565b348015610438575f80fd5b5061037a610447366004611c61565b6109dd565b348015610457575f80fd5b5061037a610466366004611d11565b610b0b565b348015610476575f80fd5b5061037a610485366004611cf6565b610b39565b348015610495575f80fd5b506103176104a4366004611cf6565b600c6020525f908152604090205460ff1681565b3480156104c3575f80fd5b5060115461031790600160b01b900460ff1681565b3480156104e3575f80fd5b5061037a6104f2366004611d28565b610b84565b348015610502575f80fd5b5060115461031790600160a01b900460ff1681565b348015610522575f80fd5b5061028d610531366004611cf6565b6001600160a01b03165f9081526006602052604090205490565b348015610556575f80fd5b5061037a610bd7565b34801561056a575f80fd5b5061037a610579366004611d11565b610c0b565b348015610589575f80fd5b5061037a610c39565b34801561059d575f80fd5b506011546102e0906001600160a01b031681565b3480156105bc575f80fd5b5061028d600e5481565b3480156105d1575f80fd5b5061028d600f5481565b3480156105e6575f80fd5b5061037a610c72565b3480156105fa575f80fd5b50610317610609366004611cf6565b600b6020525f908152604090205460ff1681565b348015610628575f80fd5b505f546001600160a01b03166102e0565b348015610644575f80fd5b506102b4610cfb565b348015610658575f80fd5b5061037a610667366004611d5b565b610d0a565b348015610677575f80fd5b5060115461031790600160b81b900460ff1681565b348015610697575f80fd5b506103176106a6366004611c61565b610d9d565b3480156106b6575f80fd5b5061037a6106c5366004611d28565b610da9565b3480156106d5575f80fd5b5061037a6106e4366004611dd8565b610dfc565b3480156106f4575f80fd5b50610317610703366004611cf6565b600a6020525f908152604090205460ff1681565b348015610722575f80fd5b5061028d60055481565b348015610737575f80fd5b5061028d610746366004611e08565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561077b575f80fd5b5061037a61078a366004611d28565b610e5c565b34801561079a575f80fd5b5061037a610eaf565b3480156107ae575f80fd5b5060115461031790600160a81b900460ff1681565b3480156107ce575f80fd5b5060135461031790600160a81b900460ff1681565b3480156107ee575f80fd5b506013546102e0906001600160a01b031681565b34801561080d575f80fd5b5061037a61081c366004611cf6565b610f92565b34801561082c575f80fd5b5061037a61083b366004611e3f565b611029565b60606001805461084f90611e5f565b80601f016020809104026020016040519081016040528092919081815260200182805461087b90611e5f565b80156108c65780601f1061089d576101008083540402835291602001916108c6565b820191905f5260205f20905b8154815290600101906020018083116108a957829003601f168201915b5050505050905090565b5f6108dc33848461105d565b5060015b92915050565b5f546001600160a01b031633146109185760405162461bcd60e51b815260040161090f90611e97565b60405180910390fd5b60138054911515600160a81b0260ff60a81b19909216919091179055565b5f61094284848461110f565b506109d284336109cd856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060075f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6109ad3390565b6001600160a01b0316815260208101919091526040015f2054919061152b565b61105d565b5060015b9392505050565b6011546001600160a01b03163314610a265760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040516001600160a01b039182166024820152604481018390525f9184169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610a809190611ecc565b5f604051808303815f865af19150503d805f8114610ab9576040519150601f19603f3d011682016040523d82523d5f602084013e610abe565b606091505b5050905080610b065760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161090f565b505050565b5f546001600160a01b03163314610b345760405162461bcd60e51b815260040161090f90611e97565b600e55565b5f546001600160a01b03163314610b625760405162461bcd60e51b815260040161090f90611e97565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610bad5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c005760405162461bcd60e51b815260040161090f90611e97565b610c095f611563565b565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260040161090f90611e97565b600f55565b5f546001600160a01b03163314610c625760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60b01b19169055565b5f546001600160a01b03163314610c9b5760405162461bcd60e51b815260040161090f90611e97565b601354600160a01b900460ff1615610ce65760405162461bcd60e51b815260206004820152600e60248201526d547261646520456e61626c65642160901b604482015260640161090f565b6013805460ff60a01b1916600160a01b179055565b60606002805461084f90611e5f565b5f546001600160a01b03163314610d335760405162461bcd60e51b815260040161090f90611e97565b5f5b82811015610d975781600c5f868685818110610d5357610d53611ee7565b9050602002016020810190610d689190611cf6565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d35565b50505050565b5f6109d233848461110f565b5f546001600160a01b03163314610dd25760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e255760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055601055565b5f546001600160a01b03163314610e855760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610ef85760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f42576040519150601f19603f3d011682016040523d82523d5f602084013e610f47565b606091505b5050905080610f8f5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161090f565b50565b5f546001600160a01b03163314610fbb5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b0381166110205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090f565b610f8f81611563565b5f546001600160a01b031633146110525760405162461bcd60e51b815260040161090f90611e97565b600491909155600555565b6001600160a01b0383166110865760405163e602df0560e01b81525f600482015260240161090f565b6001600160a01b0382166110af57604051634a1406b160e11b81525f600482015260240161090f565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b03841661113957604051634b637e8f60e11b81525f600482015260240161090f565b6001600160a01b0383166111625760405163ec442f0560e01b81525f600482015260240161090f565b815f03611182576040516367c8957760e01b815260040160405180910390fd5b601354600160b01b900460ff16156111a65761119f8484846115b2565b90506109d6565b6001600160a01b0384165f908152600c602052604090205460ff161580156111e657506001600160a01b0383165f908152600c602052604090205460ff16155b1561121557601354600160a01b900460ff1661121557604051633c9fd93960e21b815260040160405180910390fd5b305f90815260066020526040902054601054811080159081906112425750601354600160b01b900460ff16155b801561126657506001600160a01b0386165f9081526009602052604090205460ff16155b801561127b5750601154600160a01b900460ff165b801561129f57506001600160a01b0386165f9081526008602052604090205460ff16155b80156112c357506001600160a01b0385165f9081526008602052604090205460ff16155b156112d1576112d182611695565b6001600160a01b0386165f908152600b602052604090205460ff1615801561131157506001600160a01b0385165f908152600b602052604090205460ff16155b80156113265750601154600160b01b900460ff165b1561137357600e548411156113735760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161090f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600690915291909120546113c491869061152b565b6001600160a01b0387165f908152600660205260408120919091556113e98787611727565b6113fd576113f88787876117c1565b6113ff565b845b601154909150600160b81b900460ff16801561143357506001600160a01b0386165f908152600a602052604090205460ff16155b156114a257600f546114638261145d896001600160a01b03165f9081526006602052604090205490565b906118eb565b11156114a25760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161090f565b6001600160a01b0386165f908152600660205260409020546114c490826118eb565b6001600160a01b038088165f8181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600193505050506109d6565b5f818484111561154e5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486611f0f565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461160291849061152b565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461163090836118eb565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116839086815260200190565b60405180910390a35060019392505050565b6013805460ff60b01b1916600160b01b179055601154600160a81b900460ff16156116bf57506010545b476116c982611949565b5f6116d44783611ad2565b90508015611715576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611713573d5f803e3d5ffd5b505b50506013805460ff60b01b1916905550565b6001600160a01b0382165f9081526008602052604081205460ff168061176457506001600160a01b0382165f9081526008602052604090205460ff165b15611771575060016108e0565b6001600160a01b0383165f9081526009602052604090205460ff16806117ae57506001600160a01b0382165f9081526009602052604090205460ff165b156117ba57505f6108e0565b505f6108e0565b6001600160a01b0383165f90815260096020526040812054819060ff161561180a5761180360646117fd60045486611b1390919063ffffffff16565b90611b91565b9050611869565b6001600160a01b0384165f9081526009602052604090205460ff16156118445761180360646117fd60055486611b1390919063ffffffff16565b601354600160a81b900460ff16156118695761186660646117fd856063611b13565b90505b80156118e157305f9081526006602052604090205461188890826118eb565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d89085815260200190565b60405180910390a35b61155a8382611ad2565b5f806118f78385611f22565b9050838110156109d65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061197c5761197c611ee7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f79190611f35565b81600181518110611a0a57611a0a611ee7565b6001600160a01b039283166020918202929092010152601254611a30913091168461105d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a689085905f90869030904290600401611f93565b5f604051808303815f87803b158015611a7f575f80fd5b505af1158015611a91573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ac6929190611fce565b60405180910390a15050565b5f6109d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152b565b5f825f03611b2257505f6108e0565b5f611b2d8385611fee565b905082611b3a8583612005565b146109d65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090f565b5f6109d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611bed5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486612005565b5f5b83811015611c13578181015183820152602001611bfb565b50505f910152565b602081525f8251806020840152611c39816040850160208701611bf9565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610f8f575f80fd5b5f8060408385031215611c72575f80fd5b8235611c7d81611c4d565b946020939093013593505050565b80358015158114611c9a575f80fd5b919050565b5f60208284031215611caf575f80fd5b6109d682611c8b565b5f805f60608486031215611cca575f80fd5b8335611cd581611c4d565b92506020840135611ce581611c4d565b929592945050506040919091013590565b5f60208284031215611d06575f80fd5b81356109d681611c4d565b5f60208284031215611d21575f80fd5b5035919050565b5f8060408385031215611d39575f80fd5b8235611d4481611c4d565b9150611d5260208401611c8b565b90509250929050565b5f805f60408486031215611d6d575f80fd5b833567ffffffffffffffff80821115611d84575f80fd5b818601915086601f830112611d97575f80fd5b813581811115611da5575f80fd5b8760208260051b8501011115611db9575f80fd5b602092830195509350611dcf9186019050611c8b565b90509250925092565b5f805f60608486031215611dea575f80fd5b83359250611dfa60208501611c8b565b9150611dcf60408501611c8b565b5f8060408385031215611e19575f80fd5b8235611e2481611c4d565b91506020830135611e3481611c4d565b809150509250929050565b5f8060408385031215611e50575f80fd5b50508035926020909101359150565b600181811c90821680611e7357607f821691505b602082108103611e9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8251611edd818460208701611bf9565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108e0576108e0611efb565b808201808211156108e0576108e0611efb565b5f60208284031215611f45575f80fd5b81516109d681611c4d565b5f815180845260208085019450602084015f5b83811015611f885781516001600160a01b031687529582019590820190600101611f63565b509495945050505050565b85815284602082015260a060408201525f611fb160a0830186611f50565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611fe66040830184611f50565b949350505050565b80820281158282048414176108e0576108e0611efb565b5f8261201f57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122091293c4b44ab751f128846da5aba295384e51b8f340619c3a6ce7d5e25fbe52564736f6c63430008160033
Deployed Bytecode
0x60806040526004361061026d575f3560e01c8063751039fc1161014a578063ae85ade6116100be578063e6b2603b11610078578063e6b2603b1461078f578063e9fd3394146107a3578063ea1ce5a8146107c3578063f242ab41146107e3578063f2fde38b14610802578063fb0ecfa414610821575f80fd5b8063ae85ade6146106ab578063b94b0aef146106ca578063c867d60b146106e9578063cc1776d314610717578063dd62ed3e1461072c578063df8408fe14610770575f80fd5b80638b42507f1161010f5780638b42507f146105ef5780638da5cb5b1461061d57806395d89b411461063957806395fc8fdf1461064d5780639a2129431461066c578063a9059cbb1461068c575f80fd5b8063751039fc1461057e57806375f0a874146105925780637d1db4a5146105b1578063807c2d9c146105c65780638a8c523c146105db575f80fd5b80635342acb4116101e15780635e42358c116101a65780635e42358c146104b8578063651a8987146104d85780636ddd1713146104f757806370a0823114610517578063715018a61461054b578063728d41c91461055f575f80fd5b80635342acb4146103ff578063573761981461042d5780635c85974f1461044c5780635d098b381461046b5780635da0a4671461048a575f80fd5b806318160ddd1161023257806318160ddd14610347578063230358521461035b57806323b872dd1461037c578063313ce5671461039b5780633ecad271146103bc5780634f7041a5146103ea575f80fd5b80630445b6671461027857806306fdde03146102a05780630758d924146102c1578063095ea7b3146102f85780631693e8d414610327575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60105481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b506102b4610840565b6040516102979190611c1b565b3480156102cc575f80fd5b506012546102e0906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b348015610303575f80fd5b50610317610312366004611c61565b6108d0565b6040519015158152602001610297565b348015610332575f80fd5b5060135461031790600160a01b900460ff1681565b348015610352575f80fd5b50600d5461028d565b348015610366575f80fd5b5061037a610375366004611c9f565b6108e6565b005b348015610387575f80fd5b50610317610396366004611cb8565b610936565b3480156103a6575f80fd5b5060035460405160ff9091168152602001610297565b3480156103c7575f80fd5b506103176103d6366004611cf6565b60096020525f908152604090205460ff1681565b3480156103f5575f80fd5b5061028d60045481565b34801561040a575f80fd5b50610317610419366004611cf6565b60086020525f908152604090205460ff1681565b348015610438575f80fd5b5061037a610447366004611c61565b6109dd565b348015610457575f80fd5b5061037a610466366004611d11565b610b0b565b348015610476575f80fd5b5061037a610485366004611cf6565b610b39565b348015610495575f80fd5b506103176104a4366004611cf6565b600c6020525f908152604090205460ff1681565b3480156104c3575f80fd5b5060115461031790600160b01b900460ff1681565b3480156104e3575f80fd5b5061037a6104f2366004611d28565b610b84565b348015610502575f80fd5b5060115461031790600160a01b900460ff1681565b348015610522575f80fd5b5061028d610531366004611cf6565b6001600160a01b03165f9081526006602052604090205490565b348015610556575f80fd5b5061037a610bd7565b34801561056a575f80fd5b5061037a610579366004611d11565b610c0b565b348015610589575f80fd5b5061037a610c39565b34801561059d575f80fd5b506011546102e0906001600160a01b031681565b3480156105bc575f80fd5b5061028d600e5481565b3480156105d1575f80fd5b5061028d600f5481565b3480156105e6575f80fd5b5061037a610c72565b3480156105fa575f80fd5b50610317610609366004611cf6565b600b6020525f908152604090205460ff1681565b348015610628575f80fd5b505f546001600160a01b03166102e0565b348015610644575f80fd5b506102b4610cfb565b348015610658575f80fd5b5061037a610667366004611d5b565b610d0a565b348015610677575f80fd5b5060115461031790600160b81b900460ff1681565b348015610697575f80fd5b506103176106a6366004611c61565b610d9d565b3480156106b6575f80fd5b5061037a6106c5366004611d28565b610da9565b3480156106d5575f80fd5b5061037a6106e4366004611dd8565b610dfc565b3480156106f4575f80fd5b50610317610703366004611cf6565b600a6020525f908152604090205460ff1681565b348015610722575f80fd5b5061028d60055481565b348015610737575f80fd5b5061028d610746366004611e08565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561077b575f80fd5b5061037a61078a366004611d28565b610e5c565b34801561079a575f80fd5b5061037a610eaf565b3480156107ae575f80fd5b5060115461031790600160a81b900460ff1681565b3480156107ce575f80fd5b5060135461031790600160a81b900460ff1681565b3480156107ee575f80fd5b506013546102e0906001600160a01b031681565b34801561080d575f80fd5b5061037a61081c366004611cf6565b610f92565b34801561082c575f80fd5b5061037a61083b366004611e3f565b611029565b60606001805461084f90611e5f565b80601f016020809104026020016040519081016040528092919081815260200182805461087b90611e5f565b80156108c65780601f1061089d576101008083540402835291602001916108c6565b820191905f5260205f20905b8154815290600101906020018083116108a957829003601f168201915b5050505050905090565b5f6108dc33848461105d565b5060015b92915050565b5f546001600160a01b031633146109185760405162461bcd60e51b815260040161090f90611e97565b60405180910390fd5b60138054911515600160a81b0260ff60a81b19909216919091179055565b5f61094284848461110f565b506109d284336109cd856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060075f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6109ad3390565b6001600160a01b0316815260208101919091526040015f2054919061152b565b61105d565b5060015b9392505050565b6011546001600160a01b03163314610a265760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040516001600160a01b039182166024820152604481018390525f9184169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251610a809190611ecc565b5f604051808303815f865af19150503d805f8114610ab9576040519150601f19603f3d011682016040523d82523d5f602084013e610abe565b606091505b5050905080610b065760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161090f565b505050565b5f546001600160a01b03163314610b345760405162461bcd60e51b815260040161090f90611e97565b600e55565b5f546001600160a01b03163314610b625760405162461bcd60e51b815260040161090f90611e97565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610bad5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c005760405162461bcd60e51b815260040161090f90611e97565b610c095f611563565b565b5f546001600160a01b03163314610c345760405162461bcd60e51b815260040161090f90611e97565b600f55565b5f546001600160a01b03163314610c625760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60b01b19169055565b5f546001600160a01b03163314610c9b5760405162461bcd60e51b815260040161090f90611e97565b601354600160a01b900460ff1615610ce65760405162461bcd60e51b815260206004820152600e60248201526d547261646520456e61626c65642160901b604482015260640161090f565b6013805460ff60a01b1916600160a01b179055565b60606002805461084f90611e5f565b5f546001600160a01b03163314610d335760405162461bcd60e51b815260040161090f90611e97565b5f5b82811015610d975781600c5f868685818110610d5357610d53611ee7565b9050602002016020810190610d689190611cf6565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d35565b50505050565b5f6109d233848461110f565b5f546001600160a01b03163314610dd25760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e255760405162461bcd60e51b815260040161090f90611e97565b6011805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055601055565b5f546001600160a01b03163314610e855760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6011546001600160a01b03163314610ef85760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161090f565b6011546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f42576040519150601f19603f3d011682016040523d82523d5f602084013e610f47565b606091505b5050905080610f8f5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161090f565b50565b5f546001600160a01b03163314610fbb5760405162461bcd60e51b815260040161090f90611e97565b6001600160a01b0381166110205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090f565b610f8f81611563565b5f546001600160a01b031633146110525760405162461bcd60e51b815260040161090f90611e97565b600491909155600555565b6001600160a01b0383166110865760405163e602df0560e01b81525f600482015260240161090f565b6001600160a01b0382166110af57604051634a1406b160e11b81525f600482015260240161090f565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b03841661113957604051634b637e8f60e11b81525f600482015260240161090f565b6001600160a01b0383166111625760405163ec442f0560e01b81525f600482015260240161090f565b815f03611182576040516367c8957760e01b815260040160405180910390fd5b601354600160b01b900460ff16156111a65761119f8484846115b2565b90506109d6565b6001600160a01b0384165f908152600c602052604090205460ff161580156111e657506001600160a01b0383165f908152600c602052604090205460ff16155b1561121557601354600160a01b900460ff1661121557604051633c9fd93960e21b815260040160405180910390fd5b305f90815260066020526040902054601054811080159081906112425750601354600160b01b900460ff16155b801561126657506001600160a01b0386165f9081526009602052604090205460ff16155b801561127b5750601154600160a01b900460ff165b801561129f57506001600160a01b0386165f9081526008602052604090205460ff16155b80156112c357506001600160a01b0385165f9081526008602052604090205460ff16155b156112d1576112d182611695565b6001600160a01b0386165f908152600b602052604090205460ff1615801561131157506001600160a01b0385165f908152600b602052604090205460ff16155b80156113265750601154600160b01b900460ff165b1561137357600e548411156113735760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161090f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600690915291909120546113c491869061152b565b6001600160a01b0387165f908152600660205260408120919091556113e98787611727565b6113fd576113f88787876117c1565b6113ff565b845b601154909150600160b81b900460ff16801561143357506001600160a01b0386165f908152600a602052604090205460ff16155b156114a257600f546114638261145d896001600160a01b03165f9081526006602052604090205490565b906118eb565b11156114a25760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161090f565b6001600160a01b0386165f908152600660205260409020546114c490826118eb565b6001600160a01b038088165f8181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600193505050506109d6565b5f818484111561154e5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486611f0f565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461160291849061152b565b6001600160a01b038086165f90815260066020526040808220939093559085168152205461163090836118eb565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116839086815260200190565b60405180910390a35060019392505050565b6013805460ff60b01b1916600160b01b179055601154600160a81b900460ff16156116bf57506010545b476116c982611949565b5f6116d44783611ad2565b90508015611715576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611713573d5f803e3d5ffd5b505b50506013805460ff60b01b1916905550565b6001600160a01b0382165f9081526008602052604081205460ff168061176457506001600160a01b0382165f9081526008602052604090205460ff165b15611771575060016108e0565b6001600160a01b0383165f9081526009602052604090205460ff16806117ae57506001600160a01b0382165f9081526009602052604090205460ff165b156117ba57505f6108e0565b505f6108e0565b6001600160a01b0383165f90815260096020526040812054819060ff161561180a5761180360646117fd60045486611b1390919063ffffffff16565b90611b91565b9050611869565b6001600160a01b0384165f9081526009602052604090205460ff16156118445761180360646117fd60055486611b1390919063ffffffff16565b601354600160a81b900460ff16156118695761186660646117fd856063611b13565b90505b80156118e157305f9081526006602052604090205461188890826118eb565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118d89085815260200190565b60405180910390a35b61155a8382611ad2565b5f806118f78385611f22565b9050838110156109d65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161090f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061197c5761197c611ee7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f79190611f35565b81600181518110611a0a57611a0a611ee7565b6001600160a01b039283166020918202929092010152601254611a30913091168461105d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a689085905f90869030904290600401611f93565b5f604051808303815f87803b158015611a7f575f80fd5b505af1158015611a91573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ac6929190611fce565b60405180910390a15050565b5f6109d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061152b565b5f825f03611b2257505f6108e0565b5f611b2d8385611fee565b905082611b3a8583612005565b146109d65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161090f565b5f6109d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611bed5760405162461bcd60e51b815260040161090f9190611c1b565b505f61155a8486612005565b5f5b83811015611c13578181015183820152602001611bfb565b50505f910152565b602081525f8251806020840152611c39816040850160208701611bf9565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610f8f575f80fd5b5f8060408385031215611c72575f80fd5b8235611c7d81611c4d565b946020939093013593505050565b80358015158114611c9a575f80fd5b919050565b5f60208284031215611caf575f80fd5b6109d682611c8b565b5f805f60608486031215611cca575f80fd5b8335611cd581611c4d565b92506020840135611ce581611c4d565b929592945050506040919091013590565b5f60208284031215611d06575f80fd5b81356109d681611c4d565b5f60208284031215611d21575f80fd5b5035919050565b5f8060408385031215611d39575f80fd5b8235611d4481611c4d565b9150611d5260208401611c8b565b90509250929050565b5f805f60408486031215611d6d575f80fd5b833567ffffffffffffffff80821115611d84575f80fd5b818601915086601f830112611d97575f80fd5b813581811115611da5575f80fd5b8760208260051b8501011115611db9575f80fd5b602092830195509350611dcf9186019050611c8b565b90509250925092565b5f805f60608486031215611dea575f80fd5b83359250611dfa60208501611c8b565b9150611dcf60408501611c8b565b5f8060408385031215611e19575f80fd5b8235611e2481611c4d565b91506020830135611e3481611c4d565b809150509250929050565b5f8060408385031215611e50575f80fd5b50508035926020909101359150565b600181811c90821680611e7357607f821691505b602082108103611e9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8251611edd818460208701611bf9565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108e0576108e0611efb565b808201808211156108e0576108e0611efb565b5f60208284031215611f45575f80fd5b81516109d681611c4d565b5f815180845260208085019450602084015f5b83811015611f885781516001600160a01b031687529582019590820190600101611f63565b509495945050505050565b85815284602082015260a060408201525f611fb160a0830186611f50565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611fe66040830184611f50565b949350505050565b80820281158282048414176108e0576108e0611efb565b5f8261201f57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122091293c4b44ab751f128846da5aba295384e51b8f340619c3a6ce7d5e25fbe52564736f6c63430008160033
Deployed Bytecode Sourcemap
5131:11309:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6006:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6006:59:0;;;;;;;;7795:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6271:31::-;;;;;;;;;;-1:-1:-1;6271:31:0;;;;-1:-1:-1;;;;;6271:31:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;6271:31:0;852:225:1;8462:161:0;;;;;;;;;;-1:-1:-1;8462:161:0;;;;;:::i;:::-;;:::i;:::-;;;1703:14:1;;1696:22;1678:41;;1666:2;1651:18;8462:161:0;1538:187:1;6340:25:0;;;;;;;;;;-1:-1:-1;6340:25:0;;;;-1:-1:-1;;;6340:25:0;;;;;;8072:100;;;;;;;;;;-1:-1:-1;8152:12:0;;8072:100;;15140:114;;;;;;;;;;-1:-1:-1;15140:114:0;;;;;:::i;:::-;;:::i;:::-;;9281:297;;;;;;;;;;-1:-1:-1;9281:297:0;;;;;:::i;:::-;;:::i;7981:83::-;;;;;;;;;;-1:-1:-1;8047:9:0;;7981:83;;8047:9;;;;2683:36:1;;2671:2;2656:18;7981:83:0;2541:184:1;5574:45:0;;;;;;;;;;-1:-1:-1;5574:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5331:21;;;;;;;;;;;;;;;;5517:50;;;;;;;;;;-1:-1:-1;5517:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14543:314;;;;;;;;;;-1:-1:-1;14543:314:0;;;;;:::i;:::-;;:::i;15971:101::-;;;;;;;;;;-1:-1:-1;15971:101:0;;;;;:::i;:::-;;:::i;16084:114::-;;;;;;;;;;-1:-1:-1;16084:114:0;;;;;:::i;:::-;;:::i;5740:44::-;;;;;;;;;;-1:-1:-1;5740:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6187:32;;;;;;;;;;-1:-1:-1;6187:32:0;;;;-1:-1:-1;;;6187:32:0;;;;;;15593:128;;;;;;;;;;-1:-1:-1;15593:128:0;;;;;:::i;:::-;;:::i;6113:30::-;;;;;;;;;;-1:-1:-1;6113:30:0;;;;-1:-1:-1;;;6113:30:0;;;;;;8180:123;;;;;;;;;;-1:-1:-1;8180:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;8272:18:0;8246:7;8272:18;;;:9;:18;;;;;;;8180:123;2577:94;;;;;;;;;;;;;:::i;15857:106::-;;;;;;;;;;-1:-1:-1;15857:106:0;;;;;:::i;:::-;;:::i;15012:120::-;;;;;;;;;;;;;:::i;6074:30::-;;;;;;;;;;-1:-1:-1;6074:30:0;;;;-1:-1:-1;;;;;6074:30:0;;;5862:59;;;;;;;;;;;;;;;;5933:56;;;;;;;;;;;;;;;;13497:137;;;;;;;;;;;;;:::i;5685:48::-;;;;;;;;;;-1:-1:-1;5685:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2268:87;;;;;;;;;;-1:-1:-1;2314:7:0;2341:6;-1:-1:-1;;;;;2341:6:0;2268:87;;7886;;;;;;;;;;;;;:::i;15262:193::-;;;;;;;;;;-1:-1:-1;15262:193:0;;;;;:::i;:::-;;:::i;6226:36::-;;;;;;;;;;-1:-1:-1;6226:36:0;;;;-1:-1:-1;;;6226:36:0;;;;;;9106:167;;;;;;;;;;-1:-1:-1;9106:167:0;;;;;:::i;:::-;;:::i;15729:120::-;;;;;;;;;;-1:-1:-1;15729:120:0;;;;;:::i;:::-;;:::i;16206:229::-;;;;;;;;;;-1:-1:-1;16206:229:0;;;;;:::i;:::-;;:::i;5626:52::-;;;;;;;;;;-1:-1:-1;5626:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5359:22;;;;;;;;;;;;;;;;8311:143;;;;;;;;;;-1:-1:-1;8311:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8419:18:0;;;8392:7;8419:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8311:143;15463:122;;;;;;;;;;-1:-1:-1;15463:122:0;;;;;:::i;:::-;;:::i;14298:237::-;;;;;;;;;;;;;:::i;6150:30::-;;;;;;;;;;-1:-1:-1;6150:30:0;;;;-1:-1:-1;;;6150:30:0;;;;;;6373:36;;;;;;;;;;-1:-1:-1;6373:36:0;;;;-1:-1:-1;;;6373:36:0;;;;;;6309:22;;;;;;;;;;-1:-1:-1;6309:22:0;;;;-1:-1:-1;;;;;6309:22:0;;;2679:229;;;;;;;;;;-1:-1:-1;2679:229:0;;;;;:::i;:::-;;:::i;14865:139::-;;;;;;;;;;-1:-1:-1;14865:139:0;;;;;:::i;:::-;;:::i;7795:83::-;7832:13;7865:5;7858:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7795:83;:::o;8462:161::-;8537:4;8554:39;1024:10;8577:7;8586:6;8554:8;:39::i;:::-;-1:-1:-1;8611:4:0;8462:161;;;;;:::o;15140:114::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;;;;;;;;;15212:24:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;15212:34:0::1;-1:-1:-1::0;;;;15212:34:0;;::::1;::::0;;;::::1;::::0;;15140:114::o;9281:297::-;9379:4;9396:36;9406:6;9414:9;9425:6;9396:9;:36::i;:::-;-1:-1:-1;9443:105:0;9452:6;1024:10;9474:73;9512:6;9474:73;;;;;;;;;;;;;;;;;:11;:19;9486:6;-1:-1:-1;;;;;9474:19:0;-1:-1:-1;;;;;9474:19:0;;;;;;;;;;;;:33;9494:12;1024:10;;944:98;9494:12;-1:-1:-1;;;;;9474:33:0;;;;;;;;;;;;-1:-1:-1;9474:33:0;;;:73;:37;:73::i;:::-;9443:8;:105::i;:::-;-1:-1:-1;9566:4:0;9281:297;;;;;;:::o;14543:314::-;14636:15;;-1:-1:-1;;;;;14636:15:0;14622:10;:29;14614:53;;;;-1:-1:-1;;;14614:53:0;;6304:2:1;14614:53:0;;;6286:21:1;6343:2;6323:18;;;6316:30;-1:-1:-1;;;6362:18:1;;;6355:42;6414:18;;14614:53:0;6102:336:1;14614:53:0;14772:15;;14718:79;;-1:-1:-1;;;;;14772:15:0;;;14718:79;;;6617:51:1;6684:18;;;6677:34;;;14679:12:0;;14697:20;;;6590:18:1;;14718:79:0;;;-1:-1:-1;;14718:79:0;;;;;;;;;;;;;;-1:-1:-1;;;;;14718:79:0;-1:-1:-1;;;14718:79:0;;;14697:101;;;14718:79;14697:101;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14678:120;;;14817:7;14809:40;;;;-1:-1:-1;;;14809:40:0;;7216:2:1;14809:40:0;;;7198:21:1;7255:2;7235:18;;;7228:30;-1:-1:-1;;;7274:18:1;;;7267:50;7334:18;;14809:40:0;7014:344:1;14809:40:0;14603:254;14543:314;;:::o;15971:101::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;16041:12:::1;:23:::0;15971:101::o;16084:114::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;16162:15:::1;:28:::0;;-1:-1:-1;;;;;;16162:28:0::1;-1:-1:-1::0;;;;;16162:28:0;;;::::1;::::0;;;::::1;::::0;;16084:114::o;15593:128::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15678:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;15678:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15593:128::o;2577:94::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;2642:21:::1;2660:1;2642:9;:21::i;:::-;2577:94::o:0;15857:106::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;15934:10:::1;:21:::0;15857:106::o;15012:120::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;15066:13:::1;:21:::0;;-1:-1:-1;;;;15098:26:0;;;15012:120::o;13497:137::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;13561:13:::1;::::0;-1:-1:-1;;;13561:13:0;::::1;;;13560:14;13552:41;;;::::0;-1:-1:-1;;;13552:41:0;;7565:2:1;13552:41:0::1;::::0;::::1;7547:21:1::0;7604:2;7584:18;;;7577:30;-1:-1:-1;;;7623:18:1;;;7616:44;7677:18;;13552:41:0::1;7363:338:1::0;13552:41:0::1;13606:13;:20:::0;;-1:-1:-1;;;;13606:20:0::1;-1:-1:-1::0;;;13606:20:0::1;::::0;;13497:137::o;7886:87::-;7925:13;7958:7;7951:14;;;;;:::i;15262:193::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;15358:6:::1;15354:94;15370:15:::0;;::::1;15354:94;;;15429:7;15406:11;:20;15418:4;;15423:1;15418:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15406:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15406:20:0;:30;;-1:-1:-1;;15406:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;15387:3:0::1;15354:94;;;;15262:193:::0;;;:::o;9106:167::-;9184:4;9201:42;1024:10;9225:9;9236:6;9201:9;:42::i;15729:120::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15810:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;15810:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15729:120::o;16206:229::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;16335:11:::1;:22:::0;;-1:-1:-1;;;;16368:22:0;-1:-1:-1;;;16335:22:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;16368:22:0;;;;;-1:-1:-1;;;16368:22:0;::::1;;::::0;;;::::1;;::::0;;16401:13:::1;:26:::0;16206:229::o;15463:122::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15544:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;15544:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15463:122::o;14298:237::-;14364:15;;-1:-1:-1;;;;;14364:15:0;14350:10;:29;14342:53;;;;-1:-1:-1;;;14342:53:0;;6304:2:1;14342:53:0;;;6286:21:1;6343:2;6323:18;;;6316:30;-1:-1:-1;;;6362:18:1;;;6355:42;6414:18;;14342:53:0;6102:336:1;14342:53:0;14427:15;;14419:63;;14407:7;;-1:-1:-1;;;;;14427:15:0;;14456:21;;14407:7;14419:63;14407:7;14419:63;14456:21;14427:15;14419:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14406:76;;;14501:2;14493:34;;;;-1:-1:-1;;;14493:34:0;;8250:2:1;14493:34:0;;;8232:21:1;8289:2;8269:18;;;8262:30;-1:-1:-1;;;8308:18:1;;;8301:50;8368:18;;14493:34:0;8048:344:1;14493:34:0;14330:205;14298:237::o;2679:229::-;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2782:22:0;::::1;2760:110;;;::::0;-1:-1:-1;;;2760:110:0;;8599:2:1;2760:110:0::1;::::0;::::1;8581:21:1::0;8638:2;8618:18;;;8611:30;8677:34;8657:18;;;8650:62;-1:-1:-1;;;8728:18:1;;;8721:36;8774:19;;2760:110:0::1;8397:402:1::0;2760:110:0::1;2881:19;2891:8;2881:9;:19::i;14865:139::-:0;2314:7;2341:6;-1:-1:-1;;;;;2341:6:0;1024:10;2489:23;2481:68;;;;-1:-1:-1;;;2481:68:0;;;;;;;:::i;:::-;14949:6:::1;:17:::0;;;;14977:7:::1;:19:::0;14865:139::o;8631:382::-;-1:-1:-1;;;;;8720:19:0;;8716:91;;8763:32;;-1:-1:-1;;;8763:32:0;;8792:1;8763:32;;;1020:51:1;993:18;;8763:32:0;852:225:1;8716:91:0;-1:-1:-1;;;;;8821:21:0;;8817:92;;8866:31;;-1:-1:-1;;;8866:31:0;;8894:1;8866:31;;;1020:51:1;993:18;;8866:31:0;852:225:1;8817:92:0;-1:-1:-1;;;;;8921:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8973:32;;160:25:1;;;8973:32:0;;133:18:1;8973:32:0;;;;;;;8631:382;;;:::o;9586:1971::-;9673:4;-1:-1:-1;;;;;9696:20:0;;9692:90;;9740:30;;-1:-1:-1;;;9740:30:0;;9767:1;9740:30;;;1020:51:1;993:18;;9740:30:0;852:225:1;9692:90:0;-1:-1:-1;;;;;9796:23:0;;9792:95;;9843:32;;-1:-1:-1;;;9843:32:0;;9872:1;9843:32;;;1020:51:1;993:18;;9843:32:0;852:225:1;9792:95:0;9900:6;9910:1;9900:11;9897:69;;9935:19;;-1:-1:-1;;;9935:19:0;;;;;;;;;;;9897:69;9986:6;;-1:-1:-1;;;9986:6:0;;;;9982:1566;;;10016:41;10031:6;10039:9;10050:6;10016:14;:41::i;:::-;10009:48;;;;9982:1566;-1:-1:-1;;;;;10106:19:0;;;;;;:11;:19;;;;;;;;10105:20;:47;;;;-1:-1:-1;;;;;;10130:22:0;;;;;;:11;:22;;;;;;;;10129:23;10105:47;10101:177;;;10177:13;;-1:-1:-1;;;10177:13:0;;;;10173:90;;10222:21;;-1:-1:-1;;;10222:21:0;;;;;;;;;;;10173:90;10343:4;10294:28;8272:18;;;:9;:18;;;;;;10419:13;;10395:37;;;;;;;10471:52;;-1:-1:-1;10517:6:0;;-1:-1:-1;;;10517:6:0;;;;10516:7;10471:52;:95;;;;-1:-1:-1;;;;;;10546:20:0;;;;;;:12;:20;;;;;;;;10545:21;10471:95;:128;;;;-1:-1:-1;10588:11:0;;-1:-1:-1;;;10588:11:0;;;;10471:128;:175;;;;-1:-1:-1;;;;;;10621:25:0;;;;;;:17;:25;;;;;;;;10620:26;10471:175;:225;;;;-1:-1:-1;;;;;;10668:28:0;;;;;;:17;:28;;;;;;;;10667:29;10471:225;10449:332;;;10735:30;10744:20;10735:8;:30::i;:::-;-1:-1:-1;;;;;10801:23:0;;;;;;:15;:23;;;;;;;;10800:24;:55;;;;-1:-1:-1;;;;;;10829:26:0;;;;;;:15;:26;;;;;;;;10828:27;10800:55;:72;;;;-1:-1:-1;10859:13:0;;-1:-1:-1;;;10859:13:0;;;;10800:72;10797:166;;;10911:12;;10901:6;:22;;10893:54;;;;-1:-1:-1;;;10893:54:0;;9006:2:1;10893:54:0;;;8988:21:1;9045:2;9025:18;;;9018:30;-1:-1:-1;;;9064:18:1;;;9057:49;9123:18;;10893:54:0;8804:343:1;10893:54:0;11012:53;;;;;;;;;;;-1:-1:-1;;;11012:53:0;;;;;;;;-1:-1:-1;;;;;11012:17:0;;-1:-1:-1;11012:17:0;;;:9;:17;;;;;;;;:53;;11034:6;;11012:21;:53::i;:::-;-1:-1:-1;;;;;10992:17:0;;;;;;:9;:17;;;;;:73;;;;11104:34;11002:6;11128:9;11104:16;:34::i;:::-;:80;;11150:34;11158:6;11166:9;11177:6;11150:7;:34::i;:::-;11104:80;;;11141:6;11104:80;11204:17;;11082:102;;-1:-1:-1;;;;11204:17:0;;;;:52;;;;-1:-1:-1;;;;;;11226:30:0;;;;;;:19;:30;;;;;;;;11225:31;11204:52;11201:169;;;11326:10;;11285:37;11310:11;11285:20;11295:9;-1:-1:-1;;;;;8272:18:0;8246:7;8272:18;;;:9;:18;;;;;;;8180:123;11285:20;:24;;:37::i;:::-;:51;;11277:77;;;;-1:-1:-1;;;11277:77:0;;9354:2:1;11277:77:0;;;9336:21:1;9393:2;9373:18;;;9366:30;-1:-1:-1;;;9412:18:1;;;9405:44;9466:18;;11277:77:0;9152:338:1;11277:77:0;-1:-1:-1;;;;;11409:20:0;;;;;;:9;:20;;;;;;:37;;11434:11;11409:24;:37::i;:::-;-1:-1:-1;;;;;11386:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11468:40;;;;;;;;;;11496:11;160:25:1;;148:2;133:18;;14:177;11468:40:0;;;;;;;;11530:4;11523:11;;;;;;;3455:192;3541:7;3577:12;3569:6;;;;3561:29;;;;-1:-1:-1;;;3561:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3601:9:0;3613:5;3617:1;3613;:5;:::i;:::-;3601:17;3455:192;-1:-1:-1;;;;;3455:192:0:o;2916:173::-;2972:16;2991:6;;-1:-1:-1;;;;;3008:17:0;;;-1:-1:-1;;;;;;3008:17:0;;;;;;3041:40;;2991:6;;;;;;;3041:40;;2972:16;3041:40;2961:128;2916:173;:::o;11565:330::-;11695:53;;;;;;;;;;;-1:-1:-1;;;11695:53:0;;;;;;;;-1:-1:-1;;;;;11695:17:0;;11658:4;11695:17;;;:9;:17;;;;;;;:53;;11717:6;;11695:21;:53::i;:::-;-1:-1:-1;;;;;11675:17:0;;;;;;;:9;:17;;;;;;:73;;;;11782:20;;;;;;;:32;;11807:6;11782:24;:32::i;:::-;-1:-1:-1;;;;;11759:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11830:35;;;;;;;;;;11858:6;160:25:1;;148:2;133:18;;14:177;11830:35:0;;;;;;;;-1:-1:-1;11883:4:0;11565:330;;;;;:::o;13083:406::-;6469:6;:13;;-1:-1:-1;;;;6469:13:0;-1:-1:-1;;;6469:13:0;;;13157:11:::1;::::0;-1:-1:-1;;;13157:11:0;::::1;6469:13:::0;13157:11:::1;13154:47;;;-1:-1:-1::0;13188:13:0::1;::::0;13154:47:::1;13239:21;13271:33;13288:15:::0;13271:16:::1;:33::i;:::-;13315:22;13340:41;:21;13366:14:::0;13340:25:::1;:41::i;:::-;13315:66:::0;-1:-1:-1;13397:18:0;;13394:85:::1;;13438:15;::::0;13430:49:::1;::::0;-1:-1:-1;;;;;13438:15:0;;::::1;::::0;13430:49;::::1;;;::::0;13464:14;;13438:15:::1;13430:49:::0;13438:15;13430:49;13464:14;13438:15;13430:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13394:85;-1:-1:-1::0;;6505:6:0;:14;;-1:-1:-1;;;;6505:14:0;;;-1:-1:-1;13083:406:0:o;11907:369::-;-1:-1:-1;;;;;12011:25:0;;11991:4;12011:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;12040:28:0;;;;;;:17;:28;;;;;;;;12011:57;12008:261;;;-1:-1:-1;12092:4:0;12085:11;;12008:261;-1:-1:-1;;;;;12127:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;12151:23:0;;;;;;:12;:23;;;;;;;;12127:47;12123:146;;;-1:-1:-1;12198:5:0;12191:12;;12123:146;-1:-1:-1;12252:5:0;12245:12;;12286:787;-1:-1:-1;;;;;12459:20:0;;12372:7;12459:20;;;:12;:20;;;;;;12372:7;;12459:20;;12456:343;;;12513:27;12536:3;12513:18;12524:6;;12513;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;12501:39;;12456:343;;;-1:-1:-1;;;;;12579:23:0;;;;;;:12;:23;;;;;;;;12576:223;;;12636:28;12660:3;12636:19;12647:7;;12636:6;:10;;:19;;;;:::i;12576:223::-;12703:24;;-1:-1:-1;;;12703:24:0;;;;12699:100;;;12760:23;12779:3;12760:14;:6;12771:2;12760:10;:14::i;:23::-;12748:35;;12699:100;12818:13;;12815:185;;12897:4;12879:24;;;;:9;:24;;;;;;:39;;12908:9;12879:28;:39::i;:::-;12870:4;12852:24;;;;:9;:24;;;;;;;:66;;;;12942:42;;-1:-1:-1;;;;;12942:42:0;;;;;;;12974:9;160:25:1;;148:2;133:18;;14:177;12942:42:0;;;;;;;;12815:185;13023:21;:6;13034:9;13023:10;:21::i;3122:181::-;3180:7;;3212:5;3216:1;3212;:5;:::i;:::-;3200:17;;3241:1;3236;:6;;3228:46;;;;-1:-1:-1;;;3228:46:0;;10092:2:1;3228:46:0;;;10074:21:1;10131:2;10111:18;;;10104:30;10170:29;10150:18;;;10143:57;10217:18;;3228:46:0;9890:351:1;13642:648:0;13792:16;;;13806:1;13792:16;;;;;;;;13768:21;;13792:16;;;;;;;;;;-1:-1:-1;13792:16:0;13768:40;;13837:4;13819;13824:1;13819:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13819:23:0;;;:7;;;;;;;;;;:23;;;;13863:9;;:16;;;-1:-1:-1;;;13863:16:0;;;;:9;;;;;:14;;:16;;;;;13819:7;;13863:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13853:4;13858:1;13853:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13853:26:0;;;:7;;;;;;;;;:26;13924:9;;13892:56;;13909:4;;13924:9;13936:11;13892:8;:56::i;:::-;13987:9;;:234;;-1:-1:-1;;;13987:234:0;;-1:-1:-1;;;;;13987:9:0;;;;:60;;:234;;14062:11;;13987:9;;14132:4;;14159;;14195:15;;13987:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14247:35;14264:11;14277:4;14247:35;;;;;;;:::i;:::-;;;;;;;;13697:593;13642:648;:::o;3311:136::-;3369:7;3396:43;3400:1;3403;3396:43;;;;;;;;;;;;;;;;;:3;:43::i;3655:250::-;3713:7;3737:1;3742;3737:6;3733:47;;-1:-1:-1;3767:1:0;3760:8;;3733:47;3792:9;3804:5;3808:1;3804;:5;:::i;:::-;3792:17;-1:-1:-1;3837:1:0;3828:5;3832:1;3792:17;3828:5;:::i;:::-;:10;3820:56;;;;-1:-1:-1;;;3820:56:0;;12625:2:1;3820:56:0;;;12607:21:1;12664:2;12644:18;;;12637:30;12703:34;12683:18;;;12676:62;-1:-1:-1;;;12754:18:1;;;12747:31;12795:19;;3820:56:0;12423:397:1;3913:132:0;3971:7;3998:39;4002:1;4005;3998:39;;;;;;;;;;;;;;;;;4139:7;4174:12;4167:5;4159:28;;;;-1:-1:-1;;;4159:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4198:9:0;4210:5;4214:1;4210;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;1082:131::-;-1:-1:-1;;;;;1157:31:1;;1147:42;;1137:70;;1203:1;1200;1193:12;1218:315;1286:6;1294;1347:2;1335:9;1326:7;1322:23;1318:32;1315:52;;;1363:1;1360;1353:12;1315:52;1402:9;1389:23;1421:31;1446:5;1421:31;:::i;:::-;1471:5;1523:2;1508:18;;;;1495:32;;-1:-1:-1;;;1218:315:1:o;1730:160::-;1795:20;;1851:13;;1844:21;1834:32;;1824:60;;1880:1;1877;1870:12;1824:60;1730:160;;;:::o;1895:180::-;1951:6;2004:2;1992:9;1983:7;1979:23;1975:32;1972:52;;;2020:1;2017;2010:12;1972:52;2043:26;2059:9;2043:26;:::i;2080:456::-;2157:6;2165;2173;2226:2;2214:9;2205:7;2201:23;2197:32;2194:52;;;2242:1;2239;2232:12;2194:52;2281:9;2268:23;2300:31;2325:5;2300:31;:::i;:::-;2350:5;-1:-1:-1;2407:2:1;2392:18;;2379:32;2420:33;2379:32;2420:33;:::i;:::-;2080:456;;2472:7;;-1:-1:-1;;;2526:2:1;2511:18;;;;2498:32;;2080:456::o;2730:247::-;2789:6;2842:2;2830:9;2821:7;2817:23;2813:32;2810:52;;;2858:1;2855;2848:12;2810:52;2897:9;2884:23;2916:31;2941:5;2916:31;:::i;2982:180::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;-1:-1:-1;3133:23:1;;2982:180;-1:-1:-1;2982:180:1:o;3167:315::-;3232:6;3240;3293:2;3281:9;3272:7;3268:23;3264:32;3261:52;;;3309:1;3306;3299:12;3261:52;3348:9;3335:23;3367:31;3392:5;3367:31;:::i;:::-;3417:5;-1:-1:-1;3441:35:1;3472:2;3457:18;;3441:35;:::i;:::-;3431:45;;3167:315;;;;;:::o;3695:689::-;3787:6;3795;3803;3856:2;3844:9;3835:7;3831:23;3827:32;3824:52;;;3872:1;3869;3862:12;3824:52;3912:9;3899:23;3941:18;3982:2;3974:6;3971:14;3968:34;;;3998:1;3995;3988:12;3968:34;4036:6;4025:9;4021:22;4011:32;;4081:7;4074:4;4070:2;4066:13;4062:27;4052:55;;4103:1;4100;4093:12;4052:55;4143:2;4130:16;4169:2;4161:6;4158:14;4155:34;;;4185:1;4182;4175:12;4155:34;4240:7;4233:4;4223:6;4220:1;4216:14;4212:2;4208:23;4204:34;4201:47;4198:67;;;4261:1;4258;4251:12;4198:67;4292:4;4284:13;;;;-1:-1:-1;4316:6:1;-1:-1:-1;4341:37:1;;4357:20;;;-1:-1:-1;4341:37:1;:::i;:::-;4331:47;;3695:689;;;;;:::o;4389:316::-;4460:6;4468;4476;4529:2;4517:9;4508:7;4504:23;4500:32;4497:52;;;4545:1;4542;4535:12;4497:52;4581:9;4568:23;4558:33;;4610:35;4641:2;4630:9;4626:18;4610:35;:::i;:::-;4600:45;;4664:35;4695:2;4684:9;4680:18;4664:35;:::i;4710:388::-;4778:6;4786;4839:2;4827:9;4818:7;4814:23;4810:32;4807:52;;;4855:1;4852;4845:12;4807:52;4894:9;4881:23;4913:31;4938:5;4913:31;:::i;:::-;4963:5;-1:-1:-1;5020:2:1;5005:18;;4992:32;5033:33;4992:32;5033:33;:::i;:::-;5085:7;5075:17;;;4710:388;;;;;:::o;5103:248::-;5171:6;5179;5232:2;5220:9;5211:7;5207:23;5203:32;5200:52;;;5248:1;5245;5238:12;5200:52;-1:-1:-1;;5271:23:1;;;5341:2;5326:18;;;5313:32;;-1:-1:-1;5103:248:1:o;5356:380::-;5435:1;5431:12;;;;5478;;;5499:61;;5553:4;5545:6;5541:17;5531:27;;5499:61;5606:2;5598:6;5595:14;5575:18;5572:38;5569:161;;5652:10;5647:3;5643:20;5640:1;5633:31;5687:4;5684:1;5677:15;5715:4;5712:1;5705:15;5569:161;;5356:380;;;:::o;5741:356::-;5943:2;5925:21;;;5962:18;;;5955:30;6021:34;6016:2;6001:18;;5994:62;6088:2;6073:18;;5741:356::o;6722:287::-;6851:3;6889:6;6883:13;6905:66;6964:6;6959:3;6952:4;6944:6;6940:17;6905:66;:::i;:::-;6987:16;;;;;6722:287;-1:-1:-1;;6722:287:1:o;7706:127::-;7767:10;7762:3;7758:20;7755:1;7748:31;7798:4;7795:1;7788:15;7822:4;7819:1;7812:15;9495:127;9556:10;9551:3;9547:20;9544:1;9537:31;9587:4;9584:1;9577:15;9611:4;9608:1;9601:15;9627:128;9694:9;;;9715:11;;;9712:37;;;9729:18;;:::i;9760:125::-;9825:9;;;9846:10;;;9843:36;;;9859:18;;:::i;10378:251::-;10448:6;10501:2;10489:9;10480:7;10476:23;10472:32;10469:52;;;10517:1;10514;10507:12;10469:52;10549:9;10543:16;10568:31;10593:5;10568:31;:::i;10634:465::-;10687:3;10725:5;10719:12;10752:6;10747:3;10740:19;10778:4;10807;10802:3;10798:14;10791:21;;10846:4;10839:5;10835:16;10869:1;10879:195;10893:6;10890:1;10887:13;10879:195;;;10958:13;;-1:-1:-1;;;;;10954:39:1;10942:52;;11014:12;;;;11049:15;;;;10990:1;10908:9;10879:195;;;-1:-1:-1;11090:3:1;;10634:465;-1:-1:-1;;;;;10634:465:1:o;11104:582::-;11403:6;11392:9;11385:25;11446:6;11441:2;11430:9;11426:18;11419:34;11489:3;11484:2;11473:9;11469:18;11462:31;11366:4;11510:57;11562:3;11551:9;11547:19;11539:6;11510:57;:::i;:::-;-1:-1:-1;;;;;11603:32:1;;;;11598:2;11583:18;;11576:60;-1:-1:-1;11667:3:1;11652:19;11645:35;11502:65;11104:582;-1:-1:-1;;;11104:582:1:o;11691:332::-;11898:6;11887:9;11880:25;11941:2;11936;11925:9;11921:18;11914:30;11861:4;11961:56;12013:2;12002:9;11998:18;11990:6;11961:56;:::i;:::-;11953:64;11691:332;-1:-1:-1;;;;11691:332:1:o;12028:168::-;12101:9;;;12132;;12149:15;;;12143:22;;12129:37;12119:71;;12170:18;;:::i;12201:217::-;12241:1;12267;12257:132;;12311:10;12306:3;12302:20;12299:1;12292:31;12346:4;12343:1;12336:15;12374:4;12371:1;12364:15;12257:132;-1:-1:-1;12403:9:1;;12201:217::o
Swarm Source
ipfs://91293c4b44ab751f128846da5aba295384e51b8f340619c3a6ce7d5e25fbe525
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.