ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 DUB
Holders
1,223
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
33,801,695.145422323 DUBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DUBX
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-28 */ /** *Submitted for verification at Etherscan.io on 2023-07-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.0; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } 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; } } contract DUBX is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "DUBX"; string constant _symbol = "DUB"; uint8 constant _decimals = 9; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); uint256 _totalSupply = 1000000000000000 * 10 **_decimals; uint256 public _maxTxAmount = _totalSupply; uint256 public _maxWalletToken = _totalSupply; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private liquidityFee = 0; uint256 private marketingFee = 2; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellpercent = 100; uint256 buypercent = 100; uint256 transferpercent = 100; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 70 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isexemptfromfees[msg.sender] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pair] = true; isexemptfrommaxTX[marketingFeeReceiver] = true; isexemptfrommaxTX[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x18a4486C2E8a27B726F8af24e2e77858D454e556; devFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } function removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; if(recipient == pair) { percent = sellpercent; } else if(sender == pair) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner { sellpercent = _percentonsell; buypercent = _percentonbuy; transferpercent = _wallettransfer; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function set_fees() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setParameters() external onlyOwner { set_fees(); } function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount * 10 ** _decimals; emit set_SwapBack(swapThreshold, swapEnabled); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000555565b620000259066038d7ea4c6800062000640565b6003556003546004556003546005556000600a556002600b556000600c556000600d556000600e55600e54600c54600a54600b54600d54620000689190620004cc565b620000749190620004cc565b620000809190620004cc565b6200008c9190620004cc565b600f5560646010819055601181905560128190556013819055601e601955601a55601d805460ff60a01b1916600160a01b1790556003546103e890620000d490604662000640565b620000e09190620004e7565b601e55348015620000f057600080fd5b506000620000fd62000475565b600080546001600160a01b0319166001600160a01b03838116918217808455168252600160208190526040808420805460ff191690921790915551929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790819055604080516315ab88c960e31b815290516001600160a01b03929092169163ad5c464891600480820192602092909190829003018186803b158015620001ce57600080fd5b505afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000209919062000479565b600280546001600160a01b0319166001600160a01b03928316179055601b546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200026357600080fd5b505afa15801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e919062000479565b6002546040516364e329cb60e11b81526001600160a01b039283169263c9c6539692620002d3929116903090600401620004a9565b602060405180830381600087803b158015620002ee57600080fd5b505af115801562000303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000329919062000479565b601d80546001600160a01b039283166001600160a01b031991821617808355601c80548316918516919091179055306000818152600760209081526040808320601b5488168452825280832060001990553380845260088352818420805460ff19908116600190811790925560098552838620805482168317905597548916855282852080548916821790556015805490991685528285208054891682179055948452818420805490971690941790955560148054851684179055855484167318a4486c2e8a27b726f8af24e2e77858d454e5561790955560168054841683179055601780548416831790556018805490931661dead1790925560035481835260069094528282208490559151919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200046791620004c3565b60405180910390a362000678565b3390565b6000602082840312156200048b578081fd5b81516001600160a01b0381168114620004a2578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b90815260200190565b60008219821115620004e257620004e262000662565b500190565b6000826200050357634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200051c57506200054c565b81870482111562000531576200053162000662565b808616156200053f57918102915b9490941c9380026200050b565b94509492505050565b6000620004a260001960ff8516846000826200057457506001620004a2565b816200058357506000620004a2565b81600181146200059c5760028114620005a757620005db565b6001915050620004a2565b60ff841115620005bb57620005bb62000662565b6001841b915084821115620005d457620005d462000662565b50620004a2565b5060208310610133831016604e8410600b841016171562000613575081810a838111156200060d576200060d62000662565b620004a2565b62000622848484600162000508565b80860482111562000637576200063762000662565b02949350505050565b60008160001904831182151516156200065d576200065d62000662565b500290565b634e487b7160e01b600052601160045260246000fd5b61213b80620006886000396000f3fe6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461050f578063df20fd491461052f578063f2fde38b1461054f578063f42938901461056f578063f887ea4014610584576101f9565b8063a9059cbb1461049a578063b2bdfa7b146104ba578063c0cbdea4146104cf578063dd62ed3e146104ef576101f9565b8063893d20e8116100dc578063893d20e8146104395780638da5cb5b1461045b57806395d89b4114610470578063a8aa1b3114610485576101f9565b806377b54bad146103cf57806378109e54146103ef5780637d1db4a5146104045780638252879114610419576101f9565b80634f01f6f1116101855780636ddd1713116101545780636ddd17131461037057806370a0823114610385578063715018a6146103a5578063751039fc146103ba576101f9565b80634f01f6f114610304578063552656691461031b578063571ac8b0146103305780635d83e1d514610350576101f9565b80631df4ccfc116101c15780631df4ccfc1461028d57806323b872dd146102a257806330c9a6a0146102c2578063313ce567146102e2576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b31461024b57806318160ddd14610278576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610599565b6040516102209190611e7a565b60405180910390f35b34801561023557600080fd5b5061023e61059f565b6040516102209190611cac565b34801561025757600080fd5b5061026b610266366004611b00565b6105bd565b6040516102209190611ca1565b34801561028457600080fd5b50610213610628565b34801561029957600080fd5b5061021361062e565b3480156102ae57600080fd5b5061026b6102bd366004611ac5565b610634565b3480156102ce57600080fd5b506102136102dd366004611b62565b6106f6565b3480156102ee57600080fd5b506102f761073e565b6040516102209190611f11565b34801561031057600080fd5b50610319610743565b005b34801561032757600080fd5b5061021361078b565b34801561033c57600080fd5b5061026b61034b366004611a15565b6107bc565b34801561035c57600080fd5b5061031961036b366004611b62565b6107ca565b34801561037c57600080fd5b5061026b610866565b34801561039157600080fd5b506102136103a0366004611a15565b610876565b3480156103b157600080fd5b50610319610891565b3480156103c657600080fd5b50610319610910565b3480156103db57600080fd5b5061026b6103ea366004611b00565b610952565b3480156103fb57600080fd5b50610213610a97565b34801561041057600080fd5b50610213610a9d565b34801561042557600080fd5b50610319610434366004611a61565b610aa3565b34801561044557600080fd5b5061044e610b7d565b6040516102209190611c0e565b34801561046757600080fd5b5061044e610b83565b34801561047c57600080fd5b5061023e610b92565b34801561049157600080fd5b5061044e610baf565b3480156104a657600080fd5b5061026b6104b5366004611b00565b610bbe565b3480156104c657600080fd5b5061044e610bcb565b3480156104db57600080fd5b506103196104ea366004611bb3565b610bda565b3480156104fb57600080fd5b5061021361050a366004611a2f565b610c20565b34801561051b57600080fd5b5061026b61052a366004611b92565b610c4b565b34801561053b57600080fd5b5061031961054a366004611b45565b610c5f565b34801561055b57600080fd5b5061031961056a366004611a15565b610d11565b34801561057b57600080fd5b50610319610dc7565b34801561059057600080fd5b5061044e610e03565b601e5481565b604080518082019091526004815263088aa84b60e31b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610616908690611e7a565b60405180910390a35060015b92915050565b60035490565b600f5481565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146106e1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546106bc918490610e12565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6106ec848484610e4c565b90505b9392505050565b600061073661070361078b565b601d546107309061072990600290610723906001600160a01b0316610876565b906110f8565b85906110f8565b9061113d565b90505b919050565b600990565b61074b61117f565b6000546001600160a01b039081169116146107815760405162461bcd60e51b815260040161077890611de8565b60405180910390fd5b610789611183565b565b60006107b761079a6000610876565b6107b16107a861dead610876565b60035490611211565b90611211565b905090565b6000610736826000196105bd565b6107d261117f565b6000546001600160a01b039081169116146107ff5760405162461bcd60e51b815260040161077890611de8565b600181101561080d57600080fd5b6103e88160035461081e919061208b565b6108289190611f54565b60058190556040517f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519161085b91611e7a565b60405180910390a150565b601d54600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61089961117f565b6000546001600160a01b039081169116146108c65760405162461bcd60e51b815260040161077890611de8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61091861117f565b6000546001600160a01b039081169116146109455760405162461bcd60e51b815260040161077890611de8565b6003546004819055600555565b6000816109d8576040516370a0823160e01b81526001600160a01b038416906370a0823190610985903090600401611c0e565b60206040518083038186803b15801561099d57600080fd5b505afa1580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190611b7a565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610a09929190611c4d565b60405180910390a160145460405163a9059cbb60e01b81526001600160a01b038581169263a9059cbb92610a4592909116908690600401611c4d565b602060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190611b29565b60055481565b60045481565b610aab61117f565b6000546001600160a01b03908116911614610ad85760405162461bcd60e51b815260040161077890611de8565b601480546001600160a01b03199081166001600160a01b03888116919091179092556015805482168784161790819055601680548316878516179081905560188054841687861617908190556017805490941686861617938490556040517f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1595610b6e9594811694811693928116921690611c22565b60405180910390a15050505050565b60006107b75b6000546001600160a01b031690565b604080518082019091526003815262222aa160e91b602082015290565b601d546001600160a01b031681565b60006106ef338484610e4c565b6000546001600160a01b031681565b610be261117f565b6000546001600160a01b03908116911614610c0f5760405162461bcd60e51b815260040161077890611de8565b601191909155601291909155601355565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b600082610c57836106f6565b119392505050565b610c6761117f565b6000546001600160a01b03908116911614610c945760405162461bcd60e51b815260040161077890611de8565b601d805460ff60a01b1916600160a01b84151502179055610cb76009600a611fba565b610cc1908261208b565b601e819055601d546040517f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee6092610d05929091600160a01b90910460ff1690611e83565b60405180910390a15050565b610d1961117f565b6000546001600160a01b03908116911614610d465760405162461bcd60e51b815260040161077890611de8565b6001600160a01b038116610d6c5760405162461bcd60e51b815260040161077890611d2a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e00573d6000803e3d6000fd5b50565b601b546001600160a01b031681565b60008184841115610e365760405162461bcd60e51b81526004016107789190611cac565b506000610e4384866120aa565b95945050505050565b601f5460009060ff1615610e6c57610e65848484611253565b90506106ef565b6001600160a01b03841660009081526001602052604090205460ff16158015610eae57506001600160a01b03831660009081526001602052604090205460ff16155b506001600160a01b03841660009081526001602052604090205460ff16158015610ee157506001600160a01b0383163014155b8015610ef857506001600160a01b03831661dead14155b8015610f125750601d546001600160a01b03848116911614155b8015610f2c57506018546001600160a01b03848116911614155b8015610f4657506015546001600160a01b03848116911614155b8015610f6b57506001600160a01b03831660009081526009602052604090205460ff16155b15610fab576000610f7b84610876565b600554909150610f8b8483611f3c565b1115610fa95760405162461bcd60e51b815260040161077890611e1d565b505b610fb58483611325565b610fbd61136e565b15610fca57610fca6113c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461101c918490610e12565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff168061106957506001600160a01b03841660009081526008602052604090205460ff165b61107d5761107885848661180e565b61107f565b825b6001600160a01b0385166000908152600660205260409020549091506110a590826119a1565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206120e6833981519152906110e5908590611e7a565b60405180910390a3506001949350505050565b60008261110757506000610622565b6000611113838561208b565b9050826111208583611f54565b146106ef5760405162461bcd60e51b815260040161077890611da7565b60006106ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119d0565b3390565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006111c06064610730601254600f546110f890919063ffffffff16565b6111dc6064610730601154600f546110f890919063ffffffff16565b6111f86064610730601354600f546110f890919063ffffffff16565b60405161120793929190611f1f565b60405180910390a1565b60006106ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e12565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546112a4918490610e12565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546112d390836119a1565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206120e683398151915290611313908690611e7a565b60405180910390a35060019392505050565b6004548111158061134e57506001600160a01b03821660009081526009602052604090205460ff165b61136a5760405162461bcd60e51b815260040161077890611cff565b5050565b601d546000906001600160a01b0316331480159061138f5750601f5460ff16155b80156113a45750601d54600160a01b900460ff165b80156107b7575050601e5430600090815260066020526040902054101590565b601f805460ff19166001179055601954601a546000916113e391610c4b565b6113ef57600a546113f2565b60005b905060006114166002610730600f5461073086601e546110f890919063ffffffff16565b9050600061142f82601e5461121190919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061147757634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106114b657634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611500908690600090879030904290600401611e93565b600060405180830381600087803b15801561151a57600080fd5b505af115801561152e573d6000803e3d6000fd5b505050506000611547824761121190919063ffffffff16565b9050600061156261155988600261113d565b600f5490611211565b9050600061157760026107308481878d6110f8565b9050600061159483610730600b54876110f890919063ffffffff16565b905060006115b184610730600d54886110f890919063ffffffff16565b905060006115ce85610730600c54896110f890919063ffffffff16565b6015546040519192506000916001600160a01b039091169085906115f190611c0b565b60006040518083038185875af1925050503d806000811461162e576040519150601f19603f3d011682016040523d82523d6000602084013e611633565b606091505b50506016546040519192506001600160a01b031690839061165390611c0b565b60006040518083038185875af1925050503d8060008114611690576040519150601f19603f3d011682016040523d82523d6000602084013e611695565b606091505b50506017546040519192506001600160a01b03169084906116b590611c0b565b60006040518083038185875af1925050503d80600081146116f2576040519150601f19603f3d011682016040523d82523d6000602084013e6116f7565b606091505b5060009250508b1590506117f657601b60009054906101000a90046001600160a01b03166001600160a01b031663f305d71986308e600080601460009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161176796959493929190611c66565b6060604051808303818588803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117b99190611bde565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516117ed929190611f03565b60405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d54600091906001600160a01b0384811691161415611834575060115461184f565b601d546001600160a01b038681169116141561184f57506012545b600061187c6010546064611863919061208b565b61073084610723600f548a6110f890919063ffffffff16565b9050600061189b600f54610730600e54856110f890919063ffffffff16565b905060006118a98383611211565b306000908152600660205260409020549091506118c690826119a1565b30600090815260066020526040808220929092556018546001600160a01b0316815220546118f490836119a1565b6018546001600160a01b039081166000908152600660205260409081902092909255905130918a16906000805160206120e683398151915290611938908590611e7a565b60405180910390a3811561198b576003546119539083611211565b6003556040516000906001600160a01b038a16906000805160206120e683398151915290611982908690611e7a565b60405180910390a35b6119958784611211565b98975050505050505050565b6000806119ae8385611f3c565b9050838110156106ef5760405162461bcd60e51b815260040161077890611d70565b600081836119f15760405162461bcd60e51b81526004016107789190611cac565b506000610e438486611f54565b80356001600160a01b038116811461073957600080fd5b600060208284031215611a26578081fd5b6106ef826119fe565b60008060408385031215611a41578081fd5b611a4a836119fe565b9150611a58602084016119fe565b90509250929050565b600080600080600060a08688031215611a78578081fd5b611a81866119fe565b9450611a8f602087016119fe565b9350611a9d604087016119fe565b9250611aab606087016119fe565b9150611ab9608087016119fe565b90509295509295909350565b600080600060608486031215611ad9578283fd5b611ae2846119fe565b9250611af0602085016119fe565b9150604084013590509250925092565b60008060408385031215611b12578182fd5b611b1b836119fe565b946020939093013593505050565b600060208284031215611b3a578081fd5b81516106ef816120d7565b60008060408385031215611b57578182fd5b8235611b1b816120d7565b600060208284031215611b73578081fd5b5035919050565b600060208284031215611b8b578081fd5b5051919050565b60008060408385031215611ba4578182fd5b50508035926020909101359150565b600080600060608486031215611bc7578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215611bf2578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611cd857858101830151858201604001528201611cbc565b81811115611ce95783604083870101525b50601f01601f1916929092016040019392505050565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252603e908201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460408201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606082015260800190565b90815260200190565b9182521515602082015260400190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611ee25784516001600160a01b031683529383019391830191600101611ebd565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b60ff91909116815260200190565b60ff93841681529183166020830152909116604082015260600190565b60008219821115611f4f57611f4f6120c1565b500190565b600082611f6f57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611f865750611fb1565b818704821115611f9857611f986120c1565b80861615611fa557918102915b9490941c938002611f77565b94509492505050565b60006106ef60001960ff851684600082611fd6575060016106ef565b81611fe3575060006106ef565b8160018114611ff9576002811461200357612030565b60019150506106ef565b60ff841115612014576120146120c1565b6001841b91508482111561202a5761202a6120c1565b506106ef565b5060208310610133831016604e8410600b8410161715612063575081810a8381111561205e5761205e6120c1565b6106ef565b6120708484846001611f74565b808604821115612082576120826120c1565b02949350505050565b60008160001904831182151516156120a5576120a56120c1565b500290565b6000828210156120bc576120bc6120c1565b500390565b634e487b7160e01b600052601160045260246000fd5b8015158114610e0057600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ec70d864eb03697637865fe95c3ce4430826c3506353003a7ca85571eefa83ad64736f6c63430008000033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063ded1e4381161006f578063ded1e4381461050f578063df20fd491461052f578063f2fde38b1461054f578063f42938901461056f578063f887ea4014610584576101f9565b8063a9059cbb1461049a578063b2bdfa7b146104ba578063c0cbdea4146104cf578063dd62ed3e146104ef576101f9565b8063893d20e8116100dc578063893d20e8146104395780638da5cb5b1461045b57806395d89b4114610470578063a8aa1b3114610485576101f9565b806377b54bad146103cf57806378109e54146103ef5780637d1db4a5146104045780638252879114610419576101f9565b80634f01f6f1116101855780636ddd1713116101545780636ddd17131461037057806370a0823114610385578063715018a6146103a5578063751039fc146103ba576101f9565b80634f01f6f114610304578063552656691461031b578063571ac8b0146103305780635d83e1d514610350576101f9565b80631df4ccfc116101c15780631df4ccfc1461028d57806323b872dd146102a257806330c9a6a0146102c2578063313ce567146102e2576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b31461024b57806318160ddd14610278576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610599565b6040516102209190611e7a565b60405180910390f35b34801561023557600080fd5b5061023e61059f565b6040516102209190611cac565b34801561025757600080fd5b5061026b610266366004611b00565b6105bd565b6040516102209190611ca1565b34801561028457600080fd5b50610213610628565b34801561029957600080fd5b5061021361062e565b3480156102ae57600080fd5b5061026b6102bd366004611ac5565b610634565b3480156102ce57600080fd5b506102136102dd366004611b62565b6106f6565b3480156102ee57600080fd5b506102f761073e565b6040516102209190611f11565b34801561031057600080fd5b50610319610743565b005b34801561032757600080fd5b5061021361078b565b34801561033c57600080fd5b5061026b61034b366004611a15565b6107bc565b34801561035c57600080fd5b5061031961036b366004611b62565b6107ca565b34801561037c57600080fd5b5061026b610866565b34801561039157600080fd5b506102136103a0366004611a15565b610876565b3480156103b157600080fd5b50610319610891565b3480156103c657600080fd5b50610319610910565b3480156103db57600080fd5b5061026b6103ea366004611b00565b610952565b3480156103fb57600080fd5b50610213610a97565b34801561041057600080fd5b50610213610a9d565b34801561042557600080fd5b50610319610434366004611a61565b610aa3565b34801561044557600080fd5b5061044e610b7d565b6040516102209190611c0e565b34801561046757600080fd5b5061044e610b83565b34801561047c57600080fd5b5061023e610b92565b34801561049157600080fd5b5061044e610baf565b3480156104a657600080fd5b5061026b6104b5366004611b00565b610bbe565b3480156104c657600080fd5b5061044e610bcb565b3480156104db57600080fd5b506103196104ea366004611bb3565b610bda565b3480156104fb57600080fd5b5061021361050a366004611a2f565b610c20565b34801561051b57600080fd5b5061026b61052a366004611b92565b610c4b565b34801561053b57600080fd5b5061031961054a366004611b45565b610c5f565b34801561055b57600080fd5b5061031961056a366004611a15565b610d11565b34801561057b57600080fd5b50610319610dc7565b34801561059057600080fd5b5061044e610e03565b601e5481565b604080518082019091526004815263088aa84b60e31b602082015290565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610616908690611e7a565b60405180910390a35060015b92915050565b60035490565b600f5481565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146106e1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546106bc918490610e12565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6106ec848484610e4c565b90505b9392505050565b600061073661070361078b565b601d546107309061072990600290610723906001600160a01b0316610876565b906110f8565b85906110f8565b9061113d565b90505b919050565b600990565b61074b61117f565b6000546001600160a01b039081169116146107815760405162461bcd60e51b815260040161077890611de8565b60405180910390fd5b610789611183565b565b60006107b761079a6000610876565b6107b16107a861dead610876565b60035490611211565b90611211565b905090565b6000610736826000196105bd565b6107d261117f565b6000546001600160a01b039081169116146107ff5760405162461bcd60e51b815260040161077890611de8565b600181101561080d57600080fd5b6103e88160035461081e919061208b565b6108289190611f54565b60058190556040517f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be519161085b91611e7a565b60405180910390a150565b601d54600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205490565b61089961117f565b6000546001600160a01b039081169116146108c65760405162461bcd60e51b815260040161077890611de8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61091861117f565b6000546001600160a01b039081169116146109455760405162461bcd60e51b815260040161077890611de8565b6003546004819055600555565b6000816109d8576040516370a0823160e01b81526001600160a01b038416906370a0823190610985903090600401611c0e565b60206040518083038186803b15801561099d57600080fd5b505afa1580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190611b7a565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610a09929190611c4d565b60405180910390a160145460405163a9059cbb60e01b81526001600160a01b038581169263a9059cbb92610a4592909116908690600401611c4d565b602060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190611b29565b60055481565b60045481565b610aab61117f565b6000546001600160a01b03908116911614610ad85760405162461bcd60e51b815260040161077890611de8565b601480546001600160a01b03199081166001600160a01b03888116919091179092556015805482168784161790819055601680548316878516179081905560188054841687861617908190556017805490941686861617938490556040517f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1595610b6e9594811694811693928116921690611c22565b60405180910390a15050505050565b60006107b75b6000546001600160a01b031690565b604080518082019091526003815262222aa160e91b602082015290565b601d546001600160a01b031681565b60006106ef338484610e4c565b6000546001600160a01b031681565b610be261117f565b6000546001600160a01b03908116911614610c0f5760405162461bcd60e51b815260040161077890611de8565b601191909155601291909155601355565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b600082610c57836106f6565b119392505050565b610c6761117f565b6000546001600160a01b03908116911614610c945760405162461bcd60e51b815260040161077890611de8565b601d805460ff60a01b1916600160a01b84151502179055610cb76009600a611fba565b610cc1908261208b565b601e819055601d546040517f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee6092610d05929091600160a01b90910460ff1690611e83565b60405180910390a15050565b610d1961117f565b6000546001600160a01b03908116911614610d465760405162461bcd60e51b815260040161077890611de8565b6001600160a01b038116610d6c5760405162461bcd60e51b815260040161077890611d2a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e00573d6000803e3d6000fd5b50565b601b546001600160a01b031681565b60008184841115610e365760405162461bcd60e51b81526004016107789190611cac565b506000610e4384866120aa565b95945050505050565b601f5460009060ff1615610e6c57610e65848484611253565b90506106ef565b6001600160a01b03841660009081526001602052604090205460ff16158015610eae57506001600160a01b03831660009081526001602052604090205460ff16155b506001600160a01b03841660009081526001602052604090205460ff16158015610ee157506001600160a01b0383163014155b8015610ef857506001600160a01b03831661dead14155b8015610f125750601d546001600160a01b03848116911614155b8015610f2c57506018546001600160a01b03848116911614155b8015610f4657506015546001600160a01b03848116911614155b8015610f6b57506001600160a01b03831660009081526009602052604090205460ff16155b15610fab576000610f7b84610876565b600554909150610f8b8483611f3c565b1115610fa95760405162461bcd60e51b815260040161077890611e1d565b505b610fb58483611325565b610fbd61136e565b15610fca57610fca6113c4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526006909152919091205461101c918490610e12565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff168061106957506001600160a01b03841660009081526008602052604090205460ff165b61107d5761107885848661180e565b61107f565b825b6001600160a01b0385166000908152600660205260409020549091506110a590826119a1565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206120e6833981519152906110e5908590611e7a565b60405180910390a3506001949350505050565b60008261110757506000610622565b6000611113838561208b565b9050826111208583611f54565b146106ef5760405162461bcd60e51b815260040161077890611da7565b60006106ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119d0565b3390565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006111c06064610730601254600f546110f890919063ffffffff16565b6111dc6064610730601154600f546110f890919063ffffffff16565b6111f86064610730601354600f546110f890919063ffffffff16565b60405161120793929190611f1f565b60405180910390a1565b60006106ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e12565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546112a4918490610e12565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546112d390836119a1565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206120e683398151915290611313908690611e7a565b60405180910390a35060019392505050565b6004548111158061134e57506001600160a01b03821660009081526009602052604090205460ff165b61136a5760405162461bcd60e51b815260040161077890611cff565b5050565b601d546000906001600160a01b0316331480159061138f5750601f5460ff16155b80156113a45750601d54600160a01b900460ff165b80156107b7575050601e5430600090815260066020526040902054101590565b601f805460ff19166001179055601954601a546000916113e391610c4b565b6113ef57600a546113f2565b60005b905060006114166002610730600f5461073086601e546110f890919063ffffffff16565b9050600061142f82601e5461121190919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061147757634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106114b657634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac94790611500908690600090879030904290600401611e93565b600060405180830381600087803b15801561151a57600080fd5b505af115801561152e573d6000803e3d6000fd5b505050506000611547824761121190919063ffffffff16565b9050600061156261155988600261113d565b600f5490611211565b9050600061157760026107308481878d6110f8565b9050600061159483610730600b54876110f890919063ffffffff16565b905060006115b184610730600d54886110f890919063ffffffff16565b905060006115ce85610730600c54896110f890919063ffffffff16565b6015546040519192506000916001600160a01b039091169085906115f190611c0b565b60006040518083038185875af1925050503d806000811461162e576040519150601f19603f3d011682016040523d82523d6000602084013e611633565b606091505b50506016546040519192506001600160a01b031690839061165390611c0b565b60006040518083038185875af1925050503d8060008114611690576040519150601f19603f3d011682016040523d82523d6000602084013e611695565b606091505b50506017546040519192506001600160a01b03169084906116b590611c0b565b60006040518083038185875af1925050503d80600081146116f2576040519150601f19603f3d011682016040523d82523d6000602084013e6116f7565b606091505b5060009250508b1590506117f657601b60009054906101000a90046001600160a01b03166001600160a01b031663f305d71986308e600080601460009054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161176796959493929190611c66565b6060604051808303818588803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117b99190611bde565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516117ed929190611f03565b60405180910390a15b5050601f805460ff1916905550505050505050505050565b601354601d54600091906001600160a01b0384811691161415611834575060115461184f565b601d546001600160a01b038681169116141561184f57506012545b600061187c6010546064611863919061208b565b61073084610723600f548a6110f890919063ffffffff16565b9050600061189b600f54610730600e54856110f890919063ffffffff16565b905060006118a98383611211565b306000908152600660205260409020549091506118c690826119a1565b30600090815260066020526040808220929092556018546001600160a01b0316815220546118f490836119a1565b6018546001600160a01b039081166000908152600660205260409081902092909255905130918a16906000805160206120e683398151915290611938908590611e7a565b60405180910390a3811561198b576003546119539083611211565b6003556040516000906001600160a01b038a16906000805160206120e683398151915290611982908690611e7a565b60405180910390a35b6119958784611211565b98975050505050505050565b6000806119ae8385611f3c565b9050838110156106ef5760405162461bcd60e51b815260040161077890611d70565b600081836119f15760405162461bcd60e51b81526004016107789190611cac565b506000610e438486611f54565b80356001600160a01b038116811461073957600080fd5b600060208284031215611a26578081fd5b6106ef826119fe565b60008060408385031215611a41578081fd5b611a4a836119fe565b9150611a58602084016119fe565b90509250929050565b600080600080600060a08688031215611a78578081fd5b611a81866119fe565b9450611a8f602087016119fe565b9350611a9d604087016119fe565b9250611aab606087016119fe565b9150611ab9608087016119fe565b90509295509295909350565b600080600060608486031215611ad9578283fd5b611ae2846119fe565b9250611af0602085016119fe565b9150604084013590509250925092565b60008060408385031215611b12578182fd5b611b1b836119fe565b946020939093013593505050565b600060208284031215611b3a578081fd5b81516106ef816120d7565b60008060408385031215611b57578182fd5b8235611b1b816120d7565b600060208284031215611b73578081fd5b5035919050565b600060208284031215611b8b578081fd5b5051919050565b60008060408385031215611ba4578182fd5b50508035926020909101359150565b600080600060608486031215611bc7578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215611bf2578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611cd857858101830151858201604001528201611cbc565b81811115611ce95783604083870101525b50601f01601f1916929092016040019392505050565b602080825260119082015270151608131a5b5a5d08115e18d959591959607a1b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252603e908201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460408201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606082015260800190565b90815260200190565b9182521515602082015260400190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611ee25784516001600160a01b031683529383019391830191600101611ebd565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b60ff91909116815260200190565b60ff93841681529183166020830152909116604082015260600190565b60008219821115611f4f57611f4f6120c1565b500190565b600082611f6f57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611f865750611fb1565b818704821115611f9857611f986120c1565b80861615611fa557918102915b9490941c938002611f77565b94509492505050565b60006106ef60001960ff851684600082611fd6575060016106ef565b81611fe3575060006106ef565b8160018114611ff9576002811461200357612030565b60019150506106ef565b60ff841115612014576120146120c1565b6001841b91508482111561202a5761202a6120c1565b506106ef565b5060208310610133831016604e8410600b8410161715612063575081810a8381111561205e5761205e6120c1565b6106ef565b6120708484846001611f74565b808604821115612082576120826120c1565b02949350505050565b60008160001904831182151516156120a5576120a56120c1565b500290565b6000828210156120bc576120bc6120c1565b500390565b634e487b7160e01b600052601160045260246000fd5b8015158114610e0057600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ec70d864eb03697637865fe95c3ce4430826c3506353003a7ca85571eefa83ad64736f6c63430008000033
Deployed Bytecode Sourcemap
5049:12652:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7300:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8722:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9144:216::-;;;;;;;;;;-1:-1:-1;9144:216:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8452:88::-;;;;;;;;;;;;;:::i;6627:93::-;;;;;;;;;;;;;:::i;9662:370::-;;;;;;;;;;-1:-1:-1;9662:370:0;;;;;:::i;:::-;;:::i;17401:149::-;;;;;;;;;;-1:-1:-1;17401:149:0;;;;;:::i;:::-;;:::i;8546:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16374:79::-;;;;;;;;;;;;;:::i;:::-;;17562:132;;;;;;;;;;;;;:::i;9368:122::-;;;;;;;;;;-1:-1:-1;9368:122:0;;;;;:::i;:::-;;:::i;10044:247::-;;;;;;;;;;-1:-1:-1;10044:247:0;;;;;:::i;:::-;;:::i;7263:30::-;;;;;;;;;;;;;:::i;8892:105::-;;;;;;;;;;-1:-1:-1;8892:105:0;;;;;:::i;:::-;;:::i;1963:148::-;;;;;;;;;;;;;:::i;10301:139::-;;;;;;;;;;;;;:::i;13625:338::-;;;;;;;;;;-1:-1:-1;13625:338:0;;;;;:::i;:::-;;:::i;6146:45::-;;;;;;;;;;;;;:::i;6097:42::-;;;;;;;;;;;;;:::i;16466:547::-;;;;;;;;;;-1:-1:-1;16466:547:0;;;;;:::i;:::-;;:::i;8808:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1749:79::-;;;;;;;;;;;;;:::i;8632:84::-;;;;;;;;;;;;;:::i;7226:19::-;;;;;;;;;;;;;:::i;9498:156::-;;;;;;;;;;-1:-1:-1;9498:156:0;;;;;:::i;:::-;;:::i;1369:21::-;;;;;;;;;;;;;:::i;13971:257::-;;;;;;;;;;-1:-1:-1;13971:257:0;;;;;:::i;:::-;;:::i;9003:133::-;;;;;;;;;;-1:-1:-1;9003:133:0;;;;;:::i;:::-;;:::i;17258:135::-;;;;;;;;;;-1:-1:-1;17258:135:0;;;;;:::i;:::-;;:::i;17021:229::-;;;;;;;;;;-1:-1:-1;17021:229:0;;;;;:::i;:::-;;:::i;2119:244::-;;;;;;;;;;-1:-1:-1;2119:244:0;;;;;:::i;:::-;;:::i;13486:132::-;;;;;;;;;;;;;:::i;7156:24::-;;;;;;;;;;;;;:::i;7300:55::-;;;;:::o;8722:80::-;8794:5;;;;;;;;;;;;-1:-1:-1;;;8794:5:0;;;;8722:80;:::o;9144:216::-;9248:10;9219:4;9236:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9236:32:0;;;;;;;;;;:41;;;9293:37;9219:4;;9236:32;;9293:37;;;;9271:6;;9293:37;:::i;:::-;;;;;;;;-1:-1:-1;9348:4:0;9144:216;;;;;:::o;8452:88::-;8525:12;;8452:88;:::o;6627:93::-;;;;:::o;9662:370::-;-1:-1:-1;;;;;9782:19:0;;9762:4;9782:19;;;:11;:19;;;;;;;;9802:10;9782:31;;;;;;;;-1:-1:-1;;9782:52:0;9779:186;;9884:69;;;;;;;;;;;-1:-1:-1;;;9884:69:0;;;;;;;;-1:-1:-1;;;;;9884:19:0;;-1:-1:-1;9884:19:0;;;:11;:19;;;;;9904:10;9884:31;;;;;;;;;;:69;;9920:6;;9884:35;:69::i;:::-;-1:-1:-1;;;;;9850:19:0;;;;;;:11;:19;;;;;;;;9870:10;9850:31;;;;;;;:103;9779:186;9984:40;9998:6;10006:9;10017:6;9984:13;:40::i;:::-;9977:47;;9662:370;;;;;;:::o;17401:149::-;17461:7;17488:54;17529:12;:10;:12::i;:::-;17511:4;;17488:36;;17501:22;;17521:1;;17501:15;;-1:-1:-1;;;;;17511:4:0;17501:9;:15::i;:::-;:19;;:22::i;:::-;17488:8;;:12;:36::i;:::-;:40;;:54::i;:::-;17481:61;;17401:149;;;;:::o;8546:80::-;5398:1;8546:80;:::o;16374:79::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;;;;;;;;;16435:10:::1;:8;:10::i;:::-;16374:79::o:0;17562:132::-;17605:7;17632:54;17670:15;5239:42;17670:9;:15::i;:::-;17632:33;17649:15;5166:42;17649:9;:15::i;:::-;17632:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17625:61;;17562:132;:::o;9368:122::-;9423:4;9447:35;9455:7;-1:-1:-1;;9447:7:0;:35::i;10044:247::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;10148:1:::1;10130:14;:19;;10122:28;;;::::0;::::1;;10215:4;10196:14;10181:12;;:29;;;;:::i;:::-;10180:39;;;;:::i;:::-;10162:15;:57:::0;;;10235:30:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;10044:247:::0;:::o;7263:30::-;;;-1:-1:-1;;;7263:30:0;;;;;:::o;8892:105::-;-1:-1:-1;;;;;8976:18:0;8958:7;8976:18;;;:9;:18;;;;;;;8892:105::o;1963:148::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;2070:1:::1;2054:6:::0;;2033:40:::1;::::0;-1:-1:-1;;;;;2054:6:0;;::::1;::::0;2033:40:::1;::::0;2070:1;;2033:40:::1;2101:1;2084:19:::0;;-1:-1:-1;;;;;;2084:19:0::1;::::0;;1963:148::o;10301:139::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;10375:12:::1;::::0;10360::::1;:27:::0;;;10402:15:::1;:30:::0;10301:139::o;13625:338::-;13706:12;13739:11;13736:95;;13775:44;;-1:-1:-1;;;13775:44:0;;-1:-1:-1;;;;;13775:29:0;;;;;:44;;13813:4;;13775:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:53;;13736:95;13846:32;13857:12;13871:6;13846:32;;;;;;;:::i;:::-;;;;;;;;13925:21;;13896:59;;-1:-1:-1;;;13896:59:0;;-1:-1:-1;;;;;13896:28:0;;;;;;:59;;13925:21;;;;13948:6;;13896:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6146:45::-;;;;:::o;6097:42::-;;;;:::o;16466:547::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;16659:21:::1;:46:::0;;-1:-1:-1;;;;;;16659:46:0;;::::1;-1:-1:-1::0;;;;;16659:46:0;;::::1;::::0;;;::::1;::::0;;;16716:20:::1;:44:::0;;;::::1;::::0;;::::1;;::::0;;;;16771:14:::1;:32:::0;;;::::1;::::0;;::::1;;::::0;;;;16814:15:::1;:34:::0;;;::::1;::::0;;::::1;;::::0;;;;16859:18:::1;:40:::0;;;;::::1;::::0;;::::1;;::::0;;;;16917:88:::1;::::0;::::1;::::0;::::1;::::0;16931:20;;::::1;::::0;16953:18;::::1;::::0;16973:15;;::::1;::::0;16990:14:::1;::::0;16917:88:::1;:::i;:::-;;;;;;;;16466:547:::0;;;;;:::o;8808:78::-;8860:7;8877;1749:79;1787:7;1814:6;-1:-1:-1;;;;;1814:6:0;1749:79;:::o;8632:84::-;8706:7;;;;;;;;;;;;-1:-1:-1;;;8706:7:0;;;;8632:84;:::o;7226:19::-;;;-1:-1:-1;;;;;7226:19:0;;:::o;9498:156::-;9578:4;9602:44;9616:10;9628:9;9639:6;9602:13;:44::i;1369:21::-;;;-1:-1:-1;;;;;1369:21:0;;:::o;13971:257::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;14095:11:::1;:28:::0;;;;14134:10:::1;:26:::0;;;;14171:15:::1;:33:::0;13971:257::o;9003:133::-;-1:-1:-1;;;;;9105:19:0;;;9087:7;9105:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9003:133::o;17258:135::-;17332:4;17380:5;17356:21;17368:8;17356:11;:21::i;:::-;:29;;17258:135;-1:-1:-1;;;17258:135:0:o;17021:229::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;17112:11:::1;:22:::0;;-1:-1:-1;;;;17112:22:0::1;-1:-1:-1::0;;;17112:22:0;::::1;;;;::::0;;17171:15:::1;5398:1;17171:2;:15;:::i;:::-;17161:25;::::0;:7;:25:::1;:::i;:::-;17145:13;:41:::0;;;17230:11:::1;::::0;17202:40:::1;::::0;::::1;::::0;::::1;::::0;17145:41;;-1:-1:-1;;;17230:11:0;;::::1;;;::::0;17202:40:::1;:::i;:::-;;;;;;;;17021:229:::0;;:::o;2119:244::-;1886:12;:10;:12::i;:::-;1876:6;;-1:-1:-1;;;;;1876:6:0;;;:22;;;1868:67;;;;-1:-1:-1;;;1868:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2208:22:0;::::1;2200:73;;;;-1:-1:-1::0;;;2200:73:0::1;;;;;;;:::i;:::-;2310:6;::::0;;2289:38:::1;::::0;-1:-1:-1;;;;;2289:38:0;;::::1;::::0;2310:6;::::1;::::0;2289:38:::1;::::0;::::1;2338:6;:17:::0;;-1:-1:-1;;;;;;2338:17:0::1;-1:-1:-1::0;;;;;2338:17:0;;;::::1;::::0;;;::::1;::::0;;2119:244::o;13486:132::-;13542:21;;13534:62;;-1:-1:-1;;;;;13542:21:0;;;;13574;13534:62;;;;;13542:21;13534:62;13542:21;13534:62;13574:21;13542;13534:62;;;;;;;;;;;;;;;;;;;;;13486:132::o;7156:24::-;;;-1:-1:-1;;;;;7156:24:0;;:::o;4261:192::-;4347:7;4383:12;4375:6;;;;4367:29;;;;-1:-1:-1;;;4367:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4407:9:0;4419:5;4423:1;4419;:5;:::i;:::-;4407:17;4261:192;-1:-1:-1;;;;;4261:192:0:o;10456:1180::-;10568:6;;10548:4;;10568:6;;10565:63;;;10584:41;10599:6;10607:9;10618:6;10584:14;:41::i;:::-;10577:48;;;;10565:63;-1:-1:-1;;;;;10644:22:0;;;;;;:14;:22;;;;;;;;10643:23;:53;;;;-1:-1:-1;;;;;;10671:25:0;;;;;;:14;:25;;;;;;;;10670:26;10643:53;10640:81;-1:-1:-1;;;;;10763:22:0;;;;;;:14;:22;;;;;;;;10762:23;:53;;;;-1:-1:-1;;;;;;10789:26:0;;10810:4;10789:26;;10762:53;:84;;;;-1:-1:-1;;;;;;10820:26:0;;5166:42;10820:26;;10762:84;:105;;;;-1:-1:-1;10863:4:0;;-1:-1:-1;;;;;10850:17:0;;;10863:4;;10850:17;;10762:105;:137;;;;-1:-1:-1;10884:15:0;;-1:-1:-1;;;;;10871:28:0;;;10884:15;;10871:28;;10762:137;:174;;;;-1:-1:-1;10916:20:0;;-1:-1:-1;;;;;10903:33:0;;;10916:20;;10903:33;;10762:174;:207;;;;-1:-1:-1;;;;;;10941:28:0;;;;;;:17;:28;;;;;;;;10940:29;10762:207;10758:399;;;10985:18;11006:20;11016:9;11006;:20::i;:::-;11074:15;;10985:41;;-1:-1:-1;11050:19:0;11063:6;10985:41;11050:19;:::i;:::-;11049:40;;11041:114;;;;-1:-1:-1;;;11041:114:0;;;;;;;:::i;:::-;10758:399;;11169:28;11182:6;11190;11169:12;:28::i;:::-;11215:16;:14;:16::i;:::-;11212:35;;;11234:10;:8;:10::i;:::-;11277:53;;;;;;;;;;;-1:-1:-1;;;11277:53:0;;;;;;;;-1:-1:-1;;;;;11277:17:0;;-1:-1:-1;11277:17:0;;;:9;:17;;;;;;;;:53;;11299:6;;11277:21;:53::i;:::-;-1:-1:-1;;;;;11257:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11369:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;11397:27:0;;;;;;:16;:27;;;;;;;;11369:55;11368:103;;11437:34;11445:6;11453;11461:9;11437:7;:34::i;:::-;11368:103;;;11428:6;11368:103;-1:-1:-1;;;;;11505:20:0;;;;;;:9;:20;;;;;;11343:128;;-1:-1:-1;11505:40:0;;11343:128;11505:24;:40::i;:::-;-1:-1:-1;;;;;11482:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11563:43;;;;;;-1:-1:-1;;;;;;;;;;;11563:43:0;;;11591:14;;11563:43;:::i;:::-;;;;;;;;-1:-1:-1;11624:4:0;;10456:1180;-1:-1:-1;;;;10456:1180:0:o;4459:250::-;4517:7;4541:6;4537:47;;-1:-1:-1;4571:1:0;4564:8;;4537:47;4596:9;4608:5;4612:1;4608;:5;:::i;:::-;4596:17;-1:-1:-1;4641:1:0;4632:5;4636:1;4596:17;4632:5;:::i;:::-;:10;4624:56;;;;-1:-1:-1;;;4624:56:0;;;;;;;:::i;4715:132::-;4773:7;4800:39;4804:1;4807;4800:39;;;;;;;;;;;;;;;;;:3;:39::i;1090:115::-;1186:10;1090:115;:::o;16121:241::-;16174:180;16189:33;16218:3;16189:24;16202:10;;16189:8;;:12;;:24;;;;:::i;:33::-;16244:34;16274:3;16244:25;16257:11;;16244:8;;:12;;:25;;;;:::i;:34::-;16300:38;16334:3;16300:29;16313:15;;16300:8;;:12;;:29;;;;:::i;:38::-;16174:180;;;;;;;;:::i;:::-;;;;;;;;16121:241::o;4119:136::-;4177:7;4204:43;4208:1;4211;4204:43;;;;;;;;;;;;;;;;;:3;:43::i;11645:330::-;11775:53;;;;;;;;;;;-1:-1:-1;;;11775:53:0;;;;;;;;-1:-1:-1;;;;;11775:17:0;;11738:4;11775:17;;;:9;:17;;;;;;;:53;;11797:6;;11775:21;:53::i;:::-;-1:-1:-1;;;;;11755:17:0;;;;;;;:9;:17;;;;;;:73;;;;11862:20;;;;;;;:32;;11887:6;11862:24;:32::i;:::-;-1:-1:-1;;;;;11839:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11910:35;;;;;;-1:-1:-1;;;;;;;;;;;11910:35:0;;;11938:6;;11910:35;:::i;:::-;;;;;;;;-1:-1:-1;11963:4:0;11645:330;;;;;:::o;11983:168::-;12080:12;;12070:6;:22;;:51;;;-1:-1:-1;;;;;;12096:25:0;;;;;;:17;:25;;;;;;;;12070:51;12062:81;;;;-1:-1:-1;;;12062:81:0;;;;;;;:::i;:::-;11983:168;;:::o;13276:197::-;13363:4;;13325;;-1:-1:-1;;;;;13363:4:0;13349:10;:18;;;;:38;;-1:-1:-1;13381:6:0;;;;13380:7;13349:38;:62;;;;-1:-1:-1;13400:11:0;;-1:-1:-1;;;13400:11:0;;;;13349:62;:116;;;;-1:-1:-1;;13452:13:0;;13442:4;13424:24;;;;:9;:24;;;;;;:41;;;13276:197::o;14251:1854::-;7403:6;:13;;-1:-1:-1;;7403:13:0;7412:4;7403:13;;;14341:8:::1;::::0;14351:19:::1;::::0;7403:6;;14330:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14378:12;;14330:60;;;14374:1;14330:60;14300:90;;14401:23;14427:59;14484:1;14427:52;14470:8;;14427:38;14445:19;14427:13;;:17;;:38;;;;:::i;:59::-;14401:85;;14497:20;14520:34;14538:15;14520:13;;:17;;:34;;;;:::i;:::-;14591:16;::::0;;14605:1:::1;14591:16:::0;;;;;::::1;::::0;;14497:57;;-1:-1:-1;14567:21:0::1;::::0;14591:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14591:16:0::1;14567:40;;14636:4;14618;14623:1;14618:7;;;;;;-1:-1:-1::0;;;14618:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14618:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14662:4:::1;::::0;14652:7;;14662:4;::::1;::::0;14652;;14662;;14652:7;::::1;;;-1:-1:-1::0;;;14652:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14652:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14737:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14737:188:0;;14703:21:::1;::::0;14737:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14809:12;;14679:21:::1;::::0;14852:4;;14879::::1;::::0;14899:15:::1;::::0;14737:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14938:17;14958:40;14984:13;14958:21;:25;;:40;;;;:::i;:::-;14938:60:::0;-1:-1:-1;15011:19:0::1;15033:40;15046:26;:19:::0;15070:1:::1;15046:23;:26::i;:::-;15033:8;::::0;;:12:::1;:40::i;:::-;15011:62:::0;-1:-1:-1;15094:26:0::1;15123:58;15179:1;15123:51;15011:62:::0;15123:51;:9;15137:19;15123:13:::1;:34::i;:58::-;15094:87;;15192:26;15221:44;15253:11;15221:27;15235:12;;15221:9;:13;;:27;;;;:::i;:44::-;15192:73;;15276:24;15303:42;15333:11;15303:25;15317:10;;15303:9;:13;;:25;;;;:::i;:42::-;15276:69;;15356:20;15379:38;15405:11;15379:21;15393:6;;15379:9;:13;;:21;;;;:::i;:38::-;15459:20;::::0;15451:65:::1;::::0;15356:61;;-1:-1:-1;15431:15:0::1;::::0;-1:-1:-1;;;;;15459:20:0;;::::1;::::0;15493:18;;15451:65:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15551:14:0::1;::::0;15543:53:::1;::::0;15430:86;;-1:-1:-1;;;;;;15551:14:0::1;::::0;15579:12;;15543:53:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15631:18:0::1;::::0;15623:61:::1;::::0;15527:69;;-1:-1:-1;;;;;;15631:18:0::1;::::0;15663:16;;15623:61:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15718:5:0::1;::::0;-1:-1:-1;;15739:19:0;;;-1:-1:-1;15736:362:0::1;;15774:6;;;;;;;;;-1:-1:-1::0;;;;;15774:6:0::1;-1:-1:-1::0;;;;;15774:22:0::1;;15804:18;15850:4;15874:15;15908:1;15928::::0;15948:21:::1;;;;;;;;;-1:-1:-1::0;;;;;15948:21:0::1;15988:15;15774:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16038:48;16050:18;16070:15;16038:48;;;;;;;:::i;:::-;;;;;;;;15736:362;-1:-1:-1::0;;7421:6:0;:14;;-1:-1:-1;;7421:14:0;;;-1:-1:-1;;;;;;;;;;14251:1854:0:o;12286:982::-;12420:15;;12462:4;;12372:7;;12420:15;-1:-1:-1;;;;;12449:17:0;;;12462:4;;12449:17;12446:142;;;-1:-1:-1;12493:11:0;;12446:142;;;12535:4;;-1:-1:-1;;;;;12525:14:0;;;12535:4;;12525:14;12522:66;;;-1:-1:-1;12566:10:0;;12522:66;12600:17;12620:59;12658:14;;12675:3;12658:20;;;;:::i;:::-;12620:33;12645:7;12620:20;12631:8;;12620:6;:10;;:20;;;;:::i;:59::-;12600:79;;12690:18;12711:36;12738:8;;12711:22;12725:7;;12711:9;:13;;:22;;;;:::i;:36::-;12690:57;-1:-1:-1;12758:22:0;12783:25;:9;12690:57;12783:13;:25::i;:::-;12864:4;12846:24;;;;:9;:24;;;;;;12758:50;;-1:-1:-1;12846:44:0;;12758:50;12846:28;:44::i;:::-;12837:4;12819:24;;;;:9;:24;;;;;;:71;;;;12940:15;;-1:-1:-1;;;;;12940:15:0;12930:26;;;;:42;;12961:10;12930:30;:42::i;:::-;12911:15;;-1:-1:-1;;;;;12911:15:0;;;12901:26;;;;:9;:26;;;;;;;:71;;;;12988:47;;13013:4;;12988:47;;;-1:-1:-1;;;;;;;;;;;12988:47:0;;;13020:14;;12988:47;:::i;:::-;;;;;;;;13069:14;;13066:154;;13114:12;;:28;;13131:10;13114:16;:28::i;:::-;13099:12;:43;13162:34;;5239:42;;-1:-1:-1;;;;;13162:34:0;;;-1:-1:-1;;;;;;;;;;;13162:34:0;;;13185:10;;13162:34;:::i;:::-;;;;;;;;13066:154;13239:21;:6;13250:9;13239:10;:21::i;:::-;13232:28;12286:982;-1:-1:-1;;;;;;;;12286:982:0:o;3932:181::-;3990:7;;4022:5;4026:1;4022;:5;:::i;:::-;4010:17;;4051:1;4046;:6;;4038:46;;;;-1:-1:-1;;;4038:46:0;;;;;;;:::i;4853:189::-;4939:7;4974:12;4967:5;4959:28;;;;-1:-1:-1;;;4959:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4998:9:0;5010:5;5014:1;5010;:5;:::i;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:504::-;;;;;;856:3;844:9;835:7;831:23;827:33;824:2;;;878:6;870;863:22;824:2;906:31;927:9;906:31;:::i;:::-;896:41;;956:40;992:2;981:9;977:18;956:40;:::i;:::-;946:50;;1015:40;1051:2;1040:9;1036:18;1015:40;:::i;:::-;1005:50;;1074:40;1110:2;1099:9;1095:18;1074:40;:::i;:::-;1064:50;;1133:41;1169:3;1158:9;1154:19;1133:41;:::i;:::-;1123:51;;814:366;;;;;;;;:::o;1185:342::-;;;;1331:2;1319:9;1310:7;1306:23;1302:32;1299:2;;;1352:6;1344;1337:22;1299:2;1380:31;1401:9;1380:31;:::i;:::-;1370:41;;1430:40;1466:2;1455:9;1451:18;1430:40;:::i;:::-;1420:50;;1517:2;1506:9;1502:18;1489:32;1479:42;;1289:238;;;;;:::o;1532:266::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1682:6;1674;1667:22;1629:2;1710:31;1731:9;1710:31;:::i;:::-;1700:41;1788:2;1773:18;;;;1760:32;;-1:-1:-1;;;1619:179:1:o;1803:257::-;;1923:2;1911:9;1902:7;1898:23;1894:32;1891:2;;;1944:6;1936;1929:22;1891:2;1981:9;1975:16;2000:30;2024:5;2000:30;:::i;2065:321::-;;;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2212:6;2204;2197:22;2159:2;2256:9;2243:23;2275:30;2299:5;2275:30;:::i;2391:190::-;;2503:2;2491:9;2482:7;2478:23;2474:32;2471:2;;;2524:6;2516;2509:22;2471:2;-1:-1:-1;2552:23:1;;2461:120;-1:-1:-1;2461:120:1:o;2586:194::-;;2709:2;2697:9;2688:7;2684:23;2680:32;2677:2;;;2730:6;2722;2715:22;2677:2;-1:-1:-1;2758:16:1;;2667:113;-1:-1:-1;2667:113:1:o;2785:258::-;;;2914:2;2902:9;2893:7;2889:23;2885:32;2882:2;;;2935:6;2927;2920:22;2882:2;-1:-1:-1;;2963:23:1;;;3033:2;3018:18;;;3005:32;;-1:-1:-1;2872:171:1:o;3048:326::-;;;;3194:2;3182:9;3173:7;3169:23;3165:32;3162:2;;;3215:6;3207;3200:22;3162:2;-1:-1:-1;;3243:23:1;;;3313:2;3298:18;;3285:32;;-1:-1:-1;3364:2:1;3349:18;;;3336:32;;3152:222;-1:-1:-1;3152:222:1:o;3379:316::-;;;;3536:2;3524:9;3515:7;3511:23;3507:32;3504:2;;;3557:6;3549;3542:22;3504:2;3591:9;3585:16;3575:26;;3641:2;3630:9;3626:18;3620:25;3610:35;;3685:2;3674:9;3670:18;3664:25;3654:35;;3494:201;;;;;:::o;3700:205::-;3900:3;3891:14::o;3910:203::-;-1:-1:-1;;;;;4074:32:1;;;;4056:51;;4044:2;4029:18;;4011:102::o;4118:465::-;-1:-1:-1;;;;;4405:15:1;;;4387:34;;4457:15;;;4452:2;4437:18;;4430:43;4509:15;;;4504:2;4489:18;;4482:43;4561:15;;;4556:2;4541:18;;4534:43;4336:3;4321:19;;4303:280::o;4588:274::-;-1:-1:-1;;;;;4780:32:1;;;;4762:51;;4844:2;4829:18;;4822:34;4750:2;4735:18;;4717:145::o;4867:607::-;-1:-1:-1;;;;;5226:15:1;;;5208:34;;5273:2;5258:18;;5251:34;;;;5316:2;5301:18;;5294:34;;;;5359:2;5344:18;;5337:34;;;;5408:15;;;5402:3;5387:19;;5380:44;5188:3;5440:19;;5433:35;;;;5157:3;5142:19;;5124:350::o;5479:187::-;5644:14;;5637:22;5619:41;;5607:2;5592:18;;5574:92::o;5897:603::-;;6038:2;6067;6056:9;6049:21;6099:6;6093:13;6142:6;6137:2;6126:9;6122:18;6115:34;6167:4;6180:140;6194:6;6191:1;6188:13;6180:140;;;6289:14;;;6285:23;;6279:30;6255:17;;;6274:2;6251:26;6244:66;6209:10;;6180:140;;;6338:6;6335:1;6332:13;6329:2;;;6408:4;6403:2;6394:6;6383:9;6379:22;6375:31;6368:45;6329:2;-1:-1:-1;6484:2:1;6463:15;-1:-1:-1;;6459:29:1;6444:45;;;;6491:2;6440:54;;6018:482;-1:-1:-1;;;6018:482:1:o;6505:341::-;6707:2;6689:21;;;6746:2;6726:18;;;6719:30;-1:-1:-1;;;6780:2:1;6765:18;;6758:47;6837:2;6822:18;;6679:167::o;6851:402::-;7053:2;7035:21;;;7092:2;7072:18;;;7065:30;7131:34;7126:2;7111:18;;7104:62;-1:-1:-1;;;7197:2:1;7182:18;;7175:36;7243:3;7228:19;;7025:228::o;7258:351::-;7460:2;7442:21;;;7499:2;7479:18;;;7472:30;7538:29;7533:2;7518:18;;7511:57;7600:2;7585:18;;7432:177::o;7614:397::-;7816:2;7798:21;;;7855:2;7835:18;;;7828:30;7894:34;7889:2;7874:18;;7867:62;-1:-1:-1;;;7960:2:1;7945:18;;7938:31;8001:3;7986:19;;7788:223::o;8016:356::-;8218:2;8200:21;;;8237:18;;;8230:30;8296:34;8291:2;8276:18;;8269:62;8363:2;8348:18;;8190:182::o;8377:426::-;8579:2;8561:21;;;8618:2;8598:18;;;8591:30;8657:34;8652:2;8637:18;;8630:62;8728:32;8723:2;8708:18;;8701:60;8793:3;8778:19;;8551:252::o;8808:177::-;8954:25;;;8942:2;8927:18;;8909:76::o;8990:258::-;9158:25;;;9226:14;9219:22;9214:2;9199:18;;9192:50;9146:2;9131:18;;9113:135::o;9253:983::-;;9563:3;9552:9;9548:19;9594:6;9583:9;9576:25;9620:2;9658:6;9653:2;9642:9;9638:18;9631:34;9701:3;9696:2;9685:9;9681:18;9674:31;9725:6;9760;9754:13;9791:6;9783;9776:22;9829:3;9818:9;9814:19;9807:26;;9868:2;9860:6;9856:15;9842:29;;9889:4;9902:195;9916:6;9913:1;9910:13;9902:195;;;9981:13;;-1:-1:-1;;;;;9977:39:1;9965:52;;10072:15;;;;10037:12;;;;10013:1;9931:9;9902:195;;;-1:-1:-1;;;;;;;10153:32:1;;;;10148:2;10133:18;;10126:60;-1:-1:-1;;;10217:3:1;10202:19;10195:35;10114:3;9524:712;-1:-1:-1;;;9524:712:1:o;10241:248::-;10415:25;;;10471:2;10456:18;;10449:34;10403:2;10388:18;;10370:119::o;10494:184::-;10666:4;10654:17;;;;10636:36;;10624:2;10609:18;;10591:87::o;10683:340::-;10903:4;10891:17;;;10873:36;;10945:17;;;10940:2;10925:18;;10918:45;10999:17;;;10994:2;10979:18;;10972:45;10861:2;10846:18;;10828:195::o;11028:128::-;;11099:1;11095:6;11092:1;11089:13;11086:2;;;11105:18;;:::i;:::-;-1:-1:-1;11141:9:1;;11076:80::o;11161:217::-;;11227:1;11217:2;;-1:-1:-1;;;11252:31:1;;11306:4;11303:1;11296:15;11334:4;11259:1;11324:15;11217:2;-1:-1:-1;11363:9:1;;11207:171::o;11383:453::-;11479:6;11502:5;11516:314;11565:1;11602:2;11592:8;11589:16;11579:2;;11609:5;;;11579:2;11650:4;11645:3;11641:14;11635:4;11632:24;11629:2;;;11659:18;;:::i;:::-;11709:2;11699:8;11695:17;11692:2;;;11724:16;;;;11692:2;11803:17;;;;;11763:15;;11516:314;;;11460:376;;;;;;;:::o;11841:148::-;;11928:55;-1:-1:-1;;11969:4:1;11955:19;;11949:4;11994:922;12078:8;12068:2;;-1:-1:-1;12119:1:1;12133:5;;12068:2;12167:4;12157:2;;-1:-1:-1;12204:1:1;12218:5;;12157:2;12249:4;12267:1;12262:59;;;;12335:1;12330:183;;;;12242:271;;12262:59;12292:1;12283:10;;12306:5;;;12330:183;12367:3;12357:8;12354:17;12351:2;;;12374:18;;:::i;:::-;12430:1;12420:8;12416:16;12407:25;;12458:3;12451:5;12448:14;12445:2;;;12465:18;;:::i;:::-;12498:5;;;12242:271;;12597:2;12587:8;12584:16;12578:3;12572:4;12569:13;12565:36;12559:2;12549:8;12546:16;12541:2;12535:4;12532:12;12528:35;12525:77;12522:2;;;-1:-1:-1;12634:19:1;;;12669:14;;;12666:2;;;12686:18;;:::i;:::-;12719:5;;12522:2;12766:42;12804:3;12794:8;12788:4;12785:1;12766:42;:::i;:::-;12841:6;12836:3;12832:16;12823:7;12820:29;12817:2;;;12852:18;;:::i;:::-;12890:20;;12058:858;-1:-1:-1;;;;12058:858:1:o;12921:168::-;;13027:1;13023;13019:6;13015:14;13012:1;13009:21;13004:1;12997:9;12990:17;12986:45;12983:2;;;13034:18;;:::i;:::-;-1:-1:-1;13074:9:1;;12973:116::o;13094:125::-;;13162:1;13159;13156:8;13153:2;;;13167:18;;:::i;:::-;-1:-1:-1;13204:9:1;;13143:76::o;13224:127::-;13285:10;13280:3;13276:20;13273:1;13266:31;13316:4;13313:1;13306:15;13340:4;13337:1;13330:15;13356:120;13444:5;13437:13;13430:21;13423:5;13420:32;13410:2;;13466:1;13463;13456:12
Swarm Source
ipfs://ec70d864eb03697637865fe95c3ce4430826c3506353003a7ca85571eefa83ad
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.