Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 RUM
Holders
262
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
423,756.451161306 RUMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RUMBLE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-21 */ /* https://twitter.com/rumbletoken https://t.me/rumbletoken http://rumble-erc.com ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.20; 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); } 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; } } 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; } contract RUMBLE is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "RUMBLE"; string constant _symbol = "RUM"; uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**9 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); uint256 public _maxWalletToken = _totalSupply.mul(1).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeexempt; mapping (address => bool) isTxLimitexempt; uint256 private liquidityFee = 1; uint256 private marketingFee = 3; uint256 private devFee = 0; uint256 private teamFee = 1; uint256 private burnFee = 0; uint256 public totalFee = teamFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellmultiplier = 800; uint256 buymultiplier = 500; uint256 transfertax = 800; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private devFeeReceiver; address private teamFeeReceiver; address private burnFeeReceiver; uint256 targetLiquidity = 30; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 100 / 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; isFeeexempt[msg.sender] = true; isFeeexempt[devFeeReceiver] = true; isTxLimitexempt[msg.sender] = true; isTxLimitexempt[pair] = true; isTxLimitexempt[devFeeReceiver] = true; isTxLimitexempt[marketingFeeReceiver] = true; isTxLimitexempt[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0x1246eE07c031F14c1C5153a0F37E35174266Ec39; devFeeReceiver = msg.sender; teamFeeReceiver = 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 disableLimits () 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]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[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 = (isFeeexempt[sender] || isFeeexempt[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 || isTxLimitexempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeexempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transfertax; if(recipient == pair) { percent = sellmultiplier; } else if(sender == pair) { percent = buymultiplier; } 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 clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setMultipliers(uint256 _issell, uint256 _isbuy, uint256 _wallet) external onlyOwner { buymultiplier = _isbuy; sellmultiplier = _issell; transfertax = _wallet; } function lowerTax() public onlyOwner { sellmultiplier = 600; buymultiplier = 200; transfertax = 400; } function setMaxHolding(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxTransaction(uint256 maxTXPercent) external onlyOwner { require(maxTXPercent >= 1); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function openTrading() public onlyOwner { TradingOpen = true; } function setBacking(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 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 amountETHteam = amountETH.mul(teamFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; teamFee = _teamFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function updateWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; teamFeeReceiver = _teamFeeReceiver; } function configSwapback(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountTokens); }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","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":"_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":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"configSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lowerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setBacking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_issell","type":"uint256"},{"internalType":"uint256","name":"_isbuy","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMultipliers","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":"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"},{"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":"_teamFeeReceiver","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006a2565b6200004290633b9aca00620006b2565b600581905562000063906064906200005c9060016200047f565b9062000512565b6006556005546200007e906064906200005c9060016200047f565b6007556001600c556003600d555f600e556001600f555f601055601054600e54600c54600d54600f54620000b39190620006cc565b620000bf9190620006cc565b620000cb9190620006cc565b620000d79190620006cc565b6011556064601281905561032060138190556101f4601455601555601e601b55601c819055601f805461ffff60a01b1916600160a81b1790556005546103e891620001239190620006b2565b6200012f9190620006e2565b6020553480156200013e575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000221919062000702565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200027e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a4919062000702565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000319919062000702565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055305f818152600960209081526040808320601d548816845282528083205f19905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616731246ee07c031f14c1c5153a0f37e35174266ec391790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000777565b5f825f036200049057505f6200050c565b5f6200049d8385620006b2565b905082620004ac8583620006e2565b14620005095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200050983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055b60201b60201c565b5f81836200057e5760405162461bcd60e51b81526004016200050091906200072a565b505f6200058c8486620006e2565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005e957815f1904821115620005cd57620005cd62000595565b80851615620005db57918102915b93841c9390800290620005ae565b509250929050565b5f8262000601575060016200050c565b816200060f57505f6200050c565b8160018114620006285760028114620006335762000653565b60019150506200050c565b60ff84111562000647576200064762000595565b50506001821b6200050c565b5060208310610133831016604e8410600b841016171562000678575081810a6200050c565b620006848383620005a9565b805f19048211156200069a576200069a62000595565b029392505050565b5f6200050960ff841683620005f1565b80820281158282048414176200050c576200050c62000595565b808201808211156200050c576200050c62000595565b5f82620006fd57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000713575f80fd5b81516001600160a01b038116811462000509575f80fd5b5f6020808352835180828501525f5b81811015620007575785810183015185820160400152820162000739565b505f604082860101526040601f19601f8301168501019250505092915050565b611eba80620007855f395ff3fe608060405260043610610220575f3560e01c80638da5cb5b1161011e578063cc798a5c116100a8578063f2fde38b1161006d578063f2fde38b14610659578063f429389014610678578063f887ea401461068c578063f928364c146106ab578063fd5ea1de146106bf575f80fd5b8063cc798a5c14610599578063d51ed1c8146105b8578063dd62ed3e146105d7578063e33624ab1461061b578063f0a9e3651461063a575f80fd5b8063a9059cbb116100ee578063a9059cbb14610515578063a9f15ddc14610534578063ab5a188714610548578063b2bdfa7b14610567578063c9567bf914610585575f80fd5b80638da5cb5b1461049057806395d89b41146104ac5780639bc7c8c0146104d7578063a8aa1b31146104f6575f80fd5b8063313ce567116101aa578063715018a61161016f578063715018a61461040357806378109e54146104175780637d1db4a51461042c57806386f6c3c114610441578063893d20e814610460575f80fd5b8063313ce56714610354578063571ac8b01461036f5780636ce46bc31461038e5780636ddd1713146103af57806370a08231146103cf575f80fd5b80631161ae39116101f05780631161ae39146102d957806318160ddd146102f85780631df4ccfc1461030c57806323b872dd146103215780632b112e4914610340575f80fd5b80630445b6671461022b57806306fdde031461025357806308fd3d051461028a578063095ea7b3146102ba575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061024060205481565b6040519081526020015b60405180910390f35b34801561025e575f80fd5b5060408051808201909152600681526552554d424c4560d01b60208201525b60405161024a9190611aa5565b348015610295575f80fd5b50601f546102aa90600160a01b900460ff1681565b604051901515815260200161024a565b3480156102c5575f80fd5b506102aa6102d4366004611b0b565b6106de565b3480156102e4575f80fd5b506102aa6102f3366004611b33565b61074a565b348015610303575f80fd5b50600554610240565b348015610317575f80fd5b5061024060115481565b34801561032c575f80fd5b506102aa61033b366004611b53565b61075d565b34801561034b575f80fd5b5061024061081b565b34801561035f575f80fd5b506040516009815260200161024a565b34801561037a575f80fd5b506102aa610389366004611b8c565b61086b565b348015610399575f80fd5b506103ad6103a8366004611ba5565b610877565b005b3480156103ba575f80fd5b50601f546102aa90600160a81b900460ff1681565b3480156103da575f80fd5b506102406103e9366004611b8c565b6001600160a01b03165f9081526008602052604090205490565b34801561040e575f80fd5b506103ad6108ba565b348015610422575f80fd5b5061024060075481565b348015610437575f80fd5b5061024060065481565b34801561044c575f80fd5b506103ad61045b366004611bce565b61092b565b34801561046b575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161024a565b34801561049b575f80fd5b505f546001600160a01b0316610478565b3480156104b7575f80fd5b5060408051808201909152600381526252554d60e81b602082015261027d565b3480156104e2575f80fd5b506103ad6104f1366004611c0d565b6109f0565b348015610501575f80fd5b50601f54610478906001600160a01b031681565b348015610520575f80fd5b506102aa61052f366004611b0b565b610a47565b34801561053f575f80fd5b506103ad610a53565b348015610553575f80fd5b506103ad610562366004611c0d565b610a8f565b348015610572575f80fd5b505f54610478906001600160a01b031681565b348015610590575f80fd5b506103ad610ae6565b3480156105a4575f80fd5b506103ad6105b3366004611b33565b610b24565b3480156105c3575f80fd5b506102406105d2366004611c0d565b610b58565b3480156105e2575f80fd5b506102406105f1366004611c24565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610626575f80fd5b506103ad610635366004611c62565b610b9d565b348015610645575f80fd5b506102aa610654366004611b0b565b610be8565b348015610664575f80fd5b506103ad610673366004611b8c565b610ccd565b348015610683575f80fd5b506103ad610db4565b348015610697575f80fd5b50601d54610478906001600160a01b031681565b3480156106b6575f80fd5b506103ad610ded565b3480156106ca575f80fd5b506103ad6106d9366004611c7e565b610e23565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107389086815260200190565b60405180910390a35060015b92915050565b5f8261075583610b58565b119392505050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610806576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546107e2918490610eab565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b610811848484610ee3565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610866906003546001600160a01b03165f90815260086020526040902054610860906005549061123d565b9061123d565b905090565b5f610744825f196106de565b5f546001600160a01b031633146108a95760405162461bcd60e51b81526004016108a090611cdf565b60405180910390fd5b601491909155601391909155601555565b5f546001600160a01b031633146108e35760405162461bcd60e51b81526004016108a090611cdf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109545760405162461bcd60e51b81526004016108a090611cdf565b600c869055600f859055600d849055600e83905560108290556109858261097f858188818c8c61127e565b9061127e565b6011556012819055610998600582611d28565b601154106109e85760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108a0565b505050505050565b5f546001600160a01b03163314610a195760405162461bcd60e51b81526004016108a090611cdf565b6001811015610a26575f80fd5b6103e881600554610a379190611d47565b610a419190611d28565b60075550565b5f610814338484610ee3565b5f546001600160a01b03163314610a7c5760405162461bcd60e51b81526004016108a090611cdf565b61025860135560c8601455610190601555565b5f546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108a090611cdf565b6001811015610ac5575f80fd5b6103e881600554610ad69190611d47565b610ae09190611d28565b60065550565b5f546001600160a01b03163314610b0f5760405162461bcd60e51b81526004016108a090611cdf565b601f805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016108a090611cdf565b601b91909155601c55565b5f610744610b6461081b565b601f546001600160a01b03165f90815260086020526040902054610b9790610b90906002905b906112dc565b85906112dc565b9061135a565b5f546001600160a01b03163314610bc65760405162461bcd60e51b81526004016108a090611cdf565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b5f815f03610c59576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c569190611d5e565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610ca9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108149190611d75565b5f546001600160a01b03163314610cf65760405162461bcd60e51b81526004016108a090611cdf565b6001600160a01b038116610d5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a0565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610dea573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e165760405162461bcd60e51b81526004016108a090611cdf565b6005546006819055600755565b5f546001600160a01b03163314610e4c5760405162461bcd60e51b81526004016108a090611cdf565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b5f8184841115610ece5760405162461bcd60e51b81526004016108a09190611aa5565b505f610eda8486611d90565b95945050505050565b6021545f9060ff1615610f0257610efb84848461139b565b9050610814565b6001600160a01b0384165f9081526001602052604090205460ff16158015610f4257506001600160a01b0383165f9081526001602052604090205460ff16155b15610f9757601f54600160a01b900460ff16610f975760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a0565b6001600160a01b0384165f9081526001602052604090205460ff16158015610fc857506001600160a01b0383163014155b8015610fe257506003546001600160a01b03848116911614155b8015610ffc5750601f546001600160a01b03848116911614155b80156110165750601a546001600160a01b03848116911614155b801561103057506017546001600160a01b03848116911614155b801561105457506001600160a01b0383165f908152600b602052604090205460ff16155b156110f4576001600160a01b0383165f9081526008602052604090205460075461107e8483611da3565b11156110f25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108a0565b505b6110fe848361146b565b6111066114d7565b156111135761111361152d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260089091529190912054611164918490610eab565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff16806111af57506001600160a01b0384165f908152600a602052604090205460ff165b6111c3576111be8584866118f5565b6111c5565b825b6001600160a01b0385165f908152600860205260409020549091506111ea908261127e565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f80516020611e658339815191529061122a9085815260200190565b60405180910390a3506001949350505050565b5f61081483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eab565b5f8061128a8385611da3565b9050838110156108145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a0565b5f825f036112eb57505f610744565b5f6112f68385611d47565b9050826113038583611d28565b146108145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a0565b5f61081483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a79565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546113eb918490610eab565b6001600160a01b038086165f908152600860205260408082209390935590851681522054611419908361127e565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f80516020611e65833981519152906114599086815260200190565b60405180910390a35060019392505050565b6006548111158061149357506001600160a01b0382165f908152600b602052604090205460ff165b6114d35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108a0565b5050565b601f545f906001600160a01b031633148015906114f7575060215460ff16155b801561150c5750601f54600160a81b900460ff165b801561086657505060208054305f9081526008909252604090912054101590565b6021805460ff19166001179055601b54601c545f9161154b9161074a565b61155757600c54611559565b5f5b90505f61157c6002610b97601154610b97866020546112dc90919063ffffffff16565b90505f6115948260205461123d90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106115cc576115cc611db6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115fd576115fd611db6565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116469086905f90879030904290600401611dca565b5f604051808303815f87803b15801561165d575f80fd5b505af115801561166f573d5f803e3d5ffd5b505050505f611687824761123d90919063ffffffff16565b90505f6116a161169888600261135a565b6011549061123d565b90505f6116b56002610b978481878d6112dc565b90505f6116d183610b97600d54876112dc90919063ffffffff16565b90505f6116ed84610b97600f54886112dc90919063ffffffff16565b90505f61170985610b97600e54896112dc90919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611758576040519150601f19603f3d011682016040523d82523d5f602084013e61175d565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146117aa576040519150601f19603f3d011682016040523d82523d5f602084013e6117af565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146117fc576040519150601f19603f3d011682016040523d82523d5f602084013e611801565b606091505b505f9250508b1590506118dd57601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561187b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118a09190611e39565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b039081169084160361191a5750601354611935565b601f546001600160a01b039081169086160361193557506014545b5f61196160125460646119489190611d47565b610b9784610b8a6011548a6112dc90919063ffffffff16565b90505f61197f601154610b97601054856112dc90919063ffffffff16565b90505f61198c838361123d565b305f908152600860205260409020549091506119a8908261127e565b305f9081526008602052604080822092909255601a546001600160a01b0316815220546119d5908361127e565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f80516020611e65833981519152910160405180910390a38115611a6357600554611a2d908361123d565b6005556004546040518381526001600160a01b03918216918a16905f80516020611e658339815191529060200160405180910390a35b611a6d878461123d565b98975050505050505050565b5f8183611a995760405162461bcd60e51b81526004016108a09190611aa5565b505f610eda8486611d28565b5f6020808352835180828501525f5b81811015611ad057858101830151858201604001528201611ab4565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b06575f80fd5b919050565b5f8060408385031215611b1c575f80fd5b611b2583611af0565b946020939093013593505050565b5f8060408385031215611b44575f80fd5b50508035926020909101359150565b5f805f60608486031215611b65575f80fd5b611b6e84611af0565b9250611b7c60208501611af0565b9150604084013590509250925092565b5f60208284031215611b9c575f80fd5b61081482611af0565b5f805f60608486031215611bb7575f80fd5b505081359360208301359350604090920135919050565b5f805f805f8060c08789031215611be3575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215611c1d575f80fd5b5035919050565b5f8060408385031215611c35575f80fd5b611c3e83611af0565b9150611c4c60208401611af0565b90509250929050565b8015158114610dea575f80fd5b5f8060408385031215611c73575f80fd5b8235611b2581611c55565b5f805f805f60a08688031215611c92575f80fd5b611c9b86611af0565b9450611ca960208701611af0565b9350611cb760408701611af0565b9250611cc560608701611af0565b9150611cd360808701611af0565b90509295509295909350565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611d4257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761074457610744611d14565b5f60208284031215611d6e575f80fd5b5051919050565b5f60208284031215611d85575f80fd5b815161081481611c55565b8181038181111561074457610744611d14565b8082018082111561074457610744611d14565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e185784516001600160a01b031683529383019391830191600101611df3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611e4b575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e58e93c959b506634f9c53a19bc38f2ed545b049e5ba316987dfc199492bf5bf64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610220575f3560e01c80638da5cb5b1161011e578063cc798a5c116100a8578063f2fde38b1161006d578063f2fde38b14610659578063f429389014610678578063f887ea401461068c578063f928364c146106ab578063fd5ea1de146106bf575f80fd5b8063cc798a5c14610599578063d51ed1c8146105b8578063dd62ed3e146105d7578063e33624ab1461061b578063f0a9e3651461063a575f80fd5b8063a9059cbb116100ee578063a9059cbb14610515578063a9f15ddc14610534578063ab5a188714610548578063b2bdfa7b14610567578063c9567bf914610585575f80fd5b80638da5cb5b1461049057806395d89b41146104ac5780639bc7c8c0146104d7578063a8aa1b31146104f6575f80fd5b8063313ce567116101aa578063715018a61161016f578063715018a61461040357806378109e54146104175780637d1db4a51461042c57806386f6c3c114610441578063893d20e814610460575f80fd5b8063313ce56714610354578063571ac8b01461036f5780636ce46bc31461038e5780636ddd1713146103af57806370a08231146103cf575f80fd5b80631161ae39116101f05780631161ae39146102d957806318160ddd146102f85780631df4ccfc1461030c57806323b872dd146103215780632b112e4914610340575f80fd5b80630445b6671461022b57806306fdde031461025357806308fd3d051461028a578063095ea7b3146102ba575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061024060205481565b6040519081526020015b60405180910390f35b34801561025e575f80fd5b5060408051808201909152600681526552554d424c4560d01b60208201525b60405161024a9190611aa5565b348015610295575f80fd5b50601f546102aa90600160a01b900460ff1681565b604051901515815260200161024a565b3480156102c5575f80fd5b506102aa6102d4366004611b0b565b6106de565b3480156102e4575f80fd5b506102aa6102f3366004611b33565b61074a565b348015610303575f80fd5b50600554610240565b348015610317575f80fd5b5061024060115481565b34801561032c575f80fd5b506102aa61033b366004611b53565b61075d565b34801561034b575f80fd5b5061024061081b565b34801561035f575f80fd5b506040516009815260200161024a565b34801561037a575f80fd5b506102aa610389366004611b8c565b61086b565b348015610399575f80fd5b506103ad6103a8366004611ba5565b610877565b005b3480156103ba575f80fd5b50601f546102aa90600160a81b900460ff1681565b3480156103da575f80fd5b506102406103e9366004611b8c565b6001600160a01b03165f9081526008602052604090205490565b34801561040e575f80fd5b506103ad6108ba565b348015610422575f80fd5b5061024060075481565b348015610437575f80fd5b5061024060065481565b34801561044c575f80fd5b506103ad61045b366004611bce565b61092b565b34801561046b575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161024a565b34801561049b575f80fd5b505f546001600160a01b0316610478565b3480156104b7575f80fd5b5060408051808201909152600381526252554d60e81b602082015261027d565b3480156104e2575f80fd5b506103ad6104f1366004611c0d565b6109f0565b348015610501575f80fd5b50601f54610478906001600160a01b031681565b348015610520575f80fd5b506102aa61052f366004611b0b565b610a47565b34801561053f575f80fd5b506103ad610a53565b348015610553575f80fd5b506103ad610562366004611c0d565b610a8f565b348015610572575f80fd5b505f54610478906001600160a01b031681565b348015610590575f80fd5b506103ad610ae6565b3480156105a4575f80fd5b506103ad6105b3366004611b33565b610b24565b3480156105c3575f80fd5b506102406105d2366004611c0d565b610b58565b3480156105e2575f80fd5b506102406105f1366004611c24565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610626575f80fd5b506103ad610635366004611c62565b610b9d565b348015610645575f80fd5b506102aa610654366004611b0b565b610be8565b348015610664575f80fd5b506103ad610673366004611b8c565b610ccd565b348015610683575f80fd5b506103ad610db4565b348015610697575f80fd5b50601d54610478906001600160a01b031681565b3480156106b6575f80fd5b506103ad610ded565b3480156106ca575f80fd5b506103ad6106d9366004611c7e565b610e23565b335f8181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107389086815260200190565b60405180910390a35060015b92915050565b5f8261075583610b58565b119392505050565b6001600160a01b0383165f9081526009602090815260408083203384529091528120545f1914610806576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526009825283812033825290915291909120546107e2918490610eab565b6001600160a01b0385165f9081526009602090815260408083203384529091529020555b610811848484610ee3565b90505b9392505050565b6004546001600160a01b03165f90815260086020526040812054610866906003546001600160a01b03165f90815260086020526040902054610860906005549061123d565b9061123d565b905090565b5f610744825f196106de565b5f546001600160a01b031633146108a95760405162461bcd60e51b81526004016108a090611cdf565b60405180910390fd5b601491909155601391909155601555565b5f546001600160a01b031633146108e35760405162461bcd60e51b81526004016108a090611cdf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109545760405162461bcd60e51b81526004016108a090611cdf565b600c869055600f859055600d849055600e83905560108290556109858261097f858188818c8c61127e565b9061127e565b6011556012819055610998600582611d28565b601154106109e85760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016108a0565b505050505050565b5f546001600160a01b03163314610a195760405162461bcd60e51b81526004016108a090611cdf565b6001811015610a26575f80fd5b6103e881600554610a379190611d47565b610a419190611d28565b60075550565b5f610814338484610ee3565b5f546001600160a01b03163314610a7c5760405162461bcd60e51b81526004016108a090611cdf565b61025860135560c8601455610190601555565b5f546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108a090611cdf565b6001811015610ac5575f80fd5b6103e881600554610ad69190611d47565b610ae09190611d28565b60065550565b5f546001600160a01b03163314610b0f5760405162461bcd60e51b81526004016108a090611cdf565b601f805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016108a090611cdf565b601b91909155601c55565b5f610744610b6461081b565b601f546001600160a01b03165f90815260086020526040902054610b9790610b90906002905b906112dc565b85906112dc565b9061135a565b5f546001600160a01b03163314610bc65760405162461bcd60e51b81526004016108a090611cdf565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b5f815f03610c59576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c569190611d5e565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610ca9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108149190611d75565b5f546001600160a01b03163314610cf65760405162461bcd60e51b81526004016108a090611cdf565b6001600160a01b038116610d5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a0565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610dea573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e165760405162461bcd60e51b81526004016108a090611cdf565b6005546006819055600755565b5f546001600160a01b03163314610e4c5760405162461bcd60e51b81526004016108a090611cdf565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b5f8184841115610ece5760405162461bcd60e51b81526004016108a09190611aa5565b505f610eda8486611d90565b95945050505050565b6021545f9060ff1615610f0257610efb84848461139b565b9050610814565b6001600160a01b0384165f9081526001602052604090205460ff16158015610f4257506001600160a01b0383165f9081526001602052604090205460ff16155b15610f9757601f54600160a01b900460ff16610f975760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a0565b6001600160a01b0384165f9081526001602052604090205460ff16158015610fc857506001600160a01b0383163014155b8015610fe257506003546001600160a01b03848116911614155b8015610ffc5750601f546001600160a01b03848116911614155b80156110165750601a546001600160a01b03848116911614155b801561103057506017546001600160a01b03848116911614155b801561105457506001600160a01b0383165f908152600b602052604090205460ff16155b156110f4576001600160a01b0383165f9081526008602052604090205460075461107e8483611da3565b11156110f25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108a0565b505b6110fe848361146b565b6111066114d7565b156111135761111361152d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260089091529190912054611164918490610eab565b6001600160a01b0385165f90815260086020908152604080832093909355600a90529081205460ff16806111af57506001600160a01b0384165f908152600a602052604090205460ff165b6111c3576111be8584866118f5565b6111c5565b825b6001600160a01b0385165f908152600860205260409020549091506111ea908261127e565b6001600160a01b038086165f8181526008602052604090819020939093559151908716905f80516020611e658339815191529061122a9085815260200190565b60405180910390a3506001949350505050565b5f61081483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eab565b5f8061128a8385611da3565b9050838110156108145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108a0565b5f825f036112eb57505f610744565b5f6112f68385611d47565b9050826113038583611d28565b146108145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a0565b5f61081483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a79565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546113eb918490610eab565b6001600160a01b038086165f908152600860205260408082209390935590851681522054611419908361127e565b6001600160a01b038085165f8181526008602052604090819020939093559151908616905f80516020611e65833981519152906114599086815260200190565b60405180910390a35060019392505050565b6006548111158061149357506001600160a01b0382165f908152600b602052604090205460ff165b6114d35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108a0565b5050565b601f545f906001600160a01b031633148015906114f7575060215460ff16155b801561150c5750601f54600160a81b900460ff165b801561086657505060208054305f9081526008909252604090912054101590565b6021805460ff19166001179055601b54601c545f9161154b9161074a565b61155757600c54611559565b5f5b90505f61157c6002610b97601154610b97866020546112dc90919063ffffffff16565b90505f6115948260205461123d90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106115cc576115cc611db6565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115fd576115fd611db6565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116469086905f90879030904290600401611dca565b5f604051808303815f87803b15801561165d575f80fd5b505af115801561166f573d5f803e3d5ffd5b505050505f611687824761123d90919063ffffffff16565b90505f6116a161169888600261135a565b6011549061123d565b90505f6116b56002610b978481878d6112dc565b90505f6116d183610b97600d54876112dc90919063ffffffff16565b90505f6116ed84610b97600f54886112dc90919063ffffffff16565b90505f61170985610b97600e54896112dc90919063ffffffff16565b6017546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611758576040519150601f19603f3d011682016040523d82523d5f602084013e61175d565b606091505b50506018546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146117aa576040519150601f19603f3d011682016040523d82523d5f602084013e6117af565b606091505b50506019546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146117fc576040519150601f19603f3d011682016040523d82523d5f602084013e611801565b606091505b505f9250508b1590506118dd57601d5460165460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af115801561187b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118a09190611e39565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f545f91906001600160a01b039081169084160361191a5750601354611935565b601f546001600160a01b039081169086160361193557506014545b5f61196160125460646119489190611d47565b610b9784610b8a6011548a6112dc90919063ffffffff16565b90505f61197f601154610b97601054856112dc90919063ffffffff16565b90505f61198c838361123d565b305f908152600860205260409020549091506119a8908261127e565b305f9081526008602052604080822092909255601a546001600160a01b0316815220546119d5908361127e565b601a546001600160a01b039081165f9081526008602090815260409182902093909355518381523092918b16915f80516020611e65833981519152910160405180910390a38115611a6357600554611a2d908361123d565b6005556004546040518381526001600160a01b03918216918a16905f80516020611e658339815191529060200160405180910390a35b611a6d878461123d565b98975050505050505050565b5f8183611a995760405162461bcd60e51b81526004016108a09190611aa5565b505f610eda8486611d28565b5f6020808352835180828501525f5b81811015611ad057858101830151858201604001528201611ab4565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b06575f80fd5b919050565b5f8060408385031215611b1c575f80fd5b611b2583611af0565b946020939093013593505050565b5f8060408385031215611b44575f80fd5b50508035926020909101359150565b5f805f60608486031215611b65575f80fd5b611b6e84611af0565b9250611b7c60208501611af0565b9150604084013590509250925092565b5f60208284031215611b9c575f80fd5b61081482611af0565b5f805f60608486031215611bb7575f80fd5b505081359360208301359350604090920135919050565b5f805f805f8060c08789031215611be3575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215611c1d575f80fd5b5035919050565b5f8060408385031215611c35575f80fd5b611c3e83611af0565b9150611c4c60208401611af0565b90509250929050565b8015158114610dea575f80fd5b5f8060408385031215611c73575f80fd5b8235611b2581611c55565b5f805f805f60a08688031215611c92575f80fd5b611c9b86611af0565b9450611ca960208701611af0565b9350611cb760408701611af0565b9250611cc560608701611af0565b9150611cd360808701611af0565b90509295509295909350565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611d4257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761074457610744611d14565b5f60208284031215611d6e575f80fd5b5051919050565b5f60208284031215611d85575f80fd5b815161081481611c55565b8181038181111561074457610744611d14565b8082018082111561074457610744611d14565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611e185784516001600160a01b031683529383019391830191600101611df3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611e4b575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e58e93c959b506634f9c53a19bc38f2ed545b049e5ba316987dfc199492bf5bf64736f6c63430008140033
Deployed Bytecode Sourcemap
5180:12858:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6867:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6867:56:0;;;;;;;;8370:80;;;;;;;;;;-1:-1:-1;8442:5:0;;;;;;;;;;;;-1:-1:-1;;;8442:5:0;;;;8370:80;;;;;;;:::i;6787:31::-;;;;;;;;;;-1:-1:-1;6787:31:0;;;;-1:-1:-1;;;6787:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;6787:31:0;749:187:1;8792:216:0;;;;;;;;;;-1:-1:-1;8792:216:0;;;;;:::i;:::-;;:::i;17814:150::-;;;;;;;;;;-1:-1:-1;17814:150:0;;;;;:::i;:::-;;:::i;8100:88::-;;;;;;;;;;-1:-1:-1;8173:12:0;;8100:88;;6148:90;;;;;;;;;;;;;;;;9310:370;;;;;;;;;;-1:-1:-1;9310:370:0;;;;;:::i;:::-;;:::i;17489:142::-;;;;;;;;;;;;;:::i;8194:80::-;;;;;;;;;;-1:-1:-1;8194:80:0;;5515:1;2106:36:1;;2094:2;2079:18;8194:80:0;1964:184:1;9016:122:0;;;;;;;;;;-1:-1:-1;9016:122:0;;;;;:::i;:::-;;:::i;13361:217::-;;;;;;;;;;-1:-1:-1;13361:217:0;;;;;:::i;:::-;;:::i;:::-;;6830:30;;;;;;;;;;-1:-1:-1;6830:30:0;;;;-1:-1:-1;;;6830:30:0;;;;;;8540:105;;;;;;;;;;-1:-1:-1;8540:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8624:18:0;8606:7;8624:18;;;:9;:18;;;;;;;8540:105;3237:148;;;;;;;;;;;;;:::i;5652:61::-;;;;;;;;;;;;;;;;5587:58;;;;;;;;;;;;;;;;16321:552;;;;;;;;;;-1:-1:-1;16321:552:0;;;;;:::i;:::-;;:::i;8456:78::-;;;;;;;;;;-1:-1:-1;8508:7:0;3088:6;-1:-1:-1;;;;;3088:6:0;8456:78;;;-1:-1:-1;;;;;3357:32:1;;;3339:51;;3327:2;3312:18;8456:78:0;3193:203:1;3023:79:0;;;;;;;;;;-1:-1:-1;3061:7:0;3088:6;-1:-1:-1;;;;;3088:6:0;3023:79;;8280:84;;;;;;;;;;-1:-1:-1;8354:7:0;;;;;;;;;;;;-1:-1:-1;;;8354:7:0;;;;8280:84;;13741:201;;;;;;;;;;-1:-1:-1;13741:201:0;;;;;:::i;:::-;;:::i;6755:19::-;;;;;;;;;;-1:-1:-1;6755:19:0;;;;-1:-1:-1;;;;;6755:19:0;;;9146:156;;;;;;;;;;-1:-1:-1;9146:156:0;;;;;:::i;:::-;;:::i;13586:146::-;;;;;;;;;;;;;:::i;13950:178::-;;;;;;;;;;-1:-1:-1;13950:178:0;;;;;:::i;:::-;;:::i;2643:21::-;;;;;;;;;;-1:-1:-1;2643:21:0;;;;-1:-1:-1;;;;;2643:21:0;;;14136:92;;;;;;;;;;;;;:::i;14237:174::-;;;;;;;;;;-1:-1:-1;14237:174:0;;;;;:::i;:::-;;:::i;17639:167::-;;;;;;;;;;-1:-1:-1;17639:167:0;;;;;:::i;:::-;;:::i;8651:133::-;;;;;;;;;;-1:-1:-1;8651:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8753:19:0;;;8735:7;8753:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8651:133;17324:150;;;;;;;;;;-1:-1:-1;17324:150:0;;;;;:::i;:::-;;:::i;13069:284::-;;;;;;;;;;-1:-1:-1;13069:284:0;;;;;:::i;:::-;;:::i;3393:244::-;;;;;;;;;;-1:-1:-1;3393:244:0;;;;;:::i;:::-;;:::i;12940:119::-;;;;;;;;;;;;;:::i;6685:24::-;;;;;;;;;;-1:-1:-1;6685:24:0;;;;-1:-1:-1;;;;;6685:24:0;;;9692:140;;;;;;;;;;;;;:::i;16881:435::-;;;;;;;;;;-1:-1:-1;16881:435:0;;;;;:::i;:::-;;:::i;8792:216::-;8896:10;8867:4;8884:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8884:32:0;;;;;;;;;;:41;;;8941:37;8867:4;;8884:32;;8941:37;;;;8919:6;160:25:1;;148:2;133:18;;14:177;8941:37:0;;;;;;;;-1:-1:-1;8996:4:0;8792:216;;;;;:::o;17814:150::-;17894:4;17950:6;17918:29;17938:8;17918:19;:29::i;:::-;:38;;17814:150;-1:-1:-1;;;17814:150:0:o;9310:370::-;-1:-1:-1;;;;;9430:19:0;;9410:4;9430:19;;;:11;:19;;;;;;;;9450:10;9430:31;;;;;;;;-1:-1:-1;;9430:52:0;9427:186;;9532:69;;;;;;;;;;;-1:-1:-1;;;9532:69:0;;;;;;;;-1:-1:-1;;;;;9532:19:0;;-1:-1:-1;9532:19:0;;;:11;:19;;;;;9552:10;9532:31;;;;;;;;;;:69;;9568:6;;9532:35;:69::i;:::-;-1:-1:-1;;;;;9498:19:0;;;;;;:11;:19;;;;;;;;9518:10;9498:31;;;;;;;:103;9427:186;9632:40;9646:6;9654:9;9665:6;9632:13;:40::i;:::-;9625:47;;9310:370;;;;;;:::o;17489:142::-;17617:4;;-1:-1:-1;;;;;17617:4:0;17542:7;8624:18;;;:9;:18;;;;;;17569:54;;17596:4;;-1:-1:-1;;;;;17596:4:0;8606:7;8624:18;;;:9;:18;;;;;;17569:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17562:61;;17489:142;:::o;9016:122::-;9071:4;9095:35;9103:7;-1:-1:-1;;9095:7:0;:35::i;13361:217::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;;;;;;;;;13465:13:::1;:22:::0;;;;13498:14:::1;:24:::0;;;;13533:11:::1;:21:::0;13361:217::o;3237:148::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;3344:1:::1;3328:6:::0;;3307:40:::1;::::0;-1:-1:-1;;;;;3328:6:0;;::::1;::::0;3307:40:::1;::::0;3344:1;;3307:40:::1;3375:1;3358:19:::0;;-1:-1:-1;;;;;;3358:19:0::1;::::0;;3237:148::o;16321:552::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;16492:12:::1;:28:::0;;;16531:7:::1;:18:::0;;;16560:12:::1;:28:::0;;;16599:6:::1;:16:::0;;;16626:7:::1;:18:::0;;;16666:73:::1;16636:8:::0;16666:59:::1;16608:7:::0;16666:59;16575:13;16666:59;16507:13;16541:8;16666:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;16655:8;:84:::0;16750:14:::1;:32:::0;;;16812:18:::1;16829:1;16767:15:::0;16812:18:::1;:::i;:::-;16801:8;;:29;16793:71;;;::::0;-1:-1:-1;;;16793:71:0;;5920:2:1;16793:71:0::1;::::0;::::1;5902:21:1::0;5959:2;5939:18;;;5932:30;5998:31;5978:18;;;5971:59;6047:18;;16793:71:0::1;5718:353:1::0;16793:71:0::1;16321:552:::0;;;;;;:::o;13741:201::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;13845:1:::1;13827:14;:19;;13819:28;;;::::0;::::1;;13912:4;13893:14;13878:12;;:29;;;;:::i;:::-;13877:39;;;;:::i;:::-;13859:15;:57:::0;-1:-1:-1;13741:201:0:o;9146:156::-;9226:4;9250:44;9264:10;9276:9;9287:6;9250:13;:44::i;13586:146::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;13666:3:::1;13649:14;:20:::0;13693:3:::1;13677:13;:19:::0;13718:3:::1;13704:11;:17:::0;13586:146::o;13950:178::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;14054:1:::1;14038:12;:17;;14030:26;;;::::0;::::1;;14116:4;14099:12;14084;;:27;;;;:::i;:::-;14083:37;;;;:::i;:::-;14068:12;:52:::0;-1:-1:-1;13950:178:0:o;14136:92::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;14187:11:::1;:18:::0;;-1:-1:-1;;;;14187:18:0::1;-1:-1:-1::0;;;14187:18:0::1;::::0;;14136:92::o;14237:174::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;14326:15:::1;:25:::0;;;;14362:26:::1;:41:::0;14237:174::o;17639:167::-;17707:7;17734:64;17775:22;:20;:22::i;:::-;17757:4;;-1:-1:-1;;;;;17757:4:0;8606:7;8624:18;;;:9;:18;;;;;;17734:36;;17747:22;;17767:1;;17747:15;:19;;:22::i;:::-;17734:8;;:12;:36::i;:::-;:40;;:64::i;17324:150::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17410:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17410:22:0::1;-1:-1:-1::0;;;;17410:22:0;;::::1;::::0;;;::::1;::::0;;;17443:13:::1;:23:::0;17324:150::o;13069:284::-;13150:4;13177:6;13187:1;13177:11;13174:95;;13213:44;;-1:-1:-1;;;13213:44:0;;13251:4;13213:44;;;3339:51:1;-1:-1:-1;;;;;13213:29:0;;;;;3312:18:1;;13213:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13204:53;;13174:95;13315:21;;13286:59;;-1:-1:-1;;;13286:59:0;;-1:-1:-1;;;;;13315:21:0;;;13286:59;;;6612:51:1;6679:18;;;6672:34;;;13286:28:0;;;;;;6585:18:1;;13286:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3393:244::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3482:22:0;::::1;3474:73;;;::::0;-1:-1:-1;;;3474:73:0;;7169:2:1;3474:73:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:34;7227:18;;;7220:62;-1:-1:-1;;;7298:18:1;;;7291:36;7344:19;;3474:73:0::1;6967:402:1::0;3474:73:0::1;3584:6;::::0;;3563:38:::1;::::0;-1:-1:-1;;;;;3563:38:0;;::::1;::::0;3584:6;::::1;::::0;3563:38:::1;::::0;::::1;3612:6;:17:::0;;-1:-1:-1;;;;;;3612:17:0::1;-1:-1:-1::0;;;;;3612:17:0;;;::::1;::::0;;;::::1;::::0;;3393:244::o;12940:119::-;12987:21;;12979:62;;-1:-1:-1;;;;;12987:21:0;;;;13019;12979:62;;;;;12987:21;12979:62;12987:21;12979:62;13019:21;12987;12979:62;;;;;;;;;;;;;;;;;;;;;12940:119::o;9692:140::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;9767:12:::1;::::0;9752::::1;:27:::0;;;9794:15:::1;:30:::0;9692:140::o;16881:435::-;3150:6;;-1:-1:-1;;;;;3150:6:0;2460:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17074:21:::1;:46:::0;;-1:-1:-1;;;;;;17074:46:0;;::::1;-1:-1:-1::0;;;;;17074:46:0;;::::1;;::::0;;;17131:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17186:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17229:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17274:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;16881:435::o;1533:192::-;1619:7;1655:12;1647:6;;;;1639:29;;;;-1:-1:-1;;;1639:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1679:9:0;1691:5;1695:1;1691;:5;:::i;:::-;1679:17;1533:192;-1:-1:-1;;;;;1533:192:0:o;9846:1243::-;9958:6;;9938:4;;9958:6;;9955:63;;;9974:41;9989:6;9997:9;10008:6;9974:14;:41::i;:::-;9967:48;;;;9955:63;-1:-1:-1;;;;;10034:22:0;;;;;;:14;:22;;;;;;;;10033:23;:53;;;;-1:-1:-1;;;;;;10061:25:0;;;;;;:14;:25;;;;;;;;10060:26;10033:53;10030:139;;;10110:11;;-1:-1:-1;;;10110:11:0;;;;10102:43;;;;-1:-1:-1;;;10102:43:0;;7709:2:1;10102:43:0;;;7691:21:1;7748:2;7728:18;;;7721:30;-1:-1:-1;;;7767:18:1;;;7760:50;7827:18;;10102:43:0;7507:344:1;10102:43:0;-1:-1:-1;;;;;10211:22:0;;;;;;:14;:22;;;;;;;;10210:23;:53;;;;-1:-1:-1;;;;;;10237:26:0;;10258:4;10237:26;;10210:53;:84;;;;-1:-1:-1;10289:4:0;;-1:-1:-1;;;;;10268:26:0;;;10289:4;;10268:26;;10210:84;:105;;;;-1:-1:-1;10311:4:0;;-1:-1:-1;;;;;10298:17:0;;;10311:4;;10298:17;;10210:105;:137;;;;-1:-1:-1;10332:15:0;;-1:-1:-1;;;;;10319:28:0;;;10332:15;;10319:28;;10210:137;:174;;;;-1:-1:-1;10364:20:0;;-1:-1:-1;;;;;10351:33:0;;;10364:20;;10351:33;;10210:174;:205;;;;-1:-1:-1;;;;;;10389:26:0;;;;;;:15;:26;;;;;;;;10388:27;10210:205;10206:397;;;-1:-1:-1;;;;;8624:18:0;;10431;8624;;;:9;:18;;;;;;10520:15;;10496:19;10509:6;8624:18;10496:19;:::i;:::-;10495:40;;10487:114;;;;-1:-1:-1;;;10487:114:0;;8188:2:1;10487:114:0;;;8170:21:1;8227:2;8207:18;;;8200:30;8266:34;8246:18;;;8239:62;8337:32;8317:18;;;8310:60;8387:19;;10487:114:0;7986:426:1;10487:114:0;10416:187;10206:397;10625:28;10638:6;10646;10625:12;:28::i;:::-;10670:16;:14;:16::i;:::-;10667:35;;;10689:10;:8;:10::i;:::-;10740:53;;;;;;;;;;;-1:-1:-1;;;10740:53:0;;;;;;;;-1:-1:-1;;;;;10740:17:0;;-1:-1:-1;10740:17:0;;;:9;:17;;;;;;;;:53;;10762:6;;10740:21;:53::i;:::-;-1:-1:-1;;;;;10720:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10832:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10855:22:0;;;;;;:11;:22;;;;;;;;10832:45;10831:93;;10890:34;10898:6;10906;10914:9;10890:7;:34::i;:::-;10831:93;;;10881:6;10831:93;-1:-1:-1;;;;;10958:20:0;;;;;;:9;:20;;;;;;10806:118;;-1:-1:-1;10958:40:0;;10806:118;10958:24;:40::i;:::-;-1:-1:-1;;;;;10935:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11016:43;;;;;;-1:-1:-1;;;;;;;;;;;11016:43:0;;;11044:14;160:25:1;;148:2;133:18;;14:177;11016:43:0;;;;;;;;-1:-1:-1;11077:4:0;;9846:1243;-1:-1:-1;;;;9846:1243:0:o;1391:136::-;1449:7;1476:43;1480:1;1483;1476:43;;;;;;;;;;;;;;;;;:3;:43::i;1204:181::-;1262:7;;1294:5;1298:1;1294;:5;:::i;:::-;1282:17;;1323:1;1318;:6;;1310:46;;;;-1:-1:-1;;;1310:46:0;;8619:2:1;1310:46:0;;;8601:21:1;8658:2;8638:18;;;8631:30;8697:29;8677:18;;;8670:57;8744:18;;1310:46:0;8417:351:1;1731:250:0;1789:7;1813:1;1818;1813:6;1809:47;;-1:-1:-1;1843:1:0;1836:8;;1809:47;1868:9;1880:5;1884:1;1880;:5;:::i;:::-;1868:17;-1:-1:-1;1913:1:0;1904:5;1908:1;1868:17;1904:5;:::i;:::-;:10;1896:56;;;;-1:-1:-1;;;1896:56:0;;8975:2:1;1896:56:0;;;8957:21:1;9014:2;8994:18;;;8987:30;9053:34;9033:18;;;9026:62;-1:-1:-1;;;9104:18:1;;;9097:31;9145:19;;1896:56:0;8773:397:1;1987:132:0;2045:7;2072:39;2076:1;2079;2072:39;;;;;;;;;;;;;;;;;:3;:39::i;11101:330::-;11231:53;;;;;;;;;;;-1:-1:-1;;;11231:53:0;;;;;;;;-1:-1:-1;;;;;11231:17:0;;11194:4;11231:17;;;:9;:17;;;;;;;:53;;11253:6;;11231:21;:53::i;:::-;-1:-1:-1;;;;;11211:17:0;;;;;;;:9;:17;;;;;;:73;;;;11318:20;;;;;;;:32;;11343:6;11318:24;:32::i;:::-;-1:-1:-1;;;;;11295:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11366:35;;;;;;-1:-1:-1;;;;;;;;;;;11366:35:0;;;11394:6;160:25:1;;148:2;133:18;;14:177;11366:35:0;;;;;;;;-1:-1:-1;11419:4:0;11101:330;;;;;:::o;11439:166::-;11536:12;;11526:6;:22;;:49;;;-1:-1:-1;;;;;;11552:23:0;;;;;;:15;:23;;;;;;;;11526:49;11518:79;;;;-1:-1:-1;;;11518:79:0;;9377:2:1;11518:79:0;;;9359:21:1;9416:2;9396:18;;;9389:30;-1:-1:-1;;;9435:18:1;;;9428:47;9492:18;;11518:79:0;9175:341:1;11518:79:0;11439:166;;:::o;12731:197::-;12818:4;;12780;;-1:-1:-1;;;;;12818:4:0;12804:10;:18;;;;:38;;-1:-1:-1;12836:6:0;;;;12835:7;12804:38;:62;;;;-1:-1:-1;12855:11:0;;-1:-1:-1;;;12855:11:0;;;;12804:62;:116;;;;-1:-1:-1;;12907:13:0;;;12897:4;12879:24;;;;:9;:24;;;;;;;;:41;;;12731:197::o;14446:1861::-;6971:6;:13;;-1:-1:-1;;6971:13:0;6980:4;6971:13;;;14541:15:::1;::::0;14558:26:::1;::::0;6971:6;;14525:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14592:12;;14525:79;;;14588:1;14525:79;14495:109;;14615:23;14641:59;14698:1;14641:52;14684:8;;14641:38;14659:19;14641:13;;:17;;:38;;;;:::i;:59::-;14615:85;;14711:20;14734:34;14752:15;14734:13;;:17;;:34;;;;:::i;:::-;14805:16;::::0;;14819:1:::1;14805:16:::0;;;;;::::1;::::0;;14711:57;;-1:-1:-1;14781:21:0::1;::::0;14805:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14805:16:0::1;14781:40;;14850:4;14832;14837:1;14832:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14832:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14876:4:::1;::::0;14866:7;;14876:4;::::1;::::0;14866;;14876;;14866:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14866:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14951:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14951:188:0;;14917:21:::1;::::0;14951:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15023:12;;14893:21:::1;::::0;15066:4;;15093::::1;::::0;15113:15:::1;::::0;14951:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15152:17;15172:40;15198:13;15172:21;:25;;:40;;;;:::i;:::-;15152:60:::0;-1:-1:-1;15225:19:0::1;15247:40;15260:26;:19:::0;15284:1:::1;15260:23;:26::i;:::-;15247:8;::::0;;:12:::1;:40::i;:::-;15225:62:::0;-1:-1:-1;15308:26:0::1;15337:58;15393:1;15337:51;15225:62:::0;15337:51;:9;15351:19;15337:13:::1;:34::i;:58::-;15308:87;;15406:26;15435:44;15467:11;15435:27;15449:12;;15435:9;:13;;:27;;;;:::i;:44::-;15406:73;;15490:21;15514:39;15541:11;15514:22;15528:7;;15514:9;:13;;:22;;;;:::i;:39::-;15490:63;;15564:20;15587:38;15613:11;15587:21;15601:6;;15587:9;:13;;:21;;;;:::i;:38::-;15667:20;::::0;15659:65:::1;::::0;15564:61;;-1:-1:-1;15639:15:0::1;::::0;-1:-1:-1;;;;;15667:20:0;;::::1;::::0;15701:18;;15639:15;15659:65;15639:15;15659:65;15701:18;15667:20;15659:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15759:14:0::1;::::0;15751:53:::1;::::0;15638:86;;-1:-1:-1;;;;;;15759:14:0::1;::::0;15787:12;;15751:53:::1;::::0;;;15787:12;15759:14;15751:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15839:15:0::1;::::0;15831:55:::1;::::0;15735:69;;-1:-1:-1;;;;;;15839:15:0::1;::::0;15868:13;;15831:55:::1;::::0;;;15868:13;15839:15;15831:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15920:5:0::1;::::0;-1:-1:-1;;15941:19:0;;;-1:-1:-1;15938:362:0::1;;15976:6;::::0;16150:21:::1;::::0;15976:244:::1;::::0;-1:-1:-1;;;15976:244:0;;16052:4:::1;15976:244;::::0;::::1;11321:34:1::0;11371:18;;;11364:34;;;15976:6:0::1;11414:18:1::0;;;11407:34;;;11457:18;;;11450:34;-1:-1:-1;;;;;16150:21:0;;::::1;11500:19:1::0;;;11493:44;16190:15:0::1;11553:19:1::0;;;11546:35;15976:6:0;::::1;::::0;:22:::1;::::0;16006:18;;11255:19:1;;15976:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16240:48:0::1;::::0;;12077:25:1;;;12133:2;12118:18;;12111:34;;;16240:48:0::1;::::0;-1:-1:-1;12050:18:1;16240:48:0::1;;;;;;;15938:362;-1:-1:-1::0;;6989:6:0;:14;;-1:-1:-1;;6989:14:0;;;-1:-1:-1;;;;;;;;;;14446:1861:0:o;11735:988::-;11869:11;;11909:4;;11821:7;;11869:11;-1:-1:-1;;;;;11909:4:0;;;11896:17;;;;11893:148;;-1:-1:-1;11940:14:0;;11893:148;;;11985:4;;-1:-1:-1;;;;;11985:4:0;;;11975:14;;;;11972:69;;-1:-1:-1;12016:13:0;;11972:69;12053:17;12073:59;12111:14;;12128:3;12111:20;;;;:::i;:::-;12073:33;12098:7;12073:20;12084:8;;12073:6;:10;;:20;;;;:::i;:59::-;12053:79;;12143:18;12164:36;12191:8;;12164:22;12178:7;;12164:9;:13;;:22;;;;:::i;:36::-;12143:57;-1:-1:-1;12211:22:0;12236:25;:9;12143:57;12236:13;:25::i;:::-;12319:4;12301:24;;;;:9;:24;;;;;;12211:50;;-1:-1:-1;12301:44:0;;12211:50;12301:28;:44::i;:::-;12292:4;12274:24;;;;:9;:24;;;;;;:71;;;;12395:15;;-1:-1:-1;;;;;12395:15:0;12385:26;;;;:42;;12416:10;12385:30;:42::i;:::-;12366:15;;-1:-1:-1;;;;;12366:15:0;;;12356:26;;;;:9;:26;;;;;;;;;:71;;;;12443:47;160:25:1;;;12468:4:0;;12443:47;;;;-1:-1:-1;;;;;;;;;;;12443:47:0;133:18:1;12443:47:0;;;;;;;12524:14;;12521:154;;12569:12;;:28;;12586:10;12569:16;:28::i;:::-;12554:12;:43;12634:4;;12617:34;;160:25:1;;;-1:-1:-1;;;;;12634:4:0;;;;12617:34;;;-1:-1:-1;;;;;;;;;;;12617:34:0;148:2:1;133:18;12617:34:0;;;;;;;12521:154;12694:21;:6;12705:9;12694:10;:21::i;:::-;12687:28;11735:988;-1:-1:-1;;;;;;;;11735:988:0:o;2125:189::-;2211:7;2246:12;2239:5;2231:28;;;;-1:-1:-1;;;2231:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2270:9:0;2282:5;2286:1;2282;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2153:186::-;2212:6;2265:2;2253:9;2244:7;2240:23;2236:32;2233:52;;;2281:1;2278;2271:12;2233:52;2304:29;2323:9;2304:29;:::i;2344:316::-;2421:6;2429;2437;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;-1:-1:-1;;2529:23:1;;;2599:2;2584:18;;2571:32;;-1:-1:-1;2650:2:1;2635:18;;;2622:32;;2344:316;-1:-1:-1;2344:316:1:o;2665:523::-;2769:6;2777;2785;2793;2801;2809;2862:3;2850:9;2841:7;2837:23;2833:33;2830:53;;;2879:1;2876;2869:12;2830:53;-1:-1:-1;;2902:23:1;;;2972:2;2957:18;;2944:32;;-1:-1:-1;3023:2:1;3008:18;;2995:32;;3074:2;3059:18;;3046:32;;-1:-1:-1;3125:3:1;3110:19;;3097:33;;-1:-1:-1;3177:3:1;3162:19;3149:33;;-1:-1:-1;2665:523:1;-1:-1:-1;2665:523:1:o;3401:180::-;3460:6;3513:2;3501:9;3492:7;3488:23;3484:32;3481:52;;;3529:1;3526;3519:12;3481:52;-1:-1:-1;3552:23:1;;3401:180;-1:-1:-1;3401:180:1:o;3586:260::-;3654:6;3662;3715:2;3703:9;3694:7;3690:23;3686:32;3683:52;;;3731:1;3728;3721:12;3683:52;3754:29;3773:9;3754:29;:::i;:::-;3744:39;;3802:38;3836:2;3825:9;3821:18;3802:38;:::i;:::-;3792:48;;3586:260;;;;;:::o;3851:118::-;3937:5;3930:13;3923:21;3916:5;3913:32;3903:60;;3959:1;3956;3949:12;3974:309;4039:6;4047;4100:2;4088:9;4079:7;4075:23;4071:32;4068:52;;;4116:1;4113;4106:12;4068:52;4155:9;4142:23;4174:28;4196:5;4174:28;:::i;4514:484::-;4609:6;4617;4625;4633;4641;4694:3;4682:9;4673:7;4669:23;4665:33;4662:53;;;4711:1;4708;4701:12;4662:53;4734:29;4753:9;4734:29;:::i;:::-;4724:39;;4782:38;4816:2;4805:9;4801:18;4782:38;:::i;:::-;4772:48;;4839:38;4873:2;4862:9;4858:18;4839:38;:::i;:::-;4829:48;;4896:38;4930:2;4919:9;4915:18;4896:38;:::i;:::-;4886:48;;4953:39;4987:3;4976:9;4972:19;4953:39;:::i;:::-;4943:49;;4514:484;;;;;;;;:::o;5003:356::-;5205:2;5187:21;;;5224:18;;;5217:30;5283:34;5278:2;5263:18;;5256:62;5350:2;5335:18;;5003:356::o;5364:127::-;5425:10;5420:3;5416:20;5413:1;5406:31;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5496:217;5536:1;5562;5552:132;;5606:10;5601:3;5597:20;5594:1;5587:31;5641:4;5638:1;5631:15;5669:4;5666:1;5659:15;5552:132;-1:-1:-1;5698:9:1;;5496:217::o;6076:168::-;6149:9;;;6180;;6197:15;;;6191:22;;6177:37;6167:71;;6218:18;;:::i;6249:184::-;6319:6;6372:2;6360:9;6351:7;6347:23;6343:32;6340:52;;;6388:1;6385;6378:12;6340:52;-1:-1:-1;6411:16:1;;6249:184;-1:-1:-1;6249:184:1:o;6717:245::-;6784:6;6837:2;6825:9;6816:7;6812:23;6808:32;6805:52;;;6853:1;6850;6843:12;6805:52;6885:9;6879:16;6904:28;6926:5;6904:28;:::i;7374:128::-;7441:9;;;7462:11;;;7459:37;;;7476:18;;:::i;7856:125::-;7921:9;;;7942:10;;;7939:36;;;7955:18;;:::i;9653:127::-;9714:10;9709:3;9705:20;9702:1;9695:31;9745:4;9742:1;9735:15;9769:4;9766:1;9759:15;9785:980;10047:4;10095:3;10084:9;10080:19;10126:6;10115:9;10108:25;10152:2;10190:6;10185:2;10174:9;10170:18;10163:34;10233:3;10228:2;10217:9;10213:18;10206:31;10257:6;10292;10286:13;10323:6;10315;10308:22;10361:3;10350:9;10346:19;10339:26;;10400:2;10392:6;10388:15;10374:29;;10421:1;10431:195;10445:6;10442:1;10439:13;10431:195;;;10510:13;;-1:-1:-1;;;;;10506:39:1;10494:52;;10601:15;;;;10566:12;;;;10542:1;10460:9;10431:195;;;-1:-1:-1;;;;;;;10682:32:1;;;;10677:2;10662:18;;10655:60;-1:-1:-1;;;10746:3:1;10731:19;10724:35;10643:3;9785:980;-1:-1:-1;;;9785:980:1:o;11592:306::-;11680:6;11688;11696;11749:2;11737:9;11728:7;11724:23;11720:32;11717:52;;;11765:1;11762;11755:12;11717:52;11794:9;11788:16;11778:26;;11844:2;11833:9;11829:18;11823:25;11813:35;;11888:2;11877:9;11873:18;11867:25;11857:35;;11592:306;;;;;:::o
Swarm Source
ipfs://e58e93c959b506634f9c53a19bc38f2ed545b049e5ba316987dfc199492bf5bf
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.