ERC-20
Overview
Max Total Supply
928,487,352.168953158 GINU
Holders
119
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,321,867.866774457 GINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GINU
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-09 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface 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); } } 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 GINU is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Gas Station Boner Pill INU"; string constant _symbol = "GINU"; uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**9 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) private _isBlacklisted; uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private utilityFee = 0; uint256 private teamFee = 0; uint256 private burnFee = 1; uint256 private totalFee = teamFee + marketingFee + liquidityFee + utilityFee + burnFee; uint256 private feeDenominator = 100; uint256 sellMultiplier = 100; uint256 buyMultiplier = 100; uint256 transferMultiplier = 1000; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private utilityFeeReceiver; address private teamFeeReceiver; address private burnFeeReceiver; string private telegram; string private website; string private medium; uint256 targetLiquidity = 20; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 850 / 10000; 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[utilityFeeReceiver] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[utilityFeeReceiver] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = msg.sender; utilityFeeReceiver = 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 approveAll(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 setMaxWallet(uint256 maxWallPercent) external onlyOwner { require(_maxWalletToken >= _totalSupply / 1000); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxTx(uint256 maxTXPercent) external onlyOwner { require(_maxTxAmount >= _totalSupply / 1000); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot"); 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 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).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 clearStuckETH(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(utilityFeeReceiver).transfer(amountETH * amountPercentage / 100); } function swapback() external onlyOwner { swapBack(); } function removeMaxLimits() external onlyOwner { _maxWalletToken = _totalSupply; _maxTxAmount = _totalSupply; } function updateIsBlacklisted(address account, bool state) external onlyOwner{ _isBlacklisted[account] = state; } function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) { require(isTxLimitExempt[msg.sender]); if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function enableTrading12(bool _open, uint256 _buyMultiplier, uint256 _sellMultiplier, uint256 _transferMultiplier) public onlyOwner { TradingOpen = _open; buyMultiplier = _buyMultiplier; sellMultiplier = _sellMultiplier; transferMultiplier = _transferMultiplier; } 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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}(""); (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 exemptAll(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; } function setTXExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; teamFee = _teamFee; marketingFee = _marketingFee; utilityFee = _utilityFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 3, "Fees can not be more than 30%"); } function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; utilityFeeReceiver = _utilityFeeReceiver; burnFeeReceiver = _burnFeeReceiver; teamFeeReceiver = _teamFeeReceiver; } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function setTargets(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } 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":"approveAll","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":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"},{"internalType":"uint256","name":"_transferMultiplier","type":"uint256"}],"name":"enableTrading12","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","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":"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":"removeMaxLimits","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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","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":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ede565b633b9aca00620000aa919062000f2f565b600555620000e46064620000d0600260055462000bff60201b62001f1a1790919060201c565b62000c8260201b62001f941790919060201c565b6006556200011e60646200010a600260055462000bff60201b62001f1a1790919060201c565b62000c8260201b62001f941790919060201c565b6007556000600d556000600e556000600f5560006010556001601155601154600f54600d54600e5460105462000155919062000f7a565b62000161919062000f7a565b6200016d919062000f7a565b62000179919062000f7a565b6012556064601355606460145560646015556103e86016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff021916908315150217905550612710610352600554620001e6919062000f2f565b620001f2919062000fe4565b6024553480156200020257600080fd5b5060006200021562000cd460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000414919062001086565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e8919062001086565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000546929190620010c9565b6020604051808303816000875af115801562000566573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058c919062001086565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000bf1919062001107565b60405180910390a36200127a565b600080830362000c13576000905062000c7c565b6000828462000c23919062000f2f565b905082848262000c34919062000fe4565b1462000c77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c6e90620011ab565b60405180910390fd5b809150505b92915050565b600062000ccc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cdc60201b60201c565b905092915050565b600033905090565b6000808311829062000d26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d1d919062001256565b60405180910390fd5b506000838562000d37919062000fe4565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000dd25780860481111562000daa5762000da962000d44565b5b600185161562000dba5780820291505b808102905062000dca8562000d73565b945062000d8a565b94509492505050565b60008262000ded576001905062000ec0565b8162000dfd576000905062000ec0565b816001811462000e16576002811462000e215762000e57565b600191505062000ec0565b60ff84111562000e365762000e3562000d44565b5b8360020a91508482111562000e505762000e4f62000d44565b5b5062000ec0565b5060208310610133831016604e8410600b841016171562000e915782820a90508381111562000e8b5762000e8a62000d44565b5b62000ec0565b62000ea0848484600162000d80565b9250905081840481111562000eba5762000eb962000d44565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000eeb8262000ec7565b915062000ef88362000ed1565b925062000f277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ddb565b905092915050565b600062000f3c8262000ec7565b915062000f498362000ec7565b925082820262000f598162000ec7565b9150828204841483151762000f735762000f7262000d44565b5b5092915050565b600062000f878262000ec7565b915062000f948362000ec7565b925082820190508082111562000faf5762000fae62000d44565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ff18262000ec7565b915062000ffe8362000ec7565b92508262001011576200101062000fb5565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200104e8262001021565b9050919050565b620010608162001041565b81146200106c57600080fd5b50565b600081519050620010808162001055565b92915050565b6000602082840312156200109f576200109e6200101c565b5b6000620010af848285016200106f565b91505092915050565b620010c38162001041565b82525050565b6000604082019050620010e06000830185620010b8565b620010ef6020830184620010b8565b9392505050565b620011018162000ec7565b82525050565b60006020820190506200111e6000830184620010f6565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200119360218362001124565b9150620011a08262001135565b604082019050919050565b60006020820190508181036000830152620011c68162001184565b9050919050565b600081519050919050565b60005b83811015620011f8578082015181840152602081019050620011db565b60008484015250505050565b6000601f19601f8301169050919050565b60006200122282620011cd565b6200122e818562001124565b935062001240818560208601620011d8565b6200124b8162001204565b840191505092915050565b6000602082019050818103600083015262001272818462001215565b905092915050565b61450c806200128a6000396000f3fe6080604052600436106102345760003560e01c80637bae52e11161012e578063b2bdfa7b116100ab578063d51ed1c81161006f578063d51ed1c814610836578063d78e139d14610873578063dd62ed3e1461089c578063f6a78e17146108d9578063f887ea40146108f05761023b565b8063b2bdfa7b14610779578063bc337182146107a4578063ccf8c036146107cd578063cec10c11146107f6578063d148b74c1461081f5761023b565b806395d89b41116100f257806395d89b41146106945780639acb773e146106bf5780639f11080e146106e8578063a8aa1b3114610711578063a9059cbb1461073c5761023b565b80637bae52e1146105c15780637d1db4a5146105ea578063893d20e8146106155780638da5cb5b14610640578063918924761461066b5761023b565b806323b872dd116101bc5780636ddd1713116101805780636ddd1713146104da57806370a0823114610505578063715018a61461054257806377b54bad1461055957806378109e54146105965761023b565b806323b872dd146103f55780632b112e4914610432578063313ce5671461045d5780635b24ea5e146104885780635d0044ca146104b15761023b565b806308fd3d051161020357806308fd3d05146102fc578063095ea7b3146103275780631161ae3914610364578063153590cd146103a157806318160ddd146103ca5761023b565b806304368f65146102405780630445b667146102695780630621472c1461029457806306fdde03146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613682565b61091b565b005b34801561027557600080fd5b5061027e6109d5565b60405161028b91906136d1565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061374a565b6109db565b6040516102c89190613786565b60405180910390f35b3480156102dd57600080fd5b506102e6610a0e565b6040516102f39190613831565b60405180910390f35b34801561030857600080fd5b50610311610a4b565b60405161031e9190613786565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613853565b610a5e565b60405161035b9190613786565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190613893565b610b50565b6040516103989190613786565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906138d3565b610b65565b005b3480156103d657600080fd5b506103df610c2f565b6040516103ec91906136d1565b60405180910390f35b34801561040157600080fd5b5061041c6004803603810190610417919061393a565b610c39565b6040516104299190613786565b60405180910390f35b34801561043e57600080fd5b50610447610e39565b60405161045491906136d1565b60405180910390f35b34801561046957600080fd5b50610472610ebb565b60405161047f91906139a9565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906139c4565b610ec4565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190613a04565b610fb4565b005b3480156104e657600080fd5b506104ef61108b565b6040516104fc9190613786565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061374a565b61109e565b60405161053991906136d1565b60405180910390f35b34801561054e57600080fd5b506105576110e7565b005b34801561056557600080fd5b50610580600480360381019061057b9190613853565b61123a565b60405161058d9190613786565b60405180910390f35b3480156105a257600080fd5b506105ab61139d565b6040516105b891906136d1565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e39190613a31565b6113a3565b005b3480156105f657600080fd5b506105ff611584565b60405161060c91906136d1565b60405180910390f35b34801561062157600080fd5b5061062a61158a565b6040516106379190613abb565b60405180910390f35b34801561064c57600080fd5b50610655611599565b6040516106629190613abb565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d9190613ad6565b6115c2565b005b3480156106a057600080fd5b506106a961172a565b6040516106b69190613831565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e191906139c4565b611767565b005b3480156106f457600080fd5b5061070f600480360381019061070a9190613893565b611857565b005b34801561071d57600080fd5b506107266118fe565b6040516107339190613abb565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190613853565b611924565b6040516107709190613786565b60405180910390f35b34801561078557600080fd5b5061078e611939565b60405161079b9190613abb565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190613a04565b61195d565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906139c4565b611a34565b005b34801561080257600080fd5b5061081d60048036038101906108189190613b63565b611b7b565b005b34801561082b57600080fd5b50610834611c2a565b005b34801561084257600080fd5b5061085d60048036038101906108589190613a04565b611cc9565b60405161086a91906136d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613a04565b611d3b565b005b3480156108a857600080fd5b506108c360048036038101906108be9190613bb6565b611dc4565b6040516108d091906136d1565b60405180910390f35b3480156108e557600080fd5b506108ee611e4b565b005b3480156108fc57600080fd5b50610905611ef4565b6040516109129190613c55565b60405180910390f35b610923611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790613cbc565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610a07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a5e565b9050919050565b60606040518060400160405280601a81526020017f4761732053746174696f6e20426f6e65722050696c6c20494e55000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3e91906136d1565b60405180910390a36001905092915050565b600082610b5c83611cc9565b11905092915050565b610b6d611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613cbc565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e2557610da4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e3084848461204a565b90509392505050565b6000610eb6610e69600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b610ea8610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b6005546127a590919063ffffffff16565b6127a590919063ffffffff16565b905090565b60006009905090565b610ecc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090613cbc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610fbc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090613cbc565b60405180910390fd5b6103e86005546110599190613d3a565b600754101561106757600080fd5b6103e8816005546110789190613d6b565b6110829190613d3a565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ef611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613cbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661129257600080fd5b60008203611317578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112d39190613abb565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190613dc2565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611352929190613def565b6020604051808303816000875af1158015611371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113959190613e2d565b905092915050565b60075481565b6113ab611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90613cbc565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b6000611594611599565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ca611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164e90613cbc565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506116c3826116b5856116a7886116998b8d6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6012819055508060138190555060036013546116df9190613d3a565b60125410611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613ea6565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f47494e5500000000000000000000000000000000000000000000000000000000815250905090565b61176f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613cbc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61185f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390613cbc565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061193133848461204a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611965611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613cbc565b60405180910390fd5b6103e8600554611a029190613d3a565b6006541015611a1057600080fd5b6103e881600554611a219190613d6b565b611a2b9190613d3a565b60068190555050565b611a3c611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090613cbc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611b83611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613cbc565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611c32611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690613cbc565b60405180910390fd5b611cc761284d565b565b6000611d34611cd6610e39565b611d26611d176002611d09602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b611f1a90919063ffffffff16565b85611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611d8a9190613d6b565b611d949190613d3a565b9081150290604051600060405180830381858888f19350505050158015611dbf573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e53611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613cbc565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611f2c5760009050611f8e565b60008284611f3a9190613d6b565b9050828482611f499190613d3a565b14611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8090613f38565b60405180910390fd5b809150505b92915050565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e74565b905092915050565b600033905090565b600083831115829061202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120259190613831565b60405180910390fd5b506000838561203d9190613f58565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613fd8565b60405180910390fd5b602560009054906101000a900460ff16156121565761214f848484612ed7565b905061279e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121fa5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224f57602360149054906101000a900460ff1661224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590614044565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123895750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123e35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561243d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124935750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124f75760006124a38461109e565b905060075483826124b49190614064565b11156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec9061410a565b60405180910390fd5b505b61250184836130aa565b612509613147565b156125175761251661284d565b5b6125a0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126865750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269a5761269585848661321e565b61269c565b825b90506126f081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091906136d1565b60405180910390a360019150505b9392505050565b60006127e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe6565b905092915050565b60008082846127fe9190614064565b905083811015612843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283a90614176565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612878601f54602054610b50565b61288457600d54612887565b60005b905060006128c760026128b96012546128ab86602454611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b905060006128e0826024546127a590919063ffffffff16565b90506000600267ffffffffffffffff8111156128ff576128fe614196565b5b60405190808252806020026020018201604052801561292d5781602001602082028036833780820191505090505b5090503081600081518110612945576129446141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b6576129b56141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612a599594939291906142ed565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050506000612aa082476127a590919063ffffffff16565b90506000612acc612abb600289611f9490919063ffffffff16565b6012546127a590919063ffffffff16565b90506000612b086002612afa84612aec8c88611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b90506000612b3383612b25600e5487611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b5e84612b5060105488611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b8985612b7b600f5489611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612bd390614378565b60006040518083038185875af1925050503d8060008114612c10576040519150601f19603f3d011682016040523d82523d6000602084013e612c15565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c5f90614378565b60006040518083038185875af1925050503d8060008114612c9c576040519150601f19603f3d011682016040523d82523d6000602084013e612ca1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ced90614378565b60006040518083038185875af1925050503d8060008114612d2a576040519150601f19603f3d011682016040523d82523d6000602084013e612d2f565b606091505b5050809150506000905060008b1115612e4b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612dcb9695949392919061438d565b60606040518083038185885af1158015612de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0e91906143ee565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612e42929190614441565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083118290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29190613831565b60405180910390fd5b5060008385612eca9190613d3a565b9050809150509392505050565b6000612f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161309791906136d1565b60405180910390a3600190509392505050565b600654811115806131045750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313a906144b6565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602560009054906101000a900460ff16155b80156131cc5750602360159054906101000a900460ff165b80156132195750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132855760145490506132e1565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036132e05760155490505b5b600061332a60646013546132f59190613d6b565b61331c8461330e6012548a611f1a90919063ffffffff16565b611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061335760125461334960115485611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061336e82846127a590919063ffffffff16565b90506133c281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134798260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161353b91906136d1565b60405180910390a360008211156135ef57613561826005546127a590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135e691906136d1565b60405180910390a35b61360283886127a590919063ffffffff16565b9450505050509392505050565b600080fd5b60008115159050919050565b61362981613614565b811461363457600080fd5b50565b60008135905061364681613620565b92915050565b6000819050919050565b61365f8161364c565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b600080604083850312156136995761369861360f565b5b60006136a785828601613637565b92505060206136b88582860161366d565b9150509250929050565b6136cb8161364c565b82525050565b60006020820190506136e660008301846136c2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613717826136ec565b9050919050565b6137278161370c565b811461373257600080fd5b50565b6000813590506137448161371e565b92915050565b6000602082840312156137605761375f61360f565b5b600061376e84828501613735565b91505092915050565b61378081613614565b82525050565b600060208201905061379b6000830184613777565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137db5780820151818401526020810190506137c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613803826137a1565b61380d81856137ac565b935061381d8185602086016137bd565b613826816137e7565b840191505092915050565b6000602082019050818103600083015261384b81846137f8565b905092915050565b6000806040838503121561386a5761386961360f565b5b600061387885828601613735565b92505060206138898582860161366d565b9150509250929050565b600080604083850312156138aa576138a961360f565b5b60006138b88582860161366d565b92505060206138c98582860161366d565b9150509250929050565b600080600080608085870312156138ed576138ec61360f565b5b60006138fb87828801613637565b945050602061390c8782880161366d565b935050604061391d8782880161366d565b925050606061392e8782880161366d565b91505092959194509250565b6000806000606084860312156139535761395261360f565b5b600061396186828701613735565b935050602061397286828701613735565b92505060406139838682870161366d565b9150509250925092565b600060ff82169050919050565b6139a38161398d565b82525050565b60006020820190506139be600083018461399a565b92915050565b600080604083850312156139db576139da61360f565b5b60006139e985828601613735565b92505060206139fa85828601613637565b9150509250929050565b600060208284031215613a1a57613a1961360f565b5b6000613a288482850161366d565b91505092915050565b600080600080600060a08688031215613a4d57613a4c61360f565b5b6000613a5b88828901613735565b9550506020613a6c88828901613735565b9450506040613a7d88828901613735565b9350506060613a8e88828901613735565b9250506080613a9f88828901613735565b9150509295509295909350565b613ab58161370c565b82525050565b6000602082019050613ad06000830184613aac565b92915050565b60008060008060008060c08789031215613af357613af261360f565b5b6000613b0189828a0161366d565b9650506020613b1289828a0161366d565b9550506040613b2389828a0161366d565b9450506060613b3489828a0161366d565b9350506080613b4589828a0161366d565b92505060a0613b5689828a0161366d565b9150509295509295509295565b600080600060608486031215613b7c57613b7b61360f565b5b6000613b8a8682870161366d565b9350506020613b9b8682870161366d565b9250506040613bac8682870161366d565b9150509250925092565b60008060408385031215613bcd57613bcc61360f565b5b6000613bdb85828601613735565b9250506020613bec85828601613735565b9150509250929050565b6000819050919050565b6000613c1b613c16613c11846136ec565b613bf6565b6136ec565b9050919050565b6000613c2d82613c00565b9050919050565b6000613c3f82613c22565b9050919050565b613c4f81613c34565b82525050565b6000602082019050613c6a6000830184613c46565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ca66020836137ac565b9150613cb182613c70565b602082019050919050565b60006020820190508181036000830152613cd581613c99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d458261364c565b9150613d508361364c565b925082613d6057613d5f613cdc565b5b828204905092915050565b6000613d768261364c565b9150613d818361364c565b9250828202613d8f8161364c565b91508282048414831517613da657613da5613d0b565b5b5092915050565b600081519050613dbc81613656565b92915050565b600060208284031215613dd857613dd761360f565b5b6000613de684828501613dad565b91505092915050565b6000604082019050613e046000830185613aac565b613e1160208301846136c2565b9392505050565b600081519050613e2781613620565b92915050565b600060208284031215613e4357613e4261360f565b5b6000613e5184828501613e18565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20333025000000600082015250565b6000613e90601d836137ac565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f226021836137ac565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b6000613f638261364c565b9150613f6e8361364c565b9250828203905081811115613f8657613f85613d0b565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000613fc2600d836137ac565b9150613fcd82613f8c565b602082019050919050565b60006020820190508181036000830152613ff181613fb5565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061402e6014836137ac565b915061403982613ff8565b602082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b600061406f8261364c565b915061407a8361364c565b925082820190508082111561409257614091613d0b565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006140f4603e836137ac565b91506140ff82614098565b604082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614160601b836137ac565b915061416b8261412a565b602082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061421961421461420f846141f4565b613bf6565b61364c565b9050919050565b614229816141fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142648161370c565b82525050565b6000614276838361425b565b60208301905092915050565b6000602082019050919050565b600061429a8261422f565b6142a4818561423a565b93506142af8361424b565b8060005b838110156142e05781516142c7888261426a565b97506142d283614282565b9250506001810190506142b3565b5085935050505092915050565b600060a08201905061430260008301886136c2565b61430f6020830187614220565b8181036040830152614321818661428f565b90506143306060830185613aac565b61433d60808301846136c2565b9695505050505050565b600081905092915050565b50565b6000614362600083614347565b915061436d82614352565b600082019050919050565b600061438382614355565b9150819050919050565b600060c0820190506143a26000830189613aac565b6143af60208301886136c2565b6143bc6040830187614220565b6143c96060830186614220565b6143d66080830185613aac565b6143e360a08301846136c2565b979650505050505050565b6000806000606084860312156144075761440661360f565b5b600061441586828701613dad565b935050602061442686828701613dad565b925050604061443786828701613dad565b9150509250925092565b600060408201905061445660008301856136c2565b61446360208301846136c2565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006144a06011836137ac565b91506144ab8261446a565b602082019050919050565b600060208201905081810360008301526144cf81614493565b905091905056fea2646970667358221220954e6f4c604b0223bd27d371d2781f3ad8828dd83fa7880b03cb0457ab7dec8564736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102345760003560e01c80637bae52e11161012e578063b2bdfa7b116100ab578063d51ed1c81161006f578063d51ed1c814610836578063d78e139d14610873578063dd62ed3e1461089c578063f6a78e17146108d9578063f887ea40146108f05761023b565b8063b2bdfa7b14610779578063bc337182146107a4578063ccf8c036146107cd578063cec10c11146107f6578063d148b74c1461081f5761023b565b806395d89b41116100f257806395d89b41146106945780639acb773e146106bf5780639f11080e146106e8578063a8aa1b3114610711578063a9059cbb1461073c5761023b565b80637bae52e1146105c15780637d1db4a5146105ea578063893d20e8146106155780638da5cb5b14610640578063918924761461066b5761023b565b806323b872dd116101bc5780636ddd1713116101805780636ddd1713146104da57806370a0823114610505578063715018a61461054257806377b54bad1461055957806378109e54146105965761023b565b806323b872dd146103f55780632b112e4914610432578063313ce5671461045d5780635b24ea5e146104885780635d0044ca146104b15761023b565b806308fd3d051161020357806308fd3d05146102fc578063095ea7b3146103275780631161ae3914610364578063153590cd146103a157806318160ddd146103ca5761023b565b806304368f65146102405780630445b667146102695780630621472c1461029457806306fdde03146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613682565b61091b565b005b34801561027557600080fd5b5061027e6109d5565b60405161028b91906136d1565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061374a565b6109db565b6040516102c89190613786565b60405180910390f35b3480156102dd57600080fd5b506102e6610a0e565b6040516102f39190613831565b60405180910390f35b34801561030857600080fd5b50610311610a4b565b60405161031e9190613786565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613853565b610a5e565b60405161035b9190613786565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190613893565b610b50565b6040516103989190613786565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906138d3565b610b65565b005b3480156103d657600080fd5b506103df610c2f565b6040516103ec91906136d1565b60405180910390f35b34801561040157600080fd5b5061041c6004803603810190610417919061393a565b610c39565b6040516104299190613786565b60405180910390f35b34801561043e57600080fd5b50610447610e39565b60405161045491906136d1565b60405180910390f35b34801561046957600080fd5b50610472610ebb565b60405161047f91906139a9565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906139c4565b610ec4565b005b3480156104bd57600080fd5b506104d860048036038101906104d39190613a04565b610fb4565b005b3480156104e657600080fd5b506104ef61108b565b6040516104fc9190613786565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061374a565b61109e565b60405161053991906136d1565b60405180910390f35b34801561054e57600080fd5b506105576110e7565b005b34801561056557600080fd5b50610580600480360381019061057b9190613853565b61123a565b60405161058d9190613786565b60405180910390f35b3480156105a257600080fd5b506105ab61139d565b6040516105b891906136d1565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e39190613a31565b6113a3565b005b3480156105f657600080fd5b506105ff611584565b60405161060c91906136d1565b60405180910390f35b34801561062157600080fd5b5061062a61158a565b6040516106379190613abb565b60405180910390f35b34801561064c57600080fd5b50610655611599565b6040516106629190613abb565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d9190613ad6565b6115c2565b005b3480156106a057600080fd5b506106a961172a565b6040516106b69190613831565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e191906139c4565b611767565b005b3480156106f457600080fd5b5061070f600480360381019061070a9190613893565b611857565b005b34801561071d57600080fd5b506107266118fe565b6040516107339190613abb565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190613853565b611924565b6040516107709190613786565b60405180910390f35b34801561078557600080fd5b5061078e611939565b60405161079b9190613abb565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c69190613a04565b61195d565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906139c4565b611a34565b005b34801561080257600080fd5b5061081d60048036038101906108189190613b63565b611b7b565b005b34801561082b57600080fd5b50610834611c2a565b005b34801561084257600080fd5b5061085d60048036038101906108589190613a04565b611cc9565b60405161086a91906136d1565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613a04565b611d3b565b005b3480156108a857600080fd5b506108c360048036038101906108be9190613bb6565b611dc4565b6040516108d091906136d1565b60405180910390f35b3480156108e557600080fd5b506108ee611e4b565b005b3480156108fc57600080fd5b50610905611ef4565b6040516109129190613c55565b60405180910390f35b610923611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790613cbc565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610a07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a5e565b9050919050565b60606040518060400160405280601a81526020017f4761732053746174696f6e20426f6e65722050696c6c20494e55000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3e91906136d1565b60405180910390a36001905092915050565b600082610b5c83611cc9565b11905092915050565b610b6d611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613cbc565b60405180910390fd5b83602360146101000a81548160ff02191690831515021790555082601581905550816014819055508060168190555050505050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e2557610da4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e3084848461204a565b90509392505050565b6000610eb6610e69600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b610ea8610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b6005546127a590919063ffffffff16565b6127a590919063ffffffff16565b905090565b60006009905090565b610ecc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090613cbc565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610fbc611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090613cbc565b60405180910390fd5b6103e86005546110599190613d3a565b600754101561106757600080fd5b6103e8816005546110789190613d6b565b6110829190613d3a565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ef611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613cbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661129257600080fd5b60008203611317578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112d39190613abb565b602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190613dc2565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611352929190613def565b6020604051808303816000875af1158015611371573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113959190613e2d565b905092915050565b60075481565b6113ab611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90613cbc565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b6000611594611599565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ca611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164e90613cbc565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506116c3826116b5856116a7886116998b8d6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6127ef90919063ffffffff16565b6012819055508060138190555060036013546116df9190613d3a565b60125410611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613ea6565b60405180910390fd5b505050505050565b60606040518060400160405280600481526020017f47494e5500000000000000000000000000000000000000000000000000000000815250905090565b61176f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613cbc565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61185f611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390613cbc565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061193133848461204a565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611965611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613cbc565b60405180910390fd5b6103e8600554611a029190613d3a565b6006541015611a1057600080fd5b6103e881600554611a219190613d6b565b611a2b9190613d3a565b60068190555050565b611a3c611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090613cbc565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611b83611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790613cbc565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611c32611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690613cbc565b60405180910390fd5b611cc761284d565b565b6000611d34611cd6610e39565b611d26611d176002611d09602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109e565b611f1a90919063ffffffff16565b85611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050919050565b6000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611d8a9190613d6b565b611d949190613d3a565b9081150290604051600060405180830381858888f19350505050158015611dbf573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e53611fde565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613cbc565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611f2c5760009050611f8e565b60008284611f3a9190613d6b565b9050828482611f499190613d3a565b14611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8090613f38565b60405180910390fd5b809150505b92915050565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e74565b905092915050565b600033905090565b600083831115829061202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120259190613831565b60405180910390fd5b506000838561203d9190613f58565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120f05750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613fd8565b60405180910390fd5b602560009054906101000a900460ff16156121565761214f848484612ed7565b905061279e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121fa5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224f57602360149054906101000a900460ff1661224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590614044565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123895750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123e35750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561243d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124935750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124f75760006124a38461109e565b905060075483826124b49190614064565b11156124f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ec9061410a565b60405180910390fd5b505b61250184836130aa565b612509613147565b156125175761251661284d565b5b6125a0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126865750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61269a5761269585848661321e565b61269c565b825b90506126f081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279091906136d1565b60405180910390a360019150505b9392505050565b60006127e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fe6565b905092915050565b60008082846127fe9190614064565b905083811015612843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283a90614176565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612878601f54602054610b50565b61288457600d54612887565b60005b905060006128c760026128b96012546128ab86602454611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b905060006128e0826024546127a590919063ffffffff16565b90506000600267ffffffffffffffff8111156128ff576128fe614196565b5b60405190808252806020026020018201604052801561292d5781602001602082028036833780820191505090505b5090503081600081518110612945576129446141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129b6576129b56141c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612a599594939291906142ed565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050506000612aa082476127a590919063ffffffff16565b90506000612acc612abb600289611f9490919063ffffffff16565b6012546127a590919063ffffffff16565b90506000612b086002612afa84612aec8c88611f1a90919063ffffffff16565b611f9490919063ffffffff16565b611f9490919063ffffffff16565b90506000612b3383612b25600e5487611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b5e84612b5060105488611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000612b8985612b7b600f5489611f1a90919063ffffffff16565b611f9490919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612bd390614378565b60006040518083038185875af1925050503d8060008114612c10576040519150601f19603f3d011682016040523d82523d6000602084013e612c15565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c5f90614378565b60006040518083038185875af1925050503d8060008114612c9c576040519150601f19603f3d011682016040523d82523d6000602084013e612ca1565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ced90614378565b60006040518083038185875af1925050503d8060008114612d2a576040519150601f19603f3d011682016040523d82523d6000602084013e612d2f565b606091505b5050809150506000905060008b1115612e4b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612dcb9695949392919061438d565b60606040518083038185885af1158015612de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0e91906143ee565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612e42929190614441565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b60008083118290612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29190613831565b60405180910390fd5b5060008385612eca9190613d3a565b9050809150509392505050565b6000612f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161309791906136d1565b60405180910390a3600190509392505050565b600654811115806131045750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313a906144b6565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156131b45750602560009054906101000a900460ff16155b80156131cc5750602360159054906101000a900460ff165b80156132195750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132855760145490506132e1565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036132e05760155490505b5b600061332a60646013546132f59190613d6b565b61331c8461330e6012548a611f1a90919063ffffffff16565b611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061335760125461334960115485611f1a90919063ffffffff16565b611f9490919063ffffffff16565b9050600061336e82846127a590919063ffffffff16565b90506133c281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134798260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127ef90919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161353b91906136d1565b60405180910390a360008211156135ef57613561826005546127a590919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135e691906136d1565b60405180910390a35b61360283886127a590919063ffffffff16565b9450505050509392505050565b600080fd5b60008115159050919050565b61362981613614565b811461363457600080fd5b50565b60008135905061364681613620565b92915050565b6000819050919050565b61365f8161364c565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b600080604083850312156136995761369861360f565b5b60006136a785828601613637565b92505060206136b88582860161366d565b9150509250929050565b6136cb8161364c565b82525050565b60006020820190506136e660008301846136c2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613717826136ec565b9050919050565b6137278161370c565b811461373257600080fd5b50565b6000813590506137448161371e565b92915050565b6000602082840312156137605761375f61360f565b5b600061376e84828501613735565b91505092915050565b61378081613614565b82525050565b600060208201905061379b6000830184613777565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137db5780820151818401526020810190506137c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613803826137a1565b61380d81856137ac565b935061381d8185602086016137bd565b613826816137e7565b840191505092915050565b6000602082019050818103600083015261384b81846137f8565b905092915050565b6000806040838503121561386a5761386961360f565b5b600061387885828601613735565b92505060206138898582860161366d565b9150509250929050565b600080604083850312156138aa576138a961360f565b5b60006138b88582860161366d565b92505060206138c98582860161366d565b9150509250929050565b600080600080608085870312156138ed576138ec61360f565b5b60006138fb87828801613637565b945050602061390c8782880161366d565b935050604061391d8782880161366d565b925050606061392e8782880161366d565b91505092959194509250565b6000806000606084860312156139535761395261360f565b5b600061396186828701613735565b935050602061397286828701613735565b92505060406139838682870161366d565b9150509250925092565b600060ff82169050919050565b6139a38161398d565b82525050565b60006020820190506139be600083018461399a565b92915050565b600080604083850312156139db576139da61360f565b5b60006139e985828601613735565b92505060206139fa85828601613637565b9150509250929050565b600060208284031215613a1a57613a1961360f565b5b6000613a288482850161366d565b91505092915050565b600080600080600060a08688031215613a4d57613a4c61360f565b5b6000613a5b88828901613735565b9550506020613a6c88828901613735565b9450506040613a7d88828901613735565b9350506060613a8e88828901613735565b9250506080613a9f88828901613735565b9150509295509295909350565b613ab58161370c565b82525050565b6000602082019050613ad06000830184613aac565b92915050565b60008060008060008060c08789031215613af357613af261360f565b5b6000613b0189828a0161366d565b9650506020613b1289828a0161366d565b9550506040613b2389828a0161366d565b9450506060613b3489828a0161366d565b9350506080613b4589828a0161366d565b92505060a0613b5689828a0161366d565b9150509295509295509295565b600080600060608486031215613b7c57613b7b61360f565b5b6000613b8a8682870161366d565b9350506020613b9b8682870161366d565b9250506040613bac8682870161366d565b9150509250925092565b60008060408385031215613bcd57613bcc61360f565b5b6000613bdb85828601613735565b9250506020613bec85828601613735565b9150509250929050565b6000819050919050565b6000613c1b613c16613c11846136ec565b613bf6565b6136ec565b9050919050565b6000613c2d82613c00565b9050919050565b6000613c3f82613c22565b9050919050565b613c4f81613c34565b82525050565b6000602082019050613c6a6000830184613c46565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ca66020836137ac565b9150613cb182613c70565b602082019050919050565b60006020820190508181036000830152613cd581613c99565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d458261364c565b9150613d508361364c565b925082613d6057613d5f613cdc565b5b828204905092915050565b6000613d768261364c565b9150613d818361364c565b9250828202613d8f8161364c565b91508282048414831517613da657613da5613d0b565b5b5092915050565b600081519050613dbc81613656565b92915050565b600060208284031215613dd857613dd761360f565b5b6000613de684828501613dad565b91505092915050565b6000604082019050613e046000830185613aac565b613e1160208301846136c2565b9392505050565b600081519050613e2781613620565b92915050565b600060208284031215613e4357613e4261360f565b5b6000613e5184828501613e18565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20333025000000600082015250565b6000613e90601d836137ac565b9150613e9b82613e5a565b602082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f226021836137ac565b9150613f2d82613ec6565b604082019050919050565b60006020820190508181036000830152613f5181613f15565b9050919050565b6000613f638261364c565b9150613f6e8361364c565b9250828203905081811115613f8657613f85613d0b565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000613fc2600d836137ac565b9150613fcd82613f8c565b602082019050919050565b60006020820190508181036000830152613ff181613fb5565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061402e6014836137ac565b915061403982613ff8565b602082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b600061406f8261364c565b915061407a8361364c565b925082820190508082111561409257614091613d0b565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006140f4603e836137ac565b91506140ff82614098565b604082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614160601b836137ac565b915061416b8261412a565b602082019050919050565b6000602082019050818103600083015261418f81614153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061421961421461420f846141f4565b613bf6565b61364c565b9050919050565b614229816141fe565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142648161370c565b82525050565b6000614276838361425b565b60208301905092915050565b6000602082019050919050565b600061429a8261422f565b6142a4818561423a565b93506142af8361424b565b8060005b838110156142e05781516142c7888261426a565b97506142d283614282565b9250506001810190506142b3565b5085935050505092915050565b600060a08201905061430260008301886136c2565b61430f6020830187614220565b8181036040830152614321818661428f565b90506143306060830185613aac565b61433d60808301846136c2565b9695505050505050565b600081905092915050565b50565b6000614362600083614347565b915061436d82614352565b600082019050919050565b600061438382614355565b9150819050919050565b600060c0820190506143a26000830189613aac565b6143af60208301886136c2565b6143bc6040830187614220565b6143c96060830186614220565b6143d66080830185613aac565b6143e360a08301846136c2565b979650505050505050565b6000806000606084860312156144075761440661360f565b5b600061441586828701613dad565b935050602061442686828701613dad565b925050604061443786828701613dad565b9150509250925092565b600060408201905061445660008301856136c2565b61446360208301846136c2565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006144a06011836137ac565b91506144ab8261446a565b602082019050919050565b600060208201905081810360008301526144cf81614493565b905091905056fea2646970667358221220954e6f4c604b0223bd27d371d2781f3ad8828dd83fa7880b03cb0457ab7dec8564736f6c63430008110033
Deployed Bytecode Sourcemap
4729:13848:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6591:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8721:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8075:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6510:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8497:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18351:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14127:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7805:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9015:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18026:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7899:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13462:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9397:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6554:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8245:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3038:148;;;;;;;;;;;;;:::i;:::-;;13596:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5220:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17213:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5155:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8161:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2824:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16626:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7985:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16498:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17840:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6478:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8851:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2444:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9624:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16333:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13912:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13233:77;;;;;;;;;;;;;:::i;:::-;;18176:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13023:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8356:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13318:136;;;;;;;;;;;;;:::i;:::-;;6408:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17676:156;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17782:8:::1;17768:11;;:22;;;;;;;;;;;;;;;;;;17817:7;17801:13;:23;;;;17676:156:::0;;:::o;6591:57::-;;;;:::o;8721:122::-;8776:4;8800:35;8808:7;8817:17;8800:7;:35::i;:::-;8793:42;;8721:122;;;:::o;8075:80::-;8123:13;8147:5;;;;;;;;;;;;;;;;;8140:12;;8075:80;:::o;6510:31::-;;;;;;;;;;;;;:::o;8497:216::-;8572:4;8624:6;8589:11;:23;8601:10;8589:23;;;;;;;;;;;;;;;:32;8613:7;8589:32;;;;;;;;;;;;;;;:41;;;;8667:7;8646:37;;8655:10;8646:37;;;8676:6;8646:37;;;;;;:::i;:::-;;;;;;;;8701:4;8694:11;;8497:216;;;;:::o;18351:150::-;18431:4;18487:6;18455:29;18475:8;18455:19;:29::i;:::-;:38;18448:45;;18351:150;;;;:::o;14127:305::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14284:5:::1;14270:11;;:19;;;;;;;;;;;;;;;;;;14316:14;14300:13;:30;;;;14358:15;14341:14;:32;;;;14405:19;14384:18;:40;;;;14127:305:::0;;;;:::o;7805:88::-;7860:7;7878:12;;7871:19;;7805:88;:::o;9015:370::-;9115:4;9170:17;9135:11;:19;9147:6;9135:19;;;;;;;;;;;;;;;:31;9155:10;9135:31;;;;;;;;;;;;;;;;:52;9132:186;;9237:69;9273:6;9237:69;;;;;;;;;;;;;;;;;:11;:19;9249:6;9237:19;;;;;;;;;;;;;;;:31;9257:10;9237:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9203:11;:19;9215:6;9203:19;;;;;;;;;;;;;;;:31;9223:10;9203:31;;;;;;;;;;;;;;;:103;;;;9132:186;9337:40;9351:6;9359:9;9370:6;9337:13;:40::i;:::-;9330:47;;9015:370;;;;;:::o;18026:142::-;18079:7;18106:54;18144:15;18154:4;;;;;;;;;;;18144:9;:15::i;:::-;18106:33;18123:15;18133:4;;;;;;;;;;;18123:9;:15::i;:::-;18106:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18099:61;;18026:142;:::o;7899:80::-;7951:5;5083:1;7960:16;;7899:80;:::o;13462:126::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13575:5:::1;13549:14;:23;13564:7;13549:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13462:126:::0;;:::o;9397:219::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9516:4:::1;9501:12;;:19;;;;:::i;:::-;9482:15;;:38;;9474:47;;;::::0;::::1;;9586:4;9567:14;9552:12;;:29;;;;:::i;:::-;9551:39;;;;:::i;:::-;9533:15;:57;;;;9397:219:::0;:::o;6554:30::-;;;;;;;;;;;;;:::o;8245:105::-;8311:7;8329:9;:18;8339:7;8329:18;;;;;;;;;;;;;;;;8322:25;;8245:105;;;:::o;3038:148::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3145:1:::1;3108:40;;3129:6;::::0;::::1;;;;;;;;3108:40;;;;;;;;;;;;3176:1;3159:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3038:148::o:0;13596:308::-;13675:4;13700:15;:27;13716:10;13700:27;;;;;;;;;;;;;;;;;;;;;;;;;13692:36;;;;;;13749:1;13739:6;:11;13736:95;;13781:12;13775:29;;;13813:4;13775:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:53;;13736:95;13854:12;13848:28;;;13877:10;13889:6;13848:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13841:55;;13596:308;;;;:::o;5220:61::-;;;;:::o;17213:455::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17442:22:::1;17418:21;;:46;;;;;;;;;;;;;;;;;;17498:21;17475:20;;:44;;;;;;;;;;;;;;;;;;17551:19;17530:18;;:40;;;;;;;;;;;;;;;;;;17599:16;17581:15;;:34;;;;;;;;;;;;;;;;;;17644:16;17626:15;;:34;;;;;;;;;;;;;;;;;;17213:455:::0;;;;;:::o;5155:58::-;;;;:::o;8161:78::-;8213:7;8230;:5;:7::i;:::-;8223:14;;8161:78;:::o;2824:79::-;2862:7;2889:6;;;;;;;;;;;2882:13;;2824:79;:::o;16626:579::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16827:13:::1;16812:12;:28;;;;16861:8;16851:7;:18;;;;16895:13;16880:12;:28;;;;16932:11;16919:10;:24;;;;16964:8;16954:7;:18;;;;16994:77;17062:8;16994:63;17045:11;16994:46;17026:13;16994:27;17012:8;16994:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;16983:8;:88;;;;17099:15;17082:14;:32;;;;17161:1;17144:14;;:18;;;;:::i;:::-;17133:8;;:29;17125:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16626:579:::0;;;;;;:::o;7985:84::-;8035:13;8059:7;;;;;;;;;;;;;;;;;8052:14;;7985:84;:::o;16498:120::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16604:6:::1;16578:15;:23;16594:6;16578:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16498:120:::0;;:::o;17840:174::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17947:7:::1;17929:15;:25;;;;17994:12;17965:26;:41;;;;17840:174:::0;;:::o;6478:19::-;;;;;;;;;;;;;:::o;8851:156::-;8931:4;8955:44;8969:10;8981:9;8992:6;8955:13;:44::i;:::-;8948:51;;8851:156;;;;:::o;2444:21::-;;;;;;;;;;;;:::o;9624:187::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9734:4:::1;9719:12;;:19;;;;:::i;:::-;9703:12;;:35;;9695:44;;;::::0;::::1;;9799:4;9782:12;9767;;:27;;;;:::i;:::-;9766:37;;;;:::i;:::-;9751:12;:52;;;;9624:187:::0;:::o;16333:157::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16433:6:::1;16411:11;:19;16423:6;16411:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16476:6;16450:15;:23;16466:6;16450:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16333:157:::0;;:::o;13912:207::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14021:5:::1;14004:14;:22;;;;14053:4;14037:13;:20;;;;14089:6;14068:18;:27;;;;13912:207:::0;;;:::o;13233:77::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13286:10:::1;:8;:10::i;:::-;13233:77::o:0;18176:167::-;18244:7;18271:64;18312:22;:20;:22::i;:::-;18271:36;18284:22;18304:1;18284:15;18294:4;;;;;;;;;;;18284:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18271:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18264:71;;18176:167;;;:::o;13023:201::-;13092:17;13112:21;13092:41;;13152:18;;;;;;;;;;;13144:36;;:72;13212:3;13193:16;13181:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13144:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13081:143;13023:201;:::o;8356:133::-;8440:7;8458:11;:19;8470:6;8458:19;;;;;;;;;;;;;;;:28;8478:7;8458:28;;;;;;;;;;;;;;;;8451:35;;8356:133;;;;:::o;13318:136::-;2961:12;:10;:12::i;:::-;2951:22;;:6;;;;;;;;;;:22;;;2943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13394:12:::1;;13376:15;:30;;;;13432:12;;13417;:27;;;;13318:136::o:0;6408:24::-;;;;;;;;;;;;;:::o;623:250::-;681:7;710:1;705;:6;701:47;;735:1;728:8;;;;701:47;760:9;776:1;772;:5;;;;:::i;:::-;760:17;;805:1;800;796;:5;;;;:::i;:::-;:10;788:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;864:1;857:8;;;623:250;;;;;:::o;879:132::-;937:7;964:39;968:1;971;964:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;957:46;;879:132;;;;:::o;2165:115::-;2218:15;2261:10;2246:26;;2165:115;:::o;425:192::-;511:7;544:1;539;:6;;547:12;531:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;571:9;587:1;583;:5;;;;:::i;:::-;571:17;;608:1;601:8;;;425:192;;;;;:::o;9828:1329::-;9920:4;9946:14;:22;9961:6;9946:22;;;;;;;;;;;;;;;;;;;;;;;;;9945:23;:53;;;;;9973:14;:25;9988:9;9973:25;;;;;;;;;;;;;;;;;;;;;;;;;9972:26;9945:53;9937:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10032:6;;;;;;;;;;;10029:63;;;10048:41;10063:6;10071:9;10082:6;10048:14;:41::i;:::-;10041:48;;;;10029:63;10108:14;:22;10123:6;10108:22;;;;;;;;;;;;;;;;;;;;;;;;;10107:23;:53;;;;;10135:14;:25;10150:9;10135:25;;;;;;;;;;;;;;;;;;;;;;;;;10134:26;10107:53;10104:140;;;10184:11;;;;;;;;;;;10176:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10104:140;10278:14;:22;10293:6;10278:22;;;;;;;;;;;;;;;;;;;;;;;;;10277:23;:53;;;;;10325:4;10304:26;;:9;:26;;;;10277:53;:84;;;;;10356:4;;;;;;;;;;;10335:26;;:9;:26;;;;10277:84;:105;;;;;10378:4;;;;;;;;;;;10365:17;;:9;:17;;;;10277:105;:137;;;;;10399:15;;;;;;;;;;;10386:28;;:9;:28;;;;10277:137;:174;;;;;10431:20;;;;;;;;;;;10418:33;;:9;:33;;;;10277:174;:205;;;;;10456:15;:26;10472:9;10456:26;;;;;;;;;;;;;;;;;;;;;;;;;10455:27;10277:205;10273:397;;;10498:18;10519:20;10529:9;10519;:20::i;:::-;10498:41;;10587:15;;10576:6;10563:10;:19;;;;:::i;:::-;10562:40;;10554:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10483:187;10273:397;10691:28;10704:6;10712;10691:12;:28::i;:::-;10736:16;:14;:16::i;:::-;10733:35;;;10755:10;:8;:10::i;:::-;10733:35;10808:53;10830:6;10808:53;;;;;;;;;;;;;;;;;:9;:17;10818:6;10808:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10788:9;:17;10798:6;10788:17;;;;;;;;;;;;;;;:73;;;;10874:22;10900:11;:19;10912:6;10900:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10923:11;:22;10935:9;10923:22;;;;;;;;;;;;;;;;;;;;;;;;;10900:45;10899:93;;10958:34;10966:6;10974;10982:9;10958:7;:34::i;:::-;10899:93;;;10949:6;10899:93;10874:118;;11026:40;11051:14;11026:9;:20;11036:9;11026:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11003:9;:20;11013:9;11003:20;;;;;;;;;;;;;;;:63;;;;11101:9;11084:43;;11093:6;11084:43;;;11112:14;11084:43;;;;;;:::i;:::-;;;;;;;;11145:4;11138:11;;;9828:1329;;;;;;:::o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;361:50;;283:136;;;;:::o;96:181::-;154:7;174:9;190:1;186;:5;;;;:::i;:::-;174:17;;215:1;210;:6;;202:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;268:1;261:8;;;96:181;;;;:::o;14448:1877::-;6705:4;6696:6;;:13;;;;;;;;;;;;;;;;;;14497:27:::1;14527:60;14543:15;;14560:26;;14527:15;:60::i;:::-;:79;;14594:12;;14527:79;;;14590:1;14527:79;14497:109;;14617:23;14643:59;14700:1;14643:52;14686:8;;14643:38;14661:19;14643:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14617:85;;14713:20;14736:34;14754:15;14736:13;;:17;;:34;;;;:::i;:::-;14713:57;;14783:21;14821:1;14807:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:40;;14852:4;14834;14839:1;14834:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14878:4;;;;;;;;;;;14868;14873:1;14868:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;14895:21;14919;14895:45;;14953:6;;;;;;;;;;;:57;;;15025:12;15052:1;15068:4;15095;15115:15;14953:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15154:17;15174:40;15200:13;15174:21;:25;;:40;;;;:::i;:::-;15154:60;;15227:19;15249:40;15262:26;15286:1;15262:19;:23;;:26;;;;:::i;:::-;15249:8;;:12;;:40;;;;:::i;:::-;15227:62;;15310:26;15339:58;15395:1;15339:51;15378:11;15339:34;15353:19;15339:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15310:87;;15408:26;15437:44;15469:11;15437:27;15451:12;;15437:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15408:73;;15492:21;15516:39;15543:11;15516:22;15530:7;;15516:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;15492:63;;15566:24;15593:42;15623:11;15593:25;15607:10;;15593:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15566:69;;15649:15;15677:20;;;;;;;;;;;15669:34;;15711:18;15669:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15648:86;;;15769:18;;;;;;;;;;;15761:32;;15801:16;15761:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15745:77;;;;;15857:15;;;;;;;;;;;15849:29;;15886:13;15849:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15833:71;;;;;15938:5;15925:18;;15977:1;15959:15;:19;15956:362;;;15994:6;;;;;;;;;;;:22;;;16024:18;16070:4;16094:15;16128:1;16148::::0;16168:21:::1;;;;;;;;;;;16208:15;15994:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16258:48;16270:18;16290:15;16258:48;;;;;;;:::i;:::-;;;;;;;;15956:362;14486:1839;;;;;;;;;;;;6723:5:::0;6714:6;;:14;;;;;;;;;;;;;;;;;;14448:1877::o;1017:189::-;1103:7;1135:1;1131;:5;1138:12;1123:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1162:9;1178:1;1174;:5;;;;:::i;:::-;1162:17;;1197:1;1190:8;;;1017:189;;;;;:::o;11169:330::-;11262:4;11299:53;11321:6;11299:53;;;;;;;;;;;;;;;;;:9;:17;11309:6;11299:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11279:9;:17;11289:6;11279:17;;;;;;;;;;;;;;;:73;;;;11386:32;11411:6;11386:9;:20;11396:9;11386:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11363:9;:20;11373:9;11363:20;;;;;;;;;;;;;;;:55;;;;11451:9;11434:35;;11443:6;11434:35;;;11462:6;11434:35;;;;;;:::i;:::-;;;;;;;;11487:4;11480:11;;11169:330;;;;;:::o;11507:166::-;11604:12;;11594:6;:22;;:49;;;;11620:15;:23;11636:6;11620:23;;;;;;;;;;;;;;;;;;;;;;;;;11594:49;11586:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11507:166;;:::o;12818:197::-;12867:4;12905;;;;;;;;;;;12891:18;;:10;:18;;;;:38;;;;;12923:6;;;;;;;;;;;12922:7;12891:38;:62;;;;;12942:11;;;;;;;;;;;12891:62;:116;;;;;12994:13;;12966:9;:24;12984:4;12966:24;;;;;;;;;;;;;;;;:41;;12891:116;12884:123;;12818:197;:::o;11803:1007::-;11889:7;11919:18;11940;;11919:39;;11987:4;;;;;;;;;;;11974:17;;:9;:17;;;11971:154;;12021:14;;12008:27;;11971:154;;;12066:4;;;;;;;;;;;12056:14;;:6;:14;;;12053:72;;12100:13;;12087:26;;12053:72;11971:154;12137:17;12157:62;12215:3;12198:14;;:20;;;;:::i;:::-;12157:36;12182:10;12157:20;12168:8;;12157:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12137:82;;12230:18;12251:36;12278:8;;12251:22;12265:7;;12251:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12230:57;;12298:22;12323:25;12337:10;12323:9;:13;;:25;;;;:::i;:::-;12298:50;;12388:44;12417:14;12388:9;:24;12406:4;12388:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12361:9;:24;12379:4;12361:24;;;;;;;;;;;;;;;:71;;;;12472:42;12503:10;12472:9;:26;12482:15;;;;;;;;;;;12472:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12443:9;:26;12453:15;;;;;;;;;;;12443:26;;;;;;;;;;;;;;;:71;;;;12555:4;12530:47;;12539:6;12530:47;;;12562:14;12530:47;;;;;;:::i;:::-;;;;;;;;12624:1;12611:10;:14;12608:154;;;12656:28;12673:10;12656:12;;:16;;:28;;;;:::i;:::-;12641:12;:43;;;;12721:4;;;;;;;;;;;12704:34;;12713:6;12704:34;;;12727:10;12704:34;;;;;;:::i;:::-;;;;;;;;12608:154;12781:21;12792:9;12781:6;:10;;:21;;;;:::i;:::-;12774:28;;;;;;11803:1007;;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:759::-;5431:6;5439;5447;5455;5504:3;5492:9;5483:7;5479:23;5475:33;5472:120;;;5511:79;;:::i;:::-;5472:120;5631:1;5656:50;5698:7;5689:6;5678:9;5674:22;5656:50;:::i;:::-;5646:60;;5602:114;5755:2;5781:53;5826:7;5817:6;5806:9;5802:22;5781:53;:::i;:::-;5771:63;;5726:118;5883:2;5909:53;5954:7;5945:6;5934:9;5930:22;5909:53;:::i;:::-;5899:63;;5854:118;6011:2;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5982:118;5348:759;;;;;;;:::o;6113:619::-;6190:6;6198;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6636:2;6662:53;6707:7;6698:6;6687:9;6683:22;6662:53;:::i;:::-;6652:63;;6607:118;6113:619;;;;;:::o;6738:86::-;6773:7;6813:4;6806:5;6802:16;6791:27;;6738:86;;;:::o;6830:112::-;6913:22;6929:5;6913:22;:::i;:::-;6908:3;6901:35;6830:112;;:::o;6948:214::-;7037:4;7075:2;7064:9;7060:18;7052:26;;7088:67;7152:1;7141:9;7137:17;7128:6;7088:67;:::i;:::-;6948:214;;;;:::o;7168:468::-;7233:6;7241;7290:2;7278:9;7269:7;7265:23;7261:32;7258:119;;;7296:79;;:::i;:::-;7258:119;7416:1;7441:53;7486:7;7477:6;7466:9;7462:22;7441:53;:::i;:::-;7431:63;;7387:117;7543:2;7569:50;7611:7;7602:6;7591:9;7587:22;7569:50;:::i;:::-;7559:60;;7514:115;7168:468;;;;;:::o;7642:329::-;7701:6;7750:2;7738:9;7729:7;7725:23;7721:32;7718:119;;;7756:79;;:::i;:::-;7718:119;7876:1;7901:53;7946:7;7937:6;7926:9;7922:22;7901:53;:::i;:::-;7891:63;;7847:117;7642:329;;;;:::o;7977:911::-;8072:6;8080;8088;8096;8104;8153:3;8141:9;8132:7;8128:23;8124:33;8121:120;;;8160:79;;:::i;:::-;8121:120;8280:1;8305:53;8350:7;8341:6;8330:9;8326:22;8305:53;:::i;:::-;8295:63;;8251:117;8407:2;8433:53;8478:7;8469:6;8458:9;8454:22;8433:53;:::i;:::-;8423:63;;8378:118;8535:2;8561:53;8606:7;8597:6;8586:9;8582:22;8561:53;:::i;:::-;8551:63;;8506:118;8663:2;8689:53;8734:7;8725:6;8714:9;8710:22;8689:53;:::i;:::-;8679:63;;8634:118;8791:3;8818:53;8863:7;8854:6;8843:9;8839:22;8818:53;:::i;:::-;8808:63;;8762:119;7977:911;;;;;;;;:::o;8894:118::-;8981:24;8999:5;8981:24;:::i;:::-;8976:3;8969:37;8894:118;;:::o;9018:222::-;9111:4;9149:2;9138:9;9134:18;9126:26;;9162:71;9230:1;9219:9;9215:17;9206:6;9162:71;:::i;:::-;9018:222;;;;:::o;9246:1057::-;9350:6;9358;9366;9374;9382;9390;9439:3;9427:9;9418:7;9414:23;9410:33;9407:120;;;9446:79;;:::i;:::-;9407:120;9566:1;9591:53;9636:7;9627:6;9616:9;9612:22;9591:53;:::i;:::-;9581:63;;9537:117;9693:2;9719:53;9764:7;9755:6;9744:9;9740:22;9719:53;:::i;:::-;9709:63;;9664:118;9821:2;9847:53;9892:7;9883:6;9872:9;9868:22;9847:53;:::i;:::-;9837:63;;9792:118;9949:2;9975:53;10020:7;10011:6;10000:9;9996:22;9975:53;:::i;:::-;9965:63;;9920:118;10077:3;10104:53;10149:7;10140:6;10129:9;10125:22;10104:53;:::i;:::-;10094:63;;10048:119;10206:3;10233:53;10278:7;10269:6;10258:9;10254:22;10233:53;:::i;:::-;10223:63;;10177:119;9246:1057;;;;;;;;:::o;10309:619::-;10386:6;10394;10402;10451:2;10439:9;10430:7;10426:23;10422:32;10419:119;;;10457:79;;:::i;:::-;10419:119;10577:1;10602:53;10647:7;10638:6;10627:9;10623:22;10602:53;:::i;:::-;10592:63;;10548:117;10704:2;10730:53;10775:7;10766:6;10755:9;10751:22;10730:53;:::i;:::-;10720:63;;10675:118;10832:2;10858:53;10903:7;10894:6;10883:9;10879:22;10858:53;:::i;:::-;10848:63;;10803:118;10309:619;;;;;:::o;10934:474::-;11002:6;11010;11059:2;11047:9;11038:7;11034:23;11030:32;11027:119;;;11065:79;;:::i;:::-;11027:119;11185:1;11210:53;11255:7;11246:6;11235:9;11231:22;11210:53;:::i;:::-;11200:63;;11156:117;11312:2;11338:53;11383:7;11374:6;11363:9;11359:22;11338:53;:::i;:::-;11328:63;;11283:118;10934:474;;;;;:::o;11414:60::-;11442:3;11463:5;11456:12;;11414:60;;;:::o;11480:142::-;11530:9;11563:53;11581:34;11590:24;11608:5;11590:24;:::i;:::-;11581:34;:::i;:::-;11563:53;:::i;:::-;11550:66;;11480:142;;;:::o;11628:126::-;11678:9;11711:37;11742:5;11711:37;:::i;:::-;11698:50;;11628:126;;;:::o;11760:144::-;11828:9;11861:37;11892:5;11861:37;:::i;:::-;11848:50;;11760:144;;;:::o;11910:167::-;12015:55;12064:5;12015:55;:::i;:::-;12010:3;12003:68;11910:167;;:::o;12083:258::-;12194:4;12232:2;12221:9;12217:18;12209:26;;12245:89;12331:1;12320:9;12316:17;12307:6;12245:89;:::i;:::-;12083:258;;;;:::o;12347:182::-;12487:34;12483:1;12475:6;12471:14;12464:58;12347:182;:::o;12535:366::-;12677:3;12698:67;12762:2;12757:3;12698:67;:::i;:::-;12691:74;;12774:93;12863:3;12774:93;:::i;:::-;12892:2;12887:3;12883:12;12876:19;;12535:366;;;:::o;12907:419::-;13073:4;13111:2;13100:9;13096:18;13088:26;;13160:9;13154:4;13150:20;13146:1;13135:9;13131:17;13124:47;13188:131;13314:4;13188:131;:::i;:::-;13180:139;;12907:419;;;:::o;13332:180::-;13380:77;13377:1;13370:88;13477:4;13474:1;13467:15;13501:4;13498:1;13491:15;13518:180;13566:77;13563:1;13556:88;13663:4;13660:1;13653:15;13687:4;13684:1;13677:15;13704:185;13744:1;13761:20;13779:1;13761:20;:::i;:::-;13756:25;;13795:20;13813:1;13795:20;:::i;:::-;13790:25;;13834:1;13824:35;;13839:18;;:::i;:::-;13824:35;13881:1;13878;13874:9;13869:14;;13704:185;;;;:::o;13895:410::-;13935:7;13958:20;13976:1;13958:20;:::i;:::-;13953:25;;13992:20;14010:1;13992:20;:::i;:::-;13987:25;;14047:1;14044;14040:9;14069:30;14087:11;14069:30;:::i;:::-;14058:41;;14248:1;14239:7;14235:15;14232:1;14229:22;14209:1;14202:9;14182:83;14159:139;;14278:18;;:::i;:::-;14159:139;13943:362;13895:410;;;;:::o;14311:143::-;14368:5;14399:6;14393:13;14384:22;;14415:33;14442:5;14415:33;:::i;:::-;14311:143;;;;:::o;14460:351::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:64;14786:7;14777:6;14766:9;14762:22;14730:64;:::i;:::-;14720:74;;14676:128;14460:351;;;;:::o;14817:332::-;14938:4;14976:2;14965:9;14961:18;14953:26;;14989:71;15057:1;15046:9;15042:17;15033:6;14989:71;:::i;:::-;15070:72;15138:2;15127:9;15123:18;15114:6;15070:72;:::i;:::-;14817:332;;;;;:::o;15155:137::-;15209:5;15240:6;15234:13;15225:22;;15256:30;15280:5;15256:30;:::i;:::-;15155:137;;;;:::o;15298:345::-;15365:6;15414:2;15402:9;15393:7;15389:23;15385:32;15382:119;;;15420:79;;:::i;:::-;15382:119;15540:1;15565:61;15618:7;15609:6;15598:9;15594:22;15565:61;:::i;:::-;15555:71;;15511:125;15298:345;;;;:::o;15649:179::-;15789:31;15785:1;15777:6;15773:14;15766:55;15649:179;:::o;15834:366::-;15976:3;15997:67;16061:2;16056:3;15997:67;:::i;:::-;15990:74;;16073:93;16162:3;16073:93;:::i;:::-;16191:2;16186:3;16182:12;16175:19;;15834:366;;;:::o;16206:419::-;16372:4;16410:2;16399:9;16395:18;16387:26;;16459:9;16453:4;16449:20;16445:1;16434:9;16430:17;16423:47;16487:131;16613:4;16487:131;:::i;:::-;16479:139;;16206:419;;;:::o;16631:220::-;16771:34;16767:1;16759:6;16755:14;16748:58;16840:3;16835:2;16827:6;16823:15;16816:28;16631:220;:::o;16857:366::-;16999:3;17020:67;17084:2;17079:3;17020:67;:::i;:::-;17013:74;;17096:93;17185:3;17096:93;:::i;:::-;17214:2;17209:3;17205:12;17198:19;;16857:366;;;:::o;17229:419::-;17395:4;17433:2;17422:9;17418:18;17410:26;;17482:9;17476:4;17472:20;17468:1;17457:9;17453:17;17446:47;17510:131;17636:4;17510:131;:::i;:::-;17502:139;;17229:419;;;:::o;17654:194::-;17694:4;17714:20;17732:1;17714:20;:::i;:::-;17709:25;;17748:20;17766:1;17748:20;:::i;:::-;17743:25;;17792:1;17789;17785:9;17777:17;;17816:1;17810:4;17807:11;17804:37;;;17821:18;;:::i;:::-;17804:37;17654:194;;;;:::o;17854:163::-;17994:15;17990:1;17982:6;17978:14;17971:39;17854:163;:::o;18023:366::-;18165:3;18186:67;18250:2;18245:3;18186:67;:::i;:::-;18179:74;;18262:93;18351:3;18262:93;:::i;:::-;18380:2;18375:3;18371:12;18364:19;;18023:366;;;:::o;18395:419::-;18561:4;18599:2;18588:9;18584:18;18576:26;;18648:9;18642:4;18638:20;18634:1;18623:9;18619:17;18612:47;18676:131;18802:4;18676:131;:::i;:::-;18668:139;;18395:419;;;:::o;18820:170::-;18960:22;18956:1;18948:6;18944:14;18937:46;18820:170;:::o;18996:366::-;19138:3;19159:67;19223:2;19218:3;19159:67;:::i;:::-;19152:74;;19235:93;19324:3;19235:93;:::i;:::-;19353:2;19348:3;19344:12;19337:19;;18996:366;;;:::o;19368:419::-;19534:4;19572:2;19561:9;19557:18;19549:26;;19621:9;19615:4;19611:20;19607:1;19596:9;19592:17;19585:47;19649:131;19775:4;19649:131;:::i;:::-;19641:139;;19368:419;;;:::o;19793:191::-;19833:3;19852:20;19870:1;19852:20;:::i;:::-;19847:25;;19886:20;19904:1;19886:20;:::i;:::-;19881:25;;19929:1;19926;19922:9;19915:16;;19950:3;19947:1;19944:10;19941:36;;;19957:18;;:::i;:::-;19941:36;19793:191;;;;:::o;19990:249::-;20130:34;20126:1;20118:6;20114:14;20107:58;20199:32;20194:2;20186:6;20182:15;20175:57;19990:249;:::o;20245:366::-;20387:3;20408:67;20472:2;20467:3;20408:67;:::i;:::-;20401:74;;20484:93;20573:3;20484:93;:::i;:::-;20602:2;20597:3;20593:12;20586:19;;20245:366;;;:::o;20617:419::-;20783:4;20821:2;20810:9;20806:18;20798:26;;20870:9;20864:4;20860:20;20856:1;20845:9;20841:17;20834:47;20898:131;21024:4;20898:131;:::i;:::-;20890:139;;20617:419;;;:::o;21042:177::-;21182:29;21178:1;21170:6;21166:14;21159:53;21042:177;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o;22022:180::-;22070:77;22067:1;22060:88;22167:4;22164:1;22157:15;22191:4;22188:1;22181:15;22208:180;22256:77;22253:1;22246:88;22353:4;22350:1;22343:15;22377:4;22374:1;22367:15;22394:85;22439:7;22468:5;22457:16;;22394:85;;;:::o;22485:158::-;22543:9;22576:61;22594:42;22603:32;22629:5;22603:32;:::i;:::-;22594:42;:::i;:::-;22576:61;:::i;:::-;22563:74;;22485:158;;;:::o;22649:147::-;22744:45;22783:5;22744:45;:::i;:::-;22739:3;22732:58;22649:147;;:::o;22802:114::-;22869:6;22903:5;22897:12;22887:22;;22802:114;;;:::o;22922:184::-;23021:11;23055:6;23050:3;23043:19;23095:4;23090:3;23086:14;23071:29;;22922:184;;;;:::o;23112:132::-;23179:4;23202:3;23194:11;;23232:4;23227:3;23223:14;23215:22;;23112:132;;;:::o;23250:108::-;23327:24;23345:5;23327:24;:::i;:::-;23322:3;23315:37;23250:108;;:::o;23364:179::-;23433:10;23454:46;23496:3;23488:6;23454:46;:::i;:::-;23532:4;23527:3;23523:14;23509:28;;23364:179;;;;:::o;23549:113::-;23619:4;23651;23646:3;23642:14;23634:22;;23549:113;;;:::o;23698:732::-;23817:3;23846:54;23894:5;23846:54;:::i;:::-;23916:86;23995:6;23990:3;23916:86;:::i;:::-;23909:93;;24026:56;24076:5;24026:56;:::i;:::-;24105:7;24136:1;24121:284;24146:6;24143:1;24140:13;24121:284;;;24222:6;24216:13;24249:63;24308:3;24293:13;24249:63;:::i;:::-;24242:70;;24335:60;24388:6;24335:60;:::i;:::-;24325:70;;24181:224;24168:1;24165;24161:9;24156:14;;24121:284;;;24125:14;24421:3;24414:10;;23822:608;;;23698:732;;;;:::o;24436:831::-;24699:4;24737:3;24726:9;24722:19;24714:27;;24751:71;24819:1;24808:9;24804:17;24795:6;24751:71;:::i;:::-;24832:80;24908:2;24897:9;24893:18;24884:6;24832:80;:::i;:::-;24959:9;24953:4;24949:20;24944:2;24933:9;24929:18;24922:48;24987:108;25090:4;25081:6;24987:108;:::i;:::-;24979:116;;25105:72;25173:2;25162:9;25158:18;25149:6;25105:72;:::i;:::-;25187:73;25255:3;25244:9;25240:19;25231:6;25187:73;:::i;:::-;24436:831;;;;;;;;:::o;25273:147::-;25374:11;25411:3;25396:18;;25273:147;;;;:::o;25426:114::-;;:::o;25546:398::-;25705:3;25726:83;25807:1;25802:3;25726:83;:::i;:::-;25719:90;;25818:93;25907:3;25818:93;:::i;:::-;25936:1;25931:3;25927:11;25920:18;;25546:398;;;:::o;25950:379::-;26134:3;26156:147;26299:3;26156:147;:::i;:::-;26149:154;;26320:3;26313:10;;25950:379;;;:::o;26335:807::-;26584:4;26622:3;26611:9;26607:19;26599:27;;26636:71;26704:1;26693:9;26689:17;26680:6;26636:71;:::i;:::-;26717:72;26785:2;26774:9;26770:18;26761:6;26717:72;:::i;:::-;26799:80;26875:2;26864:9;26860:18;26851:6;26799:80;:::i;:::-;26889;26965:2;26954:9;26950:18;26941:6;26889:80;:::i;:::-;26979:73;27047:3;27036:9;27032:19;27023:6;26979:73;:::i;:::-;27062;27130:3;27119:9;27115:19;27106:6;27062:73;:::i;:::-;26335:807;;;;;;;;;:::o;27148:663::-;27236:6;27244;27252;27301:2;27289:9;27280:7;27276:23;27272:32;27269:119;;;27307:79;;:::i;:::-;27269:119;27427:1;27452:64;27508:7;27499:6;27488:9;27484:22;27452:64;:::i;:::-;27442:74;;27398:128;27565:2;27591:64;27647:7;27638:6;27627:9;27623:22;27591:64;:::i;:::-;27581:74;;27536:129;27704:2;27730:64;27786:7;27777:6;27766:9;27762:22;27730:64;:::i;:::-;27720:74;;27675:129;27148:663;;;;;:::o;27817:332::-;27938:4;27976:2;27965:9;27961:18;27953:26;;27989:71;28057:1;28046:9;28042:17;28033:6;27989:71;:::i;:::-;28070:72;28138:2;28127:9;28123:18;28114:6;28070:72;:::i;:::-;27817:332;;;;;:::o;28155:167::-;28295:19;28291:1;28283:6;28279:14;28272:43;28155:167;:::o;28328:366::-;28470:3;28491:67;28555:2;28550:3;28491:67;:::i;:::-;28484:74;;28567:93;28656:3;28567:93;:::i;:::-;28685:2;28680:3;28676:12;28669:19;;28328:366;;;:::o;28700:419::-;28866:4;28904:2;28893:9;28889:18;28881:26;;28953:9;28947:4;28943:20;28939:1;28928:9;28924:17;28917:47;28981:131;29107:4;28981:131;:::i;:::-;28973:139;;28700:419;;;:::o
Swarm Source
ipfs://954e6f4c604b0223bd27d371d2781f3ad8828dd83fa7880b03cb0457ab7dec85
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.