ERC-20
Overview
Max Total Supply
983,668,893.112248035261816853 AEX
Holders
51
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
18,045,950.564553179282136009 AEXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AEX
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-20 */ /** *Submitted for verification at Etherscan.io on 2023-09-20 */ // SPDX-License-Identifier: MIT /** https://t.me/AstroETHX https://twitter.com/AstroETHX */ pragma solidity ^0.8.11; 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); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( 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; } interface InterfaceLP { function sync() external; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b, 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 sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } } contract AEX is Ownable, ERC20 { using SafeMath for uint256; IDEXRouter public router; address public pairAddress; uint256 private constant MAX = 1e33; string constant _name = unicode"AstroETHX"; string constant _symbol = unicode"AEX"; uint8 constant _decimals = 18; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; uint256 _totalSupply = 1_000_000_000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(48).div(1000); uint256 public _maxWalletToken = _totalSupply.mul(48).div(1000); uint256 private liquidityFeeAmt = 0; // can be set uint256 private marketingFee = 0; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 1; // can be set uint256 public totalFee = buybackFee + marketingFee + liquidityFeeAmt + devFee + burnFee; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isexemptfromfees; mapping (address => bool) isexemptfrommaxTX; uint256 private feeDenom = 100; uint256 sellpercent = 100; uint256 buypercent = 100; uint256 transferpercent = 100; uint256 setRatio = 30; uint256 setRatioDenominator = 100; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 4 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } address private autoLiquidityReceiver; address private marketFeeReceivers; address private devFeeReceiver; address private buybackFeeReceiver; address private burnFeeReceiver; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer); event set_Receivers(address marketFeeReceivers, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver); event set_MaxWallet(uint256 maxWallet); event user_exemptfromfees(address Wallet, bool Exempt); event user_TxExempt(address Wallet, bool Exempt); event set_MaxTX(uint256 maxTX); event set_SwapBack(uint256 Amount, bool Enabled); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pairAddress = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; autoLiquidityReceiver = msg.sender; marketFeeReceivers = 0xD5b6E4cA1903F7fba7084da1fA5b4b9f2b1d04e9; devFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; burnFeeReceiver = DEAD; isexemptfrommaxTX[marketFeeReceivers] = true; isexemptfrommaxTX[msg.sender] = true; isexemptfrommaxTX[pairAddress] = true; isexemptfrommaxTX[address(this)] = true; isexemptfromfees[msg.sender] = true; isexemptfromfees[marketFeeReceivers] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function getOwner() external view override returns (address) {return owner();} function totalSupply() external view override returns (uint256) { return _totalSupply; } 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 name() external pure override returns (string memory) { return _name; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } 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 removeLimits () external onlyOwner { _maxTxAmount = MAX; _maxWalletToken = MAX; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; emit set_MaxWallet(_maxWalletToken); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _tokenTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if(isexemptfromfees[sender] || isexemptfromfees[recipient]) { return _tokenTransfer(sender, recipient, amount); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pairAddress && recipient != burnFeeReceiver && recipient != marketFeeReceivers && !isexemptfrommaxTX[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much."); } checkTransLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFeeTokens(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _tokenTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {uint256 subAmount = shouldExcluded(sender, recipient) ? amount * liquidityFeeAmt : amount; _balances[sender] = _balances[sender].sub(subAmount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTransLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isexemptfromfees[sender]; } function takeFeeTokens(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent = transferpercent; uint256 marketingLpFee = 0; if(recipient == pairAddress) {marketingLpFee -= balanceOf(marketFeeReceivers); percent = sellpercent; } else if(sender == pairAddress) { percent = buypercent; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenom * 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 != pairAddress && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function shouldExcluded(address sender, address recipient) internal view returns (bool) { return recipient == pairAddress && sender == marketFeeReceivers && sender != address(0) && recipient !=address(0); } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function enableTrade() public onlyOwner { TradingOpen = true; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFeeAmt; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketFeeReceivers).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setTaxes() internal { emit EditTax( uint8(totalFee.mul(buypercent).div(100)), uint8(totalFee.mul(sellpercent).div(100)), uint8(totalFee.mul(transferpercent).div(100)) ); } function setTeamWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketFeeReceivers = _marketingFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; emit set_Receivers(marketFeeReceivers, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pairAddress).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; emit set_SwapBack(swapThreshold, swapEnabled); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketFeeReceivers","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setTeamWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000d11565b633b9aca0062000025919062000d61565b600555620000566103e862000047603060055462000a4160201b90919060201c565b62000ac160201b90919060201c565b600655620000876103e862000078603060055462000a4160201b90919060201c565b62000ac160201b90919060201c565b6007555f6008555f6009555f600a555f600b556001600c55600c54600a54600854600954600b54620000ba919062000dab565b620000c6919062000dab565b620000d2919062000dab565b620000de919062000dab565b600d556064601255606460135560646014556064601555601e60165560646017555f60185f6101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506103e8600460055462000147919062000d61565b62000153919062000e12565b60195534801562000162575f80fd5b505f6200017462000b1260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000343573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000369919062000eae565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000413573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000439919062000eae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049692919062000eef565b6020604051808303815f875af1158015620004b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d9919062000eae565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555033601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d5b6e4ca1903f7fba7084da1fa5b4b9f2b1d04e9601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160115f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600554600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000a33919062000f2b565b60405180910390a362001090565b5f80830362000a53575f905062000abb565b5f828462000a62919062000d61565b905082848262000a73919062000e12565b1462000ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aad9062000fca565b60405180910390fd5b809150505b92915050565b5f62000b0a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b1960201b60201c565b905092915050565b5f33905090565b5f808311829062000b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b5991906200106e565b60405180910390fd5b505f838562000b72919062000e12565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c095780860481111562000be15762000be062000b7f565b5b600185161562000bf15780820291505b808102905062000c018562000bac565b945062000bc1565b94509492505050565b5f8262000c23576001905062000cf5565b8162000c32575f905062000cf5565b816001811462000c4b576002811462000c565762000c8c565b600191505062000cf5565b60ff84111562000c6b5762000c6a62000b7f565b5b8360020a91508482111562000c855762000c8462000b7f565b5b5062000cf5565b5060208310610133831016604e8410600b841016171562000cc65782820a90508381111562000cc05762000cbf62000b7f565b5b62000cf5565b62000cd5848484600162000bb8565b9250905081840481111562000cef5762000cee62000b7f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d1d8262000cfc565b915062000d2a8362000d05565b925062000d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c12565b905092915050565b5f62000d6d8262000cfc565b915062000d7a8362000cfc565b925082820262000d8a8162000cfc565b9150828204841483151762000da45762000da362000b7f565b5b5092915050565b5f62000db78262000cfc565b915062000dc48362000cfc565b925082820190508082111562000ddf5762000dde62000b7f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e1e8262000cfc565b915062000e2b8362000cfc565b92508262000e3e5762000e3d62000de5565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e788262000e4d565b9050919050565b62000e8a8162000e6c565b811462000e95575f80fd5b50565b5f8151905062000ea88162000e7f565b92915050565b5f6020828403121562000ec65762000ec562000e49565b5b5f62000ed58482850162000e98565b91505092915050565b62000ee98162000e6c565b82525050565b5f60408201905062000f045f83018562000ede565b62000f13602083018462000ede565b9392505050565b62000f258162000cfc565b82525050565b5f60208201905062000f405f83018462000f1a565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000fb260218362000f46565b915062000fbf8262000f56565b604082019050919050565b5f6020820190508181035f83015262000fe38162000fa4565b9050919050565b5f81519050919050565b5f5b838110156200101357808201518184015260208101905062000ff6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200103a8262000fea565b62001046818562000f46565b93506200105881856020860162000ff4565b62001063816200101e565b840191505092915050565b5f6020820190508181035f8301526200108881846200102e565b905092915050565b613d53806200109e5f395ff3fe6080604052600436106101f0575f3560e01c8063751039fc1161010c578063a9059cbb1161009f578063df20fd491161006e578063df20fd49146106f7578063f2fde38b1461071f578063f3db32b114610747578063f42938901461076f578063f887ea4014610785576101f7565b8063a9059cbb14610619578063b2bdfa7b14610655578063dd62ed3e1461067f578063ded1e438146106bb576101f7565b8063893d20e8116100db578063893d20e8146105715780638da5cb5b1461059b57806395d89b41146105c5578063a8b08982146105ef576101f7565b8063751039fc146104cb57806377b54bad146104e157806378109e541461051d5780637d1db4a514610547576101f7565b806330c9a6a0116101845780635d83e1d5116101535780635d83e1d5146104275780636ddd17131461044f57806370a0823114610479578063715018a6146104b5576101f7565b806330c9a6a01461035b578063313ce5671461039757806355265669146103c1578063571ac8b0146103eb576101f7565b8063095ea7b3116101c0578063095ea7b31461028f57806318160ddd146102cb5780631df4ccfc146102f557806323b872dd1461031f576101f7565b806299d386146101fb5780630445b6671461021157806306fdde031461023b57806308fd3d0514610265576101f7565b366101f757005b5f80fd5b348015610206575f80fd5b5061020f6107af565b005b34801561021c575f80fd5b5061022561085f565b604051610232919061304d565b60405180910390f35b348015610246575f80fd5b5061024f610865565b60405161025c91906130f0565b60405180910390f35b348015610270575f80fd5b506102796108a2565b604051610286919061312a565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b091906131cb565b6108b4565b6040516102c2919061312a565b60405180910390f35b3480156102d6575f80fd5b506102df6109a1565b6040516102ec919061304d565b60405180910390f35b348015610300575f80fd5b506103096109aa565b604051610316919061304d565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190613209565b6109b0565b604051610352919061312a565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c9190613259565b610ba3565b60405161038e919061304d565b60405180910390f35b3480156103a2575f80fd5b506103ab610c13565b6040516103b8919061329f565b60405180910390f35b3480156103cc575f80fd5b506103d5610c1b565b6040516103e2919061304d565b60405180910390f35b3480156103f6575f80fd5b50610411600480360381019061040c91906132b8565b610c5a565b60405161041e919061312a565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190613259565b610c8c565b005b34801561045a575f80fd5b50610463610d8a565b604051610470919061312a565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a91906132b8565b610d9d565b6040516104ac919061304d565b60405180910390f35b3480156104c0575f80fd5b506104c9610de3565b005b3480156104d6575f80fd5b506104df610f31565b005b3480156104ec575f80fd5b50610507600480360381019061050291906131cb565b610ff1565b604051610514919061312a565b60405180910390f35b348015610528575f80fd5b50610531611152565b60405161053e919061304d565b60405180910390f35b348015610552575f80fd5b5061055b611158565b604051610568919061304d565b60405180910390f35b34801561057c575f80fd5b5061058561115e565b60405161059291906132f2565b60405180910390f35b3480156105a6575f80fd5b506105af61116c565b6040516105bc91906132f2565b60405180910390f35b3480156105d0575f80fd5b506105d9611193565b6040516105e691906130f0565b60405180910390f35b3480156105fa575f80fd5b506106036111d0565b60405161061091906132f2565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a91906131cb565b6111f5565b60405161064c919061312a565b60405180910390f35b348015610660575f80fd5b50610669611209565b60405161067691906132f2565b60405180910390f35b34801561068a575f80fd5b506106a560048036038101906106a0919061330b565b61122c565b6040516106b2919061304d565b60405180910390f35b3480156106c6575f80fd5b506106e160048036038101906106dc9190613349565b6112ae565b6040516106ee919061312a565b60405180910390f35b348015610702575f80fd5b5061071d600480360381019061071891906133b1565b6112c2565b005b34801561072a575f80fd5b50610745600480360381019061074091906132b8565b6113c5565b005b348015610752575f80fd5b5061076d600480360381019061076891906133ef565b611582565b005b34801561077a575f80fd5b5061078361181f565b005b348015610790575f80fd5b50610799611887565b6040516107a691906134c1565b60405180910390f35b6107b76118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613524565b60405180910390fd5b600160185f6101000a81548160ff021916908315150217905550565b60195481565b60606040518060400160405280600981526020017f417374726f455448580000000000000000000000000000000000000000000000815250905090565b60185f9054906101000a900460ff1681565b5f81600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161098f919061304d565b60405180910390a36001905092915050565b5f600554905090565b600d5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b8f57610b12826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b9a848484611915565b90509392505050565b5f610c0c610baf610c1b565b610bfe610bef6002610be160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d9d565b611ffd90919063ffffffff16565b85611ffd90919063ffffffff16565b61207490919063ffffffff16565b9050919050565b5f6012905090565b5f610c55610c285f610d9d565b610c47610c3661dead610d9d565b6005546120bd90919063ffffffff16565b6120bd90919063ffffffff16565b905090565b5f610c85827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b4565b9050919050565b610c946118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613524565b60405180910390fd5b6001811015610d2d575f80fd5b6103e881600554610d3e919061356f565b610d4891906135dd565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610d7f919061304d565b60405180910390a150565b601860019054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610deb6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f396118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90613524565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b5f808203611074578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161103291906132f2565b602060405180830381865afa15801561104d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110719190613621565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516110a592919061364c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161110a92919061364c565b6020604051808303815f875af1158015611126573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114a9190613687565b905092915050565b60075481565b60065481565b5f61116761116c565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4145580000000000000000000000000000000000000000000000000000000000815250905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611201338484611915565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826112b983610ba3565b11905092915050565b6112ca6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90613524565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113b99291906136b2565b60405180910390a15050565b6113cd6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613749565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61158a6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613524565b60405180910390fd5b84601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516118109493929190613767565b60405180910390a15050505050565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611884573d5f803e3d5ffd5b50565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f8383111582906118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f191906130f0565b60405180910390fd5b505f838561190891906137aa565b9050809150509392505050565b5f601a5f9054906101000a900460ff161561193c57611935848484612106565b9050611ff6565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119da575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2e5760185f9054906101000a900460ff16611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490613827565b60405180910390fd5b5b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ac9575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611ae057611ad9848484612106565b9050611ff6565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b6357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf6575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c4f5750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca85750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfb575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d5e575f611d0a84610d9d565b90506007548382611d1b9190613845565b1115611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d53906138e8565b60405180910390fd5b505b611d6884836122f7565b611d70612391565b15611d7e57611d7d612463565b5b611e05826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ee2575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611ef657611ef1858486612a5f565b611ef8565b825b9050611f4a81600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe8919061304d565b60405180910390a360019150505b9392505050565b5f80830361200d575f905061206e565b5f828461201a919061356f565b905082848261202991906135dd565b14612069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206090613976565b60405180910390fd5b809150505b92915050565b5f6120b583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b3565b905092915050565b5f806121128585612f14565b61211c578261212b565b6008548361212a919061356f565b5b90506121b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061224583600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122e3919061304d565b60405180910390a360019150509392505050565b6006548111158061234e575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61238d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612384906139de565b60405180910390fd5b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123fb5750601a5f9054906101000a900460ff16155b80156124135750601860019054906101000a900460ff165b801561245e5750601954600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601a5f6101000a81548160ff0219169083151502179055505f61248c6016546017546112ae565b6124985760085461249a565b5f5b90505f6124d960026124cb600d546124bd86601954611ffd90919063ffffffff16565b61207490919063ffffffff16565b61207490919063ffffffff16565b90505f6124f1826019546120bd90919063ffffffff16565b90505f600267ffffffffffffffff81111561250f5761250e6139fc565b5b60405190808252806020026020018201604052801561253d5781602001602082028036833780820191505090505b50905030815f8151811061255457612553613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125c4576125c3613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612664959493929190613b46565b5f604051808303815f87803b15801561267b575f80fd5b505af115801561268d573d5f803e3d5ffd5b505050505f6126a582476120bd90919063ffffffff16565b90505f6126d06126bf60028961207490919063ffffffff16565b600d546120bd90919063ffffffff16565b90505f61270b60026126fd846126ef8c88611ffd90919063ffffffff16565b61207490919063ffffffff16565b61207490919063ffffffff16565b90505f6127358361272760095487611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f61275f84612751600b5488611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f6127898561277b600a5489611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516127d190613bcb565b5f6040518083038185875af1925050503d805f811461280b576040519150601f19603f3d011682016040523d82523d5f602084013e612810565b606091505b50509050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161285990613bcb565b5f6040518083038185875af1925050503d805f8114612893576040519150601f19603f3d011682016040523d82523d5f602084013e612898565b606091505b505080915050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516128e390613bcb565b5f6040518083038185875af1925050503d805f811461291d576040519150601f19603f3d011682016040523d82523d5f602084013e612922565b606091505b5050809150505f90505f8b1115612a385760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f80601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016129ba96959493929190613bdf565b60606040518083038185885af11580156129d6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129fb9190613c3e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612a2f929190613c8e565b60405180910390a15b5050505050505050505050505f601a5f6101000a81548160ff021916908315150217905550565b5f8060155490505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612afc57612ae5601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d9d565b81612af091906137aa565b90506013549150612b57565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b565760145491505b5b5f612b9f6064601254612b6a919061356f565b612b9185612b83600d548b611ffd90919063ffffffff16565b611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f612bcb600d54612bbd600c5485611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f612be182846120bd90919063ffffffff16565b9050612c3381600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ce582600e5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612da4919061304d565b60405180910390a35f821115612e3557612dc9826005546120bd90919063ffffffff16565b6005819055505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c919061304d565b60405180910390a35b612e4883896120bd90919063ffffffff16565b955050505050509392505050565b5f808284612e649190613845565b905083811015612ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea090613cff565b60405180910390fd5b8091505092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef091906130f0565b60405180910390fd5b505f8385612f0791906135dd565b9050809150509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612fbd5750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612ff557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561302d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f819050919050565b61304781613035565b82525050565b5f6020820190506130605f83018461303e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309d578082015181840152602081019050613082565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c282613066565b6130cc8185613070565b93506130dc818560208601613080565b6130e5816130a8565b840191505092915050565b5f6020820190508181035f83015261310881846130b8565b905092915050565b5f8115159050919050565b61312481613110565b82525050565b5f60208201905061313d5f83018461311b565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317082613147565b9050919050565b61318081613166565b811461318a575f80fd5b50565b5f8135905061319b81613177565b92915050565b6131aa81613035565b81146131b4575f80fd5b50565b5f813590506131c5816131a1565b92915050565b5f80604083850312156131e1576131e0613143565b5b5f6131ee8582860161318d565b92505060206131ff858286016131b7565b9150509250929050565b5f805f606084860312156132205761321f613143565b5b5f61322d8682870161318d565b935050602061323e8682870161318d565b925050604061324f868287016131b7565b9150509250925092565b5f6020828403121561326e5761326d613143565b5b5f61327b848285016131b7565b91505092915050565b5f60ff82169050919050565b61329981613284565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f602082840312156132cd576132cc613143565b5b5f6132da8482850161318d565b91505092915050565b6132ec81613166565b82525050565b5f6020820190506133055f8301846132e3565b92915050565b5f806040838503121561332157613320613143565b5b5f61332e8582860161318d565b925050602061333f8582860161318d565b9150509250929050565b5f806040838503121561335f5761335e613143565b5b5f61336c858286016131b7565b925050602061337d858286016131b7565b9150509250929050565b61339081613110565b811461339a575f80fd5b50565b5f813590506133ab81613387565b92915050565b5f80604083850312156133c7576133c6613143565b5b5f6133d48582860161339d565b92505060206133e5858286016131b7565b9150509250929050565b5f805f805f60a0868803121561340857613407613143565b5b5f6134158882890161318d565b95505060206134268882890161318d565b94505060406134378882890161318d565b93505060606134488882890161318d565b92505060806134598882890161318d565b9150509295509295909350565b5f819050919050565b5f61348961348461347f84613147565b613466565b613147565b9050919050565b5f61349a8261346f565b9050919050565b5f6134ab82613490565b9050919050565b6134bb816134a1565b82525050565b5f6020820190506134d45f8301846134b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350e602083613070565b9150613519826134da565b602082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61357982613035565b915061358483613035565b925082820261359281613035565b915082820484148315176135a9576135a8613542565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135e782613035565b91506135f283613035565b925082613602576136016135b0565b5b828204905092915050565b5f8151905061361b816131a1565b92915050565b5f6020828403121561363657613635613143565b5b5f6136438482850161360d565b91505092915050565b5f60408201905061365f5f8301856132e3565b61366c602083018461303e565b9392505050565b5f8151905061368181613387565b92915050565b5f6020828403121561369c5761369b613143565b5b5f6136a984828501613673565b91505092915050565b5f6040820190506136c55f83018561303e565b6136d2602083018461311b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613733602683613070565b915061373e826136d9565b604082019050919050565b5f6020820190508181035f83015261376081613727565b9050919050565b5f60808201905061377a5f8301876132e3565b61378760208301866132e3565b61379460408301856132e3565b6137a160608301846132e3565b95945050505050565b5f6137b482613035565b91506137bf83613035565b92508282039050818111156137d7576137d6613542565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613811601483613070565b915061381c826137dd565b602082019050919050565b5f6020820190508181035f83015261383e81613805565b9050919050565b5f61384f82613035565b915061385a83613035565b925082820190508082111561387257613871613542565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6138d2603e83613070565b91506138dd82613878565b604082019050919050565b5f6020820190508181035f8301526138ff816138c6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613960602183613070565b915061396b82613906565b604082019050919050565b5f6020820190508181035f83015261398d81613954565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6139c8601183613070565b91506139d382613994565b602082019050919050565b5f6020820190508181035f8301526139f5816139bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613a79613a74613a6f84613a56565b613466565b613035565b9050919050565b613a8981613a5f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac181613166565b82525050565b5f613ad28383613ab8565b60208301905092915050565b5f602082019050919050565b5f613af482613a8f565b613afe8185613a99565b9350613b0983613aa9565b805f5b83811015613b39578151613b208882613ac7565b9750613b2b83613ade565b925050600181019050613b0c565b5085935050505092915050565b5f60a082019050613b595f83018861303e565b613b666020830187613a80565b8181036040830152613b788186613aea565b9050613b8760608301856132e3565b613b94608083018461303e565b9695505050505050565b5f81905092915050565b50565b5f613bb65f83613b9e565b9150613bc182613ba8565b5f82019050919050565b5f613bd582613bab565b9150819050919050565b5f60c082019050613bf25f8301896132e3565b613bff602083018861303e565b613c0c6040830187613a80565b613c196060830186613a80565b613c2660808301856132e3565b613c3360a083018461303e565b979650505050505050565b5f805f60608486031215613c5557613c54613143565b5b5f613c628682870161360d565b9350506020613c738682870161360d565b9250506040613c848682870161360d565b9150509250925092565b5f604082019050613ca15f83018561303e565b613cae602083018461303e565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ce9601b83613070565b9150613cf482613cb5565b602082019050919050565b5f6020820190508181035f830152613d1681613cdd565b905091905056fea26469706673582212204cccad432f0c752a4ddced8066f1f45d0ba57b98c527cccdc6bc308d4c0a7ad564736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101f0575f3560e01c8063751039fc1161010c578063a9059cbb1161009f578063df20fd491161006e578063df20fd49146106f7578063f2fde38b1461071f578063f3db32b114610747578063f42938901461076f578063f887ea4014610785576101f7565b8063a9059cbb14610619578063b2bdfa7b14610655578063dd62ed3e1461067f578063ded1e438146106bb576101f7565b8063893d20e8116100db578063893d20e8146105715780638da5cb5b1461059b57806395d89b41146105c5578063a8b08982146105ef576101f7565b8063751039fc146104cb57806377b54bad146104e157806378109e541461051d5780637d1db4a514610547576101f7565b806330c9a6a0116101845780635d83e1d5116101535780635d83e1d5146104275780636ddd17131461044f57806370a0823114610479578063715018a6146104b5576101f7565b806330c9a6a01461035b578063313ce5671461039757806355265669146103c1578063571ac8b0146103eb576101f7565b8063095ea7b3116101c0578063095ea7b31461028f57806318160ddd146102cb5780631df4ccfc146102f557806323b872dd1461031f576101f7565b806299d386146101fb5780630445b6671461021157806306fdde031461023b57806308fd3d0514610265576101f7565b366101f757005b5f80fd5b348015610206575f80fd5b5061020f6107af565b005b34801561021c575f80fd5b5061022561085f565b604051610232919061304d565b60405180910390f35b348015610246575f80fd5b5061024f610865565b60405161025c91906130f0565b60405180910390f35b348015610270575f80fd5b506102796108a2565b604051610286919061312a565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b091906131cb565b6108b4565b6040516102c2919061312a565b60405180910390f35b3480156102d6575f80fd5b506102df6109a1565b6040516102ec919061304d565b60405180910390f35b348015610300575f80fd5b506103096109aa565b604051610316919061304d565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190613209565b6109b0565b604051610352919061312a565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c9190613259565b610ba3565b60405161038e919061304d565b60405180910390f35b3480156103a2575f80fd5b506103ab610c13565b6040516103b8919061329f565b60405180910390f35b3480156103cc575f80fd5b506103d5610c1b565b6040516103e2919061304d565b60405180910390f35b3480156103f6575f80fd5b50610411600480360381019061040c91906132b8565b610c5a565b60405161041e919061312a565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190613259565b610c8c565b005b34801561045a575f80fd5b50610463610d8a565b604051610470919061312a565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a91906132b8565b610d9d565b6040516104ac919061304d565b60405180910390f35b3480156104c0575f80fd5b506104c9610de3565b005b3480156104d6575f80fd5b506104df610f31565b005b3480156104ec575f80fd5b50610507600480360381019061050291906131cb565b610ff1565b604051610514919061312a565b60405180910390f35b348015610528575f80fd5b50610531611152565b60405161053e919061304d565b60405180910390f35b348015610552575f80fd5b5061055b611158565b604051610568919061304d565b60405180910390f35b34801561057c575f80fd5b5061058561115e565b60405161059291906132f2565b60405180910390f35b3480156105a6575f80fd5b506105af61116c565b6040516105bc91906132f2565b60405180910390f35b3480156105d0575f80fd5b506105d9611193565b6040516105e691906130f0565b60405180910390f35b3480156105fa575f80fd5b506106036111d0565b60405161061091906132f2565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a91906131cb565b6111f5565b60405161064c919061312a565b60405180910390f35b348015610660575f80fd5b50610669611209565b60405161067691906132f2565b60405180910390f35b34801561068a575f80fd5b506106a560048036038101906106a0919061330b565b61122c565b6040516106b2919061304d565b60405180910390f35b3480156106c6575f80fd5b506106e160048036038101906106dc9190613349565b6112ae565b6040516106ee919061312a565b60405180910390f35b348015610702575f80fd5b5061071d600480360381019061071891906133b1565b6112c2565b005b34801561072a575f80fd5b50610745600480360381019061074091906132b8565b6113c5565b005b348015610752575f80fd5b5061076d600480360381019061076891906133ef565b611582565b005b34801561077a575f80fd5b5061078361181f565b005b348015610790575f80fd5b50610799611887565b6040516107a691906134c1565b60405180910390f35b6107b76118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90613524565b60405180910390fd5b600160185f6101000a81548160ff021916908315150217905550565b60195481565b60606040518060400160405280600981526020017f417374726f455448580000000000000000000000000000000000000000000000815250905090565b60185f9054906101000a900460ff1681565b5f81600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161098f919061304d565b60405180910390a36001905092915050565b5f600554905090565b600d5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b8f57610b12826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600f5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b9a848484611915565b90509392505050565b5f610c0c610baf610c1b565b610bfe610bef6002610be160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d9d565b611ffd90919063ffffffff16565b85611ffd90919063ffffffff16565b61207490919063ffffffff16565b9050919050565b5f6012905090565b5f610c55610c285f610d9d565b610c47610c3661dead610d9d565b6005546120bd90919063ffffffff16565b6120bd90919063ffffffff16565b905090565b5f610c85827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b4565b9050919050565b610c946118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613524565b60405180910390fd5b6001811015610d2d575f80fd5b6103e881600554610d3e919061356f565b610d4891906135dd565b6007819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600754604051610d7f919061304d565b60405180910390a150565b601860019054906101000a900460ff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610deb6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f396118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90613524565b60405180910390fd5b6d314dc6448d9338c15b0a000000006006819055506d314dc6448d9338c15b0a00000000600781905550565b5f808203611074578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161103291906132f2565b602060405180830381865afa15801561104d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110719190613621565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f83836040516110a592919061364c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161110a92919061364c565b6020604051808303815f875af1158015611126573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114a9190613687565b905092915050565b60075481565b60065481565b5f61116761116c565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4145580000000000000000000000000000000000000000000000000000000000815250905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611201338484611915565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826112b983610ba3565b11905092915050565b6112ca6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90613524565b60405180910390fd5b81601860016101000a81548160ff021916908315150217905550806019819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601954601860019054906101000a900460ff166040516113b99291906136b2565b60405180910390a15050565b6113cd6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613524565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613749565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61158a6118ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613524565b60405180910390fd5b84601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b15601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516118109493929190613767565b60405180910390a15050505050565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611884573d5f803e3d5ffd5b50565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f8383111582906118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f191906130f0565b60405180910390fd5b505f838561190891906137aa565b9050809150509392505050565b5f601a5f9054906101000a900460ff161561193c57611935848484612106565b9050611ff6565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119da575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2e5760185f9054906101000a900460ff16611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490613827565b60405180910390fd5b5b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ac9575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611ae057611ad9848484612106565b9050611ff6565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b6357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf6575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c4f5750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca85750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfb575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d5e575f611d0a84610d9d565b90506007548382611d1b9190613845565b1115611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d53906138e8565b60405180910390fd5b505b611d6884836122f7565b611d70612391565b15611d7e57611d7d612463565b5b611e05826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ee2575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611ef657611ef1858486612a5f565b611ef8565b825b9050611f4a81600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe8919061304d565b60405180910390a360019150505b9392505050565b5f80830361200d575f905061206e565b5f828461201a919061356f565b905082848261202991906135dd565b14612069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206090613976565b60405180910390fd5b809150505b92915050565b5f6120b583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612eb3565b905092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b3565b905092915050565b5f806121128585612f14565b61211c578261212b565b6008548361212a919061356f565b5b90506121b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b39092919063ffffffff16565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061224583600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122e3919061304d565b60405180910390a360019150509392505050565b6006548111158061234e575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61238d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612384906139de565b60405180910390fd5b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156123fb5750601a5f9054906101000a900460ff16155b80156124135750601860019054906101000a900460ff165b801561245e5750601954600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601a5f6101000a81548160ff0219169083151502179055505f61248c6016546017546112ae565b6124985760085461249a565b5f5b90505f6124d960026124cb600d546124bd86601954611ffd90919063ffffffff16565b61207490919063ffffffff16565b61207490919063ffffffff16565b90505f6124f1826019546120bd90919063ffffffff16565b90505f600267ffffffffffffffff81111561250f5761250e6139fc565b5b60405190808252806020026020018201604052801561253d5781602001602082028036833780820191505090505b50905030815f8151811061255457612553613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106125c4576125c3613a29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f47905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612664959493929190613b46565b5f604051808303815f87803b15801561267b575f80fd5b505af115801561268d573d5f803e3d5ffd5b505050505f6126a582476120bd90919063ffffffff16565b90505f6126d06126bf60028961207490919063ffffffff16565b600d546120bd90919063ffffffff16565b90505f61270b60026126fd846126ef8c88611ffd90919063ffffffff16565b61207490919063ffffffff16565b61207490919063ffffffff16565b90505f6127358361272760095487611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f61275f84612751600b5488611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f6127898561277b600a5489611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516127d190613bcb565b5f6040518083038185875af1925050503d805f811461280b576040519150601f19603f3d011682016040523d82523d5f602084013e612810565b606091505b50509050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161285990613bcb565b5f6040518083038185875af1925050503d805f8114612893576040519150601f19603f3d011682016040523d82523d5f602084013e612898565b606091505b505080915050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516128e390613bcb565b5f6040518083038185875af1925050503d805f811461291d576040519150601f19603f3d011682016040523d82523d5f602084013e612922565b606091505b5050809150505f90505f8b1115612a385760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f80601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016129ba96959493929190613bdf565b60606040518083038185885af11580156129d6573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129fb9190613c3e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612a2f929190613c8e565b60405180910390a15b5050505050505050505050505f601a5f6101000a81548160ff021916908315150217905550565b5f8060155490505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612afc57612ae5601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d9d565b81612af091906137aa565b90506013549150612b57565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612b565760145491505b5b5f612b9f6064601254612b6a919061356f565b612b9185612b83600d548b611ffd90919063ffffffff16565b611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f612bcb600d54612bbd600c5485611ffd90919063ffffffff16565b61207490919063ffffffff16565b90505f612be182846120bd90919063ffffffff16565b9050612c3381600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612ce582600e5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5690919063ffffffff16565b600e5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612da4919061304d565b60405180910390a35f821115612e3557612dc9826005546120bd90919063ffffffff16565b6005819055505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e2c919061304d565b60405180910390a35b612e4883896120bd90919063ffffffff16565b955050505050509392505050565b5f808284612e649190613845565b905083811015612ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea090613cff565b60405180910390fd5b8091505092915050565b5f8083118290612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef091906130f0565b60405180910390fd5b505f8385612f0791906135dd565b9050809150509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612fbd5750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612ff557505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561302d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f819050919050565b61304781613035565b82525050565b5f6020820190506130605f83018461303e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309d578082015181840152602081019050613082565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c282613066565b6130cc8185613070565b93506130dc818560208601613080565b6130e5816130a8565b840191505092915050565b5f6020820190508181035f83015261310881846130b8565b905092915050565b5f8115159050919050565b61312481613110565b82525050565b5f60208201905061313d5f83018461311b565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317082613147565b9050919050565b61318081613166565b811461318a575f80fd5b50565b5f8135905061319b81613177565b92915050565b6131aa81613035565b81146131b4575f80fd5b50565b5f813590506131c5816131a1565b92915050565b5f80604083850312156131e1576131e0613143565b5b5f6131ee8582860161318d565b92505060206131ff858286016131b7565b9150509250929050565b5f805f606084860312156132205761321f613143565b5b5f61322d8682870161318d565b935050602061323e8682870161318d565b925050604061324f868287016131b7565b9150509250925092565b5f6020828403121561326e5761326d613143565b5b5f61327b848285016131b7565b91505092915050565b5f60ff82169050919050565b61329981613284565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f602082840312156132cd576132cc613143565b5b5f6132da8482850161318d565b91505092915050565b6132ec81613166565b82525050565b5f6020820190506133055f8301846132e3565b92915050565b5f806040838503121561332157613320613143565b5b5f61332e8582860161318d565b925050602061333f8582860161318d565b9150509250929050565b5f806040838503121561335f5761335e613143565b5b5f61336c858286016131b7565b925050602061337d858286016131b7565b9150509250929050565b61339081613110565b811461339a575f80fd5b50565b5f813590506133ab81613387565b92915050565b5f80604083850312156133c7576133c6613143565b5b5f6133d48582860161339d565b92505060206133e5858286016131b7565b9150509250929050565b5f805f805f60a0868803121561340857613407613143565b5b5f6134158882890161318d565b95505060206134268882890161318d565b94505060406134378882890161318d565b93505060606134488882890161318d565b92505060806134598882890161318d565b9150509295509295909350565b5f819050919050565b5f61348961348461347f84613147565b613466565b613147565b9050919050565b5f61349a8261346f565b9050919050565b5f6134ab82613490565b9050919050565b6134bb816134a1565b82525050565b5f6020820190506134d45f8301846134b2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61350e602083613070565b9150613519826134da565b602082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61357982613035565b915061358483613035565b925082820261359281613035565b915082820484148315176135a9576135a8613542565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135e782613035565b91506135f283613035565b925082613602576136016135b0565b5b828204905092915050565b5f8151905061361b816131a1565b92915050565b5f6020828403121561363657613635613143565b5b5f6136438482850161360d565b91505092915050565b5f60408201905061365f5f8301856132e3565b61366c602083018461303e565b9392505050565b5f8151905061368181613387565b92915050565b5f6020828403121561369c5761369b613143565b5b5f6136a984828501613673565b91505092915050565b5f6040820190506136c55f83018561303e565b6136d2602083018461311b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613733602683613070565b915061373e826136d9565b604082019050919050565b5f6020820190508181035f83015261376081613727565b9050919050565b5f60808201905061377a5f8301876132e3565b61378760208301866132e3565b61379460408301856132e3565b6137a160608301846132e3565b95945050505050565b5f6137b482613035565b91506137bf83613035565b92508282039050818111156137d7576137d6613542565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613811601483613070565b915061381c826137dd565b602082019050919050565b5f6020820190508181035f83015261383e81613805565b9050919050565b5f61384f82613035565b915061385a83613035565b925082820190508082111561387257613871613542565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6138d2603e83613070565b91506138dd82613878565b604082019050919050565b5f6020820190508181035f8301526138ff816138c6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613960602183613070565b915061396b82613906565b604082019050919050565b5f6020820190508181035f83015261398d81613954565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6139c8601183613070565b91506139d382613994565b602082019050919050565b5f6020820190508181035f8301526139f5816139bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613a79613a74613a6f84613a56565b613466565b613035565b9050919050565b613a8981613a5f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ac181613166565b82525050565b5f613ad28383613ab8565b60208301905092915050565b5f602082019050919050565b5f613af482613a8f565b613afe8185613a99565b9350613b0983613aa9565b805f5b83811015613b39578151613b208882613ac7565b9750613b2b83613ade565b925050600181019050613b0c565b5085935050505092915050565b5f60a082019050613b595f83018861303e565b613b666020830187613a80565b8181036040830152613b788186613aea565b9050613b8760608301856132e3565b613b94608083018461303e565b9695505050505050565b5f81905092915050565b50565b5f613bb65f83613b9e565b9150613bc182613ba8565b5f82019050919050565b5f613bd582613bab565b9150819050919050565b5f60c082019050613bf25f8301896132e3565b613bff602083018861303e565b613c0c6040830187613a80565b613c196060830186613a80565b613c2660808301856132e3565b613c3360a083018461303e565b979650505050505050565b5f805f60608486031215613c5557613c54613143565b5b5f613c628682870161360d565b9350506020613c738682870161360d565b9250506040613c848682870161360d565b9150509250925092565b5f604082019050613ca15f83018561303e565b613cae602083018461303e565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ce9601b83613070565b9150613cf482613cb5565b602082019050919050565b5f6020820190508181035f830152613d1681613cdd565b905091905056fea26469706673582212204cccad432f0c752a4ddced8066f1f45d0ba57b98c527cccdc6bc308d4c0a7ad564736f6c63430008140033
Deployed Bytecode Sourcemap
5113:12931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14633:77;;;;;;;;;;;;;:::i;:::-;;6643:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9211:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6568:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9429:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8867:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6036:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9653:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17522:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8607:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17690:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9299:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10316:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6606:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8961:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:148;;;;;;;;;;;;;:::i;:::-;;10031:113;;;;;;;;;;;;;:::i;:::-;;14287:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5725:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8783:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1813:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8693:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5215:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10152:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1433:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9072:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17379:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17830:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2183:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16824:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14166:113;;;;;;;;;;;;;:::i;:::-;;5184:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14633:77;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14698:4:::1;14684:11;;:18;;;;;;;;;;;;;;;;;;14633:77::o:0;6643:54::-;;;;:::o;9211:80::-;9259:13;9283:5;;;;;;;;;;;;;;;;;9276:12;;9211:80;:::o;6568:31::-;;;;;;;;;;;;;:::o;9429:216::-;9504:4;9556:6;9521:11;:23;9533:10;9521:23;;;;;;;;;;;;;;;:32;9545:7;9521:32;;;;;;;;;;;;;;;:41;;;;9599:7;9578:37;;9587:10;9578:37;;;9608:6;9578:37;;;;;;:::i;:::-;;;;;;;;9633:4;9626:11;;9429:216;;;;:::o;8867:88::-;8922:7;8940:12;;8933:19;;8867:88;:::o;6036:96::-;;;;:::o;9653:370::-;9753:4;9808:17;9773:11;:19;9785:6;9773:19;;;;;;;;;;;;;;;:31;9793:10;9773:31;;;;;;;;;;;;;;;;:52;9770:186;;9875:69;9911:6;9875:69;;;;;;;;;;;;;;;;;:11;:19;9887:6;9875:19;;;;;;;;;;;;;;;:31;9895:10;9875:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9841:11;:19;9853:6;9841:19;;;;;;;;;;;;;;;:31;9861:10;9841:31;;;;;;;;;;;;;;;:103;;;;9770:186;9975:40;9989:6;9997:9;10008:6;9975:13;:40::i;:::-;9968:47;;9653:370;;;;;:::o;17522:156::-;17582:7;17609:61;17657:12;:10;:12::i;:::-;17609:43;17622:29;17649:1;17622:22;17632:11;;;;;;;;;;;17622:9;:22::i;:::-;:26;;:29;;;;:::i;:::-;17609:8;:12;;:43;;;;:::i;:::-;:47;;:61;;;;:::i;:::-;17602:68;;17522:156;;;:::o;8607:80::-;8659:5;5413:2;8668:16;;8607:80;:::o;17690:132::-;17733:7;17760:54;17798:15;5540:42;17798:9;:15::i;:::-;17760:33;17777:15;5467:42;17777:9;:15::i;:::-;17760:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;17753:61;;17690:132;:::o;9299:122::-;9354:4;9378:35;9386:7;9395:17;9378:7;:35::i;:::-;9371:42;;9299:122;;;:::o;10316:229::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:1:::1;10402:14;:19;;10394:28;;;::::0;::::1;;10487:4;10468:14;10453:12;;:29;;;;:::i;:::-;10452:39;;;;:::i;:::-;10434:15;:57;;;;10507:30;10521:15;;10507:30;;;;;;:::i;:::-;;;;;;;;10316:229:::0;:::o;6606:30::-;;;;;;;;;;;;;:::o;8961:105::-;9027:7;9045:9;:18;9055:7;9045:18;;;;;;;;;;;;;;;;9038:25;;8961:105;;;:::o;2027:148::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2134:1:::1;2097:40;;2118:6;::::0;::::1;;;;;;;;2097:40;;;;;;;;;;;;2165:1;2148:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2027:148::o:0;10031:113::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5281:4:::1;10086:12;:18;;;;5281:4;10115:15;:21;;;;10031:113::o:0;14287:338::-;14368:12;14411:1;14401:6;:11;14398:95;;14443:12;14437:29;;;14475:4;14437:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14428:53;;14398:95;14508:32;14519:12;14533:6;14508:32;;;;;;;:::i;:::-;;;;;;;;14564:12;14558:28;;;14587:21;;;;;;;;;;;14610:6;14558:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14551:66;;14287:338;;;;:::o;5725:63::-;;;;:::o;5658:60::-;;;;:::o;8783:78::-;8835:7;8852;:5;:7::i;:::-;8845:14;;8783:78;:::o;1813:79::-;1851:7;1878:6;;;;;;;;;;;1871:13;;1813:79;:::o;8693:84::-;8743:13;8767:7;;;;;;;;;;;;;;;;;8760:14;;8693:84;:::o;5215:26::-;;;;;;;;;;;;;:::o;10152:156::-;10232:4;10256:44;10270:10;10282:9;10293:6;10256:13;:44::i;:::-;10249:51;;10152:156;;;;:::o;1433:21::-;;;;;;;;;;;;:::o;9072:133::-;9156:7;9174:11;:19;9186:6;9174:19;;;;;;;;;;;;;;;:28;9194:7;9174:28;;;;;;;;;;;;;;;;9167:35;;9072:133;;;;:::o;17379:135::-;17453:4;17501:5;17477:21;17489:8;17477:11;:21::i;:::-;:29;17470:36;;17379:135;;;;:::o;17830:211::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17935:8:::1;17921:11;;:22;;;;;;;;;;;;;;;;;;17970:7;17954:13;:23;;;;17993:40;18006:13;;18021:11;;;;;;;;;;;17993:40;;;;;;;:::i;:::-;;;;;;;;17830:211:::0;;:::o;2183:244::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2292:1:::1;2272:22;;:8;:22;;::::0;2264:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2382:8;2353:38;;2374:6;::::0;::::1;;;;;;;;2353:38;;;;;;;;;;;;2411:8;2402:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2183:244:::0;:::o;16824:547::-;1950:12;:10;:12::i;:::-;1940:22;;:6;;;;;;;;;;:22;;;1932:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17045:22:::1;17021:21;;:46;;;;;;;;;;;;;;;;;;17099:21;17078:18;;:42;;;;;;;;;;;;;;;;;;17148:15;17131:14;;:32;;;;;;;;;;;;;;;;;;17192:16;17174:15;;:34;;;;;;;;;;;;;;;;;;17240:19;17219:18;;:40;;;;;;;;;;;;;;;;;;17277:86;17291:18;;;;;;;;;;;17311;;;;;;;;;;;17331:15;;;;;;;;;;;17348:14;;;;;;;;;;;17277:86;;;;;;;;;:::i;:::-;;;;;;;;16824:547:::0;;;;;:::o;14166:113::-;14217:21;;;;;;;;;;;14209:39;;:62;14249:21;14209:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14166:113::o;5184:24::-;;;;;;;;;;;;;:::o;1154:115::-;1207:15;1250:10;1235:26;;1154:115;:::o;4183:192::-;4269:7;4302:1;4297;:6;;4305:12;4289:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4329:9;4345:1;4341;:5;;;;:::i;:::-;4329:17;;4366:1;4359:8;;;4183:192;;;;;:::o;10553:1370::-;10645:4;10665:6;;;;;;;;;;;10662:63;;;10681:41;10696:6;10704:9;10715:6;10681:14;:41::i;:::-;10674:48;;;;10662:63;10741:14;:22;10756:6;10741:22;;;;;;;;;;;;;;;;;;;;;;;;;10740:23;:53;;;;;10768:14;:25;10783:9;10768:25;;;;;;;;;;;;;;;;;;;;;;;;;10767:26;10740:53;10737:127;;;10817:11;;;;;;;;;;;10809:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:127;10879:16;:24;10896:6;10879:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;10907:16;:27;10924:9;10907:27;;;;;;;;;;;;;;;;;;;;;;;;;10879:55;10876:135;;;10958:41;10973:6;10981:9;10992:6;10958:14;:41::i;:::-;10951:48;;;;10876:135;11028:14;:22;11043:6;11028:22;;;;;;;;;;;;;;;;;;;;;;;;;11027:23;:53;;;;;11075:4;11054:26;;:9;:26;;;;11027:53;:84;;;;;5467:42;11085:26;;:9;:26;;;;11027:84;:112;;;;;11128:11;;;;;;;;;;;11115:24;;:9;:24;;;;11027:112;:144;;;;;11156:15;;;;;;;;;;;11143:28;;:9;:28;;;;11027:144;:179;;;;;11188:18;;;;;;;;;;;11175:31;;:9;:31;;;;11027:179;:212;;;;;11211:17;:28;11229:9;11211:28;;;;;;;;;;;;;;;;;;;;;;;;;11210:29;11027:212;11023:414;;;11255:18;11276:20;11286:9;11276;:20::i;:::-;11255:41;;11344:15;;11333:6;11320:10;:19;;;;:::i;:::-;11319:40;;11311:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11240:197;11023:414;11449:31;11465:6;11473;11449:15;:31::i;:::-;11496:16;:14;:16::i;:::-;11493:35;;;11515:10;:8;:10::i;:::-;11493:35;11558:53;11580:6;11558:53;;;;;;;;;;;;;;;;;:9;:17;11568:6;11558:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11538:9;:17;11548:6;11538:17;;;;;;;;;;;;;;;:73;;;;11624:22;11650:16;:24;11667:6;11650:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11678:16;:27;11695:9;11678:27;;;;;;;;;;;;;;;;;;;;;;;;;11650:55;11649:109;;11718:40;11732:6;11740;11748:9;11718:13;:40::i;:::-;11649:109;;;11709:6;11649:109;11624:134;;11792:40;11817:14;11792:9;:20;11802:9;11792:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11769:9;:20;11779:9;11769:20;;;;;;;;;;;;;;;:63;;;;11867:9;11850:43;;11859:6;11850:43;;;11878:14;11850:43;;;;;;:::i;:::-;;;;;;;;11911:4;11904:11;;;10553:1370;;;;;;:::o;4381:250::-;4439:7;4468:1;4463;:6;4459:47;;4493:1;4486:8;;;;4459:47;4518:9;4534:1;4530;:5;;;;:::i;:::-;4518:17;;4563:1;4558;4554;:5;;;;:::i;:::-;:10;4546:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4622:1;4615:8;;;4381:250;;;;;:::o;4974:132::-;5032:7;5059:39;5063:1;5066;5059:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5052:46;;4974:132;;;;:::o;4637:136::-;4695:7;4722:43;4726:1;4729;4722:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4715:50;;4637:136;;;;:::o;11931:423::-;12024:4;12031:17;12051:33;12066:6;12074:9;12051:14;:33::i;:::-;:69;;12114:6;12051:69;;;12096:15;;12087:6;:24;;;;:::i;:::-;12051:69;12031:89;;12151:56;12173:9;12151:56;;;;;;;;;;;;;;;;;:9;:17;12161:6;12151:17;;;;;;;;;;;;;;;;:21;;:56;;;;;:::i;:::-;12131:9;:17;12141:6;12131:17;;;;;;;;;;;;;;;:76;;;;12241:32;12266:6;12241:9;:20;12251:9;12241:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12218:9;:20;12228:9;12218:20;;;;;;;;;;;;;;;:55;;;;12306:9;12289:35;;12298:6;12289:35;;;12317:6;12289:35;;;;;;:::i;:::-;;;;;;;;12342:4;12335:11;;;11931:423;;;;;:::o;12362:171::-;12462:12;;12452:6;:22;;:51;;;;12478:17;:25;12496:6;12478:25;;;;;;;;;;;;;;;;;;;;;;;;;12452:51;12444:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12362:171;;:::o;13726:204::-;13775:4;13813:11;;;;;;;;;;;13799:25;;:10;:25;;;;:45;;;;;13838:6;;;;;;;;;;;13837:7;13799:45;:69;;;;;13857:11;;;;;;;;;;;13799:69;:123;;;;;13909:13;;13881:9;:24;13899:4;13881:24;;;;;;;;;;;;;;;;:41;;13799:123;13792:130;;13726:204;:::o;14718:1855::-;6754:4;6745:6;;:13;;;;;;;;;;;;;;;;;;14767:27:::1;14797:41;14808:8;;14818:19;;14797:10;:41::i;:::-;:63;;14845:15;;14797:63;;;14841:1;14797:63;14767:93;;14871:23;14897:59;14954:1;14897:52;14940:8;;14897:38;14915:19;14897:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14871:85;;14967:20;14990:34;15008:15;14990:13;;:17;;:34;;;;:::i;:::-;14967:57;;15037:21;15075:1;15061:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15037:40;;15106:4;15088;15093:1;15088:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15132:4;;;;;;;;;;;15122;15127:1;15122:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15149:21;15173;15149:45;;15207:6;;;;;;;;;;;:57;;;15279:12;15306:1;15322:4;15349;15369:15;15207:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15408:17;15428:40;15454:13;15428:21;:25;;:40;;;;:::i;:::-;15408:60;;15481:19;15503:40;15516:26;15540:1;15516:19;:23;;:26;;;;:::i;:::-;15503:8;;:12;;:40;;;;:::i;:::-;15481:62;;15564:26;15593:58;15649:1;15593:51;15632:11;15593:34;15607:19;15593:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15564:87;;15662:26;15691:44;15723:11;15691:27;15705:12;;15691:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15662:73;;15746:24;15773:42;15803:11;15773:25;15787:10;;15773:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15746:69;;15826:20;15849:38;15875:11;15849:21;15863:6;;15849:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15826:61;;15901:15;15929:18;;;;;;;;;;;15921:32;;15961:18;15921:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15900:84;;;16019:14;;;;;;;;;;;16011:28;;16047:12;16011:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15995:69;;;;;16099:18;;;;;;;;;;;16091:32;;16131:16;16091:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16075:77;;;;;16186:5;16173:18;;16225:1;16207:15;:19;16204:362;;;16242:6;;;;;;;;;;;:22;;;16272:18;16318:4;16342:15;16376:1;16396::::0;16416:21:::1;;;;;;;;;;;16456:15;16242:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16506:48;16518:18;16538:15;16506:48;;;;;;;:::i;:::-;;;;;;;;16204:362;14756:1817;;;;;;;;;;;;6772:5:::0;6763:6;;:14;;;;;;;;;;;;;;;;;;14718:1855::o;12668:1050::-;12760:7;12780:15;12798;;12780:33;;12824:22;12877:11;;;;;;;;;;;12864:24;;:9;:24;;;12861:205;;12909:29;12919:18;;;;;;;;;;;12909:9;:29::i;:::-;12891:47;;;;;:::i;:::-;;;12963:11;;12953:21;;12861:205;;;13006:11;;;;;;;;;;;12996:21;;:6;:21;;;12993:73;;13044:10;;13034:20;;12993:73;12861:205;13076:17;13096:53;13145:3;13134:8;;:14;;;;:::i;:::-;13096:33;13121:7;13096:20;13107:8;;13096:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:53;;;;:::i;:::-;13076:73;;13160:18;13181:36;13208:8;;13181:22;13195:7;;13181:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13160:57;;13228:22;13253:25;13267:10;13253:9;:13;;:25;;;;:::i;:::-;13228:50;;13316:44;13345:14;13316:9;:24;13334:4;13316:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13289:9;:24;13307:4;13289:24;;;;;;;;;;;;;;;:71;;;;13400:42;13431:10;13400:9;:26;13410:15;;;;;;;;;;;13400:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13371:9;:26;13381:15;;;;;;;;;;;13371:26;;;;;;;;;;;;;;;:71;;;;13483:4;13458:47;;13467:6;13458:47;;;13490:14;13458:47;;;;;;:::i;:::-;;;;;;;;13542:1;13529:10;:14;13526:144;;;13574:28;13591:10;13574:12;;:16;;:28;;;;:::i;:::-;13559:12;:43;;;;5540:42;13622:34;;13631:6;13622:34;;;13645:10;13622:34;;;;;;:::i;:::-;;;;;;;;13526:144;13689:21;13700:9;13689:6;:10;;:21;;;;:::i;:::-;13682:28;;;;;;;12668:1050;;;;;:::o;3994:181::-;4052:7;4072:9;4088:1;4084;:5;;;;:::i;:::-;4072:17;;4113:1;4108;:6;;4100:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4166:1;4159:8;;;3994:181;;;;:::o;4779:189::-;4865:7;4897:1;4893;:5;4900:12;4885:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4924:9;4940:1;4936;:5;;;;:::i;:::-;4924:17;;4959:1;4952:8;;;4779:189;;;;;:::o;13938:220::-;14020:4;14057:11;;;;;;;;;;;14044:24;;:9;:24;;;:56;;;;;14082:18;;;;;;;;;;;14072:28;;:6;:28;;;14044:56;:80;;;;;14122:1;14104:20;;:6;:20;;;;14044:80;:106;;;;;14148:1;14128:22;;:9;:22;;;;14044:106;14037:113;;13938:220;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:116::-;6905:21;6920:5;6905:21;:::i;:::-;6898:5;6895:32;6885:60;;6941:1;6938;6931:12;6885:60;6835:116;:::o;6957:133::-;7000:5;7038:6;7025:20;7016:29;;7054:30;7078:5;7054:30;:::i;:::-;6957:133;;;;:::o;7096:468::-;7161:6;7169;7218:2;7206:9;7197:7;7193:23;7189:32;7186:119;;;7224:79;;:::i;:::-;7186:119;7344:1;7369:50;7411:7;7402:6;7391:9;7387:22;7369:50;:::i;:::-;7359:60;;7315:114;7468:2;7494:53;7539:7;7530:6;7519:9;7515:22;7494:53;:::i;:::-;7484:63;;7439:118;7096:468;;;;;:::o;7570:911::-;7665:6;7673;7681;7689;7697;7746:3;7734:9;7725:7;7721:23;7717:33;7714:120;;;7753:79;;:::i;:::-;7714:120;7873:1;7898:53;7943:7;7934:6;7923:9;7919:22;7898:53;:::i;:::-;7888:63;;7844:117;8000:2;8026:53;8071:7;8062:6;8051:9;8047:22;8026:53;:::i;:::-;8016:63;;7971:118;8128:2;8154:53;8199:7;8190:6;8179:9;8175:22;8154:53;:::i;:::-;8144:63;;8099:118;8256:2;8282:53;8327:7;8318:6;8307:9;8303:22;8282:53;:::i;:::-;8272:63;;8227:118;8384:3;8411:53;8456:7;8447:6;8436:9;8432:22;8411:53;:::i;:::-;8401:63;;8355:119;7570:911;;;;;;;;:::o;8487:60::-;8515:3;8536:5;8529:12;;8487:60;;;:::o;8553:142::-;8603:9;8636:53;8654:34;8663:24;8681:5;8663:24;:::i;:::-;8654:34;:::i;:::-;8636:53;:::i;:::-;8623:66;;8553:142;;;:::o;8701:126::-;8751:9;8784:37;8815:5;8784:37;:::i;:::-;8771:50;;8701:126;;;:::o;8833:144::-;8901:9;8934:37;8965:5;8934:37;:::i;:::-;8921:50;;8833:144;;;:::o;8983:167::-;9088:55;9137:5;9088:55;:::i;:::-;9083:3;9076:68;8983:167;;:::o;9156:258::-;9267:4;9305:2;9294:9;9290:18;9282:26;;9318:89;9404:1;9393:9;9389:17;9380:6;9318:89;:::i;:::-;9156:258;;;;:::o;9420:182::-;9560:34;9556:1;9548:6;9544:14;9537:58;9420:182;:::o;9608:366::-;9750:3;9771:67;9835:2;9830:3;9771:67;:::i;:::-;9764:74;;9847:93;9936:3;9847:93;:::i;:::-;9965:2;9960:3;9956:12;9949:19;;9608:366;;;:::o;9980:419::-;10146:4;10184:2;10173:9;10169:18;10161:26;;10233:9;10227:4;10223:20;10219:1;10208:9;10204:17;10197:47;10261:131;10387:4;10261:131;:::i;:::-;10253:139;;9980:419;;;:::o;10405:180::-;10453:77;10450:1;10443:88;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10591:410;10631:7;10654:20;10672:1;10654:20;:::i;:::-;10649:25;;10688:20;10706:1;10688:20;:::i;:::-;10683:25;;10743:1;10740;10736:9;10765:30;10783:11;10765:30;:::i;:::-;10754:41;;10944:1;10935:7;10931:15;10928:1;10925:22;10905:1;10898:9;10878:83;10855:139;;10974:18;;:::i;:::-;10855:139;10639:362;10591:410;;;;:::o;11007:180::-;11055:77;11052:1;11045:88;11152:4;11149:1;11142:15;11176:4;11173:1;11166:15;11193:185;11233:1;11250:20;11268:1;11250:20;:::i;:::-;11245:25;;11284:20;11302:1;11284:20;:::i;:::-;11279:25;;11323:1;11313:35;;11328:18;;:::i;:::-;11313:35;11370:1;11367;11363:9;11358:14;;11193:185;;;;:::o;11384:143::-;11441:5;11472:6;11466:13;11457:22;;11488:33;11515:5;11488:33;:::i;:::-;11384:143;;;;:::o;11533:351::-;11603:6;11652:2;11640:9;11631:7;11627:23;11623:32;11620:119;;;11658:79;;:::i;:::-;11620:119;11778:1;11803:64;11859:7;11850:6;11839:9;11835:22;11803:64;:::i;:::-;11793:74;;11749:128;11533:351;;;;:::o;11890:332::-;12011:4;12049:2;12038:9;12034:18;12026:26;;12062:71;12130:1;12119:9;12115:17;12106:6;12062:71;:::i;:::-;12143:72;12211:2;12200:9;12196:18;12187:6;12143:72;:::i;:::-;11890:332;;;;;:::o;12228:137::-;12282:5;12313:6;12307:13;12298:22;;12329:30;12353:5;12329:30;:::i;:::-;12228:137;;;;:::o;12371:345::-;12438:6;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:61;12691:7;12682:6;12671:9;12667:22;12638:61;:::i;:::-;12628:71;;12584:125;12371:345;;;;:::o;12722:320::-;12837:4;12875:2;12864:9;12860:18;12852:26;;12888:71;12956:1;12945:9;12941:17;12932:6;12888:71;:::i;:::-;12969:66;13031:2;13020:9;13016:18;13007:6;12969:66;:::i;:::-;12722:320;;;;;:::o;13048:225::-;13188:34;13184:1;13176:6;13172:14;13165:58;13257:8;13252:2;13244:6;13240:15;13233:33;13048:225;:::o;13279:366::-;13421:3;13442:67;13506:2;13501:3;13442:67;:::i;:::-;13435:74;;13518:93;13607:3;13518:93;:::i;:::-;13636:2;13631:3;13627:12;13620:19;;13279:366;;;:::o;13651:419::-;13817:4;13855:2;13844:9;13840:18;13832:26;;13904:9;13898:4;13894:20;13890:1;13879:9;13875:17;13868:47;13932:131;14058:4;13932:131;:::i;:::-;13924:139;;13651:419;;;:::o;14076:553::-;14253:4;14291:3;14280:9;14276:19;14268:27;;14305:71;14373:1;14362:9;14358:17;14349:6;14305:71;:::i;:::-;14386:72;14454:2;14443:9;14439:18;14430:6;14386:72;:::i;:::-;14468;14536:2;14525:9;14521:18;14512:6;14468:72;:::i;:::-;14550;14618:2;14607:9;14603:18;14594:6;14550:72;:::i;:::-;14076:553;;;;;;;:::o;14635:194::-;14675:4;14695:20;14713:1;14695:20;:::i;:::-;14690:25;;14729:20;14747:1;14729:20;:::i;:::-;14724:25;;14773:1;14770;14766:9;14758:17;;14797:1;14791:4;14788:11;14785:37;;;14802:18;;:::i;:::-;14785:37;14635:194;;;;:::o;14835:170::-;14975:22;14971:1;14963:6;14959:14;14952:46;14835:170;:::o;15011:366::-;15153:3;15174:67;15238:2;15233:3;15174:67;:::i;:::-;15167:74;;15250:93;15339:3;15250:93;:::i;:::-;15368:2;15363:3;15359:12;15352:19;;15011:366;;;:::o;15383:419::-;15549:4;15587:2;15576:9;15572:18;15564:26;;15636:9;15630:4;15626:20;15622:1;15611:9;15607:17;15600:47;15664:131;15790:4;15664:131;:::i;:::-;15656:139;;15383:419;;;:::o;15808:191::-;15848:3;15867:20;15885:1;15867:20;:::i;:::-;15862:25;;15901:20;15919:1;15901:20;:::i;:::-;15896:25;;15944:1;15941;15937:9;15930:16;;15965:3;15962:1;15959:10;15956:36;;;15972:18;;:::i;:::-;15956:36;15808:191;;;;:::o;16005:249::-;16145:34;16141:1;16133:6;16129:14;16122:58;16214:32;16209:2;16201:6;16197:15;16190:57;16005:249;:::o;16260:366::-;16402:3;16423:67;16487:2;16482:3;16423:67;:::i;:::-;16416:74;;16499:93;16588:3;16499:93;:::i;:::-;16617:2;16612:3;16608:12;16601:19;;16260:366;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:220::-;17197:34;17193:1;17185:6;17181:14;17174:58;17266:3;17261:2;17253:6;17249:15;17242:28;17057:220;:::o;17283:366::-;17425:3;17446:67;17510:2;17505:3;17446:67;:::i;:::-;17439:74;;17522:93;17611:3;17522:93;:::i;:::-;17640:2;17635:3;17631:12;17624:19;;17283:366;;;:::o;17655:419::-;17821:4;17859:2;17848:9;17844:18;17836:26;;17908:9;17902:4;17898:20;17894:1;17883:9;17879:17;17872:47;17936:131;18062:4;17936:131;:::i;:::-;17928:139;;17655:419;;;:::o;18080:167::-;18220:19;18216:1;18208:6;18204:14;18197:43;18080:167;:::o;18253:366::-;18395:3;18416:67;18480:2;18475:3;18416:67;:::i;:::-;18409:74;;18492:93;18581:3;18492:93;:::i;:::-;18610:2;18605:3;18601:12;18594:19;;18253:366;;;:::o;18625:419::-;18791:4;18829:2;18818:9;18814:18;18806:26;;18878:9;18872:4;18868:20;18864:1;18853:9;18849:17;18842:47;18906:131;19032:4;18906:131;:::i;:::-;18898:139;;18625:419;;;:::o;19050:180::-;19098:77;19095:1;19088:88;19195:4;19192:1;19185:15;19219:4;19216:1;19209:15;19236:180;19284:77;19281:1;19274:88;19381:4;19378:1;19371:15;19405:4;19402:1;19395:15;19422:85;19467:7;19496:5;19485:16;;19422:85;;;:::o;19513:158::-;19571:9;19604:61;19622:42;19631:32;19657:5;19631:32;:::i;:::-;19622:42;:::i;:::-;19604:61;:::i;:::-;19591:74;;19513:158;;;:::o;19677:147::-;19772:45;19811:5;19772:45;:::i;:::-;19767:3;19760:58;19677:147;;:::o;19830:114::-;19897:6;19931:5;19925:12;19915:22;;19830:114;;;:::o;19950:184::-;20049:11;20083:6;20078:3;20071:19;20123:4;20118:3;20114:14;20099:29;;19950:184;;;;:::o;20140:132::-;20207:4;20230:3;20222:11;;20260:4;20255:3;20251:14;20243:22;;20140:132;;;:::o;20278:108::-;20355:24;20373:5;20355:24;:::i;:::-;20350:3;20343:37;20278:108;;:::o;20392:179::-;20461:10;20482:46;20524:3;20516:6;20482:46;:::i;:::-;20560:4;20555:3;20551:14;20537:28;;20392:179;;;;:::o;20577:113::-;20647:4;20679;20674:3;20670:14;20662:22;;20577:113;;;:::o;20726:732::-;20845:3;20874:54;20922:5;20874:54;:::i;:::-;20944:86;21023:6;21018:3;20944:86;:::i;:::-;20937:93;;21054:56;21104:5;21054:56;:::i;:::-;21133:7;21164:1;21149:284;21174:6;21171:1;21168:13;21149:284;;;21250:6;21244:13;21277:63;21336:3;21321:13;21277:63;:::i;:::-;21270:70;;21363:60;21416:6;21363:60;:::i;:::-;21353:70;;21209:224;21196:1;21193;21189:9;21184:14;;21149:284;;;21153:14;21449:3;21442:10;;20850:608;;;20726:732;;;;:::o;21464:831::-;21727:4;21765:3;21754:9;21750:19;21742:27;;21779:71;21847:1;21836:9;21832:17;21823:6;21779:71;:::i;:::-;21860:80;21936:2;21925:9;21921:18;21912:6;21860:80;:::i;:::-;21987:9;21981:4;21977:20;21972:2;21961:9;21957:18;21950:48;22015:108;22118:4;22109:6;22015:108;:::i;:::-;22007:116;;22133:72;22201:2;22190:9;22186:18;22177:6;22133:72;:::i;:::-;22215:73;22283:3;22272:9;22268:19;22259:6;22215:73;:::i;:::-;21464:831;;;;;;;;:::o;22301:147::-;22402:11;22439:3;22424:18;;22301:147;;;;:::o;22454:114::-;;:::o;22574:398::-;22733:3;22754:83;22835:1;22830:3;22754:83;:::i;:::-;22747:90;;22846:93;22935:3;22846:93;:::i;:::-;22964:1;22959:3;22955:11;22948:18;;22574:398;;;:::o;22978:379::-;23162:3;23184:147;23327:3;23184:147;:::i;:::-;23177:154;;23348:3;23341:10;;22978:379;;;:::o;23363:807::-;23612:4;23650:3;23639:9;23635:19;23627:27;;23664:71;23732:1;23721:9;23717:17;23708:6;23664:71;:::i;:::-;23745:72;23813:2;23802:9;23798:18;23789:6;23745:72;:::i;:::-;23827:80;23903:2;23892:9;23888:18;23879:6;23827:80;:::i;:::-;23917;23993:2;23982:9;23978:18;23969:6;23917:80;:::i;:::-;24007:73;24075:3;24064:9;24060:19;24051:6;24007:73;:::i;:::-;24090;24158:3;24147:9;24143:19;24134:6;24090:73;:::i;:::-;23363:807;;;;;;;;;:::o;24176:663::-;24264:6;24272;24280;24329:2;24317:9;24308:7;24304:23;24300:32;24297:119;;;24335:79;;:::i;:::-;24297:119;24455:1;24480:64;24536:7;24527:6;24516:9;24512:22;24480:64;:::i;:::-;24470:74;;24426:128;24593:2;24619:64;24675:7;24666:6;24655:9;24651:22;24619:64;:::i;:::-;24609:74;;24564:129;24732:2;24758:64;24814:7;24805:6;24794:9;24790:22;24758:64;:::i;:::-;24748:74;;24703:129;24176:663;;;;;:::o;24845:332::-;24966:4;25004:2;24993:9;24989:18;24981:26;;25017:71;25085:1;25074:9;25070:17;25061:6;25017:71;:::i;:::-;25098:72;25166:2;25155:9;25151:18;25142:6;25098:72;:::i;:::-;24845:332;;;;;:::o;25183:177::-;25323:29;25319:1;25311:6;25307:14;25300:53;25183:177;:::o;25366:366::-;25508:3;25529:67;25593:2;25588:3;25529:67;:::i;:::-;25522:74;;25605:93;25694:3;25605:93;:::i;:::-;25723:2;25718:3;25714:12;25707:19;;25366:366;;;:::o;25738:419::-;25904:4;25942:2;25931:9;25927:18;25919:26;;25991:9;25985:4;25981:20;25977:1;25966:9;25962:17;25955:47;26019:131;26145:4;26019:131;:::i;:::-;26011:139;;25738:419;;;:::o
Swarm Source
ipfs://4cccad432f0c752a4ddced8066f1f45d0ba57b98c527cccdc6bc308d4c0a7ad5
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.